Примеры NP-полных языков. Теорема Кука — различия между версиями
(изменил форматирование в соответствии с новыми правилами ведения конспектов) |
м |
||
Строка 2: | Строка 2: | ||
== Введение == | == Введение == | ||
− | В этой статье мы рассмотрим класс NP-полных языков {{---}} NPC. | + | В этой статье мы рассмотрим класс '''NP'''-полных языков {{---}} '''NPC'''. |
− | NPC является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс P, | + | '''NPC''' является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс '''P''', |
− | тогда окажется, что P = NP. | + | тогда окажется, что '''P = NP'''. |
− | Мы рассмотрим некоторые языки и докажем их NP-полноту. Начнем мы с языка <tex> \mathrm{BH_{1N}} </tex>, так как к нему несложно сводятся все языки из NP. | + | Мы рассмотрим некоторые языки и докажем их '''NP'''-полноту. Начнем мы с языка <tex> \mathrm{BH_{1N}} </tex>, так как к нему несложно сводятся все языки из '''NP'''. |
− | Потом с помощью сведений по Карпу будем сводить уже известные языки из NPC к новым языкам, тем самым доказывая их NP-трудность, а потом и NP-полноту. | + | Потом с помощью сведений по Карпу будем сводить уже известные языки из '''NPC''' к новым языкам, тем самым доказывая их '''NP'''-трудность, а потом и '''NP'''-полноту. |
− | Доказательство NP-полноты будет состоять из двух пунктов: доказательство NP-трудности и принадлежности языка классу NP. | + | Доказательство '''NP'''-полноты будет состоять из двух пунктов: доказательство '''NP'''-трудности и принадлежности языка классу '''NP'''. |
== 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> возращает 1 за время <tex> T(m, x) \le t </tex>. | + | <tex> \mathrm{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> \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> |
Версия 10:41, 4 июня 2012
Эта статья находится в разработке!
Содержание
Введение
В этой статье мы рассмотрим класс NP-полных языков — NPC. NPC является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс P, тогда окажется, что P = NP.
Мы рассмотрим некоторые языки и докажем их NP-полноту. Начнем мы с языка
, так как к нему несложно сводятся все языки из NP. Потом с помощью сведений по Карпу будем сводить уже известные языки из NPC к новым языкам, тем самым доказывая их NP-трудность, а потом и NP-полноту. Доказательство NP-полноты будет состоять из двух пунктов: доказательство NP-трудности и принадлежности языка классу NP.NP-полнота
— язык троек , таких что недетерминированная машина Тьюринга на входной строке возращает 1 за время .
— недерминированная машина Тьюринга,
Теорема: |
Доказательство: |
|
NP-полнота
— язык булевых формул из переменных, для которых существует подстановка, при которой формула истинна.
Теорема (Кук): |
Доказательство: |
for : = random(2); if == 1: return 1 else return 0 |