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