- •1.Исторический обзор теории алгоритмов.
- •2.Определение машины Тьюринга
- •3.Тезис Черча-Тьюринга.
- •5.Нумерация машин Тьюринга.
- •6.Пример невычислимой функции, построенной по методу диагонализации Кантора.
- •7.Распознающие машины Тьюринга и языки. Проблема распознавания языков.
- •8.Неразрешимость проблемы самоприменимости.
- •9.Неразрешимость проблемы остановки.
- •10.Другие примеры неразрешимых алгоритмически задач.
- •11.Методы задания машин Тьюринга
- •12.Граф-схемы и их связь диаграммой состояний автоматов.
- •13.Рекурсивные функции и их построение из простейших.
- •14.Операторы подстановки, рекурсии и минимизации. Частично рекурсивные функции.
- •15.Тезис Черча.
- •16.Рекурсивно перечислимые множества. Связь между рекурсивной перечислимостью и рекурсивностью.
- •17.Сложность.Подходы к определению сложности алгоритмов.
- •18.Алгоритмическая, информационная и инфологическая сложность.
- •19.Понятие вычислительной сложности. Примеры ее определения.
- •20.Детерминированная и недетерминированная машина Тьюринга.
- •21.Класс p и np.
- •22.Классы co-np, pspace, npspace.
- •23.Задача выполнимость и теорема с.Кука о полноте задачи выполнимость.
- •24.Другие np-полные задачи. Примеры сводимости в классе np.
- •25.Метод резолюций Робинсона для задачи выполнимость.
- •26.Метод отсечения литер для задачи выполнимость.
- •27.Метод групповых резолюций для задачи выполнимость.
- •28.Гипотеза p≠np и ее обоснование.
- •29.Дерево решений. Эвристическая оценочная функция.
- •30.Распознавание регулярных языков
25.Метод резолюций Робинсона для задачи выполнимость.
Принцип резолюций. Принцип резолюций заключается в систематическом построении следствий из текущей системы дизъюнктов на основе операции резолюционирования. Следствия называются резольвентами. Резольвенты строятся для пары дизъюнктов, содержащей контрарную пару литер (булевских переменных). Например, пусть даны два дизъюнкта
Эти дизъюнкты содержат контрарную пару литер - (одна входит в дизъюнкт D1 без отрицания, вторая – в дизъюнкт D2 с отрицанием).
Резольвентой дизъюнктов D1 и D2 является новый дизъюнкт D1,2 , который не содержит контрарной пары литер, но содержит все другие литеры из D1 и D2. Согласно этому определению, получим D1,2= .Целью построения резольвент является достижение следующих возможных исходов:
Резольвента оказалась пустой. Например, пустую резольвенту дает следующая пара дизъюнктов
В случае пустой резольвенты делается вывод о невыполнимости системы дизъюнктов (т.е. задача ВЫПОЛНИМОСТЬ не имеет решения в этом случае).
Невозможно построить новую резольвенту (началось зацикливание). В этом случае делается вывод о выполнимости исходной системы дизъюнктов.
Рассмотрим некоторый полный пример.
Решить следующую задачу ВЫПОЛНИМОСТЬ.
Находим резольвенту D1 и D2 :
D1,2=
Находим резольвенту D1,2 и D3 :
D1,2,3=
Дизъюнкты D1,2,3 и D4 дают пустую резольвенту. Вывод – исходная задача ВЫПОНИМОСТЬ не имеет решения.
Проблема метода резолюций – его неэффективность в сложностном смысле. Найти эффективный алгоритм для задачи ВЫПОЛНИМОСТЬ или доказать, что такого алгоритма нет – одна из глобальных нерешенных задач современности. Различные модификации принципа резолюций направлены на сокращение перебора.
26.Метод отсечения литер для задачи выполнимость.
Рассмотрим одну из заслуживающих внимания модификаций принципа резолюций.
Этот метод заключается в последовательном исключении булевских переменных из системы. Сначала избавляемся, скажем, от переменной , затем – от переменной и т.д. Такой систематический процесс рано или поздно завершится и по получению (не получению) пустого дизъюнкта можно будет судить о противоречивости системы (или нет). Рассмотрим пример из задания 1. Для начала избавимся от переменной . С этой целью выпишем все дизъюнкты, содержащие переменную :
Теперь найдем все возможные резольвенты выписанных дизъюнктов с исключаемой литерой . Выпишем эти резольвенты отдельно и добавим к ним те дизъюнкты из исходной системы, которые не содержали литеры . Получим следующую систему:
И эту систему можно еще более упростить, если удалить как бесполезные так называемые тавтологические дизъюнкты. Дизъюнкт называется тавтологическим, если он содержит как переменную, так и ее отрицание. В итоге, последняя система упрощается до следующей
Продолжаем процесс избавления от переменных. На этот раз исключим переменную
Получим следующую систему
Теперь ясно, что никакого пустого дизъюнкта получить не удастся. Делаем вывод, что система выполнима (не противоречива).