Ответы:
Чтобы показать, что проблема завершена, вам необходимо:
Другими словами, Cимея некоторую информацию , вы можете создать алгоритм полиномиального времени, Vкоторый будет проверять для каждого возможного ввода X, Xнаходится ли он в вашем домене или нет.
Докажите, что проблема покрытий вершин (то есть, для некоторого графа G, есть ли у него множество покрытий вершин такого размера k, что каждое ребро в Gимеет хотя бы одну вершину в множестве покрытий ?) Находится в NP:
наш ввод X- это некоторый график Gи некоторое число k(это из определения проблемы)
Примите нашу информацию Cкак «любое возможное подмножество вершин в графе Gразмера k»
Тогда мы можем написать алгоритм , Vкоторый, учитывая G, kи Cвернемся , что множество вершин , является ли вершина крышкой для Gили нет, в полиномиальное время .
Тогда для каждого графа G, если существует какое-то «возможное подмножество вершин в Gразмере k», которое является вершинным покрытием, то он Gнаходится в NP.
Обратите внимание, что нам не нужно искать Cза полиномиальное время. Если бы мы могли, проблема была бы в `P.
Обратите внимание, что алгоритм Vдолжен работать для всех G , для некоторых C. Для каждого ввода должна существовать информация, которая могла бы помочь нам проверить, относится ли ввод к проблемной области или нет. То есть не должно быть входа, где информации нет.
Это включает в себя получение известной NP-полной проблемы, такой как SAT , набора логических выражений в форме:
(A, B или C) и (D, E или F) и ...
где выражение является выполнимым , то есть существует некоторая настройка для этих логических значений, которая делает выражение истинным .
Затем уменьшите NP-полную проблему до вашей проблемы за полиномиальное время .
То есть, учитывая некоторый вход Xдля SAT(или любого NP-полной задачи вы используете), создать некоторый вклад Yвашей проблемы, такой , что Xнаходится в SAT тогда и только тогда , когда Yв вашей проблеме. Функция f : X -> Yдолжна выполняться за полиномиальное время .
В приведенном выше примере входными Yданными будут график Gи размер вершинного покрытия k.
Для полного доказательства вам нужно доказать оба:
это Xв SAT=> Yв вашей проблеме
а Yв твоей проблеме => Xв SAT.
В ответе marcog есть ссылка на несколько других NP-полных проблем, которые вы могли бы свести к своей проблеме.
Сноска: На шаге 2 ( Докажите, что это NP-сложность ) достаточно свести другую NP-сложную (не обязательно NP-полную) задачу к текущей проблеме, поскольку NP-полные проблемы являются подмножеством NP-сложных проблем (которые также в НП).
Вам нужно свести проблему NP-Complete к проблеме, которая у вас есть. Если сокращение может быть выполнено за полиномиальное время, то вы доказали, что ваша проблема является NP-полной, если проблема уже находится в NP, потому что:
Это не легче, чем NP-полная задача, поскольку она может быть сведена к ней за полиномиальное время, что делает задачу NP-сложной.
См. Конец http://www.ics.uci.edu/~eppstein/161/960312.html для получения дополнительной информации.
Чтобы доказать, что проблема L NP-полна, нам нужно проделать следующие шаги:
Во-первых, вы показываете, что он вообще лежит в NP.
Затем вы обнаруживаете другую проблему, которая, как вы уже знаете, является NP-полной, и показываете, как вы полиномиально сводите проблему NP Hard к вашей проблеме.