- •Исторически обзор теории алгоритмов
- •Определение машины Тьюринга
- •Тезис Черча-Тьюринга
- •Машина Маркова
- •Нумерация мт
- •Пример невычислимой функции, построенной по методу диагонализации Кантора.
- •Распознающие машины Тьюринга и языки. Проблема распознавания языков.
- •Неразрешимость проблемы самоприменимости.
- •Неразрешимость проблемы остановки.
- •Другие примеры неразрешимых алгоритмически задач.
- •Методы задания машин Тьюринга.
- •Граф-схемы и их связь диаграммой состояний автоматов.
- •Рекурсивные функции и их построение из простейших.
- •Операторы подстановки, рекурсии и минимизации. Частично рекурсивные функции.
- •Тезис Черча.
- •Рекурсивно перечислимые множества. Связь между рекурсивной перечислимостью и рекурсивностью.
- •Сложность. Подходы к определению сложности алгоритмов.
- •Алгоритмическая, информационная и инфологическая сложность.
- •19. Понятие вычислительной сложности. Примеры ее определения.
- •20. Детерминированная и недетерминированная машина Тьюринга.
- •21. Класс p и np.
- •22. Классы со-np, pspace, npspace.
- •23. Задача выполнимость и теорема с.Кука о полноте задачи выполнимость.
- •24. Другие np-полные задачи. Примеры сводимости в классе np.
- •25. Метод резолюции Робинсона для задачи выполнимость.
- •26. Метод отсечение литер для задачи выполнимость.
- •27. Метод групповых резолюций для задачи выполнимость.
- •28. Гипотеза p≠pn и ее обоснование.
- •29. Дерево решений. Эвристическая оценочная функция.
- •30. Распознавание регулярных языков.
21. Класс p и np.
- P – класс задач, решаемых с пом. полимиальных детерминированных МТ и является подмножеством NP
- NP – недетерминированных полимиальных МТ
Проблема построения эффективных алгоритмов имеет прямое отношение к практике. Оказалось, что существует целый класс важных для практики задач, для которых до настоящего времени не удалось найти хороших решающих процедур. Более того, для этих задач нет даже приближенных алгоритмов. Классы этих задач известны как классы NP-полных и NP-трудных задач."
22. Классы со-np, pspace, npspace.
Класс со-NP – это класс до NP дополнительный к языкам из NP.
Класс PSPACE - это класс задач распознавания типа «да», «нет» требующих, полимиальных размеров памяти для решающих их детерминированных алгоритмов.
Класс NPSPACE – это класс задач распознавания типа «да», «нет» требующих полимиальных размеров памяти для решающих их недетерминированной МТ.
Имеет место следующее важное соотношение:
PNPPSPACE=NPSPACE
Результат PSPACE=NPSPACE известен как теорема Савича. Эта теорема доказывается, исходя из того, что для каждой недетерминированной машины Тьюринга имеется эквивалентная ей детерминированная машина Тьюринга.
23. Задача выполнимость и теорема с.Кука о полноте задачи выполнимость.
Задача ВЫПОЛНИМОСТЬ заключается в следующем. Имеется множество дизъюнктов. Спрашивается, имеется ли для этого множества дизъюнктов хотя бы одна общая выполняющая интерпретация? Если ДА, то множество дизъюнктов называется выполнимым. Если НЕТ, то множество дизъюнктов называется невыполнимым. Эта задача имеет только кажущуюся простоту. На самом деле, проблема упирается в отыскание эффективного алгоритма ее решения, которую мы рассматриваем на следующем практическом занятии.
Язык ВЫПОЛНИМОСТЬ содержит множество слов, представляющих все выполнимые системы дизъюнктов.
Проблема распознавания языка ВЫПОЛНИМОСТЬ связана с распознаванием выполнимости данной системы дизъюнктов. Если система дизъюнктов выполнима, то это легко проверить, используя значения переменных выполняющей интерпретации. Проверку можно реализовать на недетерминированной в общем случае машине Тьюринга.
Проверка просто устанавливает, удовлетворяет ли найденное решение условиям задачи.
Сложностью проверки называется функция для числа тактов проверочной процедуры в зависимости от длины описания задачи (размера описания задачи). Оказывается, по критерию сложности все машины Тьюринга можно разделить на два класса: машины с функцией сложности, ограниченной некоторым полиномом и машины с функцией сложности, не ограниченной полиномом. Первый тип машин называется также эффективным.
Язык ВЫПОЛНИМОСМТЬ знаменит в силу следующего обстоятельства. Он является универсальным в некотором классе языков.
С. Кук доказал знаменитую теорему о том, что задача Выполнимость является универсальной в классе задач распознавания (этот класс получил короткое название NP (от слов Nondeterministic Polynomial)).
24. Другие np-полные задачи. Примеры сводимости в классе np.
реализуемой за полиномиальное время на недетерминированной машине Тьюринга. Имейте в виду, что любой детерминированный алгоритм есть частный случай недетерминированного алгоритма.
Определение. Задача А эффективно сводится к задаче В, если
Решение задачи B дает решение задачи А;
Сложность сведения ограничена полиномиальной функцией.
Примеры сведений.
Задача ВЫПОЛНИМОСТЬ эффективно сводится к задаче 3-ВЫПОЛНИМОСТЬ. Задача 3-ВЫПОЛНИМОСТЬ – это задача ВЫПОЛНИМОСТЬ, каждый дизъюнкт которой содержит не более 3-ех переменных. Рассмотрим на пример, как эта сводимость реализована.
Пусть дана система дизъюнктов
S=
Здесь только второй дизъюнкт содержит более 3 переменных. Заменим второй дизъюнкт, как показано ниже:
S1=
Можно усмотреть следующий общий прием. Мы вводим дополнительную переменную в каждый дизъюнкт, содержащий более трех переменных. Затем отсчитываем три литеры и переносим оставшиеся переменные в новый дизъюнкт. В перенесенном дизъюнкте мы добавляем новую литеру, но уже с отрицанием и т.д.