NP-полнота задачи о выполнимости булевой формулы в форме 3-КНФ — различия между версиями
Строка 12: | Строка 12: | ||
− | Для того, чтобы доказать первый факт, предъявим сертификат: набор <tex>x_1 \ldots x_{n}</tex>, удовлетворяющий формулу. | + | Для того, чтобы доказать первый факт, предъявим сертификат: набор <tex>x_1 \ldots x_{n}</tex>, удовлетворяющий формулу. Итак, <tex>SAT \in NP</tex>. |
Теперь докажем <tex>NP</tex>-трудность <tex>3SAT</tex>. | Теперь докажем <tex>NP</tex>-трудность <tex>3SAT</tex>. | ||
Строка 24: | Строка 24: | ||
* Если встречается скобка вида <tex>(x_1 \ldots x_k), k \ge 3</tex>, введем <tex>k-3</tex> новых переменных и заменим нашу скобку на <tex>k-2</tex> скобки: <tex>(x_1 \vee x_2 \vee z_1) \wedge (x_3 \vee \neg z_1 \vee z_2) \wedge (x_4 \vee \neg z_2 \vee z_3) \wedge \ldots \wedge (x_{k-1} \vee x_k \vee \neg z_{k-3})</tex> | * Если встречается скобка вида <tex>(x_1 \ldots x_k), k \ge 3</tex>, введем <tex>k-3</tex> новых переменных и заменим нашу скобку на <tex>k-2</tex> скобки: <tex>(x_1 \vee x_2 \vee z_1) \wedge (x_3 \vee \neg z_1 \vee z_2) \wedge (x_4 \vee \neg z_2 \vee z_3) \wedge \ldots \wedge (x_{k-1} \vee x_k \vee \neg z_{k-3})</tex> | ||
− | Таким образом, мы свели <tex>CNFSAT</tex> к <tex>3SAT</TEX>, следовательно <tex> | + | Таким образом, мы свели <tex>CNFSAT</tex> к <tex>3SAT</TEX>, следовательно <tex>3SAT \in NPH</tex>. Теорема доказана. |
Версия 17:39, 16 марта 2010
Теорема
, т.е. задача о выполнимости булевой формулы в форме 3-КНФ -полна.
Доказательство
Для того, чтобы доказать
-полноту задачи, необходимо установить следующие факты:- .
- ;
Для того, чтобы доказать первый факт, предъявим сертификат: набор , удовлетворяющий формулу. Итак, .
Теперь докажем
-трудность . Для этого покажем, что , то есть сводится по Куку к .Рассмотрим один член булевой формулы в форме КНФ (скобку). В форме 3-КНФ этот член должен иметь вид
. Научимся приводить члены вида , , к нужному виду.- заменим на . Ясно, что последняя формула выполнима тогда и только тогда, когда выполнима исходная, при любых ;
- заменим на - свели задачу к предыдущей;
- Если встречается скобка вида , введем новых переменных и заменим нашу скобку на скобки:
Таким образом, мы свели
к , следовательно . Теорема доказана.