NP-полнота задачи о выполнимости булевой формулы в форме 3-КНФ — различия между версиями
(→Доказательство) |
(→Доказательство принадлежности 3SAT классу NPH) |
||
Строка 20: | Строка 20: | ||
Покажем, что <tex>CNFSAT \le 3SAT</tex>, то есть <tex>CNFSAT</tex> [[Сведение_по_Куку|сводится по Куку]] к <tex>3SAT</tex>. | Покажем, что <tex>CNFSAT \le 3SAT</tex>, то есть <tex>CNFSAT</tex> [[Сведение_по_Куку|сводится по Куку]] к <tex>3SAT</tex>. | ||
− | Рассмотрим один дизъюнкт булевой формулы в форме 3-КНФ. Он должен иметь вид <tex>(x \vee y \vee z)</tex>. | + | Рассмотрим один [[NP-полнота_задачи_о_выполнимости_булевой_формулы_в_форме_КНФ|дизъюнкт булевой формулы]] в форме 3-КНФ. Он должен иметь вид <tex>(x \vee y \vee z)</tex>. |
Научимся приводить члены вида <tex>(x)</tex>, <tex>(x \vee y)</tex>, <tex>(x_1 \vee x_{2} \vee \ldots \vee x_{m})</tex> к нужному виду. | Научимся приводить члены вида <tex>(x)</tex>, <tex>(x \vee y)</tex>, <tex>(x_1 \vee x_{2} \vee \ldots \vee x_{m})</tex> к нужному виду. | ||
Версия 18:25, 17 марта 2010
Содержание
Задача
в 3-КНФ,
Теорема
Доказательство
Для того, чтобы доказать NP-полноту задачи, необходимо установить следующие факты:
- .
- ;
Доказательство принадлежности 3SAT классу NP
Возьмем в качестве сертификата набор
, где . Верификатор подставляет в формулу и проверяет её на равенство единице. Время работы верификатора и длина сертификата, очевидно, полиномиальны. Итак, .Доказательство принадлежности 3SAT классу NPH
Покажем, что сводится по Куку к .
, то естьРассмотрим один дизъюнкт булевой формулы в форме 3-КНФ. Он должен иметь вид . Научимся приводить члены вида , , к нужному виду.
- заменим на . Ясно, что последняя формула выполнима тогда и только тогда, когда выполнима исходная, при любых ;
- заменим на - свели задачу к предыдущей;
- Если встречается скобка вида , введем новых переменных и заменим нашу скобку на скобки:
Таким образом, мы свели
к , следовательно . Теорема доказана.