Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ФЭВМ (основная часть).doc
Скачиваний:
16
Добавлен:
22.04.2019
Размер:
8.11 Mб
Скачать

2.3Алгоритм. Машины Тьюринга.

2.3.1Интуитивное понятие алгоритма

Еще раз отметим различный характер обработки информации в ЦА типа комбинационных схем (КС) и в ЦА с памятью.

В комбинационных схемах выходное слово формируется из входного со скоростью распространения сигнала через схему. Происходит это в одном такте.

В автоматах с памятью имеет место процесс обработки инфор­мации, распадающийся на звенья, каждое из которых выполняется в течение одного такта и может быть описано на языке КС. С этим процессом и связано понятием алгоритма обработки информации. (Слово «алгоритм» произошло от имени знаменитого математика IX века Аль-Хорезми, сформулировавшего правила арифметиче­ских действий над числами.).

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

Алгоритм должен обладать следующими свойствами:

  1. массовость, т. е. алгоритм пригоден для решения целого класса однотипных задач;

  2. элементарность шагов алгоритма, т. е. действия, выполняемые на каждом этапе, должны быть достаточно простыми;

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

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

  5. направленность, т. е. если на каком-то этапе мы не получаем результата, то должно быть указано, что следует считать за результат.

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

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

В первом случае достаточно найти решение задачи.

Во втором – необходимо иметь строгое математическое определение понятия алгоритма.

Поэтому к началу 20-го века в математике возникла острая необходимость в выработке строгого математического определения понятия алгоритм.

Эта задача была успешно решена в сер. 30-х гг. в работах Клини, Поста, Тьюринга, Гильберта.

2.3.2Машина Тьюринга

Два близких по смыслу строгие математические определения понятия алгоритма дали независимо друг от друга Э. Пост и А. Тьюринг.

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

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

  1. стирает записанный в обозреваемый ячейке символ и записывает туда новый (может записать тот же);

  2. сдвигается влево (Л), вправо (П) к соседней ячейке или остается на месте (С);

  3. переходит в новое внутреннее состояние или остается в том же.

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

– состояние, в котором находится головка в данный момент времени,

– обозреваемый символ,

– символ, записываемый в обозреваемую ячейку,

– направление сдвига головки,

– состояние, в котором переходит головка из состояния .

Совокупность команд называется программой МТ.

Конфигурацией МТ называется совокупность следующих условий:

  1. слово на ленте (последовательность символов, записанных на ленте);

  2. указание обозреваемого символа;

  3. состояние головки.

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

  1. После конечного числа раз выполнения команд машина придет в состояние . В этом случае она прекращает свою работу и результатом работы машины считается конечная конфигурация.

  2. Машина никогда не придет в состояние . В этом случае она работает бесконечно, и говорят, что машина не применима к начальной конфигурации.

Рассмотрим примеры, в которых внешний алфавит МТ состоит из 2-х символов

Пример 1.

Пусть программа имеет вид

, , , ,

а начальная конфигурация задана следующим образом:

0

0

1

1

0

0

0

0

1

1

1

0

0

0

1

0

1

0

Пример 2.

Программа имеет вид

, ,

а начальная конфигурация задана следующим образом:

0

1

0

0

0

0

В примере 2 МТ неприменима к начальной конфигурации.

Практика показывает, что алгоритмы могут быть заданы программами МТ. Возникает вопрос: можно ли любой алгоритм задать программой МТ.

Ответ на него дает утверждение, известное под названием тезиса Чёрча:

Всякий алгоритм может задан программой соответствующей МТ.

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

Тезис Чёрча позволяет интуитивное понятие алгоритма свести к строгому математическому: программе МТ. Он утверждает, что всякий раз, когда мы сталкиваемся с некоторой эффективной процедурой, которую мы принимаем за алгоритм, то эту процедуру можно задать программой соответствующей МТ. Это относится не только к тем алгоритмам, которые уже созданы, которые когда-нибудь будут еще созданы.

Уверенность в справедливости тезиса Чёрча базируется на опыте. А опыт показывает, что всякий раз, когда какой-нибудь алгоритм пытались задать программой МТ, всякий раз такая попытка была успешной. Кроме того, важным доводом в пользу тезиса Чёрча является также и утверждение эквивалентности всех известных строгих математических определений понятия алгоритма, данное независимо друг от друга А. А. Марковым, А. Н. Колмогоровым и Э. Постом.