НП (сложность)
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Октябрь 2015 г. ) |
В сложности вычислений теории NP ( недетерминированное полиномиальное время ) — это класс сложности, используемый для классификации проблем принятия решений . NP — это набор задач решения, для которых экземпляры задач , где ответ «да», имеют доказательства, проверяемые за полиномиальное время с помощью детерминированной машины Тьюринга , или, альтернативно, набор проблем, которые могут быть решены за полиномиальное время с помощью недетерминированной машины Тьюринга. машина . [2] [Примечание 1]
- NP — это набор задач, решаемых за полиномиальное время с помощью недетерминированной машины Тьюринга .
- NP — это набор задач решения , проверяемых за полиномиальное время с помощью детерминированной машины Тьюринга .
Первое определение является основой аббревиатуры НП; « недетерминированное полиномиальное время». Эти два определения эквивалентны, поскольку алгоритм, основанный на машине Тьюринга, состоит из двух фаз, первая из которых состоит из предположения о решении, которое генерируется недетерминированным способом, а вторая фаза состоит из детерминированного алгоритма, который проверяет, является ли предположение – это решение проблемы. [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 отклоняет входные данные, пути принятия нет, и верификатор всегда будет отклонять.
Отношения с другими классами
[ редактировать ]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]
См. также
[ редактировать ]- Машина Тьюринга - вычислительная модель, определяющая абстрактную машину.
Примечания
[ редактировать ]- ^ Полиномиальное время показывает, насколько быстро растет количество операций, необходимых для алгоритма, относительно размера проблемы. Следовательно, это мера эффективности алгоритма.
Ссылки
[ редактировать ]- ^ Ладнер, Р.Э. (1975). «О структуре полиномиальной временной сводимости» . Дж. АКМ . 22 : 151–171. дои : 10.1145/321864.321877 . S2CID 14352974 . Следствие 1.1.
- ^ Перейти обратно: а б Кляйнберг, Джон; Тардос, Ева (2006). Разработка алгоритмов (2-е изд.). Аддисон-Уэсли. п. 464 . ISBN 0-321-37291-3 .
- ^ Алсувайель, М.Х.: Алгоритмы: методы проектирования и анализ , стр. 283 .
- ^ Уильям Гасарч (июнь 2002 г.). «Опрос P=?NP» (PDF) . Новости СИГАКТ . 33 (2): 34–47. дои : 10.1145/1052796.1052804 . S2CID 18759797 . Проверено 29 декабря 2008 г.
- ^ Кляйнберг, Джон; Тардос, Ева (2006). Разработка алгоритмов (2-е изд.). п. 496 . ISBN 0-321-37291-3 .
- ^ «Зоопарк сложности:Е» . Зоопарк «Комплекс» . Архивировано из оригинала 11 ноября 2020 г. Проверено 23 марта 2018 г.
- ^ Лэнс Фортноу, Вытягивание квантовости , 20 декабря 2005 г.
- ^ Перейти обратно: а б Вигдерсон, Ави. «P, NP и математика – взгляд на сложность вычислений» (PDF) . Проверено 13 апреля 2021 г.
- ^ Карп, Ричард (1972). «Сводимость комбинаторных задач» (PDF) . Сложность компьютерных вычислений . стр. 85–103. дои : 10.1007/978-1-4684-2001-2_9 . ISBN 978-1-4684-2003-6 .
- ^ Ааронсон, Скотт. «P=? NP» (PDF) . Проверено 13 апреля 2021 г.
- ^ Гэри, Майкл Р.; Джонсон, Дэвид С. (1979). Компьютеры и трудноразрешимые проблемы: Руководство по теории NP-полноты . У. Х. Фриман. ISBN 0-7167-1045-5 .
Дальнейшее чтение
[ редактировать ]- Томас Х. Кормен , Чарльз Э. Лейзерсон , Рональд Л. Ривест и Клиффорд Стейн . Введение в алгоритмы , второе издание. MIT Press и McGraw-Hill, 2001. ISBN 0-262-03293-7 . Раздел 34.2: Проверка за полиномиальное время, стр. 979–983.
- Майкл Сипсер (1997). Введение в теорию вычислений . Издательство ПВС. ISBN 0-534-94728-Х . Разделы 7.3–7.5 (Класс NP, NP-полнота, Дополнительные NP-полные задачи), стр. 241–271.
- Дэвид Харел , Ишай Фельдман . Алгоритмика: дух вычислений, Аддисон-Уэсли, Ридинг, Массачусетс, 3-е издание, 2004 г.
Внешние ссылки
[ редактировать ]- Зоопарк сложности : НП
- Американский ученый, посвященный традиционным и новейшим исследованиям теории сложности: «Случайные алгоритмы».