Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_KR_TA / VVED_N.DOC
Скачиваний:
29
Добавлен:
10.02.2016
Размер:
379.9 Кб
Скачать

2.2. Построение машины Тьюринга

2.2.1. Вычисления на машине Тьюринга

Машина Тьюринга [5] – это автомат A={X, Q, f, 1, 2, q1}, где Х – множество символов, которые могут быть записаны в ячейках ленты; Q - множество состояний, в которых может находиться автомат; qt=f(qi, xj) - функция переходов автомата в новое состояние qt в зависимости от текущего состояния qi и считанного из текущей ячейки ленты символа xj ; xk=1(qi, xj) - функция выходов автомата, которая определяет, какой символ xk  будет записан в текущую ячейку ленты в зависимости от текущего состояния автомата qi и считанного значения xj ячейки ленты; zl=2(qi, xj) - функция выходов, определяющая направление передвижения головки вдоль ленты u{R, L, S}, где R (L) - команда сдвига вправо (влево) на одну ячейку, S - команда стоять на месте; q1Q - начальное состояние автомата.

Работа машины Тьюринга (МТ) описывается функциональной схемой, предcтавляющей собой двухмерную таблицу размерностью mхn (n – мощ-ность множества X, m - мощность множества Q), в каждой ячейке которой содержится тройка символов: (xk, u, qt). Функциональную схему (ФС) можно рассматривать как программу МТ, где каждая строка соответствует команде выбора по условию. В зависимости от символа, который обозревает головка, выбирается то или иное продолжение программы, включающее три действия: записать в текущую ячейку ленты значение xk , сдвинуть головку в направлении u, перевести автомат в новое состояние qt (безусловный переход на метку qt - на строку, соответствующую состоянию qt).

Автомат МТ может быть полностью или частично детермини-рованным. В первом случае ФС автомата заполнена полностью, во втором - ФС может содержать пустые ячейки: если текущая ячейка на пересечении строки qt и столбца xk, пуста, то в некотором состоянии qt никогда не может быть прочитан символ xk.

Доказано, что МТ является универсальным вычислительным устрой-ством, т.е. что для любого алгоритма существует МТ, реализующая этот алгоритм.

В данной курсовой работе необходимо построить МТ, которая вычисляет заданную функцию (см. список вариантов заданий по МТ).

Выполнение задания состоит в описании ФС для созданной МТ. Областью определения и областью значений вычисляемой функции являются положительные целые числа, записанные на ленте МТ.

Удобна следующая кодировка используемых на ленте чисел: число n представляется n+1 расположенными подряд в ячейках символами “1” (число 0 - “1”, число 1 - “11”, число 2 - “111” и т. д.), числа на ленте разделяются ячейками с символом “0” (пустая ячейка).

Определение 1. МТ начинает работать при следующих условиях:

1. МТ находится в начальном состоянии q1 Q;

2. На ленте представлена последовательность m чисел (n1, n2,,..., nm):

3. Все ячейки ленты справа и слева от заданной последовательности чисел пусты (содержат символы “0”);

4. Программист знает, какую ячейку ленты обозревает головка автомата в начальном состоянии.

Следует отметить, что установка головки в исходное положение не является задачей программиста. Однако для стандартизации работы различных МТ удобно считать, что перед началом работы машины головка установлена напротив ячейки, содержащей первую единицу числа n1 (головка обозревает первую единицу первого аргумента функции). Такое положение головки будем называть стандартным.

Определение 2. Машина Тьюринга вычисляет функцию

y=f(n1, n2, ..., nm ) от m переменных, если для любых n1, n2 ..., nm существует такой момент времени, что:

  • МТ достигнет состояния останова (! - его обозначение);

  • на ленте будет получен результат вычисления функции y=f (n1, n2, ... , nm) (соответствующее числу у количество единиц; справа эта последовательность ограничена пустыми ячейками);

  • головка обозревает первую единицу числа у.

В качестве дополнительных условий при построении МТ могут быть указаны такие требования:

  • сохранение на ленте исходной последовательности чисел, т.е. в результате работы МТ на ленте будет представлена система чисел (n1, n2, ... , nm, у);

  • возвращение головки в стандартное положение;

  • все ячейки, расположенные левее и правее результата работы МТ, пусты (содержат символ “0”).

Например, нужно вычислить функцию y=n1+n2+n3. При начальных ус-ловиях лента выглядит следующим образом: q1 ... 011101111011000...

На ленте записаны числа 2, 3, 1; головка находится в стандартном положении. Обозначение текущего состояния автомата помещается перед последовательностью символов на ленте, а указателем положения головки является подчёркивание символа в текущей ячейке ленты. Такое пред-ставление ситуации на ленте в совокупности с указанием состояния МТ называют её конфигурацией.

По окончании работы МТ лента может выглядеть так:

Соседние файлы в папке MU_KR_TA