МАШИНА ТЬЮРИНГА
Алгоритм – это автомат? У автомата есть строгое определение: ◦ Входные и выходные символы ◦ Состояния автомата ◦ Начальное состояние ◦ Функция перехода между состояниями ◦ Функция выхода
Граф автомата Автомат обычно изображается графом: Это автомат для сложения двоичных чисел произвольной длины
ЗАДАЧА. На ленте записано число в двоичной системе счисления. Каретка находится где -то над числом. Требуется увеличить число на единицу.
Для решения задачи нужно: v Определить Алфавит машины Тьюринга v Определить набор состояний Q v Составить программу ( т. е. , для каждой пары (ai, qi) определить команду автомата
Алфавит машины Тьюринга включает в себя: А={1, 0, a 0}. Определим возможные состояния: q 1 - автомат ищет правый конец слова (числа) на ленте q 2 - автомат увеличивает число на 1, проходя его слева направо и останавливается, закончив работу.
1 часть. q 1 - автомат ищет правый конец слова (числа на ленте) 1)если в рабочей ячейке записано 0 переместиться вправо 2)если в рабочей ячейке записано 1 переместиться вправо 3) если в рабочей ячейке пробел, переместить каретку влево и перейти в состояние q 2
q 1 0 0 → q 1 1 1 → q 1 a 0 ← q 2
q 2 - автомат увеличивает число на 1, проходя его слева направо и останавливается, закончив работу. 1) если в рабочей ячейке записана цифра 0, записать в нее 1 и стоп 2) если в рабочей ячейке записана цифра 1, выполнить перенос в старший разряд — записать в ячейку 0 и переместиться влево. 3) если в рабочей ячейке пробел, записать в нее 1 и стоп.
Алфавит Состояние 0 1 a 0 q 1 q 2 1. q 0 0 → q 1 1 → q 1 0 ← a 0 ← 1. q 0 q 2