«NP-complete» задачи оптимизации

24

Меня слегка смущает некоторая терминология, с которой я столкнулся в отношении сложности задач оптимизации. В классе алгоритмов у меня была большая проблема скупости, описанная как NP-полная. Однако я не совсем уверен, что означает термин NP-complete в контексте задачи оптимизации. Означает ли это, что соответствующая проблема решения является NP-полной? И значит ли это, что проблема оптимизации может быть на самом деле сложнее (возможно, за пределами NP)?

В частности, меня беспокоит тот факт, что, хотя NP-полная задача решения является проверяемой за полиномиальное время, решение соответствующей задачи оптимизации, по-видимому, не проверяется за полиномиальное время. Означает ли это, что проблема на самом деле не в NP, или проверка на полиномиальном времени является лишь характеристикой проблем решения NP?

Аникет Шнайдер
источник
3
проверить этот вопрос
Ран Г.
1
Также этот вопрос: оптимизация версии решения проблемы .
Каве
1
@RanG., Я не уверен, является ли это точной копией.
Каве
@Kaveh ты прав, но отличный ответ Ули полностью отвечает на этот вопрос.
Ран Г.
@RanG., Может быть более одного отличного ответа. :)
Kaveh

Ответы:

13

Попытка частичного ответа:

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

Вы должны быть осторожны при переносе понятий из решения проблем. Это можно сделать и дать точное представление о NP-полноте для задач оптимизации. Посмотри на этот ответ . Это, конечно, отличается от NP-полноты для решения проблем, но основано на тех же идеях (сокращениях).

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

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

В противном случае мы не можем надеяться достичь многого.

NпNпNп . Я не сталкивался с проблемами оптимизации.

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

Но это не значит, что проблема оптимизации сложнее. Посмотрите этот ответ , который зависит, конечно, от точных определений.

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

Причиной, по которой большинство задач оптимизации можно классифицировать как P, NP, NP-complete и т. Д., Являются условия Куна-Такера. Я расскажу о проблемах линейного программирования, но KTC применяется во многих других задачах оптимизации. Для каждой задачи оптимизации существует двойной. Если цель в исходной задаче состоит в том, чтобы максимизировать некоторую функцию, то двойственная (обычно) имеет функцию, которую нужно минимизировать. * Возможные, но неоптимальные решения исходной проблемы будут недостижимы / недействительны для двойной задачи, и наоборот -versa. Если и только если решение выполнимо для первичного и двойственного, это оптимальное решение для обоих. (Технически может быть одним из большого числа оптимальных решений, которые дают одинаковый результат.)

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

  • Если вы хотите перейти от минимизации к максимизации, умножьте целевую функцию на -1.
Роберт И. Эверюс
источник
3
Я не вижу, как условия KKT связаны с NP-твердостью, не могли бы вы уточнить это?
Дискретная ящерица
2
Я действительно не вижу, как это отвечает на вопрос. P , NP и т. Д. Являются классами решения задач. Проблемы оптимизации не являются проблемами принятия решений, поэтому они не входят ни в один из этих классов по определению .
Дэвид Ричерби
2
Я тоже не понимаю, как это отвечает на вопрос - это интересный комментарий, но, похоже, он отвечает на вопрос, отличный от того, который был задан. Вопрос состоит в том, что значит сказать, что задача оптимизации является NP-полной и можно ли сказать, что проблемы оптимизации находятся в NP, учитывая, что они не являются проблемой решения. Это описывает, как, учитывая проблему оптимизации (где решения не поддаются проверке), мы часто можем построить соответствующую проблему, где решения могут быть проверены. Очень интересный материал, но я не уверен, что он отвечает на вопрос, который был задан.
DW
1
@DW Основная причина, по которой я думаю, что это не отвечает на этот вопрос, заключается в том, что в дополнение к тому, что уже упоминалось, KKT ограничивает настройку математической оптимизацией «регулярных» (например, непрерывных, дифференцируемых, выпуклых) функций. Этот параметр неприменим для большинства NP-сложных задач.
Дискретная ящерица