Definition
Minimum Vertex Cover Problem
The minimum vertex cover problem is a minimisation problem that asks for a vertex cover of minimum cardinality.
Task: Find a set such that every edge in has at least one endpoint in , and is minimum.
Greedy by degree
Highest-degree first
Choose a vertex of maximum degree, add it to the solution, and delete all edges incident to it. Repeat until no edge remains.
The output is always a vertex cover, because the algorithm stops only when every edge has been deleted.
Highest-degree first is a natural greedy algorithm, but it is not a constant-factor approximation in general. Its solution can be logarithmically larger than an optimum solution.
Bad tie-breaking
Consider the path graph on five vertices. The vertices , , and all have maximum degree .
If highest-degree first chooses first, then the remaining uncovered edges are and . The algorithm must then choose one endpoint of each remaining edge. One possible output is
But an optimum vertex cover is
HDF guarantee
Let be the vertex cover returned by highest-degree first. Then
where is a minimum vertex cover.
Since , the set still covers every edge in . Thus, the vertices in cover edges. Hence at least one vertex in is incident to at least
edges of .
Highest-degree first chooses a vertex of maximum degree, so it deletes at least edges. Therefore,
Repeating this inequality gives
For , this gives . Since is an integer, . Thus, the algorithm terminates after at most iterations.
Therefore,
Greedy by matching
Maximal matching
Find a maximal matching of and return all matched vertices:
This algorithm is simpler to analyse than highest-degree first. The matching gives a lower bound on the optimum, and taking both endpoints gives a feasible cover.
Maximal matching approximation
The maximal matching algorithm returns a vertex cover with
where is a minimum vertex cover.
is a vertex cover. If some edge had no endpoint in , then could be added to . This would contradict maximality of .
Second, every vertex cover must cover every edge in . Since edges in a matching are pairwise disjoint, covering all edges of requires at least one distinct vertex per matched edge. Hence
The algorithm returns both endpoints of each edge in , so
Complexity
The decision version of the problem is NP-complete. The optimisation problem is NP-hard.
Approximation boundary
The maximal matching algorithm gives a simple -approximation.
It is a long-standing open problem whether minimum vertex cover has a polynomial-time approximation algorithm with factor strictly smaller than .