ScholarGate
Ассистент

NP-полнота и неразрешимость

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

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

Core questions

  • Что отличает классы сложности P и NP?
  • Как полиномиальное приведение переносит сложность от одной задачи к другой?
  • Что устанавливает теорема Кука-Левина и почему проблема выполнимости булевых формул является центральной?
  • Как доказывается NP-полнота новой задачи путем приведения от известной?
  • Какие алгоритмические стратегии остаются, если задача доказана NP-трудной?

Key concepts

  • класс сложности P
  • класс сложности NP
  • полиномиальное приведение
  • NP-трудность
  • NP-полнота
  • теорема Кука-Левина
  • булева выполнимость (SAT)
  • проблема P против NP

Key theories

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

Clinical relevance

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

History

Стивен Кук ввел понятие NP-полноты в 1971 году, доказав NP-полноту SAT; Леонид Левин независимо получил аналогичные результаты. Статья Ричарда Карпа 1972 года показала, что 21 естественная задача является NP-полной, установив охват этой концепции. Книга Гэри и Джонсона 1979 года каталогизировала сотни NP-полных задач и стала стандартным справочником.

Debates

P против NP
Является ли P равным NP — то есть, является ли каждая эффективно проверяемая задача также эффективно разрешимой — это главная открытая проблема в этой области; почти все исследователи предполагают, что P не равно NP, но вопрос остается нерешенным и является одной из проблем тысячелетия.

Key figures

  • Stephen Cook
  • Richard Karp
  • Leonid Levin
  • Michael Garey
  • David Johnson

Related topics

Seminal works

  • cook1971
  • karp1972
  • cormen2009

Frequently asked questions

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

Methods for this concept

Related concepts