- •Лекции по курсу “дискретные структуры”
- •Интуитивное определение алгоритма
- •Основные свойства алгоритмов
- •Примеры алгоритмов
- •Рекурсивные алгоритмы
- •Примитивно-рекурсивные функции
- •Частично-рекурсивные функции
- •Символьные конструкции
- •Определение, функционирование и способы задания машины Тьюринга
- •Композиция машины Тьюринга
- •Эквивалентность машин Тьюринга и частично- рекурсивных функций
- •Определение и функционирование нормального алгоритма
- •Примеры нормальных алгоритмов
-
Частично-рекурсивные функции
Большинство арифметических и логических функций являются примитивно–рекурсивными. Однако класс примитивно–рекурсивных функций не охватывает всех вычислимых в интуитивном смысле функций. Для построения остальных функций используется так называемый оператор минимизации ( –оператор, оператор наименьшего корня ). Оператор минимизации определяет новую арифметическую функцию от n переменных с помощью ранее построенной арифметической функции от n+1 переменных.
Зафиксируем набор значений аргументов и рассмотрим уравнение относительно y: .
Наименьшее целое неотрицательное значение , удовлетворяющее этому уравнению, обозначим
Говорят, что функция получена из функции операцией минимизации, если
.
Процесс вычисления осуществляется последовательным перебором значений и подстановкой их в уравнение до тех пор, пока не выполнится , либо бесконечно. Оператор минимизации работает бесконечно в одном из следующих случаев.
-
Значение не определено.
-
Значение для определены , но не равны нулю, а значение не определено.
-
Значение определены для всех , но не равны нулю
Алгоритм работы оператора минимизации показан в виде блок-схемы на рис 2.2. Для простоты на блок схеме принято n=1.
Оператор минимизации является удобным средством получения обратных функций : вычитание, деление, извлечение корня и др.
Начало
У=0
Вычисление
ДА
f(x)=y Нет
Конец
Рис 2.2. Алгоритм работы оператора минимизации
Пример 13. Определение операции « вычитание » :
.
При x=5;y=2 z принимает значения 0,1,2,3,4.... Значение z=3 является искомым.
При x=4;y=6 z принимает значения 0,1,2,3,4..., ни одно из них не удовлетворяет уравнению , оператор минимизации при этом работает бесконечно, следовательно значение не определено.
Определение частично-рекурсивной функции.
Функция называется частично-рекурсивной , если она может быть построена из простейших с помощью конечного числа применений оператора суперпозиции, примитивной рекурсии и минимизации.
Частично-рекурсивная функция является не всюду определенной, причем там, где она не определена, процесс ее вычисления продолжается бесконечно.
Частично-рекурсивная функция является общерекурсивной , если она всюду определена.
Класс частично-рекурсивных функций шире класса общерекурсивных функций, который, в свою очередь шире класса примитивно-рекурсивных функций.
Связь между алгоритмами и рекурсивными функциями выражается тезисом Черча :
какова бы ни была вычислимая неотрицательная целочисленная функция от неотрицательных целочисленных аргументов, существует тождественно равная ей частично-рекурсивная функция.
Поскольку вычислимая функция – это функция, для вычисления которой существует алгоритм, тезис Черча выражает эквивалентность алгоритмов и частично-рекурсивных функций.
Тезис Черча доказать нельзя, т.к. понятия « алгоритм » и « вычислимая функция » являются интуитивными, а не строго математическими.
Лекция 3. МАШИНЫ ТЬЮРИНГА
Рекурсивные функции представляют алгоритм через вычислимую функцию, т.е. понятие « вычислимая функция » является первичным по отношению к понятию « алгоритм ». Машины Тьюринга (МТ) являются в этом смысле более естественными, т.к. вначале уточняют понятие « алгоритм », а через него – вычислимую функцию.
Машина Тьюринга (Тьюринга-Поста, т.к. предложена ими почти одновременно и независимо в 1936-1937 гг.) построена на основе использования свойства детерминированности алгоритмов. Основной смысл этого свойства сводится к тому, что алгоритмический процесс должен выполнятся механически, т.е. может быть реализован машиной. Машина Тьюринга является абстрактной, т.к. имеет неограниченные ресурсы, что требуется для реализации любых алгоритмов.
В данной теме вводятся некоторые понятия символьных конструкций и операций над ними, описаны функционирование и способы задания МТ, способы композиции МТ, позволяющие строить сложные МТ из более простых, приводится понятие об эквивалентности МТ и рекурсивных функций.
Наиболее полно ( в рамках программы курса ) машины Тьюринга описаны в [ 1,4,8 ] , приводится большое количество примеров. В [ 2 ] изложение более популярное и менее формализованное. Дополнительный материал о МТ можно найти в [ 7 ].