Участник:Rechique/vcover-clique
Материал из DISCOPAL
Будем работать со следующими задачами:
1)Clique = {(G, k)| в графе есть клика размером k}
2)IndSet = {(G, k)| в графе есть независимое множество из k вершин}
3)VertexCover = {(G, k)| в графе есть вершинное покрытие из k вершин}
Задачу Clique можно свести по карпу к задаче о клике (просто перебором k). Аналогично с задачей о вершинном покрытии.
Далее сводим Clique к Indset взятием дополнения графа. А Indset и VertexCover сводятся к друг другу заменой k на n - k, где n - число вершин: если вершинное покрытие задело все ребра, то между оставшиеся вершинами ребер быть не может, иначе эти ребра не были бы задеты. И наоборот, если между оставшимися ребер нет, то все ребра покрыты взятыми.