Примеры NP-полных языков. Теорема Кука — различия между версиями
Строка 7: | Строка 7: | ||
Мы рассмотрим некоторые языки и докажем их '''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'''. | ||
Строка 49: | Строка 49: | ||
=== NP-полнота задачи о рюкзаке === | === NP-полнота задачи о рюкзаке === | ||
+ | == Ссылки == | ||
+ | * [[Класс P]] | ||
+ | * [[Недетерминированные вычисления. Классы NP и Σ₁]] | ||
+ | * [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]] | ||
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] |
Версия 15:53, 4 июня 2012
Эта статья находится в разработке!
Содержание
Введение
В этой статье мы рассмотрим класс NP-полных языков — NPC. NPC является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс P, тогда окажется, что P = NP.
Мы рассмотрим некоторые языки и докажем их NP-полноту. Начнем мы с языка сведений по Карпу будем сводить уже известные языки из NPC к новым языкам, тем самым доказывая их NP-трудность, а потом и NP-полноту. Доказательство NP-полноты будет состоять из двух пунктов: доказательство NP-трудности и принадлежности языка классу NP.
, так как к нему несложно сводятся все языки из NP. Потом с помощьюNP-полнота
— язык троек , таких что недетерминированная машина Тьюринга на входной строке возращает 1 за время .
— недерминированная машина Тьюринга,
Теорема: |
Доказательство: |
|
NP-полнота
— язык булевых формул из переменных, для которых существует подстановка, при которой формула истинна.
Теорема (Кук): |
Доказательство: |
for : = choose ; if == 1: return 1 else return 0 |