Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОИС_К_ЛЕКЦ_11.doc
Скачиваний:
78
Добавлен:
11.11.2018
Размер:
659.97 Кб
Скачать

11. Елементи теорії алгоритмів. Машина Тьюринга. (2 год.)

МАШИНА ТЬЮРИНГА

Вопрос: можно ли уточнить непосредственно само понятие алгоритма, а затем с его помощью определить и класс вычислимых функций?

Это было сделано в 1936-37 гг. Постом и Тьюрингом независимо друг от друга.

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

Машины, введенные Постом и Тьюрингом, отличались не очень существенно, и в дальнейшем стали называться машинами Тьюринга.

Под машинами Поста и Тьюринга понимается некоторая гипотетическая (условная ) машина, состоящая из следующих частей:

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

"считывающей головки" - специального чувствительного элемента, способного обозревать содержимое ячеек. Вдоль головки информационная лента перемещается в обе стороны так, чтобы в каждый рассматриваемый момент времени головка находилась в одной определенной ячейке ленты;

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

Схематически машина представлена на рис.1.

q

j

Рис. 1.

В алгоритмической системе Поста информация представляется в двоичном алфавите.

Таким образом, в каждой ячейке информационной ленты можно поместить либо 0, либо 1. Алгоритм представляется в виде конечного упорядоченного набора правил, называемых приказами. Работа алгоритма начинается с некоторой начальной ячейки, соответствующей первому приказу алгоритма. Составляющие алгоритм приказы могут принадлежать к одному из 6, выполняемых машиной Поста:

  1. Записать в рассматриваемую ячейку 1 и перейти к j- тому приказу.

  2. Записать в рассматриваемую ячейку 0 и перейти к i- тому приказу.

  3. Сдвинуть ленту вправо на одну ячейку и приступить к выполнению i- того приказа.

  4. Сдвинуть ленту влево на одну ячейку и приступить к выполнению i- того приказа.

  5. Если в рассматриваемой ячейке записана 1, то перейти к выполнению j-того приказа, а если записан 0, то перейти к выполнению i- того приказа.

  6. Окончание работы алгоритма, остановка.

Таким образом, алгоритмическая машина Поста представляет собой машину с информационной лентой, содержащей в каждой ячейке либо 0, либо1; с лентой, перемещающейся влево и вправо вдоль головки; с устройством управления, выполняющим 6 приказов (с внутренними состояниями).

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

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

Пусть алфавит машины Тьюринга задан в виде множества А= {s0 , si , ... sn}, где s0 соответствует пустой ячейке, а число состояний устройства задано в виде множества

Q = {q0 , qi, ... qm}, где q0 соответствует заключительному состоянию.

Конечная совокупность символов алфавита, с которой работает машина, называется внешним алфавитом, конечная совокупность состояний устройства управления - внутренним алфавитом.

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

Если машина Тьюринга, находясь в состоянии qi , и воспринимая записанный на ленте символ sk , переходит в новое состояние qj , осуществляя при этом замену символа в рассматриваемой ячейке на символ sm и сдвиг ленты на одну ячейку, то говорят, что машина выполняет команду qi sk qj smЛ. Если замены не происходит, sm может в команде отсутствовать.

При манипуляциях с лентой принимаются следующие обозначения:16

Л - движение ленты влево;

П - движение ленты вправо;

С - нет движения ленты (стоп).

Рассмотрим пример машины Тьюринга с алфавитами А = {0,1}, Q = { q0, q1 } и командами:

q11q11Л,

q10, q01С.

Пусть на ленте имеется слово 11100. Головка расположена над первой слева единицей. В результате работы машины Тьюринга это слово превращается в 11110. По окончании работы машины головка стоит над крайней правой единицей.

Совокупность всех команд, которые может выполнять машина, называется ее программой.

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

Пусть машина Тьюринга задана внешним алфавитом А= {s0 , a, b, c, d} и внутренним алфавитом Q = {q0 , q1, q2 , q3 , q4 , q5}, и совокупностью команд

q0 a q1 aЛ, q0 b q0 bЛ, q2 a q5 dП, q0 c q0 cЛ, q1 d q2 cП, q3 a q4 dП, q4 b q2 cП.

Пустую ячейку обозначает символ s0 , а заключительное состояние - q5.

Рапссмотри применение данной машины Тьюринга для переработки исходного слова bcadc, которое даст нам слово bcdcc. Начальная конфигурация имеет вид q0bcadc, при этоммашиной будет порождена следующая последовательность конфигураций:

1 шаг bq0cadc, результат выполнения команды (q0 b q0bЛ)

2 шаг (q0 c q0 cЛ)

3 шаг (q0 a q1 aЛ)

4 шаг (q1 d q2 cП)

5 шаг (q2 a q5 dП)

Программа рассмотренной машины Тьюринга может быть представлена в виде таблицы соответствия:

А

Q

s0

a

b

c

d

q0

q1 aЛ

q0bЛ

q0 cЛ

-

q1

-

-

-

q2 cЛ

q2

q5 dП

-

-

-

q3

q4 dП

-

-

q2 bП

q4

-

-

-

-

q5

Останов

Запись алгоритма, реализуемого машиной Тьюринга, производится с помощью работы этой машины, представляющей собой совокупность команд. В рассматриваемом примере алгоритм переработки входного слова bcadc в слово bcdcc представляется командами:

(q0 b q0bЛ), (q0 c q0 cЛ), (q0 a q1 aЛ), (q1 d q2 cП), (q2 a q5 dП).

Алгоритмы пишутся столбцами. Для контроля против некоторых команд указывается слово, в которое переходит первоначально заданное слово после выполнения всех предыдущих команд, включая и стоящую слева команду.

Рассмотрим в качестве примера алгоритм переноса нуля для машины Тьюринга, программа которой задана следующей таблицей соответствия:

А

Q

0

1

q0

q0 0C

q01C

q1

q2Л

-

q2

q3

-

q3

q4П

q3Л

q4

-

q50C

q5

q6П

-

q6

q0 0C

q6П

Команды Конфигурация

q10 q2Л

0q2 010

q20 q3

0q3 110

q3 1 q3Л

01q310  011q30

q3 0 q4П

01 q4 10

q4 1 q5

01 q5 00

q50 q6П

0 q6 100

q61 q6 П

q6 0100

q6 0 q0

q0 0100

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

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

Рассмотрим еще пример (здесь "П" и "Л" означают перемещение головки, а не ленты).

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

q0

q1

q2

0

q0 0 С

q1 П

q01 С

1

q2 1 С

q2 П

q2 1 П

+

q0+ С

q01 С

Как видно из первого столбца таблицы, в состоянии q0 символы на ленте сохраняются неизменными, само состояние не меняется, и движения нет (С - стоп). Два других состояния - рабочие. Работа машины начинается с того, что управляющее устройство переводится в состояние q1. При этом слово на ленте справа от местоположения "глаза" управляющего устройства. Пусть, например, имеется исходная ситуация:

00111+1100

q1 q10  q1

Местоположение управляющего устройства отмечено символом состояния q1. Обратимся к таблице. В состоянии , считав символ 0, машина должна сохранить свое состояние и сдвинуться вправо на одну клетку ленты (П). После этого возникнет ситуация:

00111+1100

q1 q10  q1

Она аналогична предыдущей, и машина Тьюринга на этом такте выполнит сдвиг вправо на одну клетку, сохранив состояние q1 . В результате возникнет другая ситуация. Считав символ 1 в состоянии q1, машина стирает его, заменяет на 0, меняет состояние на q2 и сдвигается вправо на одну клетку ленты. Новая ситуация имеет вид:

00011+1100

q2 q11  q2

В состоянии q2, как следует из таблицы управления, все символы 1 на ленте сохраняются, состояние q2 тоже сохраняется, а управляющее устройство сдвигается вправо. Так будет происходить до тех пор, пока не возникнет ситуация:

q21  q2

00011+1100

q2 q2+  q0

Таблица управления в этой ситуации предписывает заменить + на единицу и прекратить работу.

Окончательная ситуация на ленте:

0001111100. Результат

Какую же работу выполнила машина? Если договориться интерпретировать слова ее входного языка как записи натуральных чисел, а + - как сложение, то машина, заданная таблицей управления, будет осуществлять операцию сложения натуральных чисел.

В примере - 3+2=5.

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