NP-полнота задачи о независимом множестве — различия между версиями
(создание странички) |
м (rollbackEdits.php mass rollback) |
||
(не показано 26 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
==Формулировка== | ==Формулировка== | ||
− | + | Языком IND называют множество пар <tex>\langle G,k \rangle</tex>, где <math>G</math> - неориентированный граф, <math>k</math> - натуральное число. Слово принадлежит языку IND, если граф <math>G</math> содержит подграф <math>H</math> размером <math>k</math>, никакая пара вершин в котором не соединена ребром. Задача о независимом множестве является [[Понятие NP-трудной и NP-полной задачи|NP-полной]]. | |
+ | |||
==Доказательство NP-полноты== | ==Доказательство NP-полноты== | ||
Для доказательства NP-полноты задачи о независимом множестве покажем, что она является NP-трудной и принадлежит классу NP. | Для доказательства NP-полноты задачи о независимом множестве покажем, что она является NP-трудной и принадлежит классу NP. | ||
===Задача о независимом множестве является NP-трудной=== | ===Задача о независимом множестве является NP-трудной=== | ||
− | Для доказательства этого сведем задачу <math> | + | Для доказательства этого [[Сведение по Карпу|сведем по Карпу]] задачу <math>3SAT</math> к нашей: |
− | <math> | + | <math>3SAT \le_{k} IND</math> |
− | Пусть задана булева формула в <math> | + | Пусть задана булева формула в <math>3SAT</math>, в которой <math>k</math> скобок. Построим для неё соответствующий граф. Для каждой скобки нарисуем три вершины, соединим их попарно рёбрами и подпишем их именами соответствующих литералов. Так же соединим рёбрами пары вершин вида <math>x,\neg x</math>. |
− | <math>(\ | + | <math>(\neg x\lor y\lor z)\land (x \lor y \lor \neg z) \to</math>[[Файл:IND_GRAPH.png]] |
+ | |||
+ | Докажем, что формула выполнима тогда и только тогда, когда в соответствующем графе есть независимое множество из <math>k</math> вершин. Пусть формула выполнима, тогда в каждой скобке есть хотя бы один литерал, принимающий значение “истина”. Выберем соответствующую ему вершину в графе. Полученное множество вершин является независимым, так как рёбрами соединены только те вершины, которые соответствуют литералам из одной скобки (а мы выбирали только один литерал из каждой скобки), а так же вершины вида <math>x,\neg x</math>, соответствующие литералы которых не могут одновременно принимать значение “истина”. Пусть теперь в графе есть независимое множество, размера <math>k</math>. Тогда в каждой тройке вершин, соответствующих некоторой скобке, выбрана ровно одна вершина. Установим значение соответствующего литерала “истина”. Это можно сделать, так как нет рёбер между вершинами вида <math>x,\neg x</math>. Тогда в каждой скобке, будет хотя бы один литерал, имеющий значение “истина”, значит вся формула будет принимать значение “истина”. Построение по формуле соответствующего графа можно сделать за полиномиальное время. | ||
− | |||
===Задача о независимом множестве принадлежит классу NP=== | ===Задача о независимом множестве принадлежит классу NP=== | ||
В качестве сертификата возьмем набор из <math>k</math> вершин. За время <math>O(k^2)</math> можно проверить, является ли данное множество вершин независимым. | В качестве сертификата возьмем набор из <math>k</math> вершин. За время <math>O(k^2)</math> можно проверить, является ли данное множество вершин независимым. | ||
+ | |||
+ | [[Категория:NP]] |
Текущая версия на 19:14, 4 сентября 2022
Содержание
Формулировка
Языком IND называют множество пар NP-полной.
, где - неориентированный граф, - натуральное число. Слово принадлежит языку IND, если граф содержит подграф размером , никакая пара вершин в котором не соединена ребром. Задача о независимом множестве являетсяДоказательство NP-полноты
Для доказательства NP-полноты задачи о независимом множестве покажем, что она является NP-трудной и принадлежит классу NP.
Задача о независимом множестве является NP-трудной
Для доказательства этого сведем по Карпу задачу к нашей:
Пусть задана булева формула в
, в которой скобок. Построим для неё соответствующий граф. Для каждой скобки нарисуем три вершины, соединим их попарно рёбрами и подпишем их именами соответствующих литералов. Так же соединим рёбрами пары вершин вида .Докажем, что формула выполнима тогда и только тогда, когда в соответствующем графе есть независимое множество из
вершин. Пусть формула выполнима, тогда в каждой скобке есть хотя бы один литерал, принимающий значение “истина”. Выберем соответствующую ему вершину в графе. Полученное множество вершин является независимым, так как рёбрами соединены только те вершины, которые соответствуют литералам из одной скобки (а мы выбирали только один литерал из каждой скобки), а так же вершины вида , соответствующие литералы которых не могут одновременно принимать значение “истина”. Пусть теперь в графе есть независимое множество, размера . Тогда в каждой тройке вершин, соответствующих некоторой скобке, выбрана ровно одна вершина. Установим значение соответствующего литерала “истина”. Это можно сделать, так как нет рёбер между вершинами вида . Тогда в каждой скобке, будет хотя бы один литерал, имеющий значение “истина”, значит вся формула будет принимать значение “истина”. Построение по формуле соответствующего графа можно сделать за полиномиальное время.Задача о независимом множестве принадлежит классу NP
В качестве сертификата возьмем набор из
вершин. За время можно проверить, является ли данное множество вершин независимым.