Ответы:
Чтобы показать, что проблема завершена, вам необходимо:
Другими словами, 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 к вашей проблеме.