Класс NP
Версия от 18:26, 18 марта 2010; Perovskaya (обсуждение | вклад)
В теории сложности Класс
— класс языков (задач), ответ на которые можно проверить за полиномиальное время.Содержание
Определение
Определение класса NP через класс NTIME и класс NSPACE.
Класс
Альтернативным определением класса NP является определение на языке сертификатов. Классом
называется класс языков (задач) L, таких что для каждого из них существует полиномиальный верификатор сертификата(утверждения) R, а также полином p, такие что слово l принадлежит языку L тогда и только тогда, когда существует сертификат (утверждение) y, длина которого не превосходит заданного полинома p, и сертификат удовлетворяет верификатору.
Теорема о равенстве и
Формулировка
Доказательство
Построим доказательство равенство из доказательств двух взаимных включений.
Построим программу, работающую за полином (из свойств машины Тьюринга, возможно построить аналогичную машину Тьюринга, работающюю за полиномиальное время, возможно большее), которая будет проверять решение задачи, входящей в класс
. Таким образом покажем вхождение класса в .Вхождение доказано.
Пусть
. Тогда существует НМТ m, распознающая L. Построим сертификат y как последовательность недетерминированных выборов машины m, приводящих к допуску слова. Верификатором сертификата R выберем структуру, симулирующую НМТ, возвращающую 0 при ошибке выполнения или завершении работы в недопускающем состоянии, и 1, если работа НМТ завершилась корректно в допускающем состоянии. Таким образом, , что и требовалось доказать.Теорема доказана.
Теорема о равенстве и
Примеры задач класса NP
- Задача о нахождении независимого множества заданного размера в графе. IND
- Задача о нахождении клики заданного размера в графе. CLIQUE
- Задача о нахождении вершинного покрытия заданного размера в графе. COVER
- Задача о удовлетворении булевой формулы, заданной в КНФ. SAT