NP-полная задача: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.9.5
Исправил "более тридцати лет" на "более пятидесяти лет". Постановка вопроса о P=NP это 1971 год. Даже в 2006, когда эта фраза впервые появилась в статье, это уже было не просто "более 30", а 35. Через восемь лет надо вернуться и исправить на "более шестидясяти".
Метки: через визуальный редактор с мобильного устройства из мобильной версии
 
Строка 26: Строка 26:
== Гипотеза P ≠ NP ==
== Гипотеза P ≠ NP ==
{{основная статья|Равенство классов P и NP}}
{{основная статья|Равенство классов P и NP}}
Вопрос о совпадении классов P и NP уже более тридцати лет является одной из центральных [[открытая проблема|открытых проблем]]. Научное сообщество склоняется к отрицательному ответу на этот вопрос<ref>{{статья |заглавие=The P=?NP poll. |издание=SIGACT News |том=33 |номер=2 |страницы=34—47 |ссылка=http://www.cs.umd.edu/~gasarch/papers/poll.pdf |doi=10.1145/1052796.1052804 |язык=und |автор=William I. Gasarch |год=2002 |archivedate=2007-06-15 |archiveurl=https://web.archive.org/web/20070615132837/http://www.cs.umd.edu/~gasarch/papers/poll.pdf }}</ref> — в этом случае решать NP-полные задачи за полиномиальное время не удастся.
Вопрос о совпадении классов P и NP уже более пятидесяти лет является одной из центральных [[открытая проблема|открытых проблем]]. Научное сообщество склоняется к отрицательному ответу на этот вопрос<ref>{{статья |заглавие=The P=?NP poll. |издание=SIGACT News |том=33 |номер=2 |страницы=34—47 |ссылка=http://www.cs.umd.edu/~gasarch/papers/poll.pdf |doi=10.1145/1052796.1052804 |язык=und |автор=William I. Gasarch |год=2002 |archivedate=2007-06-15 |archiveurl=https://web.archive.org/web/20070615132837/http://www.cs.umd.edu/~gasarch/papers/poll.pdf }}</ref> — в этом случае решать NP-полные задачи за полиномиальное время не удастся.


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

Текущая версия от 23:43, 4 августа 2024

Взаимоотношение между классами P, NP, NP-complete (NP-полными задачами), NP-hard (NP-трудными задачами) в случае, если P≠NP и если P=NP

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

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

[править | править код]

Алфавитом называется всякое конечное множество символов (например, {} или {}). Множество всех возможных слов (конечных строк, составленных из символов этого алфавита) над некоторым алфавитом обозначается . Языком над алфавитом называется всякое подмножество множества , то есть .

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

Пусть и  — два языка над алфавитом . Язык называется сводимым (по Карпу) к языку , если существует функция, , вычислимая за полиномиальное время, обладающая следующим свойством:

  • тогда и только тогда, когда . Сводимость по Карпу обозначается как или .

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

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

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

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

[править | править код]

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

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

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

Гипотеза P ≠ NP

[править | править код]

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

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

[править | править код]

Примечания

[править | править код]
  1. William I. Gasarch. The P=?NP poll. (неопр.) // SIGACT News. — 2002. — Т. 33, № 2. — С. 34—47. — doi:10.1145/1052796.1052804. Архивировано 15 июня 2007 года.
  2. Erik D. Demaine, Susan Hohenberger, David Liben-Nowell. Tetris is Hard, Even to Approximate (англ.). preprint.
  3. Abel, Z.; Demaine, E.D.; Demaine, M.L.; Eisenstat, S.; Lynch, J.; Schardl, T.B. (2013). "Finding a Hamiltonian Path in a Cube with Specified Turns is Hard". Journal of Information Processing. 21 (3): 368—377. Архивировано 5 декабря 2023. Дата обращения: 5 декабря 2023.

Литература

[править | править код]