NP-полная задача | это... Что такое NP-полная задача? (original) (raw)

В теории алгоритмов NP-полная задача — задача из класса NP, к которой можно свести любую другую задачу из класса NP за полиномиальное время. Таким образом, NP-полные задачи образуют в некотором смысле подмножество «самых сложных» задач в классе NP; и если для какой-то из них будет найден «быстрый» алгоритм решения, то и любая другая задача из класса NP может быть решена так же «быстро».

Содержание

Формальное определение

Алфавитом называется всякое конечное множество символов (например, \{0,1\} или \{a,b,c\}). Множество всех возможных слов (конечных строк, составленных из символов этого алфавита) над некоторым алфавитом \Sigma обозначается \Sigma^*. Языком L над алфавитом \Sigma называется всякое подмножество множества \Sigma^*, то есть L\subset\Sigma^*.

Задачей распознавания для языка L называется определение того, принадлежит ли данное слово языку L.

Язык L_1 называется сводимым (по Карпу) к языку L_2, если существует функция, f: \Sigma^* \to \Sigma^*, вычислимая за полиномиальное время, обладающая следующим свойством:

Сводимость по Карпу обозначается как L_1 {\le}_p L_2 или L_1 \varpropto L_2.

Язык L_2 называется NP-трудным, если любой язык из класса NP сводится к нему. Язык называют NP-полным, если он NP-труден, и при этом сам лежит в классе NP.

Таким образом, если будет найден алгоритм, решающий некоторую (любую) NP-полную задачу за полиномиальное время, то все NP-задачи окажутся в классе P, то есть будут решаться за полиномиальное время.

NP-полнота в сильном смысле

Задача называется NP-полной в сильном смысле, если у неё существует подзадача, которая:

  1. не является задачей с числовыми параметрами (т.е. максимальное значение величин, встречающихся в этой задаче ограничено сверху полиномом от длины входа),
  2. принадлежит классу NP,
  3. является NP-полной.

Класс таких задач называется NPCS. Если гипотеза P ≠ NP верна, то для NPCS задачи не существует псевдополиномиального алгоритма.

Гипотеза P ≠ NP

Вопрос о совпадении классов P и NP уже более 30 лет является открытой проблемой. Научное сообщество склоняется к отрицательному ответу на этот вопрос[1] — в этом случае решать NP-полные задачи за полиномиальное время не удастся.

Примеры NP-полных задач

См. также

Примечания

  1. William I. Gasarch (2002). «The P=?NP poll.». SIGACT News 33 (2): 34–47. DOI:10.1145/1052796.1052804.
  2. Erik D. Demaine, Susan Hohenberger, David Liben-Nowell. Tetris is Hard, Even to Approximate (англ.). preprint.

Литература

Ссылки

Просмотр этого шаблона NP-полные задачи
Математика
Исследование операций:Оптимизация:Комбинаторная оптимизация
Максимизационная задача укладки (упаковки) Упаковка в контейнеры (двумерная упаковка • линейная упаковка • упаковка по весу • упаковка по стоимости) • Задача о ранце (рюкзаке)
Теория графов теория множеств Задача о вершинном покрытииЗадача о кликеЗадача о независимом множестве (наборе)Задача о покрытии множестваЗадача ШтейнераЗадача коммивояжёраОбобщённая задача коммивояжёра
Алгоритмические задачи Задача выполнимости булевых формул (в конъюнктивной нормальной форме)
Логические игры и головоломки Обобщённые пятнашки с костяшками >15) (задача поиска кратчайшего решения) • Задачи, решения которых применяются в ТетрисЗадача обобщённого судокуЗадача о заполнении латинского квадратаЗадача какуро
См. также Прикладная математикаТеория алгоритмовДинамическое программирование21 NP-полная задача Карпа
Классы сложности