Скачать презентацию Теория алгоритмов Лекция 11 Теория алгоритмов как Скачать презентацию Теория алгоритмов Лекция 11 Теория алгоритмов как

Lec_11.ppt

  • Количество слайдов: 22

Теория алгоритмов Лекция 11 Теория алгоритмов Лекция 11

Теория алгоритмов как формальная система l l l Понятие об алгоритме. Рекурсивные функции. Машина Теория алгоритмов как формальная система l l l Понятие об алгоритме. Рекурсивные функции. Машина Тьюринга.

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

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

Алгоритм характеризуется: Элементарностью шагов ¡ Детерминированостью ¡ Массовостью ¡ Алгоритм характеризуется: Элементарностью шагов ¡ Детерминированостью ¡ Массовостью ¡

Алгоритм пригоден для решения всех задач данного класса. ¡ ¡ Доказательство алгоритмической неразрешимости некоторых Алгоритм пригоден для решения всех задач данного класса. ¡ ¡ Доказательство алгоритмической неразрешимости некоторых задач и есть основная цель теории алгоритмов. В свое время в математике были попытки формализации понятия «алгоритм» , т. е. создание формальных моделей. Было предложено несколько моделей, в последствии оказалось, что эти модели – эквивалентны, т. е. классы решаемых ими задач совпадают. Это дало основание предположить, что класс задач решаемых в любой из этих формальных моделей и есть класс всех задач, которые могут быть решены интуитивно алгоритмическими методами. Это гипотеза известна под названием тезис Черча.

Рассмотрим следующие модели: 1. 2. Рекурсивные функции – исторически первая модель понятия «алгоритм» . Рассмотрим следующие модели: 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 – движение головки влево, Устройство машины Тьюринга ¡ ¡ УУ – устройство управления, L – движение головки влево, R – движение головки вправо, E – головка остается на месте. Данные – это слова на ленте. На ленту также записывается результат.

Полное состояние машины (конфигурация, машинное слово) описывается её внутренним состоянием, и символом слева и Полное состояние машины (конфигурация, машинное слово) описывается её внутренним состоянием, и символом слева и справа от головки: … xi yi xz… ¡ Система команд машины содержит записи следующего вида: ¡

¡ команда машины где “ “ – “заменить на …”. Переход в новое внутреннее ¡ команда машины где “ “ – “заменить на …”. Переход в новое внутреннее состояние. Совокупность команд такого вида называется программой.

Каждая машина определяется алфавитом, состоянием внутренней памяти и программой. ¡ M = <X, Y, Каждая машина определяется алфавитом, состоянием внутренней памяти и программой. ¡ M = , где ¡ X – алфавит, Y – состояние внутренней памяти, П – программа. ¡ Считается что, в начале головка считает самую левую не пустую ячейку.

¡ ¡ Если машина, начав работу с некоторым словом, придет в заключительное состояние то ¡ ¡ Если машина, начав работу с некоторым словом, придет в заключительное состояние то она называется применимой к этому слову. Результат ее работы – слово, записанное на ленте в заключительном состоянии. Если же машина не придет в конечный момент времени в заключительное состояние, то она называется неприменимой к данному слову. Результат ее работы не определен.

Пример: ¡ Машина, которая увеличивает число на 1. Алфавит: A = {λ, 1} Данная Пример: ¡ Машина, которая увеличивает число на 1. Алфавит: A = {λ, 1} Данная машина может быть описана следующим графом. Граф представления машины Тьюринга

Запишем программу для этой машины: Работа такой машины может быть описана таблицей переходов: Запишем программу для этой машины: Работа такой машины может быть описана таблицей переходов:

¡ ¡ Аналогично могут быть построены машины для реализации ветвлений и циклов. Из простых ¡ ¡ Аналогично могут быть построены машины для реализации ветвлений и циклов. Из простых машин строят сложные путем композиций. Рассматривается также универсальная машина, которая читает программу, записанную на ленте и выполняет ее, как современная вычислительная машина.

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

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