stringtranslate.com

NP-твердость

Диаграмма Эйлера для P, NP, NP-полного и NP-трудного набора задач.
Диаграмма Эйлера для P , NP , NP-полного и NP-трудного набора задач. Левая часть действительна в предположении, что P≠NP , а правая часть действительна в предположении, что P=NP (за исключением того, что пустой язык и его дополнение никогда не являются NP-полными).

В теории сложности вычислений NP-трудность ( недетерминированная полиномиальная трудность по времени) является определяющим свойством класса задач, которые неформально «по крайней мере так же сложны, как самые сложные проблемы в NP » . Простым примером NP-трудной задачи является задача о сумме подмножеств .

Более точная спецификация такова: проблема H является NP-трудной, когда каждую задачу L из NP можно свести за полиномиальное время к H ; то есть, если предположить, что решение H занимает 1 единицу времени, решение H можно использовать для решения L за полиномиальное время. [1] [2] Как следствие, поиск алгоритма с полиномиальным временем для решения любой NP-сложной проблемы даст алгоритмы с полиномиальным временем для всех проблем в NP. Поскольку предполагается, что P≠NP , маловероятно, что такой алгоритм существует. [3]

Предполагается, что для решения NP-трудных задач не существует алгоритмов с полиномиальным временем, но это не доказано. [4] Более того, класс P , в котором все проблемы могут быть решены за полиномиальное время, содержится в классе NP . [5]

Определение

Проблема принятия решения H является NP-сложной, когда для каждой проблемы L в NP существует полиномиальное сокращение числа «много-один» от L до H . [1] : 80 

Другое определение состоит в том, чтобы потребовать, чтобы существовало полиномиальное сокращение NP-полной задачи G к H . [1] : 91  Поскольку любая проблема L в NP сводится за полиномиальное время к G , L , в свою очередь, сводится к H за полиномиальное время, поэтому из этого нового определения следует предыдущее. Он не ограничивает класс NP-трудных задачами решения, а также включает задачи поиска или задачи оптимизации .

Последствия

Если P ≠ NP, то NP-сложные задачи невозможно решить за полиномиальное время.

Некоторые NP-сложные задачи оптимизации могут быть аппроксимированы за полиномиальное время до некоторого постоянного коэффициента аппроксимации (в частности, в APX ) или даже до любого коэффициента аппроксимации (в PTAS или FPTAS ).

Примеры

Все NP-полные задачи также являются NP-сложными (см. Список NP-полных задач ). Например, задача оптимизации поиска циклического маршрута с наименьшей стоимостью через все узлы взвешенного графа, широко известная как задача коммивояжера , является NP-трудной. [6] Еще одним примером является проблема с суммой подмножеств : для данного набора целых чисел, любое их непустое подмножество в сумме дает ноль? Это проблема принятия решения , и она оказывается NP-полной.

Существуют задачи принятия решения, которые являются NP-сложными , но не NP-полными, например проблема остановки . Это проблема, которая спрашивает: «Для данной программы и ее ввода будет ли она работать вечно?» Это вопрос «да / нет» , как и проблема принятия решения. Легко доказать, что проблема остановки NP-трудна, но не NP-полна. Например, проблему логической выполнимости можно свести к проблеме остановки, преобразовав ее в описание машины Тьюринга , которая пробует все присваивания значений истинности и когда находит такое, которое удовлетворяет формуле, она останавливается, а в противном случае переходит в бесконечный цикл. Также легко видеть, что проблема остановки не относится к NP , поскольку все проблемы в NP разрешимы за конечное число операций, но проблема остановки, вообще говоря, неразрешима . Существуют также NP-сложные задачи, которые не являются ни NP-полными , ни неразрешимыми . Например, язык истинных количественных булевых формул разрешим в полиномиальном пространстве , но не в недетерминированном полиномиальном времени (если только NP = PSPACE ). [7]

Соглашение об именах NP

NP-сложные задачи не обязательно должны быть элементами класса сложности NP. Поскольку NP играет центральную роль в вычислительной сложности , он используется в качестве основы нескольких классов:

НП
Класс задач вычислительного решения, для которых любое заданное да -решение может быть проверено как решение за полиномиальное время с помощью детерминированной машины Тьюринга (или разрешимо с помощью недетерминированной машины Тьюринга за полиномиальное время).
NP-жесткий
Класс задач, которые по крайней мере так же сложны, как и самые сложные задачи в NP. Проблемы, которые являются NP-сложными, не обязательно должны быть элементами NP; более того, они могут быть даже неразрешимыми.
NP-полный
Класс задач решения, который содержит самые сложные задачи в NP. Каждая NP-полная задача должна находиться в NP.
NP-легко
Максимум так же сложно, как NP, но не обязательно в NP.
NP-эквивалент
Проблемы принятия решений, одновременно NP-сложные и NP-простые, но не обязательно NP.
NP-средний
Если P и NP различны, то в области NP существуют проблемы решения, которые находятся между P и NP-полными проблемами. (Если P и NP относятся к одному и тому же классу, то NP-промежуточных задач не существует, потому что в этом случае каждая NP-полная проблема попадет в P, и по определению каждая проблема из NP может быть сведена к NP-полной задаче. )

Области применения

NP-сложные проблемы часто решаются с помощью языков, основанных на правилах, в таких областях, как:

Смотрите также

Рекомендации

  1. ^ abc Leeuwen, Ян ван , изд. (1998). Справочник по теоретической информатике . Том. А. Алгоритмы и сложность. Амстердам: Эльзевир. ISBN 0262720140. ОКЛК  247934368.
  2. ^ Кнут, Дональд (1974). «Постскриптум о NP-трудных задачах». Новости ACM SIGACT . 6 (2): 15–16. дои : 10.1145/1008304.1008305. S2CID  46480926.
  3. ^ Даниэль Пьер Бове; Пьерлуиджи Крещенци (1994). Введение в теорию сложности . Прентис Холл. п. 69. ИСБН 0-13-915380-2.
  4. ^ «Shtetl-Optimized »Архив блога»Научное обоснование P≠NP» . www.scottaaronson.com . Проверено 25 сентября 2016 г.
  5. ^ «PHYS771 Лекция 6: P, NP и друзья» . www.scottaaronson.com . Проверено 25 сентября 2016 г.
  6. ^ Лоулер, Эл .; Ленстра, JK ; Риннуй Кан, AHG; Шмойс, Д.Б. (1985), Проблема коммивояжера: экскурсия по комбинаторной оптимизации , John Wiley & Sons, ISBN 0-471-90413-9.
  7. ^ Точнее, этот язык PSPACE-полный ; см., например, Wegener, Ingo (2005), «Теория сложности: исследование пределов эффективных алгоритмов», Springer, p. 189, ISBN 9783540210450.