Академический Документы
Профессиональный Документы
Культура Документы
Машина Тьюринга
Маши́на Тью́ринга (МТ) — абстрактный исполнитель
(абстрактная вычислительная машина). Была предложена Аланом
Тьюрингом в 1936 году для формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и,
согласно тезису Чёрча — Тьюринга, способна имитировать все
другие исполнители (с помощью задания правил перехода),
каким-либо образом реализующие процесс пошагового абстрактная схема машины Тьюринга
вычисления, в котором каждый шаг вычисления достаточно
элементарен.
q0*→q0R q4a→q4aR
q01→q0R q4=→q4=R
q0×→q1×R q41→q41R
q11→q2aR q4*→q51R
q21→q21L q5*→q2*L
q2a→q2aL q6a→q61R
q2=→q2=L q6×→q7×R
q2×→q3×L q7a→q7aR
q3a→q3aL q7=→q8=L
q3*→q6*R q8a→q81L
q4×→q4×R +
В протоколе указаны начальное и конечное состояния МТ, начальная конфигурация на ленте и расположение
головки машины (подчёркнутый символ).
Машина Тьюринга 3
Полнота по Тьюрингу
Можно сказать, что машина Тьюринга представляет собой простейшую вычислительную машину с линейной
памятью, которая согласно формальным правилам преобразует входные данные с помощью
последовательности элементарных действий.
Элементарность действий заключается в том, что действие меняет лишь небольшой кусочек данных в памяти
(в случае машины Тьюринга — лишь одну ячейку), и число возможных действий конечно. Несмотря на
простоту машины Тьюринга на ней можно вычислить всё, что можно вычислить на любой другой машине,
осуществляющей вычисления с помощью последовательности элементарных действий. Это свойство
называется полнотой.
Один из естественных способов доказательства того, что алгоритмы вычисления, которые можно реализовать
на одной машине, можно реализовать и на другой, — это имитация первой машины на второй.
Имитация заключается в следующем. На вход второй машине подаётся описание программы (правил работы)
первой машины и входные данные , которые должны были поступить на вход первой машины. Нужно
описать такую программу (правила работы второй машины), чтобы в результате вычислений на выходе
оказалось то же самое, что вернула бы первая машина, если бы получила на вход данные .
Как было сказано, на машине Тьюринга можно имитировать (с помощью задания правил перехода) все другие
исполнители, каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг
вычисления достаточно элементарен.
На машине Тьюринга можно имитировать машину Поста, нормальные алгоритмы Маркова и любую программу
для обычных компьютеров, преобразующую входные данные в выходные по какому-либо алгоритму. В свою
очередь, на различных абстрактных исполнителях можно имитировать Машину Тьюринга. Исполнители, для
которых это возможно, называются полными по Тьюрингу (Turing complete).
Есть программы для обычных компьютеров, имитирующие работу машины Тьюринга. Но следует отметить,
что данная имитация неполная, так как в машине Тьюринга присутствует абстрактная бесконечная лента.
Бесконечную ленту с данными невозможно в полной мере имитировать на компьютере с конечной памятью
(суммарная память компьютера — оперативная память, жёсткие диски, различные внешние носители данных,
регистры и кэш процессора и др. — может быть очень большой, но, тем не менее, всегда конечна).
Затем перенумеруем ячейки, причём будем считать, что символ «*» не содержится в словаре МТ:
Наконец, изменим машину Тьюринга, удвоив число её состояний, и изменим сдвиг головки считывания-записи
так, чтобы в одной группе состояний работа машины была бы эквивалентна её работе в заштрихованной зоне,
а в другой группе состояний машина работала бы так, как исходная машина работает в незаштрихованной
зоне. Если при работе МТ встретится символ ‘*’, значит головка считывания-записи достигла границы зоны:
Начальное состояние новой машины Тьюринга устанавливается в одной или другой зоне в зависимости от
того, в какой части исходной ленты располагалась головка считывания-записи в исходной конфигурации.
Очевидно, что слева от ограничивающих маркеров «*» лента в эквивалентной машине Тьюринга не
Машина Тьюринга 5
используется.
Ссылки
• Javascript версия машины Тьюринга (работает on-line) [1]
• Определения и примеры машин Тьюринга [2]
• Пример аппаратной реализации машины Тьюринга [3]
• Карпов Ю. Г. Теория автоматов ISBN 5-318-00537-3
• Программная система моделирования работы машины Тьюринга [4]
• Java-апплет, моделирующий машину Тьюринга [5].
• Программная реализация на Делфи [6].
• Программы для машины Тьюринга. Сложение. Умножение чисел и др. [7].
Литература
• Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман Глава 8. Введение в теорию машин Тьюринга //
Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and
Computation. — М.: «Вильямс», 2002. — С. 528. — ISBN 0-201-44124-1
Примечания
[1] http:/ / matinf. igpu. ru/ simulator/ tm. html
[2] http:/ / lib. custis. ru/ index. php/
%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0
[3] http:/ / aturingmachine. com/ index. php
[4] http:/ / www. loonies. narod. ru/ tmr. htm
[5] http:/ / mf. grsu. by/ other/ wyswyg/ i_exp/ turing
[6] http:/ / kleron. ucoz. ru/ load/ programmirovanie/ delphi/ 1/ 24-1-0-52
[7] http:/ / kleron. ucoz. ru/ load/ programmirovanie/ raznoe/ programmy_dlja_mashiny_tjuringa/ 27-1-0-124
Источники и основные авторы 6
Лицензия
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/