NP-полнота задачи о выполнимости булевой формулы в форме 3-КНФ — различия между версиями
Строка 10: | Строка 10: | ||
===Доказательство принадлежности <tex>3SAT</tex> классу <tex>NP</tex>=== | ===Доказательство принадлежности <tex>3SAT</tex> классу <tex>NP</tex>=== | ||
− | Возьмем в качестве сертификата набор <tex>x_1 \ldots x_{n}</tex>, где <tex>x_i \in {0,1}</tex>. | + | Возьмем в качестве сертификата набор <tex>x_1 \ldots x_{n}</tex>, где <tex>x_i \in \{0,1\}</tex>. |
Верификатор подставляет <tex>x_1 \ldots x_n</tex> в формулу и проверяет её на равенство единице. | Верификатор подставляет <tex>x_1 \ldots x_n</tex> в формулу и проверяет её на равенство единице. | ||
Время работы верификатора и длина сертификата, очевидно, полиномиальны. Итак, <tex>3SAT \in NP</tex>. | Время работы верификатора и длина сертификата, очевидно, полиномиальны. Итак, <tex>3SAT \in NP</tex>. |
Версия 18:07, 17 марта 2010
Содержание
Теорема
Доказательство
Для того, чтобы доказать
-полноту задачи, необходимо установить следующие факты:- .
- ;
Доказательство принадлежности классу
Возьмем в качестве сертификата набор
, где . Верификатор подставляет в формулу и проверяет её на равенство единице. Время работы верификатора и длина сертификата, очевидно, полиномиальны. Итак, .Доказательство принадлежности классу
Покажем, что
, то есть сводится по Куку к .Рассмотрим один дизъюнкт булевой формулы в форме 3-КНФ. Он должен иметь вид
. Научимся приводить члены вида , , к нужному виду.- заменим на . Ясно, что последняя формула выполнима тогда и только тогда, когда выполнима исходная, при любых ;
- заменим на - свели задачу к предыдущей;
- Если встречается скобка вида , введем новых переменных и заменим нашу скобку на скобки:
Таким образом, мы свели
к , следовательно . Теорема доказана.