Вы находитесь на странице: 1из 3

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

2.1. Тезис Тьюринга.

Любой алгоритм может быть реализован машиной Тьюринга.

Таким образом, если задачу нельзя решить с помощью машины Тьюринга, то значит эту
задачу нельзя решить алгоритмически.

2.2. Детерминированная машина Тьюринга.

2.2.1. Машина Тьюринга – это автомат, обладающий следующими компонентами:


1) внешний алфавит – конечное множество входных символов a1 , a2 ,..., an  , а также
символ, обозначающий пустую ячейку  ,
2) внутренний алфавит – конечное множество внутренних состояний машины
Тьюринга q0 , q1 ,..., qm  .
Пусть q1 - начальное состояние машины Тьюринга, q0 - конечное состояние машины
Тьюринга,
3) функции переходов – определяют переход машины Тьюринга в другое внутреннее
состояние в зависимости от входного символа в ячейке и текущего внутреннего
состояния машины, запись нового символа и направление сдвига головки,
4) головка чтения-записи – может двигаться вправо (R) , влево (L).
Иногда может оставаться на месте (С),
5) бесконечная лента, разбитая на ячейки.

2.2.2. Работа машины Тьюринга:

1) Перед началом работы машины Тьюринга (МТ) входные данные записываются на


ленту. В каждую ячейку, в которой нет символа входных данных, записывается
символ пустой \ячейки.
2) Головка чтения-записи находится над первым символом, а МТ – в начальном
состоянии.
3) Машина Тьюринга работает дискретно по тактам.
В каждом такте работы МТ происходит считывание символа из ячейки.
Соответственно функции перехода МТ, находясь во внутреннем состоянии qS и
считав входной символ ai , МТ переходит в новое внутренне состояние qN , записывает
в эту ячейку новый символ a j и потом осуществляет сдвиг головки (вправо или влево).
И т.д.
В течение своей работы машина Тьюринга может двигаться как вперед по ленте, так и
назад и переписывать символы на ленте сколько угодно раз.
4) Машина Тьюринга продолжает свою работу, пока не возникнет конечное
состояние или преход будет не определен.

2.3. Виды машин Тьюринга.

1) Детерминированная машина Тьюринга (см. выше, п.2.2.2).


2) Многоленточная машина Тьюринга – имеет не одну, а n лент. Многоленточную
МТ можно смоделировать на одноленточной МТ.
3) Двумерная машина Тьюринга - имеет двумерную ленту, т.е таблицу. Такая МТ
может быть сведена к многоленточной МТ.
4) Недетерминированная машина Тьюринга – могут совершать несколько разных
переходов при одной и той же комбинации внутренних состояний и входных
символов.
5) Универсальная машина Тьюринга – на такой МТ можно осуществить переходы
любой другой МТ.
Фактически универсальная МТ – это прототип компьютера, способного хранить и
выполнять программы.

Пример. Рассмотрим машину Тьюринга, вычисляющую сумму двух натуральных


чисел a  b, a, b  N .
Будем кодировать число нужным количеством единиц. Например, число 3  111 ,
число 5  11111 .
Тогда машину Тьюринга, решающую данную задачу, можно задать так:
1) Внешний алфавит 1,  , где  - символ пустой ячейки.
2) Внутренний алфавит q1 , q2 , q3 , q0  , где q0 - конечное состояние, q1 - начальное
состояние.
3) Функция переходов  :

 (q1 ,1)  (q2 , , R)


 (q2 , )  (q3 ,1, L)
 (q2 ,1)  (q2 ,1, R)
 (q3 , )  (q0 , , R)
 (q3 ,1)  (q3 ,1, L)

R – головка сдвигается вправо по ленте, L – головка сдвигается влево по ленте.

На ленте задана последовательность входных символов

!
 1 1 1  1 1 1 1 1

Восклицательный знак показывает, где находится головка чтения-записи.


1 такт. Внутреннее состояние МТ - q1 , входной символ 1. Согласно функции
перехода получаем – новое внутренне состояние q2 , записываем в ячейку новый
символ  и сдвигаем головку вправо. Получаем
!
  1 1  1 1 1 1 1

2 такт. Внутреннее состояние МТ - q2 , входной символ 1. Согласно функции


перехода получаем – новое внутренне состояние q2 , записываем в ячейку символ 1 и
сдвигаем головку вправо. Получаем
!
  1 1  1 1 1 1 1

3 такт. Внутреннее состояние МТ - q2 , входной символ 1. Согласно функции


перехода получаем – новое внутренне состояние q2 , записываем в ячейку символ 1 и
сдвигаем головку вправо. Получаем
!
  1 1  1 1 1 1 1

4 такт. Внутреннее состояние МТ - q2 , входной символ  . Согласно функции


перехода получаем – новое внутренне состояние q3 , записываем в ячейку символ 1 и
сдвигаем головку влево. Получаем
!
  1 1 1 1 1 1 1 1

5 такт. Внутреннее состояние МТ - q3 , входной символ 1. Согласно функции


перехода получаем – новое внутренне состояние q3 , записываем в ячейку символ 1 и
сдвигаем головку влево. Получаем
!
  1 1 1 1 1 1 1 1

6 такт. Внутреннее состояние МТ - q3 , входной символ 1. Согласно функции


перехода получаем – новое внутренне состояние q3 , записываем в ячейку символ 1 и
сдвигаем головку влево. Получаем
!
  1 1 1 1 1 1 1 1

7 такт. Внутреннее состояние МТ - q3 , входной символ . Согласно функции


перехода получаем – новое внутренне состояние q0 , записываем в ячейку символ  и
сдвигаем головку вправо. Получаем
!
  1 1 1 1 1 1 1 1

Итак, теперь мы получили сумму исходных чисел (8 единиц кодируют число8, которое
и является суммой исходных чисел 3 и 5). Кроме того наша машина Тьюринга готова к
следующему сложению: достаточно справа от полученного числа через пустую ячейку
записать новое натуральное число и запустить опять МТ.
Этот простой пример хорошо иллюстрирует, как работает машина Тьюринга.