Почему важно доказать, что проблема является NP-полной?

18

Правильно ли я понимаю, что доказательство того, что задача NP завершена, является успехом исследования? Если так, то почему?

Али
источник

Ответы:

26

Али, хороший вопрос.

Предположим, вы хотите показать, что некоторая проблема P является вычислительно сложной. Теперь вы можете предположить, что P сложно, просто основываясь на том факте, что у нас пока нет эффективных алгоритмов для него. Но это довольно неубедительные доказательства, нет? Вполне возможно, что мы упустили какой-то хороший способ взглянуть на P, который очень легко решить. Итак, чтобы предположить, что P сложно, мы бы хотели собрать больше доказательств. Сокращения предоставляют инструмент, чтобы сделать именно это! Если мы сможем свести какую-то другую естественную проблему Q к P, то мы показали, что P, по крайней мере, так же сложно, как Q. Но Q может быть проблемой из какой-то совершенно другой области математики, и люди могли десятилетиями бороться за решение Q также , Таким образом, мы можем рассматривать нашу неспособность найти эффективный алгоритм для Q как доказательство того, что P сложен. Если у нас много таких Q '

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

Арнаб
источник
Таким образом, первоначальная цель состоит в том, чтобы найти эффективный алгоритм для P, но так как это кажется недостижимым, предполагается, что P сложен в вычислительном отношении, а затем ваши ответы объясняют остальное?
Али
Мы хотим показать, что наша проблема P вычислительно сложна, но мы не хотим предполагать, что P сложно доказать, что P сложно :) Вместо этого, если вы докажете, что P является NP-полной (или даже NP-сложной, но давайте проигнорируем это различие), вы показали, что если любая из сотен уже хорошо изученных проблем трудна, то P также трудна. Это потому, что если бы существовал эффективный алгоритм для P, то были бы также эффективные алгоритмы для каждой из сотен задач.
Арнаб
4
@ Али: Я настоятельно рекомендую вам взглянуть на вводный учебник по теории сложности. Этот сайт на самом деле не форум для таких вопросов, а скорее для вопросов исследовательского уровня.
Арнаб
5
@ Али: Я определенно рекомендую вам прочитать Гэри и Джонсона . Знаменитый мультфильм в книге обязательно нужно посмотреть!
Цуёси Ито
9

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

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

Питер Бут
источник
Хороший момент для трех способов расслабить проблему! Я предполагаю, что рандомизированные алгоритмы попадают в категорию «эффективный и неточный и общий».
Сянь-Чи Чанг 之 之
В самом деле? Не все рандомизированные алгоритмы являются неточными.
Джефф
И, конечно, ты прав, Джефф. Кроме того, я понимаю, что вы (или были) обучаете моего бывшего ученика алгоритмам! Что касается положения Сянь-Цзи, я не думаю, что рандомизированные алгоритмы хорошо вписываются в эту схему. Конечно, некоторые рандомизированные алгоритмы (на ум приходят генетические алгоритмы и нейронные сети) являются неточными, но эффективными и общими, но некоторые рандомизированные алгоритмы довольно точны - рассмотрим алгоритм проверки числа - простое! Это случайный алгоритм, но я совершенно уверен, что никто никогда не получал простое решение от любой разумной реализации.
Питер Бут
5

Давайте посмотрим , два разных случая , почему два разных человек хотел бы оказаться проблемой :Nп-сомпLеTе

Nп-сомпLеTеу вас есть некоторые доказательства этой вашей гипотезы, и вы должны начать рассматривать альтернативный подход (например, изменить проблему, чтобы она стала легче).

Nп-сомпLеTе , вы получите некоторое представление:

Nп-сомпLеTе

пзнак равноNп3-SAT .

Nп-сомпLеTеСLяQUЕ проблемой )

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

chazisop
источник
2
Многие люди решают NP-полные задачи на практике, даже если их NP-трудно приблизить. В среднем случае многие проблемы оказываются намного проще, хотя это может быть трудно показать; еще сложнее доказать что-либо об эвристических алгоритмах, которые хорошо работают на практике. Я предлагаю архитектору программного обеспечения спросить кого-то, является ли проблема «действительно» сложной, прежде чем сдаться и изменить свой дизайн.
Юваль Фильмус
Я не говорю, что дизайн должен измениться. Использование эвристического или аппроксимационного алгоритма кажется мне (ложно?) Похожим на изменение проблемы ... поскольку я знаю, что вы запрашиваете менее точные решения (приемлемы ли они? Это зависит от приложения!).
Chazisop
3

Каждая проблема имеет несколько связей с другими проблемами. Кроме того, существуют отношения между проблемой и классами сложности.

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

Например, возьмем проблему изоморфизма графов (GI). В следующей статье:

Уве Шенинг, Изоморфизм графов находится в нижней иерархии , Труды 4-го ежегодного симпозиума по теоретическим аспектам информатики , 1987, 114–124; также: Журнал компьютерных и системных наук, вып. 37 (1988), 312–323.

доказано, что если GI ∈ NPC, то полиномиальная иерархия (PH) разрушается до своего второго уровня; который станет крупным прорывом в теории структурной сложности.

М.С. Дусти
источник
3

Я вижу, что предыдущие ответы объясняют, почему важно знать, является ли проблема NP-полной или нет, но ни один из них, по-видимому, не имеет прямого отношения к вопросу: «Доказательство»пNP-полная " не считается успехом исследования для всехп, Это зависит от различных вещей, таких какп Интересно, есть ли в доказательстве новые методики,п NP-полная "имеет интересные последствия и т. д.

Раду ГРИГОРЕ
источник
1
Я слышал, что было время, когда вы доказывали, что некоторые проблемы являются NP-полными, у вас есть кандидатская диссертация. Это правда?
Сянь-Чи Чан 之 之
@ Hsien-ChihChang 張顯 之: Я не могу комментировать это, но эти результаты, безусловно, были гораздо более популярными несколько десятилетий назад. В наши дни становится все труднее публиковать статью, в которой вы «только» доказываете результат твердости (за исключением, конечно, «известных проблем»), тогда как в 70–80-х годах это не было бы проблемой, если судить по обилие такого рода бумаг в этот период.
Энтони Лабарр