Примеры 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
— язык булевых формул, заданных в КНФ, таких что для них существует подстановка, при которой формула истинна.
задано в КНФ и
| Теорема: | 
| Доказательство: | 
| 
 
 
 | 
