NP-полнота задачи о независимом множестве
Версия от 11:27, 14 марта 2010; Mikhailpinsky (обсуждение | вклад) (переименовал «Задача о независимом множестве» в «NP-полнота задачи о независимом множестве»: несоответствие заданию)
Содержание
Формулировка
Пусть задан неориентированный граф
и натуральное число . Задача о независимом множестве(IND) решает вопрос о том, содержит ли граф подграф размером , никакая пара вершин в котором не соединена ребром.Доказательство NP-полноты
Для доказательства NP-полноты задачи о независимом множестве покажем, что она является NP-трудной и принадлежит классу NP.
Задача о независимом множестве является NP-трудной
Для доказательства этого сведем задачу
к нашей:
Пусть задана булева формула в
, в которой скобок. Построим для нее соответствующий граф. Для каждой скобки нарисуем три вершины, соединим их попарно ребрами и подпишем их именами соответствующих переменных. Так же соединим ребрами пары вершин вида .Докажем, что формула выполнима тогда и только тогда, когда в соответствующем графе есть независимое множество из
вершин. Пусть формула выполнима, тогда в каждой скобке есть хотя бы одна переменная, принимающая значение “правда”. Выберем соответствующую переменную в качестве вершины в графе. Выбранное множество вершин является независимым, так как ребрами соединены только вершины, которые соответствуют переменным из одной скобки(а мы выбирали только одну переменную из каждой скобки) и пары вершин, которым советуют пары переменных вида , которые не могут одновременно принимать значение “правда”. Пусть в графе есть независимое множество, размера . Тогда в каждой тройке вершин, соответствующих некоторой скобке, выбрана ровно одна вершина. Установим значение соответствующей переменной “правда”. Тогда в каждой скобке, будет хотя бы одна переменная, имеющая значение “правда”, значит вся формула будет принимать значение “правда”. Построение по формуле соответствующего графа можно сделать за полиномиальное время.Задача о независимом множестве принадлежит классу NP
В качестве сертификата возьмем набор из
вершин. За время можно проверить, является ли данное множество вершин независимым.