Примеры NP-полных языков. Теорема Кука — различия между версиями
Строка 253: | Строка 253: | ||
:# Пусть в результате работы функции <tex>f</tex> получили выполнимую формулу <tex>\varphi</tex>, следовательно существует такой набор переменных <tex>Y_{i,j,c}</tex>, что <tex>\varphi</tex> на нем принимает значение ''истина''. Тогда по данному набору можем построить таблицу, по которой восстановим допускающую цепочку переходов <tex>q_0 \vdash q_1 \vdash ... \vdash q_t</tex>. Совершив эти переходы машина <tex>m</tex> перейдет в допускающее состояние за время <tex>t</tex>, следовательно <tex>\langle m, x, 1^t\rangle \in \mathrm{BH_{1N}}</tex>. | :# Пусть в результате работы функции <tex>f</tex> получили выполнимую формулу <tex>\varphi</tex>, следовательно существует такой набор переменных <tex>Y_{i,j,c}</tex>, что <tex>\varphi</tex> на нем принимает значение ''истина''. Тогда по данному набору можем построить таблицу, по которой восстановим допускающую цепочку переходов <tex>q_0 \vdash q_1 \vdash ... \vdash q_t</tex>. Совершив эти переходы машина <tex>m</tex> перейдет в допускающее состояние за время <tex>t</tex>, следовательно <tex>\langle m, x, 1^t\rangle \in \mathrm{BH_{1N}}</tex>. | ||
− | Значит <tex> \mathrm{SAT} \in \mathrm{NPC} </tex>, что и требовалось доказать. | + | :Значит <tex> \mathrm{SAT} \in \mathrm{NPC} </tex>, что и требовалось доказать. |
}} | }} | ||
Строка 259: | Строка 259: | ||
== Другие примеры NP-полных языков == | == Другие примеры NP-полных языков == | ||
=== NP-полнота CNFSAT === | === NP-полнота CNFSAT === | ||
− | <tex> \mathrm{CNFSAT} </tex>{{---}} язык булевых формул, заданных в [[КНФ]]. | + | <tex> \mathrm{CNFSAT} </tex>{{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. |
<tex> \mathrm{CNFSAT} = \lbrace \varphi(x_1 \ldots x_n) \bigm| \varphi </tex> задано в КНФ и <tex> \exists x_1 \ldots x_n : \varphi(x_1 \ldots x_n) = 1 \rbrace </tex> | <tex> \mathrm{CNFSAT} = \lbrace \varphi(x_1 \ldots x_n) \bigm| \varphi </tex> задано в КНФ и <tex> \exists x_1 \ldots x_n : \varphi(x_1 \ldots x_n) = 1 \rbrace </tex> | ||
Строка 277: | Строка 277: | ||
− | <tex> | + | :Значит <tex> \mathrm{CNFSAT} \in \mathrm{NPC} </tex>. |
}} | }} | ||
=== NP-полнота 3-SAT === | === NP-полнота 3-SAT === | ||
Строка 290: | Строка 290: | ||
* [[Классы NP и Σ₁]] | * [[Классы NP и Σ₁]] | ||
* [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]] | * [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]] | ||
+ | * [http://en.wikipedia.org/wiki/List_of_NP-complete_problems Список NP-полных задач] | ||
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] |
Версия 12:47, 18 июня 2012
Эта статья находится в разработке!
Содержание
Введение
В этой статье мы рассмотрим класс
-полных языков — . является одним из важнейших классов в теории сложности, так как если найдется язык из этого класса, который также входит в класс , тогда окажется, что .Мы рассмотрим некоторые языки и докажем их сведений по Карпу будем сводить уже известные языки из к новым языкам, тем самым доказывая их -трудность, а потом и -полноту. Доказательство -полноты будет состоять из двух пунктов: доказательство -трудности и принадлежности языка классу .
-полноту. Начнем мы с языка , так как к нему несложно сводятся все языки из . Потом с помощьюNP-полнота
— язык троек , таких что недетерминированная машина Тьюринга на входной строке возращает за время .
— недетерминированная машина Тьюринга,
Теорема: |
Доказательство: |
|
NP-полнота
— язык булевых формул из переменных, для которых существует подстановка, при которой формула истинна.
Теорема (Кук): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Доказательство: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Другие примеры NP-полных языков
NP-полнота CNFSAT
КНФ, таких что для них существует подстановка, при которой формула истинна.
— язык булевых формул, заданных взадано в КНФ и
Теорема: |
Доказательство: |
|