Jump to content

НП (сложность)

(Перенаправлено с класса NP )
Нерешенная задача в информатике :
Диаграмма Эйлера для P , NP-, NP-полного и NP-трудного набора задач. существование проблем внутри NP, но вне P и NP-полноты В предположении, что P ≠ NP, Ладнер установил . [1]

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

Первое определение является основой аббревиатуры НП; « недетерминированное полиномиальное время». Эти два определения эквивалентны, поскольку алгоритм, основанный на машине Тьюринга, состоит из двух фаз, первая из которых состоит из предположения о решении, которое генерируется недетерминированным способом, а вторая фаза состоит из детерминированного алгоритма, который проверяет, является ли предположение – это решение проблемы. [3]

Легко видеть, что класс сложности P (все проблемы, решаемые детерминированно за полиномиальное время) содержится в NP (задачи, решения которых можно проверить за полиномиальное время), поскольку если проблема разрешима за полиномиальное время, то решение также поддается проверке за полиномиальное время путем простого решения задачи. Широко распространено мнение, но не доказано, что P меньше, чем NP , другими словами, что существуют проблемы принятия решений, которые не могут быть решены за полиномиальное время, даже если их решения можно проверить за полиномиальное время. Самые сложные задачи в NP называются NP-полными задачами. Алгоритм, решающий такую ​​задачу за полиномиальное время, также способен решить любую другую задачу NP за полиномиальное время. Если бы P на самом деле было равно NP, то существовал бы алгоритм с полиномиальным временем для решения NP-полных и, как следствие, всех NP-задач. [4]

Класс сложности NP связан с классом сложности co-NP , для которого ответ «нет» можно проверить за полиномиальное время. Является ли NP = co-NP — еще один нерешенный вопрос теории сложности. [5]

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

[ редактировать ]

Класс сложности NP можно определить в терминах NTIME следующим образом:

где — это набор задач, которые могут быть решены с помощью недетерминированной машины Тьюринга в время.

В качестве альтернативы NP можно определить с использованием детерминированных машин Тьюринга в качестве верификаторов. Язык L находится в NP тогда и только тогда , когда существуют полиномы p и q и детерминированная машина Тьюринга M такие, что

  • Для всех x и y машина M работает за время p (| x |) на входе .
  • Для всех x в L существует строка y длины q (| x |) такая, что .
  • Для всех x не из L и всех строк y длины q (| x |), .

Многие проблемы информатики содержатся в NP, например, версии решения многих задач поиска и оптимизации.

Определение на основе верификатора

[ редактировать ]

Чтобы объяснить определение NP на основе верификатора, рассмотрим задачу о сумме подмножества :Предположим, что нам даны некоторые целые числа {−7, −3, −2, 5, 8}, и мы хотим знать, равна ли сумма некоторых из этих целых чисел нулю. Здесь ответ «да», поскольку целые числа {−3, −2, 5} соответствуют сумме (−3) + (−2) + 5 = 0.

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

Но обратите внимание: если нам дано определенное подмножество, мы можем эффективно проверить, равна ли сумма подмножества нулю, суммируя целые числа подмножества. Если сумма равна нулю, это подмножество является доказательством или свидетелем ответа «да». Алгоритм, который проверяет, имеет ли данное подмножество нулевую сумму, является верификатором . Очевидно, что суммирование целых чисел подмножества может быть выполнено за полиномиальное время, и поэтому проблема суммы подмножества находится в NP.

Приведенный выше пример можно обобщить для любой проблемы принятия решений. Учитывая любой случай проблемы и свидетель W, если существует верификатор V, так что, учитывая упорядоченную пару (I, W) в качестве входных данных, V возвращает «да» за полиномиальное время, если свидетель доказывает, что ответ «да» или «нет» за полиномиальное время иначе, тогда находится в НП.

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

В некоторой литературе проверяющее лицо называется «сертификатом», а свидетель — « сертификатом ». [2]

Определение машины

[ редактировать ]

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

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

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

[ редактировать ]

NP замкнут при объединении , пересечении , конкатенации , звезде Клини и развороте . Неизвестно, является ли NP замкнутым относительно дополнения (этот вопрос представляет собой так называемый вопрос «NP против ко-NP»).

Почему некоторые проблемы NP трудно решить

[ редактировать ]

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

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

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

Эквивалентность определений

[ редактировать ]

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

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

И наоборот, предположим, что у нас есть недетерминированная TM под названием A, принимающая заданный язык L. На каждом из полиномиально многих шагов дерево вычислений машины разветвляется не более чем в конечном числе направлений. Должен быть хотя бы один принимающий путь, и строка, описывающая этот путь, является доказательством, передаваемым проверяющему. Затем верификатор может детерминированно моделировать A, следуя только по пути принятия и проверяя, что он принимает в конце. Если A отклоняет входные данные, пути принятия нет, и верификатор всегда будет отклонять.

Отношения с другими классами

[ редактировать ]
Представление связи между классами сложности
Включения классов сложности, включая P , NP , co-NP , BPP , P/poly , PH и PSPACE.

NP содержит все проблемы из P , поскольку любой экземпляр проблемы можно проверить, просто игнорируя доказательство и решая его. NP содержится в PSPACE — чтобы это показать, достаточно построить машину PSPACE, которая перебирает все строки доказательства и передает каждую из них верификатору с полиномиальным временем. Поскольку машина с полиномиальным временем может читать только полиномиальное количество битов, она не может использовать больше полиномиального пространства, а также не может читать строку доказательства, занимающую больше полиномиального пространства (поэтому нам не нужно рассматривать доказательства длиннее этого). NP также содержится в EXPTIME , поскольку тот же алгоритм работает в экспоненциальном времени.

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

NP определяется с использованием только детерминированных машин. Если мы позволим верификатору быть вероятностным (однако это не обязательно машина BPP [6] ), мы получаем класс MA , решаемый с использованием протокола Артура-Мерлина без связи между Артуром и Мерлином.

Связь между BPP и NP неизвестна: неизвестно, является ли NP подмножеством , NP BPP является подмножеством BPP или нет. Если NP содержится в BPP , что считается маловероятным, поскольку это предполагает практические решения для NP-полных задач, то NP = RP и PH BPP . [7]

NP — класс проблем принятия решений ; аналогичный класс функциональных задач — FNP .

Единственные известные строгие включения происходят из теоремы об иерархии времени и теоремы об иерархии пространства , и соответственно они и .

Другие характеристики

[ редактировать ]

С точки зрения дескриптивной теории сложности NP точно соответствует множеству языков, определяемых экзистенциальной логикой второго порядка ( теорема Феджина ).

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

Главный результат теории сложности состоит в том, что NP можно охарактеризовать как проблемы, решаемые с помощью вероятностно проверяемых доказательств , где проверяющий использует случайные биты O(log n ) и проверяет только постоянное число битов строки доказательства (класс PCP (log n) , 1)). Говоря более неформально, это означает, что описанный выше NP-верификатор можно заменить на тот, который просто «выборочно проверяет» несколько мест в строке доказательства, а использование ограниченного количества подбрасываний монеты может определить правильный ответ с высокой вероятностью. несколько результатов о сложности аппроксимирующих алгоритмов Это позволяет доказать .

Все задачи в P обозначаются . Имея сертификат для проблемы в P , мы можем игнорировать сертификат и просто решить проблему за полиномиальное время.

Целочисленная факторизация

[ редактировать ]

Версия проблемы решения проблемы целочисленной факторизации : для заданных целых чисел n и k существует ли множитель f с 1 < f < k и f , делящий n ? [8]

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

[ редактировать ]

Любая NP-полная задача находится в NP.

Булева выполнимость

[ редактировать ]

Проблема булевой выполнимости ( SAT ), в которой мы хотим узнать, верна ли определенная формула в логике высказываний с логическими переменными для некоторого значения переменных. [9]

Коммивояжер

[ редактировать ]

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

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

Недетерминированная машина Тьюринга может найти такой маршрут следующим образом:

  • В каждом посещенном городе он будет «угадывать» следующий город, который нужно посетить, пока не посетит каждую вершину. Если он застрянет, он немедленно остановится.
  • В конце он проверяет, что пройденный маршрут стоил меньше k за время O ( n ).

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

Бинарный поиск в диапазоне возможных расстояний может преобразовать версию решения Коммивояжера в версию оптимизации путем многократного вызова версии решения (полиномиальное количество раз). [10] [8]

Изоморфизм подграфов

[ редактировать ]

Проблема изоморфизма подграфов : определение того, содержит ли граф G изоморфный графу H. подграф , [11]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Полиномиальное время показывает, насколько быстро растет количество операций, необходимых для алгоритма, относительно размера проблемы. Следовательно, это мера эффективности алгоритма.
  1. ^ Ладнер, Р.Э. (1975). «О структуре полиномиальной временной сводимости» . Дж. АКМ . 22 : 151–171. дои : 10.1145/321864.321877 . S2CID   14352974 . Следствие 1.1.
  2. ^ Перейти обратно: а б Кляйнберг, Джон; Тардос, Ева (2006). Разработка алгоритмов (2-е изд.). Аддисон-Уэсли. п. 464 . ISBN  0-321-37291-3 .
  3. ^ Алсувайель, М.Х.: Алгоритмы: методы проектирования и анализ , стр. 283 .
  4. ^ Уильям Гасарч (июнь 2002 г.). «Опрос P=?NP» (PDF) . Новости СИГАКТ . 33 (2): 34–47. дои : 10.1145/1052796.1052804 . S2CID   18759797 . Проверено 29 декабря 2008 г.
  5. ^ Кляйнберг, Джон; Тардос, Ева (2006). Разработка алгоритмов (2-е изд.). п. 496 . ISBN  0-321-37291-3 .
  6. ^ «Зоопарк сложности:Е» . Зоопарк «Комплекс» . Архивировано из оригинала 11 ноября 2020 г. Проверено 23 марта 2018 г.
  7. ^ Лэнс Фортноу, Вытягивание квантовости , 20 декабря 2005 г.
  8. ^ Перейти обратно: а б Вигдерсон, Ави. «P, NP и математика – взгляд на сложность вычислений» (PDF) . Проверено 13 апреля 2021 г.
  9. ^ Карп, Ричард (1972). «Сводимость комбинаторных задач» (PDF) . Сложность компьютерных вычислений . стр. 85–103. дои : 10.1007/978-1-4684-2001-2_9 . ISBN  978-1-4684-2003-6 .
  10. ^ Ааронсон, Скотт. «P=? NP» (PDF) . Проверено 13 апреля 2021 г.
  11. ^ Гэри, Майкл Р.; Джонсон, Дэвид С. (1979). Компьютеры и трудноразрешимые проблемы: Руководство по теории NP-полноты . У. Х. Фриман. ISBN  0-7167-1045-5 .

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a660cc3cca11b6b574591d1becdf97a7__1720280460
URL1:https://arc.ask3.ru/arc/aa/a6/a7/a660cc3cca11b6b574591d1becdf97a7.html
Заголовок, (Title) документа по адресу, URL1:
NP (complexity) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)