КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Примеры. 1) Функция суммы, определяемая равенством , является примитивно рекурсивной, так как она задаётся схемой примитивной рекурсии
1) Функция суммы, определяемая равенством
т.е. 2) Функция арифметического вычитания
Определение. Отношение
примитивно рекурсивна. Так как существует взаимно однозначное соответствие между отношениями и предикатами, то Например, предикат Определение. Оператор называется примитивно рекурсивным, если он сохраняет примитивную рекурсию функций. Например, условный оператор
является примитивно рекурсивным. Примитивно рекурсивными являются также операторы конечного суммирования и конечного произведения
Определение. Ограниченный оператор наименьшего числа, называемый также ограниченным оператором минимизации (ограниченный m-оператор), определяется равенством
Для заданного числа z он определяет минимальное значение у £ z, для которого Р (у) = 1. Пример. Пусть задан предикат Ограниченный оператор минимизации примитивно рекурсивен. Он является средством построения обратных функций. Функция
(Здесь надо найти наименьшее у, чтобы x× (y + 1) > z). В результате рассмотрения примеров функций, которые все являлись примитивно рекурсивными, возникает вопрос: существуют ли не примитивно рекурсивные функции. В данном случае ответ положительный, класс примитивно рекурсивных функций не исчерпывает класс всех вычислимых функций. Функция Аккермана. Построим функцию, которая является вычислимой, но не примитивно рекурсивной. Определим последовательность функций 1) 2) Продолжим последовательность по рекуррентному правилу 2):
Функции Зафиксируем
Функция Аккермана Функция Аккермана является вычислимой, так как соотношения (2), (3) позволяют построить программу для её вычисления. Однако данная функция не является примитивно рекурсивной, так как она в силу (3) является двукратно рекурсивной (рекурсия идёт по обоим аргументам – не положено). Поэтому средства построения вычислимых функций нуждаются в расширении. Если добавить к примитивно рекурсивным функциям оператор кратной рекурсии при определённом n, то для любого n можно построить функцию, которая является Определение. Неограниченный m-оператор для функции Неограниченный m-оператор часто называют просто m-оператором. Также используют представление m-оператора в виде Определение. Функция называется частично рекурсивной, если она может быть построена из 0, функций Частично рекурсивная функция может быть определена не для всех значений. Например, функция обратная к функции следования Определение. Частично рекурсивная функция называется общерекурсивной, если она всюду определена. Теорема 2.1. Классы вычислимых и частично рекурсивных функций совпадают.
3. Временная сложность алгоритма. Классы P и NP. При решении массовой задачи P требуется не просто найти алгоритм, решающий эту задачу, но построить наиболее эффективный алгоритм. Под эффективностью алгоритма понимают затраты всех вычислительных ресурсов, необходимых для работы алгоритма. Основное внимание сосредотачивается на затратах времени – временной сложности алгоритма. Кроме того, анализируется еще и сложность по памяти. Время работы алгоритма удобно выражать в виде функции от переменной, характеризующей размер индивидуальной задачи (размерности задачи) т.е. объём данных, требуемых для описания этой задачи. Например, для графа, задаваемого списками инцидентности, размерность задачи представляется как пара (n, m). Эта функция каждой входной длине n ставит в соответствие максимальное время, затрачиваемое алгоритмом на решение индивидуальной задачи этой длины. Значение времени зависит от схемы кодирования и вычислительного устройства, определяющего время работы. Нас же будет в дальнейшем интересовать не точная временная сложность алгоритма, а асимптотическая сложность, которая определяется скоростью роста числа шагов алгоритма при неограниченном увеличении размерности задачи. Для сравнения скорости роста двух функций Определение. Будем говорить, что функция
Будем говорить, что функция
Например, для функции
в силу принятых обозначений, можно записать, что Непосредственно из определения вытекают следующие свойства:
Если рассматривается представление алгоритма, как ДМТ-программа M, то временная сложность алгоритма
ДМТ-программа M называется полиномиальной, если существует полином некоторой степени k, такой что Класс языков P образуют языки, для которых существует полиномиальная ДМТ-программа распознавания, т.е.
Будем говорить, что задача распознавания P принадлежит классу задач P при схеме кодирования e, если язык Класс NP. Однако не для любой задачи полиномиальная программа существует. Рассмотрим, например, задачу коммивояжера. Как задача распознавания она формулируется следующим образом: дано множество городов, расстояния между ними и число B > 0. Существует ли проходящий через все города маршрут длины, не превосходящей B. Полиномиальный алгоритм решения этой задачи неизвестен. Опишем вначале неформально класс задач, к которому она принадлежит, а потом формализуем это определение. Неформально класс NP можно определить с помощью недетерминированного алгоритма. Он состоит из 2-х стадий: угадывания и проверки. По индивидуальной задаче I происходит угадывание S – ответа задачи. Для задачи о коммивояжере это будет вариант пути между вершинами графа. Затем I и S подаются на стадию проверки, которая выполняется детерминированным образом. В нашем примере проверяется, является ли предъявленный путь гамильтоновым циклом, вычисляется его длина и сравнивается с границей B. Недетерминированный алгоритм решает задачу распознавания P, если 1) Если 2) Если Таким образом, класс задач NP – это класс всех задач распознавания, которые при разумном кодировании могут быть решены недетерминированным алгоритмом за полиномиальное время. Формальным эквивалентом для недетерминированного алгоритма является программа для недетерминированной одноленточной машины Тьюринга (НДМТ). Структура НДМТ отличается от ДМТ наличием угадывающего модуля со своей читающе/пушущей головкой, связанного с управляющим устройством. Программа для НДМТ задаётся тем же набором Порядок работы НДМТ под управлением программы 1. Входное слово 2. Управление передаётся угадывающему модулю, который записывает результат работы на левую полуленту и переходит в пассивное состояние. 3. Управляющее устройство начинает работу в состоянии 4. Если текущее состояние q не совпадает с одним из конечных состояний, то машина переходит в следующее состояние, определяемое согласно функции переходов. Пусть 5. Если Временная сложность НДМТ-программы определяется равенством
(временная сложность угадывания считается за 1). НДМТ-программа называется НДМТ-программой с полиномиальным временем работы, если существует полином некоторой степени k, такой что Класс языков NP формально определяется как
Дата добавления: 2014-01-20; Просмотров: 1752; Нарушение авторских прав?; Мы поможем в написании вашей работы! |