Не распознаваемость самоприменимости машины Тьюринга

 

Приведем доказательство о не распознаваемости самоприменимости машины Тьюринга.

Для этого нам понадобятся следующие теоремы и определения.

Теорема 3.2.1. (о композиции машин Тьюринга). Каковы бы ни были машины Тьюринга Т1 и Т2 в алфавите А, можно построить работающую в том же алфавите такую машину Т, что для всех слов a над алфавитом А будет выполнено равенство Т(a)=Т21(a)).

Доказательство этой теоремы осуществляется просто. Внутренние состояния машин Т1 и Т2 (включая начальные состояния) переименовываются, причем в функциональной схеме машины Т1 переход в заключительное состояние заменяется переходом в начальное состояние машины Т2. При этом функциональные схемы объединяются в одну.

Теорема 3.2.2. (о двоичном моделировании машины Тьюринга) Какова бы ни была машина Т1 в алфавите А, может быть построена такая машина Т в алфавите В={a0, 0, 1}, что для любых слов a1, a2 над алфавитом А и их кодов b1, b2 над алфавитом В Т(b1)= Т(b2) тогда и только тогда, когда Т1(a1)= a2.

Из этой теоремы следует, что в теории машин Тьюринга вполне можно рассматривать только те машины, которые работают в двоичном алфавите. Более того, кроме двух способов задания машины Тьюринга (в виде функциональной схемы и списка команд) возможен третий способ ее записи – в виде двоичного слова.

При этом с помощью побуквенного обратимого (конструктивного) двоичного кодирования кодируются в общем случае:

– символы внешнего алфавита и алфавита внутренних состояний,

– символы, используемые при записи команд машины Тьюринга (Л, П, ,«оставаться на месте»),

– символ, фиксирующий начало и конец программы,

– символ, служащий разделителем между командами.

Подчеркнем, что сама двоичная кодировка указанных символов может осуществляться разными способами (один из способов можно найти в []). Важно лишь то, что кодирование обязательно должно быть обратимым. В этом случае двоичная запись машины Тьюринга (Т), которую далее будем обозначать, следуя [] ŒТŒ (Œ условная запись двоичного кода символа, фиксирующего начало и конец программы), будет однозначно задавать функциональную схему машины Т.

Заметим также, что двоичная запись машины Тьюринга однозначно определяет натуральное число. Натуральные числа, являющиеся записями машины Тьюринга называют геделевскими – по имени австрийского математика Курта Геделя, впервые в 30 годы XX века использовавшего номера объектов вместо них самих для формальных рассуждений об этих объектах. К.Гедель

Рассматривая далее множество машин Тьюринга {T} будем считать, что каждая из них задана своей двоичной записью ŒТŒ. Широко известная в теории алгоритмов массовая проблема остановки в этих терминах формулируется следующим образом.

Применима ли машина Тьюринга Т, заданная своей записью ŒТŒ, к двоичному слову p или нет?

Еще одна известная массовая проблема теории алгоритмов – проблема самоприменимости – звучит так.

Применима ли машина Тьюринга Т, заданная своей записью ŒТŒ, к своей записи ŒТŒ или нет?

Очевидно, что проблема самоприменимости является частным случаем проблемы остановки. И если проблема самоприменимости алгоритмически неразрешима, то и проблема остановки относится к числу алгоритмически неразрешимых проблем.

Тот факт, что проблема самоприменимости алгоритмически неразрешима, фиксирует следующая теорема.

Теорема 3.2.3. (о нераспознаваемости самоприменимости). Не существует машины Тьюринга S, которая по записи ŒТŒ определяла бы, самоприменима машина Т или нет.

Доказательство. Предположим противное и допустим, что существует машина Тьюринга S, распознающая самоприменимость. Без ограничения общности можно считать, что S(ŒCŒ)=1, а S(ŒНŒ)=0, где ŒCŒ – произвольная самоприменимая машина Тьюринга, а ŒНŒ – произвольная несамоприменимая машина Тьюринга.

Введем в рассмотрение машину Т1 с алфавитом внутренних состояний Q={q0, q1, q2 }, работающую в алфавите A={a0, 0, 1} в соответствие со следующей функциональной схемой.

 

Q A q1 q2
a0 q1 q2
q00 q2
q2 q2

 

Как видно из приведенной схемы, если первая буква исходного слова a есть 0, то Т1(a)=a. Если же исходное слово a пусто или начинается с 1, то Т1 неприменима к слову a, Т1(a)=1111…

Определим теперь новую машину Тьюринга S1 как композицию машины S и машины Т1, полагая S1(a)=Т1(S(a)).

Предположим далее, что машина S1 самоприменима. Это означает, что ŒS1Œ – запись самоприменимой машины и по определению машины S S(ŒS1Œ)=1. В то же время,

S1(ŒS1Œ)=Т1(S(ŒS1Œ))=Т1(1)=111….,

что означает несамоприменимость машины S1. Противоречие налицо.

Предположение о том, что машина S1 несамоприменима, влечет за собой (по определению машины S) соотношение S(ŒS1Œ)=0. Но по определению машины S1 S1(ŒS1Œ)=Т1(S(ŒS1Œ))=Т1(0)=0, что означает самоприменимость машины S1.

Вновь получаем противоречие.

Иными словами, предположение о существовании машины S, распознающей самоприменимость приводит к противоречию.

¨Теорема доказана.

Следствие. Проблема остановки алгоритмически неразрешима.

Проблема самоприменимости в теории алгоритмов явилась первой алгоритмически неразрешимой проблемой, от которой отталкивались в дальнейших исследованиях.