Изменения

Перейти к: навигация, поиск
Нет описания правки
* Если встречается дизъюнкт вида <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}^*)</tex> - набор значений <tex>x_i</tex>, удовлетворяющий дизъюнкт <tex>(x_1 \vee \ldots \vee x_k)</tex>, то существует такой набор значений <tex>z_{1}^* \ldots z_{k-3}^*</tex>, что каждый из <tex>k-2</tex> новых дизъюнктов также удовлетворен.
# Среди значений Если <tex>(x_{1}^* \ldots x_{k}^*)</tex> хотя бы одно должно равняться - набор значений <tex>truex_i</tex>. Не умаляя общности, пусть для некоторого удовлетворяющий дизъюнкт <tex>r: 1 (x_1 \vee \le r ldots \le k, x_r = truevee x_k)</tex>. Тогда, пусть то существует такой набор значений <tex>z_{s1}^*=true</tex> для <tex>s \le r-2</tex> и <tex>ldots z_{sk-3}^*=false</tex> для , что каждый из <tex>s > r k- 2</tex>. Тогда, все новые дизъюнкты новых дизъюнктов также будут удовлетвореныудовлетворен.
Докажем эти утверждения. Пусть все новые дизъюнкты удовлетворяются некоторым набором Действительно, среди значений <tex>x_i(x_{1}^* \ldots x_{k}^*)</tex> и хотя бы одно должно равняться <tex>z_itrue</tex>. ПокажемНе умаляя общности, что тогда хотя бы один из пусть для некоторого <tex>x_ir: 1 \le r \le k, x_r = true</tex> должен равняться . Тогда, пусть <tex>z_{s}^*=true</tex>для <tex>s \le r-2</tex> и <tex>z_{s}^*=false</tex> для <tex>s > r - 2</tex>. Тогда, все новые дизъюнкты также будут удовлетворены.
Наоборот, пусть все новые дизъюнкты удовлетворяются некоторым набором значений <tex>x_i</tex> и <tex>z_i</tex>. Покажем, что тогда хотя бы один из <tex>x_i</tex> должен равняться <tex>true</tex>. Предположим, что это не так, и <tex>x_i = false, i = 1..k</tex>. Тогда, первые <tex>k-3</tex> дизъюнкта в <tex>3SAT</tex> удовлетворены только если <tex>z_i = true, i=1..k-3</tex>. Однако, если <tex>z_{k-3}=true</tex>, то последний дизъюнкт <tex>(x_{k-1} \vee x_k \vee \neg z_{k-3})</tex> не можут может быть удовлетворен. Пришли к противоречию, следовательно хотя бы один из <tex>x_i</tex> должен равняться <tex>true</tex>.
Таким образом, мы свели <tex>CNFSAT</tex> к <tex>3SAT</TEX>, следовательно <tex>3SAT \in NPH</tex>. Теорема доказана.
 
[[Категория:NP]]
202
правки

Навигация