Примеры NP-полных языков. Теорема Кука — различия между версиями
(Новая страница: «{{В разработке}} == Введение == В этой статье мы рассмотрим класс NP-полных языков {{---}} NPC. NPC я...») |
|||
Строка 11: | Строка 11: | ||
== NP-полнота <tex> BH_{1N} </tex> == | == NP-полнота <tex> BH_{1N} </tex> == | ||
− | BH_{1N} {{---}} язык троек <tex> \langle m, x, 1^t \rangle </tex>, таких что недетерминированная машина Тьюринга <tex> m </tex> на входной строке <tex> x </tex> возращает 1 за время <tex> T(m, x) \le t </tex>. | + | <tex> BH_{1N} </tex> {{---}} язык троек <tex> \langle m, x, 1^t \rangle </tex>, таких что недетерминированная машина Тьюринга <tex> m </tex> на входной строке <tex> x </tex> возращает 1 за время <tex> T(m, x) \le t </tex>. |
− | <tex> BH_{1N} = \lbrace \langle m, x, 1^t \rangle \rbrace </tex> | + | <tex> BH_{1N} = \lbrace \langle m, x, 1^t \rangle | m </tex> {{---}} недерминированная машина Тьюринга, <tex> m(x) = 1, T(m,x) \le t \rbrace </tex> |
{{Теорема | {{Теорема | ||
|statement=<tex> BH_{1N} \in NPC </tex> | |statement=<tex> BH_{1N} \in NPC </tex> | ||
Строка 19: | Строка 19: | ||
# <tex> BH_{1N} \in NPH </tex> | # <tex> BH_{1N} \in NPH </tex> | ||
# <tex> BH_{1N} \in NP </tex> | # <tex> BH_{1N} \in NP </tex> | ||
+ | }} | ||
+ | |||
+ | == NP-полнота <tex> SAT </tex> == | ||
+ | <tex> SAT </tex> {{---}} язык булевых формул, для которых существует подстановка, при которой формула истинна. | ||
+ | |||
+ | <tex> SAT = \lbrace \varphi\ |\ \exists x : \varphi(x) = 1 \rbrace </tex> | ||
+ | {{Теорема | ||
+ | |author=Кук | ||
+ | |statement=<tex> SAT \in NPC </tex> | ||
+ | |proof= | ||
+ | # <tex> SAT \in NPH </tex> | ||
+ | # <tex> SAT \in NP </tex> <br>Можно написать недетерминированную программу, которая распознает язык SAT. Она будет недетерминированно выбирать подстановку, проверять истинна ли формула при такой подстановке и выдавать ответ. | ||
}} | }} |
Версия 13:20, 15 апреля 2012
Эта статья находится в разработке!
Введение
В этой статье мы рассмотрим класс NP-полных языков — NPC. NPC является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс P, тогда окажется, что P = NP.
Мы рассмотрим некоторые языки и докажем их NP-полноту. Начнем мы с языка
, так как к нему несложно сводятся все языки из NP. Потом с помощью сведений по Карпу будем сводить уже известные языки из NPC к новым языкам, тем самым доказывая их NP-трудность, а потом и NP-полноту. Доказательство NP-полноты будет состоять из двух пунктов: доказательство NP-трудности и принадлежности языка классу NP.NP-полнота
— язык троек , таких что недетерминированная машина Тьюринга на входной строке возращает 1 за время .
— недерминированная машина Тьюринга,
Теорема: |
Доказательство: |
|
NP-полнота
— язык булевых формул, для которых существует подстановка, при которой формула истинна.
Теорема (Кук): |
Доказательство: |
|