Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3 Машина Тьюринга...docx
Скачиваний:
4
Добавлен:
25.11.2019
Размер:
437.84 Кб
Скачать

Пример1. Запоминающий автомат.

Входной канал может передавать только два вида сигналов, называемых и , и имеются

Только два внутренних состояния и и два выходных сигнала и .

Из таблиц видно, что состояние в момент t ( или выход в момент t+1) указывает, каким был сигнал, появившийся в момент t-1: или . (Задача: показать, что автомат, выход которого в момент t+1 указывает, каков был сигнал в момент t требует лишь одного состояния). Ввиду того, что между входом и выходом автомата имеется как бы встроенная задержка на единицу времени, можно считать , что описанный автомат имеет зачаточную способность к запоминанию – в данном случае к сохранению цифры, которая оказалась на входе в момент t -1.

Следующий простой автомат способен различать четность или нечетность числа единиц, которые поступают на его вход. В дальнейшем мы будем представлять сигналы или ., а также и цифрами 0 и 1 соответственно.

Пример 2. Автомат для проверки на четность

F

q0 q1

0

0 1

1

1 0

G

q0 q1

0

q0 q1

1

q0 q1



.

Из таблиц видно, что автомат сохраняет прежнее состояние ( и выход), если на вход поступил 0.и изменяет состояние ( и выход), если на вход поступила 1. Следовательно, любое четное число единиц на входе не приведет в результате к изменению состояния. Далее, если бы мы знали, что в некоторый момент в прошлом машина находилась, к примеру, в состоянии 0, То мы смогли бы для любого последующего момента времени сказать, было ли число единиц, поступивших на ее вход за этот промежуток времени четным или нечетным.

Или же, если мы знаем, что машина начала свое существование в состоянии 0, то можно сказать, было ли общее число единиц, поступивших в машину за все прошедшее время четным или нечетным.

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

Когда мы имеем дело с большим числом состояний вместо таблиц переходов удобнее использовать диаграммы состояний ( диаграммы переходов).

Диаграммы состояний для рассмотренных выше примеров приведены на рис.

Рис. Запоминающий автомат Рис. Автомат для проверки

на четность.

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

Машина с бесконечной памятью

п.Машина Тьюринга – постановка задачи.

Вначале остановимся на модели Тьюринга [ ]

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

И Тьюринг дает несколько неожиданный ответ на этот вопрос: да, эта процедура может быть выполнена с помощью некоторой очень простой машины. Простота машины гарантирует отсутствие у нее «инициативности» или «разумности» и тогда описание является полным и процедура является «эффективной». Следуя Тьюрингу можно сделать радикальное предположение, что любая процедура, которую было бы «естественно» назвать эффективной, фактически может быть реализована с помощью машины. Здесь уместно подчеркнуть, что рассматриваемые вопросы носят субъективный характер и при их обсуждении можно лишь убеждать, приводя некоторые доводы. . Здесь ничего нельзя доказать, однако, как бы то ни было, эта теория дает впечатляющие результаты . Например, попытка дать определение «эффективной» процедуры наталкивается на различные трудности- слишком уж сложным. является это интуитивное понятие. Можно, следуя Минскому М., дать следующее определение: эффективная процедура есть множество сообщаемых нам время от времени правил, точно регламентирующих наше поведение. Чтобы понимание правил было единообразным и не допускало «смыслового люфта» , то наряду с формулировками правил, уместно задать конструкцию устройства, интерпретирующего эти правила . Чтобы не создавать эту конструкцию заново для каждого последующего вычисления, желательно иметь некоторое единообразное семейство устройств, выполняющих предписания. При этом наиболее подходящей формулировкой может служить следующая, в которой мы устанавливаем:

1) язык, на котом описывается множество правил поведения. и

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

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

Однако, как это ни покажется невероятным, но здесь нет проблем! Можно построить одну машину, конструкция которой удивительно проста и не зависит от сложности решаемой задачи. Иначе говоря, оказывается возможным предложить язык для описания правил и простую «универсальную» интерпретирующую машину, которая может иметь дело со всеми эффективными процедурами. Основная идея состоит в замене качественного увеличения сложности машины простым количественным увеличением ее объема памяти.

Тьюринг обнаружил, что подобные машины могут производить сложные вычисления. Им был сформулирован так называемый тезис Тьюринга: любой процесс, который было бы естественно назвать эффективной процедурой, может быть реализован машиной Тьюринга. Когда понимаешь, как на самом деле примитивны машины Тьюринга, то остается лишь удивляться смелости тезиса. Однако, практика нескольких десятилетий, прошедших после появления этой работы, подтверждает справедливость точки зрения Тьюринга Для любой процедуры, которую математики соглашались назвать «эффективной», тем или иным способом была показана ее эквивалентность процедуре, реализуемой машиной Тьюринга.

Рассмотрим подробно устройство и работу машины Тьюринга.

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

напомним, что машина с конечным числом состояний характеризуется алфавитом входных символов , алфавитом выходных символов, множеством внутренних состояний и парой функций,

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

Для того, чтобы в описании фигурировала внешняя лента это описание следует несколько изменить. Входные символы останутся прежними и будут в точности теми же, которые могут быть считаны с ленты по одному символу на ячейку. Входом машины М в момент времени t будет, как и прежде, как раз тот символ, который напечатан в ячейке, обозреваемой машиной в этом момент. Результирующее изменение состояния, как и прежде, определяется функцией G. Выход машины М выполняет теперь две функции: 1) запись символа в обозреваемую ячейку ( возможна замена ранее записанного там символа) и 2) передвижение вдоль ленты в ту или другую сторону.

Таким образом, выход R имеет две компоненты. Одна компонента ответа – это просто символ из того же самого множества

который должен быть записан в обозреваемую ячейку; вторая компонента - один из двух символов «0» ( означает «сдвинуться влево») или 1 (означает»сдвинуться вправо»), что оказывает соответствующее воздействие на положение машины. Итак, удобно предположить, что машина Тьюринга описывается тремя уравнениями.

где D(t) – новая функция, которая определяет, куда должна двигаться машина. В каждом такте работы машина начинает с некоторого состояния , считывает символ , написанный в ячейке находящейся над головкой, печатает там новый символ , сдвигается влево или вправо в соответствии со значением и затем переходит в новое состояние . Когда символ печатается на ленте , предыдущий символ на этом месте стирается. Конечно, если стирания не требуется , то можно напечатать тот же символ, который считывался, в этом случае принимает значение . Так как машина может передвигаться вдоль ленты в любую сторону, то она может вернуться к напечатанному ранее месту, чтобы использовать записанную туда информацию. Это, как будет видно в дальнейшем, делает возможным использовать ленту для запоминания произвольно большого количества информации. Примеры - впереди!

В предлагаемой модели считается, что лента бесконечна в обе стороны. Но мы наложим ограничение: в тот момент, когда машина запускается в работу, лента должна быть пустой, за исключением некоторого конечного числа ячеек. В связи с этим ограничением можно полагать, что на самом деле лента конечна в каждый момент времени, но всякий раз, когда мы подходим к ее концу, она автоматически наращивается еще на одну ячейку.

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

или

,

т.е. пятеркой, в которой третий, четвертый и пятый символы определяются по первому и второму с помощью трех упомянутых функций

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

или просто

где символ Н ( от halt- «стоп») используется для обозначения заключительного состояния.(замечание : лента вместе с МТ представляет замкнутую систему)

Рассмотрим несколько примеров вычислений с использованием МТ.