Примеры NP-полных языков. Теорема Кука — различия между версиями
(→Ссылки) |
Shevchen (обсуждение | вклад) (Заменил жирные классы на \mathrm) |
||
Строка 2: | Строка 2: | ||
== Введение == | == Введение == | ||
− | В этой статье мы рассмотрим класс | + | В этой статье мы рассмотрим класс <tex>\mathrm{NP}</tex>-полных языков {{---}} <tex>\mathrm{NPC}</tex>. |
− | + | <tex>\mathrm{NPC}</tex> является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс <tex>\mathrm{P}</tex>, | |
− | тогда окажется, что | + | тогда окажется, что <tex>\mathrm{P} = \mathrm{NP}</tex>. |
− | Мы рассмотрим некоторые языки и докажем их | + | Мы рассмотрим некоторые языки и докажем их <tex>\mathrm{NP}</tex>-полноту. Начнем мы с языка <tex> \mathrm{BH_{1N}} </tex>, так как к нему несложно сводятся все языки из <tex>\mathrm{NP}</tex>. |
− | Потом с помощью [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи|сведений по Карпу]] будем сводить уже известные языки из | + | Потом с помощью [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи|сведений по Карпу]] будем сводить уже известные языки из <tex>\mathrm{NPC}</tex> к новым языкам, тем самым доказывая их <tex>\mathrm{NP}</tex>-трудность, а потом и <tex>\mathrm{NP}</tex>-полноту. |
− | Доказательство | + | Доказательство <tex>\mathrm{NP}</tex>-полноты будет состоять из двух пунктов: доказательство <tex>\mathrm{NP}</tex>-трудности и принадлежности языка классу <tex>\mathrm{NP}</tex>. |
== NP-полнота <tex> \mathrm{BH_{1N}} </tex> == | == NP-полнота <tex> \mathrm{BH_{1N}} </tex> == | ||
− | <tex> \mathrm{BH_{1N}} </tex> {{---}} язык троек <tex> \langle m, x, 1^t \rangle </tex>, таких что недетерминированная машина Тьюринга <tex> m </tex> на входной строке <tex> x </tex> возращает | + | <tex> \mathrm{BH_{1N}} </tex> {{---}} язык троек <tex> \langle m, x, 1^t \rangle </tex>, таких что недетерминированная машина Тьюринга <tex> m </tex> на входной строке <tex> x </tex> возращает <tex>1</tex> за время <tex> T(m, x) \le t </tex>. |
<tex> \mathrm{BH_{1N}} = \lbrace \langle m, x, 1^t \rangle \bigm| m </tex> {{---}} недерминированная машина Тьюринга, <tex> m(x) = 1, T(m,x) \le t \rbrace </tex> | <tex> \mathrm{BH_{1N}} = \lbrace \langle m, x, 1^t \rangle \bigm| m </tex> {{---}} недерминированная машина Тьюринга, <tex> m(x) = 1, T(m,x) \le t \rbrace </tex> | ||
Строка 30: | Строка 30: | ||
|proof= | |proof= | ||
# <tex> \mathrm{SAT}\in \mathrm{NPH} </tex> | # <tex> \mathrm{SAT}\in \mathrm{NPH} </tex> | ||
− | # <tex> \mathrm{SAT}\in \mathrm{NP} </tex> <br>Можно написать недетерминированную программу <tex> p</tex>, которая распознает язык <tex> \mathrm{SAT} </tex>. Она будет недетерминированно выбирать подстановку, проверять истинна ли формула при такой подстановке и выдавать ответ: | + | # <tex> \mathrm{SAT}\in \mathrm{NP} </tex> <br>Можно написать недетерминированную программу <tex>p</tex>, которая распознает язык <tex> \mathrm{SAT} </tex>. Она будет недетерминированно выбирать подстановку, проверять, истинна ли формула при такой подстановке, и выдавать ответ: |
<font size = 2> | <font size = 2> | ||
<tex>p(\varphi)</tex> | <tex>p(\varphi)</tex> |
Версия 17:06, 4 июня 2012
Эта статья находится в разработке!
Содержание
Введение
В этой статье мы рассмотрим класс
-полных языков — . является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс , тогда окажется, что .Мы рассмотрим некоторые языки и докажем их сведений по Карпу будем сводить уже известные языки из к новым языкам, тем самым доказывая их -трудность, а потом и -полноту. Доказательство -полноты будет состоять из двух пунктов: доказательство -трудности и принадлежности языка классу .
-полноту. Начнем мы с языка , так как к нему несложно сводятся все языки из . Потом с помощьюNP-полнота
— язык троек , таких что недетерминированная машина Тьюринга на входной строке возращает за время .
— недерминированная машина Тьюринга,
Теорема: |
Доказательство: |
|
NP-полнота
— язык булевых формул из переменных, для которых существует подстановка, при которой формула истинна.
Теорема (Кук): |
Доказательство: |
for : = choose ; if == 1: return 1 else return 0 |