Примеры машин Тьюринга
[17/41%]Покажите, что является тьюринг-допустимым языком.
Покажите, что следующая функция является тьюринг-вычислимой:
Покажите, что является тьюринг-разрешимым языком.
Покажите, что функция при является тьюринг-вычислимой.
Найдите машину Тьюринга, которая вычисляет функцию
Покажите, что при функция на натуральных числах является тьюринг-вычислимой.
Покажите, что при любом функция
на строках над алфавитом является тьюринг-вычислимой.
Для каждой из следующих ДМТ проследите работу машины и покажите вычисление на заданных входах:
ДМТ из примера 4.3 на входах 0100 и 01010.
ДМТ из примера 4.5 на входах 0110 и 01010.
ДМТ из примера 4.6 на входах и .
ДМТ из примера 4.9 при и , от конфигурации до ().
Постройте ДМТ для процедур и из примера 4.9.
Постройте ДМТ, разрешающие следующие языки:
.
.
.
.
, где обозначает число вхождений буквы в строку .
.
Постройте ДМТ, вычисляющие следующие функции:
на натуральных числах .
на натуральных числах , , где — фиксированное положительное целое число.
insert , где и — строки над , а — натуральное число, представленное как .
на натуральных числах .
на натуральных числах и .
на натуральном числе .
Для произвольной заданной ДМТ постройте новую ДМТ такую, что допускает в точности то же множество строк, что и (то есть ), но когда останавливается, её лента всегда пуста (то есть финальная конфигурация всегда равна ).
- Рассмотрим регулярный язык .
Найдите ДМТ только для чтения, допускающую . [Подсказка: выполняет два прохода по входному слову. На первом проходе она проверяет, что , и находит . На втором проходе она проверяет, что .]
Найдите все возможные последовательности пересечений на произвольном входе.
Для любых двух последовательностей пересечений машины и для любого символа определите, выполняется ли . Основываясь на этом отношении между последовательностями пересечений, постройте НКА , допускающий .
Можете ли вы найти НКА с меньшим множеством состояний, чем у , допускающий ?
- В доказательстве теоремы 4.10 мы заметили, что если ДМТ в ходе вычисления на входе посещает некоторые пустые ячейки справа от входного слова, то НКА после считывания всех символов входного слова должен переходить в другие состояния с помощью -переходов, чтобы решить, допускает ли он входное слово. Покажите, что в этом нет необходимости. То есть можно исключить все -переходы в и изменить множество финальных состояний так, чтобы оно включало все последовательности пересечений , содержащие в качестве последней пары, такие что . Объясните, как определить итоговое множество .
- Рассмотрим расширение ДМТ только для чтения. ДМТ только для чтения с одним камешком (или, короче, ДМТ с одним камешком) — это ДМТ только для чтения с дополнительной возможностью помечать определённую ячейку входной ленты, помещая на неё камешек. Машина имеет только один камешек, поэтому в любой момент времени на ленте может быть помечен не более чем один символ. Точнее, ДМТ с одним камешком — это ДМТ , где для некоторого конечного множества , , , и удовлетворяет следующим свойствам: для любых и ,
-
для некоторых и .
-
равно либо , либо для некоторых и .
-
равно либо , либо для некоторых и .
-
не определена. (Здесь верхний индекс * обозначает камешек. Таким образом, состояние означает, что держит камешек в своём конечном управлении, и все символы на ленте непомечены; а состояние означает, что камешек находится во входной ячейке. Заметим, что свойство (i) означает, что не может пометить ячейку, если в данный момент она не держит камешек в своём конечном управлении.)
-
Постройте ДМТ с одним камешком такую, что на каждом входе длины машина останавливается ровно через шагов.
-
Покажите, что для каждой ДМТ только для чтения существуют такие константы и , что если останавливается на входе длины , то она обязательно останавливается не более чем за шагов.
-
Покажите, что для каждой ДМТ с одним камешком существуют такие константы и , что если останавливается на входе длины , то она обязательно останавливается не более чем за шагов.
-
Покажите, что если — регулярный язык, то существует ДМТ с одним камешком, допускающая язык . (Напомним, что определён в примере 2.44 как .)
- В этом упражнении мы докажем, что язык, допускаемый ДМТ с одним камешком, обязательно является регулярным. Предположим, что — ДМТ с одним камешком, где . Также предположим, что работает на входе и посещает ячейки , причём в ячейке находится символ , для (то есть ). Для каждого , , определим частичную функцию следующим образом: если для некоторых и , то — это следующее состояние , в котором возвращается в ячейку . В противном случае не определена. То есть функция кодирует состояния в моменты, когда она посещает ячейку с камешком в ячейке (аналогично последовательности пересечений ДМТ только для чтения). Заметим, что зависит как от машины , так и от входного слова .
Рассмотрим язык над алфавитом , где — множество всех частичных функций из в , причём тогда и только тогда, когда для всех выполняется относительно машины и строки . (Заметим: если , то в не более символов, каждый из которых кодирует одну частичную функцию из в .) Покажите, что существует ДМТ только для чтения, допускающая ; то есть покажите, что ДМТ только для чтения может проверить, корректно ли каждый символ , хранящийся на второй дорожке ячейки , кодирует функцию . [Подсказка: не может пошагово моделировать , чтобы проверить корректность значений , поскольку у нет камешка, и поэтому, покинув ячейку , она не может запомнить, где находилась. Вместо этого нужно лишь проверить согласованность функции с её соседями и , аналогично задаче проверки согласованности соседних последовательностей пересечений в теореме 4.10.]
Пусть — язык над алфавитом , такой что , если (1) , определённый в пункте (a) выше, и (2) ДМТ с одним камешком допускает входное слово , где , если , и , если . Покажите, что существует ДМТ только для чтения, допускающая . [Подсказка: использует информацию для моделирования следующим образом: если держит камешек в своём состоянии (то есть если находится в состоянии ), то моделирует пошагово. Если оставляет камешек в ячейке , то использует на второй дорожке, чтобы определить состояние, в которое она перейдёт, когда вернётся в ячейку .]
Покажите, что если — ДМТ с одним камешком, то регулярен. [Подсказка: покажите, что язык является образом гомоморфизма на ; см. пример 2.35.]
Рассмотрим ещё одно расширение ДМТ только для чтения. ДМТ называется ДМТ только для чтения/стирания, если на каждом шаге она может только считывать входной символ и/или стирать его (то есть заменять исходный символ на ). То есть ДМТ является ДМТ только для чтения/стирания, если , и функция переходов удовлетворяет следующему свойству: для любых и , равно либо , либо для некоторых и .
Покажите, что существует ДМТ только для чтения/стирания, допускающая язык .
Покажите, что существует тьюринг-разрешимый язык, не допускаемый никакой ДМТ только для чтения/стирания.