Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программа для машины Тьюринга




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

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

Внешний алфавит. Конечное множество (обозначают буквой А), элементы которого называются буквами (символами). Одна из букв этого алфавита (например, а0) должна представлять собой пустой символ.

Например, алфавит машины Тьюринга, работающей с двоичными числами, задается в виде A = {0, 1, а0}.

Непрерывную цепочку символов на ленте называют словом.

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

Внутренний алфавит. Конечное множество состояний каретки (автомата). Обозначается буквой Q={q1,q2...}. Одно из состояний - q1- должно быть начальным (запускающим программу). Еще одно из состояний (q0) должно быть конечным (завершающим программу) – состояние остановка.

Таблица переходов. Описание поведения автомата (каретки) в зависимости от состояния и считанного символа.

Автомат машины Тьюринга в процессе своей работы управляется программой, во время каждого шага которой выполняются последовательно следующие действия:

- Записывать символ внешнего алфавита в ячейку (в том числе и пустой), заменяя находившийся в ней (в том числе и пустой).

- Передвигаться на одну ячейку влево или вправо.

- Менять свое внутреннее состояние.

Поэтому при составлении программы для каждой пары (символ, состояние) нужно определить три параметра: символ ai из выбранного алфавита A, направление перемещения каретки ("←” — влево, "→” — вправо, "точка” — нет перемещения) и новое состояние автомата qk.

Например, команда 1 "←” q2 обозначает "заменить символ на 1, переместить каретку влево на одну ячейку и перейти в состояние q2”.

Предполагается, что универсальный исполнитель должен уметь доказывать существование или отсутствие алгоритма для той или иной задачи.

Вопрос 28

Тезис Тьюринга - принимаемое без доказательства фундаментальное положение теории алгоритмов, согласно которому всякий алгоритм представим в форме машины Тьюринга.

Программа машины Тьюринга (Р) - совокупность всех команд, Программа представляется в виде таблицы и называется Тьюринговой функциональной схемой.

  a0 a1 a2
q1 а0Пq1 a1Пq1 a2Лq2
q2 а1Пq2 a2Нq0 a0Нq0

 

 

Вопрос 29

Машины Тьюринга с двумя выходами

Предположим, мы расширили определение машины Тьюринга, добавив в устройство управления машины определенное состояние q*. Будем говорить, что если устройство управления переходит в состояние q0 для заданного входного слова х, то машина допускает х. Если устройство управления приходит в состояние q *, то машина запрещает х. Такое устройство будем называть машиной Тьюринга с двумя выходами.

Оказывается, что если заданы две машины Тьюринга T1 и Т2, которые допускают непересекающиеся множества слов Х1 и Х2 соответственно, то всегда можно построить машину Тьюринга T3 с двумя выходами, которая будет допускать Х1 и запрещать Х2. Эти машины Тьюринга будут нам полезны при рассмотрении вопроса о разрешимости.

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

 


 

Вопрос 30

Многоленточная машина Тьюринга состоит из конечного управления с k ленточными головками, по одной на каждой ленте (рис. 6.4).

Каждая лента бесконечна в обоих направлениях. При одном движении, зависящем от состояния конечного управления и сканируемого символа каждой из ленточных головок, машина может: 1) изменить состояние; 2) напечатать новый символ на каждой из сканируемых ячеек; 3) передвинуть каждую из ее ленточных головок независимо друг от друга на одну ячейку влево, вправо или оставить ее на том же месте.

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

Теорема 6.2. Если язык L принимается многоленточной машиной Тьюринга, то он принимается одноленточной машиной Тьюринга. Доказательство. Пусть язык L принимается машиной Тьюринга T1 с k лентами. Построим одноленточную машину Тьюринга T2 с 2k дорожками, по две для каждой из лент машины T1. На одной дорожке записывается содержимое соответствующей ленты машины T1, а другая — пустая, за исключением маркера в ячейке, содержащей символ и сканируемой соответствующей головкой машины T1. Такое устройство для моделирования трех лент посредством одной иллюстрируется рис. 6.5. Конечное управление машины T2 запоминает, какие маркеры головок машины T1 находятся слева, а какие — справа от головки T2. Состояния машины T1 тоже запоминаются в конечном управлении машины T2.

Чтобы моделировать движение машины T1, машина T2 должна посетить каждую ячейку с маркером головки, регистрируя по очереди символ, сканируемый соответствующей головкой T1. Когда машина T2 проходит через маркер головки, она должна уточнять направление, в котором следует искать этот маркер. После сбора всей необходимой информации машина T2 определяет движение машины T1. Затем машина T2 посещает по очереди каждый из маркеров головок снова, изменяя маркированные ячейки и сдвигая маркеры на одну ячейку, если необходимо. Конечно, если новое состояние является принимающим, то машина T2 принимает входную цепочку.

 

Вопрос 31

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...