Задача о вершинном покрытии


Задача о вершинном покрытии — NP-полная задача информатики в области теории графов. Часто используется в теории сложности для доказательства NP-полноты более сложных задач.

Вершинное покрытие для неориентированного графа  — это множество его вершин , такое, что, у каждого ребра графа хотя бы один из концов входит в вершину из .

Пример: Граф, изображённый справа, имеет вершинное покрытие размера 4. Однако оно не является наименьшим вершинным покрытием, поскольку существуют вершинные покрытия меньшего размера, такие как и .

Задача о вершинном покрытии состоит в поиске вершинного покрытия наименьшего размера для заданного графа (этот размер называется числом вершинного покрытия графа).

Задача о вершинном покрытии сходна с задачей о независимом множестве. Поскольку множество вершин является вершинным покрытием тогда и только тогда, когда его дополнение является независимым множеством, задачи сводятся друг к другу.

Поскольку задача о вершинном покрытии является NP-полной, то, к сожалению, неизвестны алгоритмы для её решения за полиномиальное время. Однако существуют аппроксимационные алгоритмы, дающие «приближённое» решение этой задачи за полиномиальное время — можно найти вершинное покрытие, в котором число вершин не более чем вдвое превосходит минимально возможное.