Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория алгоритмов / из Интернета / теория алгоритмов (учебник 87 стр).pdf
Скачиваний:
191
Добавлен:
27.05.2015
Размер:
771.07 Кб
Скачать

II.7 Машины Тьюринга и современные электронно-вычислительные машины

Изучение машин Тьюринга и практика составления программ для них закладывают фундамент алгоритмического мышления, сущность которого состоит в том, что нужно уметь разделять тот или иной процесс вычисления или какой-либо другой деятельности на простые составляющие шаги. В машине Тьюринга расчленение (анализ) вычислительного процесса на простейшие операции доведено до предельной возможности: распознавание единичного рассмотренного вхождения символа, перемещение точки наблюдения данного ряда символов в соседнюю точку и изменение имеющейся в памяти информации. Конечно, такое мелкое дробление вычислительного процесса, реализуемого в машине Тьюринга, значительно его удлиняет. Но вместе с тем логическая структура процесса, расчлененного, образно выражаясь, до атомарного состояния, значительно упрощается и предстает в некотором стандартном виде, весьма удобном для теоретических исследований. (Именно такое расчленение на простейшие составляющие вычислительного процесса на машине Тьюринга дает еще один косвенный аргумент в пользу тезиса Тьюринга, обсуждавшегося в предыдущем пункте: всякая функция, вычисляемая с помощью какого-либо алгоритма, может быть вычислена на машине Тьюринга, потому что каждый шаг данного алгоритма можно расчленить на еще более мелкие операции, которые реализуются в машине Тьюринга.) Таким образом, понятие машины Тьюринга есть теоретический инструмент анализа алгоритмического процесса, а значит, анализа существа алгоритмического мышления.

В современных ЭВМ алгоритмический процесс расчленен не на столь мелкие составляющие, как в машинах Тьюринга. Наоборот, создатели ЭВМ стремятся к известному укрупнению выполняемых машиной процедур (на этом пути, конечно, есть свои ограничения). Так, для выполнения операции

60

сложения на машине Тьюринга составляется целая программа, а в современной ЭВМ такая операция является простейшей.

Далее, машина Тьюринга обладает бесконечной внешней памятью (неограниченная в обе стороны лента, разбитая на ячейки). Но ни в одной реально существующей машине бесконечной памяти быть не может. Это говорит о том, что машины Тьюринга отображают потенциальную возможность неограниченного увеличения объема памяти современных ЭВМ.

Наконец, можно провести более подробный сравнительный анализ работы современной ЭВМ и машины Тьюринга. В большинстве ЭВМ принята трехадресная система команд, обусловленная необходимостью выполнения бинарных операций, в которых участвует содержимое сразу трех ячеек памяти. Например, число из ячейки а умножается на число из ячейки Ь, и результат отправляется в ячейку с. Существуют ЭВМ двухадресные и одноадресные. Так, одноадресная ЭВМ работает следующим образом: вызывается (в сумматор) число из ячейки а; в сумматоре происходит, например, умножение этого числа на число из ячейки Ь', результат отправляется из сумматора в ячейку с. Машину Тьюринга можно считать одноадресной машиной, в которой система одноадресных команд упрощена еще больше: на каждом шаге работы машины команда предписывает замену лишь единственного знака, хранящегося в обозреваемой ячейке, а адрес обозреваемой ячейки при переходе к следующему такту может меняться лишь на единицу (обозрение соседней справа или слева ячейки ленты) или не меняться вовсе. Это удлиняет процесс, но в то же время резко унифицирует его, делает стандартным.

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

61

Тьюринга и теория таких машин есть теоретический фундамент и обоснование современных ЭВМ.

II.8 Вычислимость по Тьюрингу примитивно рекурсивных функций

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

Теорема 1. Если функции f(x1,x2,…,xn), g1 (x1,x2,…,xm), …, gn (x1,x2,…,xm)

правильно вычислимы по Тьюрингу, то правильно вычислима и сложная функция (суперпозиция функций):

φ(x1,x2,…,xn)=f( g1 (x1,x2,…,xm),…, gn (x1,x2,…,xm)).

Доказательство: руководствуясь определением композиции машин Тьюринга, нетрудно понять, что если машина F правильно вычисляет функцию f(y), а машина G правильно вычисляет функцию g(x), то композиция этих машин вычисляет суперпозицию этих функций f(g(x)):

q101x;

G:q01g(x,y);

F: q01f(g(x,y)).

Рассмотрим более сложную суперпозицию вычислимых функций: φ(x,y)= f(g1(x,y), g2(x,y)). Пусть машины F, G1, G2 правильно вычисляют

функции f, g1, g2 соответственно. Сконструируем машину Тьюринга, правильно вычисляющую сложную функцию φ(x,y), пользуясь введенными нами машинами сдвига, транспозиции, копирования и нулевой функции:

 

q101x01y;

K2:

01x01yq01x01y;

G1:

01x01yq01g1(x,y);

Ц:

01g1(x,y) q 01x01y;

G2:

01g1(x,y) q01g2(x,y) ;

62

Б-:

q01g1(x,y) 01g2(x,y) ;

F:

q01 f(g1(x,y) ,g2(x,y));

q0→q00

q001 f(g1,g2).

Сконструируйте самостоятельно композицию машин, правильно вычисляющих функцию φ(x,y)= f(g1(x,y), g2(x,y), g3(x,y)). Подстановки указанного вида достаточно специфичны (все функции g имеют одно о тоже число аргументов) и не исчерпывают всевозможных подстановок, которые можно производить над функциями. Но благодаря функциям-проекторам Imn этот недостаток легко устраним: любая суперпозиция функций в функции может быть выражена через суперпозиции указанного вида и функциипроекторы. В самом деле, например, суперпозиция f(g1(x1, x2), g2(x1))может быть в требуемом виде представлена так: f(g1(x1, x2), I12 (g2(x1), g3(x1))), где g3(x1) – любая функция от х1. В свою очередь, используя подстановку и функции-проекторы, можно переставлять аргументы в функции:

f(x2, x1, x3,…,xn)=f(I22(x1, x2), I12(x1, x2), x3, …, xn); f(x1, x1, x3,…,xn)=f(I12(x1, x2), I12(x1, x2), x3, …, xn);

поэтому можно считать, что теорема полностью доказана.

Сделаем еще один шаг на пути (в каком-то смысле аксиоматического) описания всех функций, вычислимых с помощью машины Тьюринга. Мы докажем, что всякая примитивно рекурсивная функция вычислима с помощью машины Тьюринга. Для этого остается доказать следующую теорему.

Теорема 2. Функция φ, возникшая примитивной рекурсией из правильно вычислимых на машине Тьюринга функций f и g, сама правильно вычислима на машине Тьюринга.

Доказательство: Для краткости записей будем считать, что функция φ связана с функциями f и g следующим образом:

φ(x,0)=f(x), φ(x,i+1)=g(x, φ(x,i)).

63

Обозначим F и G – машины Тьюринга, правильно вычисляющие функции f и g соответственно. Пусть x,y – произвольные натуральные числа. Требуется сконструировать машину Тьюринга, вычисляющую значение φ(x,y). Как мы уже отмечали, для вычисления φ(x,y) предстоит вычислить y+1 значений φ(x,0),

φ(x,1),…, φ(x,y-1), φ(x,y).

Начальная конфигурация такова: q101x01y0. Применим к ней следующую последовательность машин Тьюринга: Б+ВГВ Б+F. В результате получим последовательность конфигураций:

 

q101x01y0;

Б+:

01x q 01y0;

В:

01y q 01x0;

Г:

01y q 01x 01x 0;

В:

01x q 01y 01x 0;

Б+:

01x 01y q 01x 0;

F:

01x 01y qα 01φ(x,0)0;

На последнем шаге, применив машину, вычисляющую функцию f(x), к конфигурации q01x, мы получим значение f(x), которое, согласно схеме примитивной рекурсии для φ, есть φ(x,0). Теперь мы можем приступить к вычислению φ(x,1), используя второе соотношение схемы примитивной рекурсии:

φ(x,1)=g(x, φ(x,0)).

Для этого применим сначала к последней конфигурации команды: qα0→ qα+10Л; qα1→ qα+20. В результате получим конфигурацию: 01x01y-1

qα+2001φ(x,0)0. Теперь нужно подготовить ленту машины к применению машины G, вычисляющей значение g(x,φ(x,0)), то есть необходимо получить на ленте конфигурацию q01x01φ(x,0). Для этого применим к конфигурации 01x01y-1 qα+2001φ(x,0)0 последовательность машин АБ-ВБ+ВГВБ-ВБ+Б+ВБ-. Получим последовательность конфигураций:

01x01y-1 qα+2 001φ(x,0)0;

64

А:

01x01y-1 q 01φ(x,0)00;

Б-:

01xq01y-1 01φ(x,0);

В:

01y-1q01x 01φ(x,0);

Б+:

01y-101x q 01φ(x,0);

В:

01y-101 φ(x,0) q 01x;

Г:

01y-101 φ(x,0) q 01x01x;

В:

01y-101x q 01 φ(x,0) 01x;

Б-:

01y-1 q 01x 01 φ(x,0) 01x;

В:

01 x q 01 y-1 01 φ(x,0) 01x;

Б+:

01 x

01 y-1

q 01 φ(x,0) 01x;

Б+:

01 x

01 y-1

01 φ(x,0) q 01x;

В:

01 x

01 y-1

01 x q 01 φ(x,0);

Б-:

01 x

01 y-1

q 01 x 01 φ(x,0).

Теперь мы можем применить машину G и вычислить значение

φ(x,1)=g(x, φ(x,0)) : 01 x 01 y-1 qβ 01 φ(x,1).

Применим в этой конфигурации команду: q β0→qα0, зацикливающую программу. Получим конфигурацию:

01 x 01 y-1 qα 01 φ(x,1).

Начинается следующий цикл, осуществляемый командами, идущими после первого появления состояния qα. Этот цикл преобразует конфигурацию вида 01 x 01 y-i qα 01 φ(x,i) в конфигурацию 01 x 01 y-(i+1) qβ 01 φ(x,i+1), при условии, что y>i. Команда q β0→qα0 зацикливает программу, и в результате работы цикла параметр y-i будет понижаться до тех пор, пока не получится конфигурация: 01 x 0 qα 01 φ(x,y), которая в силу команды q α0→qα+10Л перейдет в конфигурацию

01 x qα+1 001 φ(x,y).

Дополнительные команды q α+10→qβ+10, А, В, О, В, Б-, А создают на ленте требуемую конфигурацию q0 01 φ(x,y), доказывающую, что функция φ(x,y) правильно вычислена на машине Тьюринга. Теорема доказана.

65