Машина Тьюринга, которая возвращается в ранее обнаруженное состояние со своей головкой чтения / записи в той же ячейке той же самой ленты, будет зациклена. Такая машина не останавливается.
Может ли кто-нибудь привести пример никогда не останавливавшейся машины, которая не зацикливается?
x^2
гдеx
циклы между-100
и циклом100
выполняются по модулю и останавливаются, если результат отрицательный. Он может вычислить,x%2
где x находится в диапазоне от нуля до положительной бесконечности, и останавливаться, когда результат равен 2. На языке ассемблера циклы do / while / for все сводятся к минимуму с условным переходом, но только cond jump означает мало.Ответы:
Рассмотрим TM, который всегда перемещает головку ленты вправо и печатает специальный непустой символ ленты на каждом шаге. Это означает, что TM никогда не останавливается, поскольку он всегда перемещается вправо и никогда не повторяет состояние, поскольку после k шагов головка ленты находится над k-й ячейкой машины. Следовательно, каждая конфигурация машины отличается от всех других, и машина всегда работает в цикле.
Мы также можем неконструктивно показать существование таких машин. Предположим для противоречия, что каждая TM, которая никогда не останавливается, в конце концов зацикливается. Это означает, что если вы запустите TM для строки , в конечном итоге произойдет одно из следующих действий:шM вес
В этом случае проблема остановки будет решаться следующим образом. Если задано значение TM и строка , смоделируйте для , в каждой точке записывая содержимое ленты, текущее состояние и текущее положение ленты. Если эта конфигурация является дубликатом, вывод «не останавливается». В противном случае, если останавливается на , выводится «halts». Поскольку одно из них гарантированно произойдет в конце концов, этот процесс всегда завершается, поэтому у нас будет алгоритм для решения проблемы остановки, который, как мы знаем, не существует.W M W M WM вес M вес M вес
Надеюсь это поможет!
источник
Машина Тьюринга, которая вычисляет все десятичные разряды π (или любой другой неконцевой дроби в любой базе), никогда не останавливается, и ее можно заставить писать в каждую ячейку только конечное число раз. Конечно, тот факт, что нет перехода в состояние остановки, был бы мертвой раздачей, но это, по крайней мере, естественный пример.
Более интересным (но также неоднозначным) случаем может быть машина Тьюринга, которая итеративно вычисляет функцию Коллатца на своем входе, завершается тогда и только тогда, когда оно получает целое число 1. Известная гипотеза Коллатца заключается в том, что для любого ввода эта процедура в конечном итоге останавливается. Но неизвестно, так ли это. В принципе, он может потерпеть неудачу двумя разными способами: либо он может найти последовательность целых чисел, которая зацикливается (соответствует существованию целого числа n, такого что для некоторого числа композиций, где n ≠ 1); или может быть, что есть цепочки целых чисел f ∘ f ∘ ⋯ f ( n ) = n
источник
pi
. ТМ может остановиться, когда квадрат любой цифрыpi
равен ровно 7.Рассмотрим любую машину без остановок Тьюринга, которая никогда не перемещает головку чтения / записи влево.
источник
Если бы это было правдой, то проблема остановки была бы разрешима. Вы просто записали бы каждую пару (лента, состояние), которую видели при запуске машины Тьюринга, и машина либо остановится (в этом случае она явно останавливается), либо вы увидите пару, которую вы видели раньше, и в этом случае машина не останавливается
Поскольку проблема остановки неразрешима, это не может быть правдой. (См. Другие примеры для встречных примеров.)
источник