stringtranslate.com

NP-твердость

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

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

Простым примером NP-трудной задачи является задача о сумме подмножеств .

Неформально, если H является NP-трудной, то она по крайней мере так же сложна для решения, как и проблемы в NP . Однако обратное неверно: некоторые проблемы неразрешимы , и поэтому их даже сложнее решить, чем все проблемы в NP, но они, вероятно, не являются NP-трудными (если только 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 ). Существует много классов аппроксимируемости, каждый из которых позволяет аппроксимировать до разного уровня. [6]

Примеры

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

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

Соглашение об именовании 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, Jan van , ред. (1998). Справочник по теоретической информатике . Том A, Алгоритмы и сложность. Амстердам: Elsevier. ISBN 0262720140. OCLC  247934368.
  2. ^ Кнут, Дональд (1974). «Постскриптум о NP-трудных задачах». ACM SIGACT News . 6 (2): 15–16. doi :10.1145/1008304.1008305. S2CID  46480926.
  3. ^ Даниэль Пьер Бове; Пьерлуиджи Крещенци (1994). Введение в теорию сложности . Прентис Холл. п. 69. ИСБН 0-13-915380-2.
  4. ^ "Shtetl-Optimized » Архив блога » Научный случай P≠NP". www.scottaaronson.com . Получено 25.09.2016 .
  5. ^ "Является ли неразрешимая (дополнение R) подмножеством NP-трудной?". Computer Science Stack Exchange . Получено 2024-02-09 .
  6. ^ Эскофье, Б.; Пашос, Б.Т. (2010). «Обзор структуры классов аппроксимации». Computer Science Review . 4 (1): 19–40.
  7. ^ Лоулер, EL ; Ленстра, JK ; Ринной Кан, AHG; Шмойс, DB (1985), Задача коммивояжера: путеводитель по комбинаторной оптимизации , John Wiley & Sons, ISBN 0-471-90413-9.
  8. ^ Точнее, этот язык является PSPACE-полным ; см., например, Wegener, Ingo (2005), Complexity Theory: Exploring the Limits of Efficient Algorithms, Springer, стр. 189, ISBN 9783540210450.