Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЛиТА 6 - 7.doc
Скачиваний:
55
Добавлен:
12.11.2018
Размер:
452.61 Кб
Скачать

Пример 2

Пусть машина Тьюринга T  =  {A, Q, }, A  =  {0,1}, Q  =  {q0,q1,q2} задана с помощью таблицы:

q0

q1

q2

0

q20R

q01S

1

q21R

Рассмотрим слово: M  =  q1011…10. На первом шаге выполняется команда q10q20R. Получаем: MT =  0q211…10. Затем, до тех пор, пока слово не превратится в слово 011…1q20, будет выполняться команда q21  q21R. После этого будет выполнена команда q20  q01, и машина остановится, ибо q0 соответствует состоянию остановки. Входное слово, состоящее из x единиц, означает, что аргументом вычисляемой функции является число x. Поскольку на выходе получается x + 1 подряд идущих единиц, то машина вычисляет функцию: s(x)  =  x + 1.

Пример 3

Вычисление функции: s(x)  =  x+1 в примере 2 не является правильным. Построим машину Тьюринга для правильного вычисления:

q0

q1

q2

q3

q4

0

q20R

q31R

q40L

q00L

1

q21R

q41L

q41L

Упражнение

Построить машину Тьюринга, правильно вычисляющую функцию: o(x)  =  0.

Можно построить машины Тьюринга для правильного вычисления функций:

Imn(x1,…,xn), 1    m    n.

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

Теорема 1. Частичная функция правильно вычислима тогда и только тогда, когда она частично рекурсивна.

Тезис Чёрча и алгоритмически неразрешимые проблемы

Поскольку класс частично рекурсивных функций совпадает с классом правильно вычислимых, то тезис Чёрча равносилен предположению о том, что для любой алгоритмически вычислимой функции существует правильно вычисляющая её машина Тьюринга.

Применим это для доказательства алгоритмической неразрешимости проблемы остановки машины Тьюринга, которая заключается в нахождении алгоритма, определяющего по машине Тьюринга и начальным данным, остановится ли машина через конечное число шагов. Так как машина Тьюринга задается с помощью конечного набора символов и слов, то число машин Тьюринга счетно и может быть выписано в последовательность: T0, T1, … .

Теорема (о проблеме остановки). Пусть T0,T1, T2,… последовательность, перечисляющая все машины Тьюринга, h(n,k) – функция, принимающая значение 1, если машина Tn останавливается, начиная работу с машинного слова q101k0, и принимающая значения h(n,k) = 0 в других случаях. Тогда функция h: N2  N не является частично рекурсивной. Иными словами, нет алгоритма, определяющего, остановится ли машина Тьюринга, если на вход ей подать число k.

Доказательство. От противного. Пусть функция h(n,k) частично рекурсивна. Тогда частичная функция:

f(n)  =  My[h(n,n) + y  =  0]

тоже частично рекурсивна. Существует номер m такой, что f правильно вычисляется с помощью машины Tm. Тогда f(m)  =  0, если и только если h(m,m)  =  0. Согласно определению функции h равенство h(m,m) = 0 имеет место тогда и только тогда, когда машина Tm не останавливается, начиная со слова q101m0. Но f правильно вычисляется с момощью Tm , значит, Tm не остановится, начиная с m, если и только если f(m) не определено. Получаем противоречие: f(m)  =  0, если и только если f(m) не определено, Следовательно, h – не частично рекурсивна.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]