Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
меt2007.doc
Скачиваний:
9
Добавлен:
30.04.2013
Размер:
722.43 Кб
Скачать

Машина Тьюринга

Машина Тьюринга – это математическая модель ЭВМ. Она состоит из: 1) бесконечной в обе стороны ленты, разбитой на ячейки. В каждой ячейке записан один из символов алфавита: a, a, … , a. В алфавите всегда существует пустой символ (или пробел), например, a. Для своей задачи каждый берёт свой алфавит.

2) внутренней памяти q, q, … , q - внутренних состояний машины. Какое-то из внутренних состояний конечное (например, q), какое-то – начальное (например, q). Для каждой задачи берётся свой набор внутренних состояний, но начальное и конечное состояния существуют всегда. Эти состояния могут и совпасть.

3) управляющей головки, двигающейся в обе стороны вдоль ленты в дискретные моменты времени. Головка читает символы алфавита, анализирует их, записывает новые символы и двигается по ленте по программе. В зависимости от внутреннего состояния в данный момент и от символа на воспринимаемой ячейке, в следующий момент машина переходит в новое состояние, записывает на ячейку новый символ. Попав в конечное состояние, машина прекращает работу.

Конфигурация на ленте состоит из: 1) последовательности a, a, … , a символов алфавита на ленте. Считается, что в обе стороны ленты бесконечное количество пустых символов и их писать не обязательно. 2) внутреннего состояния q. 3) номера воспринимаемой ячейки.

Если, находясь в данный момент во внутреннем состоянии q и читая с ячейки a, в следующий момент машина переходит в состояние q, пишет на ленте a и двигается по ленте, то это будет команда: q a q aS, где S={L, R, C} (влево, вправо, стоп). При этом машина одну конфигурацию переводит в другую.

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

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

Если машина, начав работать с некоторым словом на ленте, придёт в конечное состояние и остановится, то она называется применимой к этому слову. Результат её работы – конечное слово на ленте. Если она не придёт в конечное состояние и не остановится, то она не применима к данному слову и результат её работы не существует. Пример: начальное состояние – на самом правом не пустом символе, если он существует, алфавит – {0, /}. В этом алфавите 0 – пустой символ, а / (палка) записывает положительные числа. Например, число пять – это пять палок.

q / q / R q - начальное состояние

q 0 q 0 R q - память о сдвиге (вправо) с начального символа

q 0 q / C q - конечное состояние.

q/q/ C

Это программа. В неё нет команд для наборов q / и q 0, команд с этими левыми частями, так как машина в таких состояниях не оказывается. Это реализована функция f(x)=x+1. Здесь x – число палок {/} на ленте. Эту же функцию реализует и такая программа:

q / q / R q - начальное состояние и память о сдвиге (вправо)

q 0 q / C q - конечное состояние.

q/q/ C

Эта машина применима к любому слову из алфавита {0, /} при начальном состоянии на самом правом не пустом символе, если он есть.

Пример: функция f(x)=2x. Ставим головку на самый левый не пустой символ, если он есть. Числа x ограничены сверху числом t (x<=t).

q / q / R q - память о 1 (единице)

q0q0 C 20=0

q 0 q 0 C стоп

q / q / R q - память о 2 (двойке)

……………..

q / q / R q - память о t

q 0 q / R q - память, что надо дописать ещё (t-1) палок

q 0 q / R q - память, что надо дописать ещё (t-2) палок

……………..

q 0 q / R q - память, что надо дописать ещё одну палку

q 0 q / C всё дописано

q / q / C стоп

q0q/ R

q0q/ R

……………..

q0q/ R

q0q/ C

Команда с левой частью q / отсутствует, так как числа x не превышают числа t.

Команда может находиться в любом месте программы. Для каждого алгоритма существует множество программ, и, значит, множество машин Тьюринга. Машины бывают конечные и бесконечные. Два вышеприведённых примера – это конечные машины Тьюринга. Три бесконечные машины Тьюринга:

q/q/ R q/q/ R q/q0 C

q0q0 R q0q0 L q0q/ C

Программы верны, так как конечное состояние может совпасть с начальным. Такое совпадение есть в программе обнуления, где начальная конфигурация – на самом левом не пустом символе, если он есть:

q0q0 C

q/q0 R

Это конечная программа с одним внутренним состоянием.

Соседние файлы в предмете Математическая логика