Математическая модель машины Тьюринга имеет вид:
Т=<VT, Q, D, ϕ, ψ, ξ >,
где VT={a1,a2,...,an} - символы внешней памяти,
Q={q1,q2....,qm} - символы внутренней памяти,
D={П, Л, С} - символы перемещения считывающей – записывающей головки,
ϕ: Q⊗VT=>VT - функция выхода,
ψ: Q⊗VT=>Q - функция переходов,
ξ: Q⊗VT=>D - функция перемещения головки.
Описание машины Тьюринга складывается из следующих составляющих:
· последовательности символов на информационной ленте,
· положения считывающей–записывающей головки относительно ячейки информационной ленты,
· текущего состояния управляющего устройства.
Такое описание называют конфигурацией машины Тьюринга:
K = αqiβ,
где a - слово (или последовательность символов), расположенное слева от считывающей – записывающей головки,
β- слово, расположенное под и справа от считывающей - записывающей головки;
qi — текущее состояние машины Тьюринга.
Символ, находящийся в ячейке непосредственно под считывающей записывающей головкой, является первым символом слова β. К не заключительной конфигурации может быть применима только одна команда, которая переводит машину в новую конфигурацию. Так реализуется дискретность и детерминизм алгоритмического процесса.
Для удобства анализа вычислительных алгоритмов математик Пост предложил ограничить множество символов внешнего алфавита VT двумя символами, т.е. VT={|, #}, где "|" есть символ унарного кода числа, а "#" есть символ пробела между числами, представленными в унарном коде. При этом любое целое положительное число может быть записано на информационной ленте последовательностью палочек, как это представлено в таблице:
Число в десятичной системе счисления | "Слово" в унарном коде на информационной ленте |
|=|0 | |
||=|1+1 | |
Nbsp; i …|=|i+1 Для упорядочения протоколов информационную ленту ограничивают только в одну сторону, т. е. существуют левые и правые полуленты. В зависимости от используемой полуленты приняты различные схемы записи конфигураций машины Тьюринга: Стандартная конфигурация Информационная полулента правая левая Начальная q0|x1+1#|x2+ 1#...#|xn+ 1 |x1+1#|x2+ 1#...#|xn+1q0 Конечная qk|y |yqk Работу машины Тьюринга удобно описывать протоколом, таблицей и/или графом. При протокольной записи все команды должны быть записаны упорядоченным списком. На заключительном шаге должно быть получено значение заданной функции y=f(x1, x2,..., xn). Пример протокольного описания: 1) q0aiÞqlapD …….. f) qiajÞqharD …….. i) qtauÞqkavD При табличном описании каждая строка имеет имя текущего и начального состояний машины, а столбец – имя символа внешней памяти. Тогда элементами таблицы являются правые части команд qjaiD: Состояние Символы VT ai ak … am qn qiajD … … … qi … qjaiD … … … … … … qi … … … qkanC Табличная форма описания машины более компактна и позволяет применить матричные методы анализа для оптимизации структуры алгоритма. При описании машины Тьюринга графом вершинами являются состояния управляющего устройства, а дугами — переходы в те состояния, которые предусмотрены командой. При этом на дуге над символом «/» указывают считываемый символ, а под символом «/» - записываемый символ на информационную ленту и команду на перемещение головки: