
formal_language_theory / lectures / unit_7
.pdf
Неразрешимость проблемы остановки
При описании универсальной машины Тьюринга мы имели кодирование для любой Tm с ленточными символами 0, 1 и B.
Кодированием программы Tm была цепочка из {0, 1, c, L, R}*.
41

Неразрешимость проблемы остановки
Мы можем перенумеровать все такие цепочки (т. е. машины Тьюринга), перечисляя их в порядке возрастания длины.
Цепочки одинаковой длины упорядочиваются в соответствии со значением строки по основанию 5. Предполагается, что эти 5 символов, упорядоченные каком-нибудь порядке, играют роль цифр 0, 1, 2, 3, 4.
42

Неразрешимость проблемы остановки
Аналогичным образом входные цепочки из множества {0, 1}* могут быть тоже упорядочены.
Первыми цепочками являются
, 0, 1, 00, 01, 10, 11, 000, 001, ... .
Таким образом, имеет смысл говорить об i-й цепочке в множестве {0, 1}*.
43

Неразрешимость проблемы остановки
Если мы предположим, что каждая цепочка из множества {0, 1, c, L, R}* является машиной Тьюринга (некоторые цепочки будут образованы неправильно — они рассматриваются как Tm без какихнибудь движений), то так же имеет смысл говорить о j-й машине Тьюринга, т. е. о машине, представленной j-й цепочкой из множества {0, 1, c, L, R}*.
44

Неразрешимость проблемы остановки
Рассмотрим язык
L1 = {xi xi не принимается Tm Ti }.
Покажем, что язык L1 не распознаётся никакой Tm.
Действительно, если бы это не было так, то существовала бы некоторая машина Тьюринга, скажем Tj, которая бы распознавала этот язык, т. е. L1 = T(Tj).
45

Неразрешимость проблемы остановки
Возьмём, цепочку xj.
Случай 1. Если xj L1, то есть xj T(Tj), то по определению языка L1 должно быть xj L1. Противоречие!
Случай 2. Если x j L1, то есть xj T(Tj), то по определению языка L1 должно быть xj L1. Противоречие!
Остается признать, что язык L1 не распознаётся никакой Tm.
46

Неразрешимость проблемы остановки
Обратимся к проблеме остановки. Предположим противное, что мы имели бы алгоритм, т. е. машину Тьюринга T0, которая всегда останавливается и определяет, остановится ли когда-нибудь любая данная Тьюринга в данной конфигурации.
Тогда мы могли бы построить машину Тьюринга T, которая распознаёт язык L1, а это противоречило бы только что установленному факту, что такой Tm не существует.
47

Неразрешимость проблемы остановки
Машина T действовала бы следующим образом:
1. Пусть x * на её входе. Прежде всего она перечисляет цепочки x1, x2, ... из множества* до тех пор, пока не обнаружит, что некоторое xi = x. Таким образом Tm T определяет, что x является i-м предложением в этом перечислении.
48

Неразрешимость проблемы остановки
2.Затем Tm T генерирует код машины Тьюринга Ti.
3.Управление теперь передается машине T0, которая может определить, останавливается Tm Ti с входной цепочкой xi или нет.
4.Если установлено, что Tm Ti не останавливается с входной цепочкой xi (т. е. Tm Ti не принимает xi), то машина T
останавливается и принимает.
49

Неразрешимость проблемы остановки
5. Если же установлено, что Tm Ti останавливается с входной цепочкой xi, то управление передается универсальной машине Тьюринга U, которая моделирует машину Ti с входной цепочкой xi.
50