Вычислительная сложность
[57/32%]Пусть даны три стержня и дисков, причём все дисков имеют разный размер. Изначально дисков сложены в порядке убывания размера, снизу вверх, на первом стержне (см. рис. 6.1). Задача о Ханойской башне состоит в том, чтобы перенести всю башню из дисков с первого стержня на второй, перемещая по одному диску за раз и никогда не кладя больший диск на меньший. Каково самое быстрое решение этой задачи? Является ли самое быстрое решение практически осуществимым при размере (размере исходной задачи о Ханойской башне)?
Рис. 6.1: задача о Ханойской башне.
Покажите, что функция растёт медленнее любой функции полиномиальной последовательности, но быстрее любой функции полилогарифмической последовательности.
Пусть . Покажите, что существует функция , такая что .
Покажите, что для любого фиксированного целого .
Покажите, что и .
Покажите, что .
Сравните следующие три функции с помощью обозначения :
Сравните и с помощью обозначения .
Пусть . Верно ли, что для любой возрастающей функции с выполняется ? Приведите доказательство или контрпример.
Докажите, что для любого .
Обозначим . Сравните и .
Вспомните функцию Аккермана , определённую в упражнении 8 раздела 4.8.
Сравните функцию с .
Сравните функцию с .
Предположим, что . Если для достаточно больших , то DTIME .
Если , то для любого ).
Покажите, что если , то .
Покажите, что если , то .
.
Предположим, что . Докажите, что если машина Тьюринга останавливается на всех входах и имеет ограничение по памяти , то она должна иметь временное ограничение для некоторой константы . Используйте этот результат, чтобы показать, что для любого каждое множество из является рекурсивным множеством.
Покажите, что каждое конечное множество строк принадлежит .
Пусть и . Докажите, что и принадлежат . Сделайте отсюда вывод, что классы сложности и все замкнуты относительно булевых операций объединения, пересечения и дополнения.
В доказательстве теоремы 6.10 мы можем фактически использовать девять шагов вместо десяти, чтобы смоделировать по крайней мере шагов . Это можно сделать, объединив четвёртый и пятый шаги в один шаг. Можете ли вы использовать менее девяти шагов в , чтобы выполнить ту же работу?
Оцените, сколько возможных локальных конфигураций существует в доказательстве теоремы 6.10.
Покажите, что каждый контекстно-свободный язык принадлежит (то есть для каждой контекстно-свободной грамматики существует полиномиальный по времени алгоритм разбора).
Покажите, что если и принадлежат , то и также принадлежат .
Пусть такие, что каждая строка из или является двоичным представлением натурального числа. Пусть обозначает натуральное число, чьё двоичное представление есть .
Пусть . Покажите, что если , то также принадлежит .
Пусть . Покажите, что если , то также принадлежит .
Предположим, что . Верно ли, что также принадлежит ? Верно ли, что также принадлежит ?
Покажите, что полностью конструктивна по времени.
Покажите, что полностью конструктивна по памяти.
.
.
Опишите подробно ДМТ с 3 рабочими лентами из теоремы 6.16. В частности, опишите, как работает, используя вход одновременно как машинный код для и как вход для , в то время как он хранится на входной ленте только для чтения.
В доказательстве теоремы 6.17 мы использовали технику чередования, чтобы выполнить параллельное моделирование и . Можем ли мы вместо этого использовать метод произведения машин Тьюринга из примера 5.9, чтобы выполнить параллельное моделирование?
Покажите, что полностью конструктивна по памяти.
Покажите, что полностью конструктивна по времени.
Покажите, что если полностью конструктивна по времени, то .
Покажите, что если полностью конструктивна по памяти и , то для некоторой константы .
Предположим, что через функцию сведения с временным ограничением . Также предположим, что . Что можно сказать о временной сложности множества ?
Покажите, что .
Покажите, что EXP EXPPOLY.
Покажите, что PSPACE .
Пусть . Постройте НМТ, допускающую язык .
Покажите, что .
Покажите, что NSPACE .
Постройте многоленточные НМТ, допускающие следующие языки за время :
.
.
Регулярное выражение называется беззвёздным регулярным выражением, если оно не содержит символ * (звезду Клини). Покажите, что задача определения того, не эквивалентны ли два беззвёздных регулярных выражения и (то есть, верно ли ), принадлежит .
Покажите, что задача определения того, не эквивалентны ли два регулярных выражения, принадлежит .
Расширенное регулярное выражение — это регулярное выражение, в котором может использоваться дополнительная операция пересечения (обозначаемая ). Покажите, что задача определения того, не эквивалентны ли два расширенных регулярных выражения, принадлежит .
В доказательстве теоремы 6.27 предикат решался детерминированным рекурсивным алгоритмом. Преобразуйте его в эквивалентный нерекурсивный алгоритм, использующий память .
Покажите, что класс сложности NP замкнут относительно объединения, пересечения, конкатенации и замыкания Клини.
Покажите, что для любых вещественных чисел и ,
Покажите, что лемма 6.31 по-прежнему верна, если заменить условия и на и . [Подсказка: заметим, что НМТ может моделировать на входе , не выписывая строку на второй ленте. Вместо этого она может просто записывать на второй ленте позицию головки входной ленты и использовать , чтобы определить, какой входной символ сканирует головка ленты .]
Покажите, что для любых вещественных чисел и ,
Покажите, что если и — вполне временно-конструируемые функции с и , то влечёт .
Покажите, что .
Покажите, что EXP .
Покажите, что если , то
Найдите контекстно-зависимую грамматику для языка
Найдите контекстно-зависимую грамматику для языка
Постройте контекстно-зависимые грамматики для языков из примеров 4.17 и 4.18, а также для языков из упражнений 3(b)-3(i) раздела 4.5.
Завершите последнюю часть доказательства теоремы 6.35. То есть опишите, как присоединить самый левый и самый правый пробелы к соседним символам, чтобы преобразовать грамматику в контекстно-зависимую грамматику.
Покажите, что класс контекстно-зависимых языков замкнут относительно объединения, пересечения, конкатенации и замыкания Клини.
Найдите рекурсивный язык , не являющийся контекстно-зависимым.
Что не так, если для вычисления в доказательстве теоремы 6.36 использовать следующий более простой алгоритм?
Для каждого , чтобы вычислить , мы порождаем каждую конфигурацию одну за другой и для каждой недетерминированно проверяем, выполнено ли (машиной ), и увеличиваем счётчик для на единицу, если выполнено.
Вспомним, из упражнения 6 раздела 3.5, понятие 2-стекового PDA. Покажите, что каждый язык, допускаемый 2-стековым PDA, является контекстно-зависимым языком.