Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
125
Добавлен:
16.04.2015
Размер:
761.33 Кб
Скачать

Неразрешимость проблемы остановки

При описании универсальной машины Тьюринга мы имели кодирование для любой 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

Соседние файлы в папке lectures