
- •Лекция 1 Теория алгоритмов и математическая логика Функция
- •Словарные функции
- •Вычислимые функции и машина Тьюринга
- •Лекция 2 Словарное представление машины Тьюринга
- •Проблема остановки
- •Проблемы пустой ленты и метод сведения
- •Лекция 3 Проблема зацикливания
- •Введение в теорию np-полных задач Задачи, алгоритмы и сложности
- •Трудно решаемые задачи
- •Лекция 4 np – полные задачи
- •Задачи распознавания
- •Примеры массовых задач
- •Лекция 5 Детерминированные машины Тьюринга и класс p
- •Недетерминированное вычисление и класс np
- •Взаимоотношение между классами p и np
- •Лекция 6 Полиномиальная сводимость и np-полные задачи
- •Теорема Кука
- •Лекция 7 Шесть основных np-полных задач.
- •Некоторые методы доказательства np-полноты.
- •Сужение задачи.
- •Локальная замена.
- •Лекция 8
- •Лекция 9
- •Лекция 10 Доказательство результатов о сильной np-полноте
- •Лекция 11
- •Лекция 12 основы математической логики
- •Основные логические законы
- •Основные правила обращения с кванторами
- •Лекция 13
- •Минимизация булевых функций
- •Лекция 14 Стандартные формулы преобразования булевых функций
- •Геометрическая интерпретация
- •Построение простых импликантов
Теорема Кука
Первой NP-полной задачей была задача распознавания из булевой логики, которая называется ВЫПОЛНИМОСТЬ. Термины для её описания следующие.
Пусть U={u1,
u2, …,
um}
– множество булевых переменных. Поднабором значений истинностина
множествеUбудем
понимать функцию.
Еслиt(u)
= T, то будем говорить,
чтоuпринимает значение
“истина”, еслиt(u)=F,
то “ложь”. Еслиu–
некоторая переменная из множестваU,
тоuи
будем называть литералами изU.
Литералuпринимает
значение “истина ” относительноtв том и только в том случае, когда
переменнаяuпринимает
значение “истина”; литерал
принимает значение “истина ” относительноtв том и только в том
случае, когда переменнаяuпринимает значение “ложь”.
Дизъюнкцией
над Uназовём
произвольное множество литералов надU, например.
Она представляет дизъюнкцию этих
литералов и называется выполненной при
некотором наборе значений истинности
тогда и только тогда, когда при
рассматриваемом наборе значений
истинности хотя бы один из её членов
принимает значение “истина”. В нашем
примере дизъюнкция будет выполнена
относительноt, если
одновременноне окажется, чтоt(u1)=F,t(u3)=T,
t(u8)=F.
Набор Cдизъюнкций надUназываетсявыполнимымв том и только в том случае, если найдётся некоторый набор значений истинности на множествеU, такой, что одновременно выполнены все дизъюнкции. Такой набор значений истинности называетсявыполняющим набором значений истинностидляC.
Задача ВЫПОЛНИМОСТЬ формулируется следующим образом:
Заданы множество Uи наборCдизъюнкции над U.
Вопрос:Существует ли выполняющий набор значений истинности дляC?
Например, пусть
U={u1,
u2}, C=.
Эта индивидуальная задача из ВЫП имеет
ответ “да”. Выполняющее задание значений
истинности определяется так:t(u1)=t(u2)=T.
Для индивидуальной задачи, в которойC=
,
ответ будет “нет”.
Теорема Кука формулируется следующим образом:
Теорема Кука утверждает, что задача о выполнимости булевой формулы в КНФ является NP-полной.
Доказательство этой теоремы, полученное Стивеном Куком в его фундаментальной работе в 1971 году, стало одним из первых важнейших результатов теории NP-полных задач. Независимо в то же время эта теорема была доказана советским математиком Леонидом Левиным.
В доказательстве теоремы Кука каждая задача из класса NP в явном виде сводится к КНФ. С. Кук определил класс NP задач распознавания свойств следующим образом. Задача принадлежит классу NP, если:
- решением задачи является один из двух ответов: «да» или «нет» (задача распознавания свойств);
- требуемый ответ может быть получен на недетерминированном вычислительном устройстве за полиномиальное время.
После появления результатов Кука была доказана NP-полнота для множества других задач. При этом чаще всего для доказательства NP-полноты некоторой задачи приводится полиномиальное сведение задачи SAT к данной задаче, возможно в несколько шагов, то есть с использованием нескольких промежуточных задач.
Задача ВЫПОЛНИМОСТЬ является NP-полной.
Лекция 7 Шесть основных np-полных задач.
3-ВЫПОЛНИМОСТЬ (3-ВЫП)
Условие:Дан набор дизъюнкцииC={c1,
c2, …,
cm}
на конечном множестве переменныхU,
причём|ci|=3
при.
Вопрос:Существует ли наUнабор значений истинности, при котором выполняются все дизъюнкции изC?
ТРЁХМЕРНОЕ СОЧЕТАНИЕ (3-С)
Условие:Дано множествоMXYZ, причём множестваX, Yи Zи являются непересекающимися и имеют одинаковое число элементовq.
Вопрос:Верно ли, чтоMсодержит 3-сочетание, т.е. некоторое подмножествоM’M, такое, что|M’|=qи никакие два разных элементаM’не имеют ни одной равной координаты.
ВЕРШИННОЕ ПОКРЫТИЕ (ВП)
Условие:Дан графG=(V,E)и положительное целое числоk,k|V|
Вопрос:Имеется ли в графеGвершинное покрытиене более чем изkэлементов, т.е. такое подмножествоV’V, что|V’| kи для каждого ребра {u, v}Eхотя бы одна из вершинuилиvпринадлежитV’ ?
КЛИКА
Условие:Заданы графG=(V,E) и положительное целое числоJ|V|.
Вопрос:Имеется ли в графеGкликамощностью не менее чемJ, т.е. такое подмножествоV’V,что|V’|Jи любые две вершины изV’соединены ребром изE.
ГАМИЛЬТОНОВ ЦИКЛ (ГЦ)
Условие:Дан графG=(V, E)
Вопрос:Верно ли, что графG=(V,E)содержит гамильтонов цикл.
РАЗБИЕНИЕ
Условие:Заданы конечное множествоAи «вес»s(a)NкаждогоaA
Вопрос:Существует ли подмножествоA’, такое, что.
Можно
привести следующую схему, которая
указывает последовательность сведения
задач при доказательстве ихNP-полноты.
На рисунке стрелка указывает, какаяNP-полная задача сводится
к исследуемой задаче.