stringtranslate.com

NP-полнота

Задача выполнимости булевых уравнений (SAT) заключается в определении того, можно ли сделать пропозициональную формулу (пример на рисунке) истинной с помощью соответствующего присваивания («решения») значений истинности ее переменным. Хотя легко проверить, делает ли данное присваивание формулу истинной , [1] не известно существенно более быстрого метода поиска удовлетворяющего присваивания, чем перебрать все присваивания подряд. Кук и Левин доказали, что каждая легко проверяемая задача может быть решена так же быстро, как SAT, которая, следовательно, является NP-полной.

В теории вычислительной сложности задача является NP-полной, если:

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

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

Точнее, каждый вход в задачу должен быть связан с набором решений полиномиальной длины, справедливость каждого из которых может быть быстро проверена (за полиномиальное время ), [2] таким образом, чтобы выход для любого входа был «да», если набор решений непустой, и «нет», если он пустой. Класс сложности задач такого вида называется NP , сокращение от «недетерминированное полиномиальное время». Задача называется NP-трудной , если все в NP может быть преобразовано в нее за полиномиальное время, даже если она может не быть в NP. Задача является NP-полной, если она одновременно и в NP, и в NP-трудной. NP-полные задачи представляют собой самые сложные задачи в NP. Если некоторая NP-полная задача имеет алгоритм полиномиального времени, то все задачи в NP имеют его. Множество NP-полных задач часто обозначается NP-C или NPC .

Хотя решение NP-полной задачи можно проверить «быстро», не существует известного способа быстрого нахождения решения. То есть, время, необходимое для решения задачи с использованием любого известного в настоящее время алгоритма, быстро увеличивается по мере роста размера задачи. Как следствие, определение того, возможно ли быстро решить эти задачи, называемое проблемой P против NP , является одной из фундаментальных нерешенных проблем в компьютерной науке сегодня.

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

Обзор

NP-полные задачи находятся в NP , множестве всех задач принятия решений , решения которых могут быть проверены за полиномиальное время; NP может быть эквивалентно определено как множество задач принятия решений, которые могут быть решены за полиномиальное время на недетерминированной машине Тьюринга . Задача p в NP является NP-полной, если каждая другая задача в NP может быть преобразована (или сведена) к p за полиномиальное время. [ требуется ссылка ]

Неизвестно, можно ли быстро решить каждую задачу из NP — это называется проблемой P против NP . Но если любую NP-полную задачу можно решить быстро, то можно решить и любую задачу из NP , потому что определение NP-полной задачи гласит, что каждая задача из NP должна быть быстро сведена к любой NP-полной задаче (то есть ее можно свести за полиномиальное время). Из-за этого часто говорят, что NP-полные задачи сложнее или труднее, чем задачи NP в целом. [ требуется цитата ]

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

Задача принятия решения является NP-полной, если: [ необходима ссылка ]

  1. находится в NP, и
  2. Каждая задача из NP сводится к решению за полиномиальное время. [3]

можно показать, что она принадлежит классу NP, показав, что возможное решение может быть проверено за полиномиальное время.

Обратите внимание, что задача, удовлетворяющая условию 2, называется NP-трудной , независимо от того, удовлетворяет ли она условию 1. [4]

Следствием этого определения является то, что если бы у нас был алгоритм с полиномиальным временем (на UTM или любой другой абстрактной машине , эквивалентной Тьюрингу ) для , мы могли бы решить все задачи из NP за полиномиальное время.

Фон

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

Понятие NP-полноты было введено в 1971 году (см. теорему Кука–Левина ), хотя термин NP-полный был введен позже. На конференции STOC 1971 года между специалистами по информатике разгорелись ожесточенные дебаты о том, можно ли решить NP-полные задачи за полиномиальное время на детерминированной машине Тьюринга . Джон Хопкрофт привел всех на конференции к консенсусу, что вопрос о том, разрешимы ли NP-полные задачи за полиномиальное время, следует отложить на более позднее время, поскольку ни у кого не было никаких формальных доказательств своих утверждений так или иначе. [ требуется цитата ] Это известно как «вопрос о том, P=NP».

Никто пока не смог окончательно определить, действительно ли NP-полные задачи решаемы за полиномиальное время, что делает это одной из величайших нерешенных проблем математики . Математический институт Клэя предлагает награду в 1 миллион долларов США ( Премия тысячелетия ) любому, кто предоставит формальное доказательство того, что P=NP или P≠NP. [5]

Существование NP-полных задач не очевидно. Теорема Кука–Левина утверждает, что проблема булевой выполнимости является NP-полной, тем самым устанавливая, что такие задачи существуют. В 1972 году Ричард Карп доказал, что несколько других задач также являются NP-полными (см. 21 NP-полную задачу Карпа ); таким образом, существует класс NP-полных задач (помимо проблемы булевой выполнимости). После получения первоначальных результатов было показано, что тысячи других задач являются NP-полными путем сведения других задач, ранее показанных как NP-полные; многие из этих задач собраны в Garey & Johnson (1979).

NP-полные задачи

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

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

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

Часто существует лишь небольшая разница между задачей в P и NP-полной задачей. Например, задача 3-выполнимости , ограничение задачи булевой выполнимости, остается NP-полной, тогда как немного более ограниченная задача 2-выполнимости находится в P (в частности, она является NL-полной ), но немного более общая задача max. 2-sat. снова является NP-полной. Определение того, можно ли раскрасить граф в 2 цвета, находится в P, но с 3 цветами является NP-полной, даже если ограничено планарными графами . Определение того, является ли граф циклом или двудольным , очень просто (в L ), но нахождение максимального двудольного или максимального циклического подграфа является NP-полным. Решение задачи о рюкзаке в пределах любого фиксированного процента от оптимального решения может быть вычислено за полиномиальное время, но нахождение оптимального решения является NP-полным.

Промежуточные задачи

Интересным примером является проблема изоморфизма графов , проблема теории графов , определяющая, существует ли изоморфизм графов между двумя графами. Два графа являются изоморфными, если один может быть преобразован в другой простым переименованием вершин . Рассмотрим эти две проблемы:

Проблема изоморфизма подграфов является NP-полной. Предполагается, что проблема изоморфизма графов не относится ни к P, ни к NP-полной, хотя она относится к NP. Это пример проблемы, которая считается сложной , но не считается NP-полной. Этот класс называется NP-промежуточными проблемами и существует тогда и только тогда, когда P≠NP.

Решение NP-полных задач

В настоящее время все известные алгоритмы для NP-полных задач требуют времени, которое является суперполиномиальным по размеру входных данных. Задача о вершинном покрытии имеет [6] для некоторых и неизвестно, существуют ли более быстрые алгоритмы.

Для решения вычислительных задач в целом можно применять следующие методы, которые часто приводят к созданию существенно более быстрых алгоритмов:

Одним из примеров эвристического алгоритма является неоптимальный жадный алгоритм раскраски, используемый для раскраски графа во время фазы выделения регистров некоторых компиляторов, метод, называемый глобальным выделением регистров раскраской графа . Каждая вершина является переменной, ребра рисуются между переменными, которые используются одновременно, а цвета указывают регистр, назначенный каждой переменной. Поскольку большинство машин RISC имеют довольно большое количество регистров общего назначения, даже эвристический подход эффективен для этого приложения.

Полнота при различных типах редукции

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

Другой тип сведения — это полиномиальное сведение по Тьюрингу . Задача является полиномиально-сводимой по Тьюрингу к задаче, если, имея подпрограмму, которая решается за полиномиальное время, можно написать программу, которая вызывает эту подпрограмму и решает ее за полиномиальное время. Это контрастирует со сводимостью «многие-один», которая имеет ограничение, что программа может вызвать подпрограмму только один раз, а возвращаемое значение подпрограммы должно быть возвращаемым значением программы.

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

Другой тип редукции, который также часто используется для определения NP-полноты, — это логарифмическая много-одномерная редукция , которая является много-одномерной редукцией, которая может быть вычислена только с логарифмическим объемом памяти. Поскольку каждое вычисление, которое может быть выполнено в логарифмическом пространстве, может быть выполнено и за полиномиальное время, следует, что если существует логарифмическая много-одномерная редукция, то существует и много-одномерная редукция за полиномиальное время. Этот тип редукции более утончен, чем более обычные много-одномерные редукции за полиномиальное время, и он позволяет нам различать больше классов, таких как P-полные . Изменится ли при этих типах редукций определение NP-полных задач, все еще остается открытой проблемой. Все известные в настоящее время NP-полные задачи являются NP-полными при логарифмических редукциях. Все известные в настоящее время NP-полные задачи остаются NP-полными даже при гораздо более слабых редукциях, таких как редукции и редукции. Известно, что некоторые NP-полные задачи, такие как SAT, являются полными даже при полилогарифмических временных проекциях. [7] Однако известно, что сокращения AC определяют строго меньший класс, чем сокращения за полиномиальное время. [8]

Нейминг

Согласно Дональду Кнуту , название «NP-полный» было популяризировано Альфредом Ахо , Джоном Хопкрофтом и Джеффри Ульманом в их знаменитом учебнике «Проектирование и анализ компьютерных алгоритмов». Он сообщает, что они ввели изменение в гранки для книги (с «полиномиально полный») в соответствии с результатами опроса, который он провел среди теоретического сообщества по информатике . [9] Другие предложения, высказанные в опросе [10], включали « Геркулесов », «грозный», «крутой» Стейглица в честь Кука и аббревиатуру Шэнь Линя «PET», которая означала «вероятно экспоненциальное время», но в зависимости от того, в каком направлении развивалась проблема P против NP , могла означать «доказуемо экспоненциальное время» или «ранее экспоненциальное время». [11]

Распространенные заблуждения

Часто встречаются следующие заблуждения. [12]

Характеристики

Рассматривая задачу принятия решения как формальный язык в некоторой фиксированной кодировке, множество NPC всех NP-полных задач не замкнуто при:

Неизвестно, замкнут ли NPC относительно комплементарности , поскольку NPC = co-NPC тогда и только тогда, когда NP = co-NP , и поскольку NP = co-NP является открытым вопросом . [16]

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

Ссылки

Цитаты

  1. ^ Например, простое присвоение значения true каждой переменной делает 18-й конъюнкт (и, следовательно, всю формулу) ложным .
  2. ^ Кобэм, Алан (1965). «Внутренняя вычислительная сложность функций». Proc. Логика, методология и философия науки II . Северная Голландия.
  3. ^ J. van Leeuwen (1998). Справочник по теоретической информатике . Elsevier. стр. 84. ISBN 978-0-262-72014-4.
  4. ^ J. van Leeuwen (1998). Справочник по теоретической информатике . Elsevier. стр. 80. ISBN 978-0-262-72014-4.
  5. ^ Кирш, Энди. «Выдающийся математик утверждает, что решил одну из величайших загадок математики — и это одна из 6 задач с призом в 1 миллион долларов». Business Insider . Получено 24.04.2023 .
  6. ^ Чэнь, Цзяньэр; Кань, Ияд А.; Ся, Ге (2010-09-06). «Улучшенные верхние границы для покрытия вершин». Теоретическая информатика . 411 (40): 3736–3756. doi : 10.1016/j.tcs.2010.06.026 . ISSN  0304-3975.
  7. ^ Агравал, М.; Аллендер, Э.; Рудич, Стивен (1998). «Снижение сложности схем: теорема об изоморфизме и теорема о зазоре». Журнал компьютерных и системных наук . 57 (2): 127–143. doi : 10.1006/jcss.1998.1583 . ISSN  1090-2724.
  8. ^ Агравал, М .; Аллендер, Э.; Импальяццо, Р.; Питасси, Т .; Рудич, Стивен (2001). «Уменьшение сложности сокращений». Computational Complexity . 10 (2): 117–138. doi :10.1007/s00037-001-8191-1. ISSN  1016-3328. S2CID  29017219.
  9. Дон Кнут , Трейси Ларраби и Пол М. Робертс, «Математическое письмо». Архивировано 27 августа 2010 г. в Wayback Machine § 25, MAA Notes No. 14 , MAA, 1989 (также Stanford Technical Report, 1987).
  10. ^ Кнут, ДФ (1974). «Терминологическое предложение». SIGACT News . 6 (1): 12–18. doi :10.1145/1811129.1811130. S2CID  45313676.
  11. См. опрос или [1] Архивировано 07.06.2011 на Wayback Machine .
  12. ^ Болл, Филип (2000). «ДНК-компьютер помогает коммивояжеру». Nature . doi :10.1038/news000113-10.
  13. ^ Берн (1990); Дейнеко, Клинц и Вегингер (2006); Дорн и др. (2005); Липтон и Тарьян (1980).
  14. ^ Хемаспандра, LA; Уильямс, Р. (2012). "SIGACT News Complexity Theory Column 76". ACM SIGACT News . 43 (4): 70. doi :10.1145/2421119.2421135. S2CID  13367514.
  15. ^ Ааронсон, Скотт (2010). «BQP и полиномиальная иерархия». В Шульман, Леонард Дж. (ред.). Труды 42-го симпозиума ACM по теории вычислений, STOC 2010, Кембридж, Массачусетс, США, 5–8 июня 2010 г. Ассоциация вычислительной техники. стр. 141–150. arXiv : 0910.4698 . doi :10.1145/1806689.1806711. ISBN 978-1-4503-0050-6.
  16. ^ Тэлбот, Джон; Уэлш, DJA (2006), Сложность и криптография: Введение, Cambridge University Press, стр. 57, ISBN 9780521617710Вопрос о том , равны ли NP и co-NP, вероятно, является второй по важности открытой проблемой в теории сложности после вопроса о соотношении P и NP.

Источники

Дальнейшее чтение