
- •Исторически обзор теории алгоритмов
- •Определение машины Тьюринга
- •Тезис Черча-Тьюринга
- •Машина Маркова
- •Нумерация мт
- •Пример невычислимой функции, построенной по методу диагонализации Кантора.
- •Распознающие машины Тьюринга и языки. Проблема распознавания языков.
- •Неразрешимость проблемы самоприменимости.
- •Неразрешимость проблемы остановки.
- •Другие примеры неразрешимых алгоритмически задач.
- •Методы задания машин Тьюринга.
- •Граф-схемы и их связь диаграммой состояний автоматов.
- •Рекурсивные функции и их построение из простейших.
- •Операторы подстановки, рекурсии и минимизации. Частично рекурсивные функции.
- •Тезис Черча.
- •Рекурсивно перечислимые множества. Связь между рекурсивной перечислимостью и рекурсивностью.
- •Сложность. Подходы к определению сложности алгоритмов.
- •Алгоритмическая, информационная и инфологическая сложность.
- •19. Понятие вычислительной сложности. Примеры ее определения.
- •20. Детерминированная и недетерминированная машина Тьюринга.
- •21. Класс p и np.
- •22. Классысо-np, pspace, npspace.
- •23. Задача выполнимость и теорема с.Кука о полноте задачи выполнимость.
- •24. Другие np-полные задачи. Примеры сводимости в классе np.
- •25. Метод резолюции Робинсона для задачи выполнимость.
- •26. Метод отсечение литер для задачи выполнимость.
- •27. Метод групповых резолюций для задачи выполнимость.
- •28. Гипотеза p≠pn и ее обоснование.
- •29. Дерево решений. Эвристическая оценочная функция.
- •30. Распознавание регулярных языков.
24. Другие np-полные задачи. Примеры сводимости в классе np.
реализуемой за полиномиальное время на недетерминированной машине Тьюринга. Имейте в виду, что любой детерминированный алгоритм есть частный случай недетерминированного алгоритма.
Определение. Задача А эффективно сводится к задаче В, если
Решение задачи B дает решение задачи А;
Сложность сведения ограничена полиномиальной функцией.
Примеры сведений.
Задача ВЫПОЛНИМОСТЬ эффективно сводится к задаче 3-ВЫПОЛНИМОСТЬ. Задача 3-ВЫПОЛНИМОСТЬ – это задача ВЫПОЛНИМОСТЬ, каждый дизъюнкт которой содержит не более 3-ех переменных. Рассмотрим на пример, как эта сводимость реализована.
Пусть дана система дизъюнктов
S=
Здесь только второй дизъюнкт содержит более 3 переменных. Заменим второй дизъюнкт, как показано ниже:
S1=
Можно усмотреть следующий общий прием. Мы вводим дополнительную переменную в каждый дизъюнкт, содержащий более трех переменных. Затем отсчитываем три литеры и переносим оставшиеся переменные в новый дизъюнкт. В перенесенном дизъюнкте мы добавляем новую литеру, но уже с отрицанием и т.д.
25. Метод резолюции Робинсона для задачи выполнимость.
Напомним, что задача ВЫПОЛНИМОСТЬ требует установить, имеется ли для данной системы дизъюнктов общая выполняющая интерпретация. Напомним также, что примерами дизъюнктов являются следующие:
и т.д.
Здесь хi являются булевскими переменными. Булевская переменная может принимать только два значения: 0, 1. Черта сверху над переменной означает ее отрицание. Правила отрицания таковы:
Значок v называется операцией логическое “ИЛИ” (а также дизъюнкцией). Эта операция дает в результате единицу, если и только если хотя бы одна из участвующих в ней переменных равна 1.
Принцип резолюций. Принцип резолюций заключается в систематическом построении следствий из текущей системы дизъюнктов на основе операции резолюционирования. Следствия называются резольвентами. Резольвенты строятся для пары дизъюнктов, содержащей контрарную пару литер (булевских переменных). Например, пусть даны два дизъюнкта
Эти
дизъюнкты содержат контрарную пару
литер -
(одна входит в дизъюнкт D1
без отрицания, вторая – в дизъюнкт D2
с
отрицанием).
Резольвентой
дизъюнктов D1
и D2
является новый дизъюнкт D1,2
, который не содержит контрарной пары
литер, но содержит все другие литеры из
D1
и D2.
Согласно этому определению, получим
D1,2=
.
Целью построения резольвент является достижение следующих возможных исходов:
Резольвента оказалась пустой. Например, пустую резольвенту дает следующая пара дизъюнктов
В случае пустой резольвенты делается вывод о невыполнимости системы дизъюнктов (т.е. задача ВЫПОЛНИМОСТЬ не имеет решения в этом случае).
Невозможно построить новую резольвенту (началось зацикливание). В этом случае делается вывод о выполнимости исходной системы дизъюнктов.
26. Метод отсечение литер для задачи выполнимость.
Этот
метод заключается в последовательном
исключении булевских переменных из
системы. Сначала избавляемся, скажем,
от переменной
,
затем – от переменной
и т.д. Такой систематический процесс
рано или поздно завершится и по получению
(не получению) пустого дизъюнкта можно
будет судить о противоречивости системы
(или нет).