graph-theory computation

Definition

Minimum Vertex Cover Problem

The minimum vertex cover problem is a minimisation problem that asks for a vertex cover of minimum cardinality.

Instance: undirected graph

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.

. Let be the set of remaining edges after iterations, and write .

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 .