Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA / Гл2 МОДЕЛИ ВЫЧИСЛЕНИЙ.doc
Скачиваний:
25
Добавлен:
14.04.2015
Размер:
36.35 Кб
Скачать

2.1.3. Нормальный алгоритм Маркова

Говорят, что задан алгоритм в алфавите А, который применим к слову L и преобразует его в слово M, если отправляясь от L и действуя согласно инструкциям, в конце концов получим M, на котором процесс заканчивается.

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

Марков А.А. ввёл определённые указания о порядке использования подстановок в алгоритме. Определение нормального алгоритма Маркова сводится к следующему. Задаётся алфавит А и фиксируется в определённом порядке система ориентированных подстановок. Исходя из произвольного слова R в алфавите А, просматриваются подстановки в таком порядке, в котором они заданы. Первая встретившаяся подстановка P1: L1 ® M1 с левой частью, входящей в R, используется для преобразования слова R, в которое вместо первого вхождения левой части подставляется его правая часть, в результате чего получаем новое слово R1:

P1 (R) = R1. Далее процесс повторяется исходя из слова R1, затем из R2 и т. д. до тех пор, пока этот процесс не останавливается.

Признаки остановки:

1. Слово Rn не содержит ни одной из левых частей допустимых подстановок.

2. Для получения Rn использована последняя подстановка.

Пример 2.1. Задан алфавит А = {1, +} и система подстановок: + ® # (# — пустое слово);

1 ® 1.

Слово 111 + 11 + 1111 + 1 этот алгоритм преобразует следующим образом:

0 - шаг 111 + 11 + 1111 + 1

1 - шаг 11111 + 1111 + 1

2 - шаг 111111111 + 1

3 - шаг 1111111111

4 - шаг 1111111111

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

Эквивалентный ему алгоритм можно задать с помощью системы подстановок: 1 + ® + 1, + 1 ® 1, 1 ® 1.

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

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

Теорема: Не существует алгоритма, позволяющего выяснить для любой пары слов R и S в произвольных нечисловых алфавитах, переводимо R в S или нет.

2.2.3. Уточнение понятия «алгоритм». Тезис Чёрча

Решение задачи точного определения «алгоритм» было получено в середине 30-х годов нашего века в двух формах:

  • решение основано на понятии рекурсивной функции;

  • решение основано на описание точно очерченного класса вычислительных процессов.

Решая задачу построения класса вычислимых функций (п.2.2), мы последовательно построили класс элементарных функций, затем класс примитивно рекурсивных функций и, наконец, класс общерекурсивных функций. Требуется ли расширять класс общерекурсивных функций? Многочисленные попытки такого решения не привели к успеху.

Отталкиваясь от идей Гильберта, Гёдель описал класс всех рекурсивных функций как класс всех числовых функций, определимых в некоторой формальной системе. Исходя из других предпосылок, Чёрч пришёл к тому же классу числовых функций. Анализ идей, которые привели к этому классу функций, позволили Чёрчу в 1936 г. выдвинуть гипотезу о том, что класс общерекурсивных (просто рекурсивных) функций тождественен классу всюду определенных функций. (Тезис Чёрча). Другая формулировка тезиса Чёрча, эквивалентная данной: всякая эффективно вычислимая функция (эффективно разрешимый предикат) является общерекурсивной.

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

Поскольку понятия «алгоритм» и «вычислимые значения арифметической функции» тождественны, то в соответствии с тезисом Чёрча задача оказывается алгоритмически разрешимой лишь тогда, когда арифметическая функция, к вычислению которой мы сводим нашу задачу, оказывается общерекурсивной. Иначе: алгоритм существует лишь тогда, когда может быть построена общерекурсивная функция.

Наоборот, в силу тезиса Чёрча неразрешимость проблемы означает, что арифметическая функция, к вычислению которой сводится задача, не является общерекурсивной.

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

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

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

Точное описание класса частично рекурсивных функций вместе с тезисом Чёрча даёт одно из возможных решений задачи об уточнении понятия алгоритма. Однако это решение не вполне прямое, так как понятие вычислимой функции является вторичным по отношению к понятию алгоритма. Спрашивается, нельзя ли уточнить само понятие алгоритма и уже затем при его помощи определить точно и класс вычислимых функций? Это было сделано Постом и Тьюрингом независимо друг от друга и почти одновременно с упомянутыми выше работами Чёрча и Клини. Основная мысль Поста и Тьюринга заключалась в том, что алгоритмические процессы — это процессы, которые может осуществлять подходяще устроенная «машина».

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