Вместо использования отдельной памяти Тьюринг предложил хранить входные и выходные данные и промежуточные результаты на ленте, что позволило упростить определение вычислительной модели.
Формально машина Тьюринга (МТ) представляет собой кортеж T=(Σ, где
Первоначально входные данные помещаются на ленту, считывающе-записывающая головка ленты расположена на первом символе входных данных, и состояние равно q_0. Все остальные ячейки ленты содержат square.
В зависимости от текущего состояния и обозреваемого головкой символа на ленте УУ производит запись нового символа в ячейку, устанавливает новое состояние и передвигает головку влево или вправо.
Иногда рассматривают D={larr, rarr, _|_ }, но при отсутствии движения можно "сжать" переходы, пока не будет выполнено движение головки.
Машина Поста отличается от МТ, то тем что Sigma=Gamma={0,1}, что усложняет кодирование входных и выходных данных, но алгоритмически они эквивалентны.
Пример МТ для увеличения двоичного числа на 1: Sigma={0,1}, функцию перехода можно описать пятерками (q, a, p, b, d) или в форме таблицы:
Символ | 0 | 1 | square |
---|---|---|---|
q_0 | (q_0,0,rarr) | (q_0,1,rarr) | (q_1,square,larr) |
q_1 | (q_{ac cept},1, _|_ ) | (q_1,0,larr) | (q_{ac cept},1, _|_ ) |
q_0 - движение вправо, пока не дойдем до конца двоичного числа;
q_1 - заменяем 1 на 0, при обнаружении 0 или square пишем 1 и завершаем.
Компьютер может имитировать МТ. МТ может имитировать компьютер, причем за время, которое можно выразить в виде некоторого полинома от числа шагов, совершаемых компьютером.
Также рассматривают недетерминированную МТ (НМТ), но в отличие от НКА пребразование в детерминированную МТ в общем случае невозможно. Возможно только моделирование, но это приводит к экспоненциальному росту времени выполнения.
У квантовых компьютеров есть сходство с НМТ, но они не могут выполнять моделирование НМТ (и наоборот).
Интуитивное понятие алгоритма выражается через формальное определение МТ
Тезис Тьюринга
Для любой алгоритмически вычислимой функции существует вычисляющая её значения МТ.
Универсальная машина Тьюринга (УМТ) содержит две ленты - одна из которых зарезервирована для программы УУ, а на другой ленте происходит вычисление.
УУ для УМТ может быть определено с помощью 2 состояний и 3 символов для программы (рекорд 2008 года).
Теорема о разрешимости Не существует МТ, которая по программе для УМТ и входным данным могла бы определить завершаемость алгоритма.
Написать программу для машины Тьюринга, которая переносит первый символ непустого слова из букв a,b,c в его конец.
Написать программу для машины Тьюринга, которая уменьшает двоичное число, начинающееся с 1, в 2 раза (убирает последнюю цифру, число из одной цифры заменяет на 0).
Написать программу для машины Тьюринга, которая уменьшает двоичное число, начинающееся с 1, на 1.