NP-полнота задачи о выполнимости булевой формулы в форме КНФ — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Доказательство принадлежности классу NP)
(Доказательство принадлежности классу NP)
Строка 13: Строка 13:
 
* <tex> CNFSAT \in NPH </tex>
 
* <tex> CNFSAT \in NPH </tex>
 
==== Доказательство принадлежности классу NP ====
 
==== Доказательство принадлежности классу NP ====
В качестве сертификата выберем набор литералов <tex>\{y_1, ...,y_n\}</tex>, представляющий собой набор из нулей и единиц. Верификатору останется подставить эти значения в качестве аргументов в формулу <tex>\phi(x_1, ..., x_n)</tex> и проверить, выдает ли она единицу. Длина сертификата и время работы верификатора, очевидно, удовлетворяют условиям полиномиальности. Таким образом, <tex>CNFSAT \in NP</tex>
+
В качестве сертификата выберем множество <tex>\{y_1, ...,y_n\}</tex>, представляющее собой набор из нулей и единиц. Верификатору останется подставить эти значения в качестве аргументов в формулу <tex>\phi(x_1, ..., x_n)</tex> и проверить, выдает ли она единицу. Длина сертификата и время работы верификатора, очевидно, удовлетворяют условиям полиномиальности. Таким образом, <tex>CNFSAT \in \Sigma_1 = NP</tex>
  
 
==== Доказательство принадлежности классу NPH ====
 
==== Доказательство принадлежности классу NPH ====

Версия 15:25, 17 марта 2010

Определения

  • Литералом является переменная или отрицание переменной. Например, [math]x[/math] или [math]\neg y[/math].
  • Дизъюнктом называется логическое ИЛИ одного или нескольких литералов. Например, [math]x \vee \neg y \vee z[/math]
  • Говорят, что формула записана в конъюнктивной нормальной форме (КНФ), если представляет собой логическое И дизъюнктов.

Определение

[math]CNFSAT = \{\phi \ |\ \phi [/math] в КНФ, [math]\phi \in [/math] SAT [math] \} [/math] — задача о выполнимости булевой формулы в форме КНФ.

Теорема

[math] CNFSAT \in NPC. [/math]

Доказательство

Для доказательства теоремы необходимо установить два факта:

  • [math] CNFSAT \in NP [/math]
  • [math] CNFSAT \in NPH [/math]

Доказательство принадлежности классу NP

В качестве сертификата выберем множество [math]\{y_1, ...,y_n\}[/math], представляющее собой набор из нулей и единиц. Верификатору останется подставить эти значения в качестве аргументов в формулу [math]\phi(x_1, ..., x_n)[/math] и проверить, выдает ли она единицу. Длина сертификата и время работы верификатора, очевидно, удовлетворяют условиям полиномиальности. Таким образом, [math]CNFSAT \in \Sigma_1 = NP[/math]

Доказательство принадлежности классу NPH