Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
080752_1BC71_osnovy_matematicheskoy_logiki_i_te....doc
Скачиваний:
48
Добавлен:
23.04.2019
Размер:
2.05 Mб
Скачать
    1. Машины Тьюринга

Определение и примеры. Машина Тьюринга Τ представляет собой систему, работающую в дискретные моменты времени t = 0,1,2,... и состоящую из следующих частей:

  1. Конечная лента, разбитая на конечное число ячеек. При этом в каждый момент времени t в ячейках записаны буквы из некоторого алфавита А = { } (где а0= 0, а1= 1, m > 1), называемого внешними алфавитом машины. Ячейка, в которой записан символ 0, называется пустой. В процессе работы машины каждая ячейка может менять свое состояние путем замены приписанного к ней символа аi на другой символ . К существующим ячейкам можно пристраивать неограниченное число дополнительных ячеек, которые изначально считаются пустыми. Лента считается направленной, и ее ячейки будут просматриваться слева направо. Таким образом, если в какой-то момент времени лента имеет r ячеек, то состояние ленты полно­стью описывается словом , где — состояние первой (слева) ячейки, — состояние второй ячейки и т.д.

  2. Управляющая головка, представляющая собой устройство, которое может перемещаться вдоль ленты так, что в каждый рассматриваемый момент времени оно находится напротив определенной ячейки и имеет некоторое состояние qj из конечного множества внутренних состоянии Q = {q0, q1,... ,qn} или внутренний алфавит, . Состояние q0 называется заключительным и означает завер­шение работы машины, а состояние q1 начальным и означает начало работы машины.

  3. Программа П, т.е. совокупность выражений T(i,j) (где i = 0,...,т, j = 1,...,n), каждое из которых имеет один из следующих видов:

  • (сдвиг головки, находящейся в состоянии qj напротив ячейки с буквой ai, на одну ячейку влево с заменой состояния qj на qk);

  • (сдвиг головки, находящейся в состоянии qj напротив ячейки с буквой ai,, на одну ячейку вправо с заменой состояния qj на qk);

  • (замена буквы ai в текущей ячейке на букву al, также замена состояния qj головки на состояние qk ).

Выражения T(i,j) называются командами. При этом коман­ды не могут начинаться со слов aiq0. Символы L и R не принад­лежат множеству AUQ.

Таким образом, машина Тьюринга Τ есть пятерка <A, Q, П, q0, q1>, а работа машины Τ состоит в изменении ее конфигура­ции К, состоящей из состояния ленты, состояния головки и по­ложения текущей ячейки. Дискретным моментам времени t = 0,1,2,... соответствуют конфигурации К012,--- Конфигу­рация К0 называется начальной, а конфигурация Kt, содержа­щая q0, ~ заключительной. Конфигурации будут задаваться в виде машинных слов Μ = , где — состояние ленты, qj — состояние головки, находящейся напротив ячейки с состоя­нием ai, занимающей то же положение среди других ячеек, что и буква ai в слове .

Опишем преобразование Μ М' машинного слова Μ в машинное слово М' за один шаг работы машины Т.

Пусть команда T(i,j) равна . Если — пустое слово , то М2 = . Если же , то М2 = .

Если T(i,j) — - аналогично.

Если T(i,j) = aiqj —> alqк, полагаем М2 = .

Будем говорить, что машинное слово М' получается из ма­шинного слова Μ с помощью машины Т, и писать Μ =>Т Μ', ес­ли существует последовательность преобразований Mi —>Т Mi+1, i = 0,..., к — 1, для которой М0 = М, Мк = М'.

Преобразование Μ =>Т Μ', при котором на каждом перехо­де Mi —>T Mi+1 не достраиваются ячейки слева, обозначается через Μ Μ'.

Преобразование Μ =>Т Μ', при котором на каждом переходе Mi —>T Mi+1 не достраиваются ячейки ни слева, ни справа, обозначается через Μ | М'. (индекс Т можем опустить).

Зафиксируем алфавит А = {а0, а1 а2, · , аm}· Через будем обозначать слово ai ai ai ...ai алфавита A, состоящее из x букв ai. Приведем список машин, которые будут использоваться в дальнейшем в качестве составляющих для других машин.

  1. А (перенос нуля):

  2. Б+ (сдвиг вправо):

  3. Б- (сдвиг влево):

  4. В (транспозиция):

  5. К (копирование):

  6. Л (стирающая машина):

  7. R (удаление 1): .

  8. S (добавление 1): .

  9. Сложение: . 10. Умножение: .

Приведем примеры программ для машины Сложение

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

q1

q2

q3

q4

q5

q6

q7

q8

q9

0

R q2

R q3

Lq4

Lq5

Lq6 (где y=0)

0q0

Lq8

1q9

0q0

1

Rq2

R q3

0q4

0q7 (где y 0)

Lq6

Lq8

Lq9