Проблема остановки машины Тьюринга – это проблема построения такого алгоритма, который мог бы определить закончится или нет вычисление по некоторой задаче. Оказывается, что в общем случае такой алгоритм нельзя построить в принципе, то есть невозможно найти алгоритм, позволяющий по произвольной машине Тьюринга Т и произвольной ее начальной конфигурации q i a j определить придет ли машина Т в заключительное состояние q 0, если начнет работу в этой конфигурации.
Если машина Т, запущенная в начальной конфигурации q i a j, останавливается (т.е. попадает в заключительное состояние) через конечное число шагов, то она называется самоприменимой, в противном случае – несамоприменимой.
Теорема.
Не существует машины Тьюринга М, решающей проблему самоприменимости, то есть проблема самоприменимости алгоритмически неразрешима.
Доказательство.
Предположим противное, то есть. пусть существует машина Тьюринга Т, решающая проблему самоприместимости в указанном выше смысле. Построим новую машину Т0, добавив новое состояние q 0* и объявив его заключительным, а также добавив новые команды для состояния q 0, которое было заключительным в Т:
|
|
q 0 a 1→ a 1С q 0 (1)
q 0 a 2→ a 2 С q 0 (2)
…q 0 a n→ a n С q 0 * (n)
Рассмотрим теперь работу машины T0.
Пусть M – произвольная машина. Если M – самоприменима, то начальная конфигурация q 1 a i перейдет с помощью команд машины T через конечное число шагов в конфигурацию q 0 a 1, далее применяется команда (1), и машина T0 никогда не остановится. Если M – несамоприменима, то начальная конфигурация q 1 a i перейдет с помощью команд машины T через конечное число шагов в конфигурацию q 0 a n, далее применяется команда (n), и машина T0 остановится.
Таким образом, машина T0 применима к кодам несамоприменимых машин Т и неприменима к кодам самоприменимых машин Т.
Теперь применим машину T0 к начальной конфигурации q 1 a i. Сама машина T0 является либо самоприменимой, либо несамоприменимой. Если T0 самоприменима, то по доказанному она никогда не остановится, начав с q 1 a i, и потому она несамоприменима. Если T0 несамоприменима, то по доказанному, она останавливается через конечное число шагов, начав с q 1 a j, и потому она самоприменима. Получили противоречие, следовательно проблема самоприменимости алгоритмически неразрешима, что и требовалось доказать.
Проблема остановки алгоритмически неразрешима, т. к. если бы она была разрешимой, то мы получили бы разрешимость проблемы самоприменимости.
Неразрешимости логики первого порядка
В математической логике и теории алгоритмов под разрешимостью подразумевают свойство формальной теории обладать алгоритмом, определяющим по данной формуле, выводима она из множества аксиом данной теории или нет. Теория называется разрешимой, если такой алгоритм существует, и неразрешимой, в противном случае.
|
|