
Lec_11.ppt
- Количество слайдов: 22
Теория алгоритмов Лекция 11
Теория алгоритмов как формальная система l l l Понятие об алгоритме. Рекурсивные функции. Машина Тьюринга.
Понятие об алгоритме ¡ ¡ Алгоритм – это формальная система особого детерминированного вида, характеризующаяся тем, что в ней каждой теореме применима не более чем одна продукция (т. е. правило вывода). Соответствующий граф представляет собой цепочку изображающую вычислительный процесс. Аксиомы в таком графе – это просто исходные данные алгоритма.
Интуитивно под алгоритмом понимается: ¡ Процесс последовательного решения задачи, протекающий в дискретном времени, так что в каждый последующий момент система объектов алгоритмов, получается, по определенному закону из системы объектов, имеющихся в предыдущий момент времени.
Алгоритм характеризуется: Элементарностью шагов ¡ Детерминированостью ¡ Массовостью ¡
Алгоритм пригоден для решения всех задач данного класса. ¡ ¡ Доказательство алгоритмической неразрешимости некоторых задач и есть основная цель теории алгоритмов. В свое время в математике были попытки формализации понятия «алгоритм» , т. е. создание формальных моделей. Было предложено несколько моделей, в последствии оказалось, что эти модели – эквивалентны, т. е. классы решаемых ими задач совпадают. Это дало основание предположить, что класс задач решаемых в любой из этих формальных моделей и есть класс всех задач, которые могут быть решены интуитивно алгоритмическими методами. Это гипотеза известна под названием тезис Черча.
Рассмотрим следующие модели: 1. 2. Рекурсивные функции – исторически первая модель понятия «алгоритм» . Машина Тьюринга – модель, которая представляется в виде некого устройства.
Рекурсивные функции ¡ ¡ Рекурсивным заданием функции принято называть такое её задание, при котором значение функции для данных аргументов определяется значением той же функции для более простых аргументов или же значениями более простых функции. Числа Фибоначчи: 1, 1, 2, 3, 5, 8, 13 …
¡ ¡ ¡ В теории рекурсивных функций рассматриваются только числовые функции, т. е. аргумент и значение функции принадлежит множеству натуральных чисел. Числовая функция, значение которой можно вычислить с помощью некоторого единого алгоритма называется вычислимой. 1. Функция следования: S(x) = x + 1 2. Константа нуля: 0(x) = 0 3. Выделение аргумента (проектирующая функция): Im(x 1, x 2, …, xm, …, xn) = xm
¡ ¡ ¡ Для получения новых функций применяют операции суперпозиции и примитивной рекурсии. Функция называется примитивнорекурсивной, если она может быть получена из простейших функций с помощью конечного числа операторов суперпозиции и примитивной рекурсии. Кроме того, в теории рекурсивной функции вводится понятие частичнорекурсивная функция. Частичнорекурсивная функция может быть получена при дополнительном использовании так называемого оператора минимизации.
В теории алгоритмов, доказано что всякая функция, вычислимая некоторым алгоритмом, является частичнорекурсивной. ¡ Все ли функции являются примитивнорекурсивными? ¡ Примитивно-рекурсивные функции составляют не более чем счетное подмножество, несчетного множества: Nn ׀ N, где “ ׀ ” – символ отображения. ¡ Также есть, функции вычислимые, но не примитивно-рекурсивные. Например: функция Аккермана. ¡
Машина Тьюринга Одна из моделей алгоритма названа в честь английского математика Алана Тьюринга. ¡ Она включает в себя: ¡ Управляющее устройство, которое может находится в одном из состояний, yi; причем yk – конечное состояние. l Ленту, разбитую на ячейки, в каждую из которых может быть записан символ конечного алфавита; xi; λ – символ пустой ячейки. l Устройство обращение к ленте. Считывающая и записывающая головка. l
Устройство машины Тьюринга ¡ ¡ УУ – устройство управления, L – движение головки влево, R – движение головки вправо, E – головка остается на месте. Данные – это слова на ленте. На ленту также записывается результат.
Полное состояние машины (конфигурация, машинное слово) описывается её внутренним состоянием, и символом слева и справа от головки: … xi yi xz… ¡ Система команд машины содержит записи следующего вида: ¡
¡ команда машины где “ “ – “заменить на …”. Переход в новое внутреннее состояние. Совокупность команд такого вида называется программой.
Каждая машина определяется алфавитом, состоянием внутренней памяти и программой. ¡ M =
¡ ¡ Если машина, начав работу с некоторым словом, придет в заключительное состояние то она называется применимой к этому слову. Результат ее работы – слово, записанное на ленте в заключительном состоянии. Если же машина не придет в конечный момент времени в заключительное состояние, то она называется неприменимой к данному слову. Результат ее работы не определен.
Пример: ¡ Машина, которая увеличивает число на 1. Алфавит: A = {λ, 1} Данная машина может быть описана следующим графом. Граф представления машины Тьюринга
Запишем программу для этой машины: Работа такой машины может быть описана таблицей переходов:
¡ ¡ Аналогично могут быть построены машины для реализации ветвлений и циклов. Из простых машин строят сложные путем композиций. Рассматривается также универсальная машина, которая читает программу, записанную на ленте и выполняет ее, как современная вычислительная машина.
Тезис Тьюринга: ¡ ¡ «Всякий интуитивный алгоритм может быть реализован с помощью некоторой машины Тьюринга» . Применяется прием нумерации машин Тьюринга: Для того чтобы закодировать номер машины нужно выделить алфавит и внутренние состояния.
¡ Номер машины – это число, которое кодируется с помощью простых чисел. Показатели степеней – это номера во множествах.