A vertex cover is a set of vertices that touches every edge of a graph. Vertex covers are fundamental objects in graph theory, combinatorial optimization, and theoretical computer science. They are closely connected to matchings, independent sets, network design, approximation algorithms, and computational complexity. (en.wikipedia.org)
The basic idea is simple. Instead of selecting edges, one selects vertices so that every edge is incident with at least one selected vertex. In many applications, the selected vertices represent monitoring stations, guards, servers, or control points.
Vertex covers form one of the classical covering problems in graph theory.
61.1 Definition
Let
be a graph.
A subset
is called a vertex cover if every edge of has at least one endpoint in .
Equivalently,
Thus every edge is “covered” by at least one selected vertex.
For example, consider the path
The set
is a vertex cover, because every edge touches either or .
The set
is not a vertex cover, because the edge
is uncovered.
61.2 Minimum Vertex Covers
A vertex cover is minimum if it has smallest possible size.
The size of a minimum vertex cover is denoted by
Thus,
The minimum vertex cover problem asks for a vertex cover of minimum size.
This optimization problem is central in algorithmic graph theory.
61.3 Trivial Vertex Covers
Some vertex covers are immediate.
Entire Vertex Set
The set
itself is always a vertex cover, because every edge has endpoints in .
Thus every graph has at least one vertex cover.
Empty Set
The empty set is a vertex cover only when the graph has no edges.
Indeed, if an edge exists, some vertex must cover it.
61.4 Vertex Covers in Standard Graphs
The minimum vertex cover size can often be computed explicitly for common graph families.
Paths
For the path graph ,
One may select every second vertex.
Cycles
For the cycle graph ,
Even cycles allow alternating selections. Odd cycles require one additional vertex.
Complete Graphs
For the complete graph ,
Indeed, if two vertices remain outside the cover, the edge joining them is uncovered.
Complete Bipartite Graphs
For
Choosing all vertices from the smaller side covers every edge.
61.5 Relationship with Independent Sets
A set
is independent if no two vertices in are adjacent.
Vertex covers and independent sets are complementary concepts.
Theorem 61.1
A set
is a vertex cover if and only if
is an independent set.
Proof
Suppose is a vertex cover.
If two vertices outside were adjacent, then the edge joining them would have neither endpoint in , contradicting the cover property.
Thus
is independent.
Conversely, suppose
is independent.
Then no edge has both endpoints outside . Therefore every edge has at least one endpoint in , so is a vertex cover.
This proves the equivalence.
61.6 Independence Number
Let
denote the size of a maximum independent set.
Since complements of vertex covers are independent sets:
\alpha(G)+\tau(G)=|V|
This identity is one of the most important relations in graph theory.
It converts covering problems into independence problems and vice versa.
61.7 Vertex Covers and Matchings
Vertex covers are closely connected to matchings.
Suppose is a matching and a vertex cover.
Every edge of must be covered by at least one vertex of .
Since the edges of are disjoint, distinct edges require distinct covering vertices.
Therefore,
Thus:
Every matching gives a lower bound on every vertex cover.
Taking maxima and minima yields:
where
is the maximum matching size.
61.8 König’s Theorem
For bipartite graphs, the previous inequality becomes equality.
Theorem 61.2. König’s Theorem.
If is bipartite, then
This theorem is one of the central min-max results in combinatorics.
It states:
| Quantity | Meaning |
|---|---|
| Maximum matching | Largest packing of disjoint edges |
| Minimum vertex cover | Smallest covering of all edges |
In bipartite graphs, these quantities coincide exactly.
61.9 Proof Idea of König’s Theorem
Let
be a maximum matching in a bipartite graph
Build alternating trees from unmatched vertices of .
Define:
| Set | Meaning |
|---|---|
| Reachable vertices in | |
| Reachable vertices in |
Then define:
One proves:
- is a vertex cover.
- .
Since every vertex cover has size at least , equality follows.
61.10 Minimal and Minimum Vertex Covers
The terms minimal and minimum have different meanings.
| Term | Meaning |
|---|---|
| Minimal | No vertex can be removed |
| Minimum | Smallest possible size |
Every minimum vertex cover is minimal.
The converse is false.
Example
Consider the path
The set
is minimal.
Removing either vertex leaves an uncovered edge.
However, the set
is smaller and also covers every edge.
Thus a minimal cover need not be minimum.
61.11 Vertex Cover Algorithms
Brute Force
One may test all subsets of vertices.
This requires:
possibilities.
Such exhaustive search becomes infeasible for large graphs.
Greedy Methods
Greedy algorithms repeatedly select vertices covering many uncovered edges.
These algorithms are fast but do not always produce minimum covers.
Exact Algorithms
More advanced algorithms use:
| Technique | Purpose |
|---|---|
| Branch and bound | Reduce search space |
| Dynamic programming | Structured graphs |
| Integer programming | Optimization |
| Kernelization | Parameterized complexity |
61.12 Complexity
The minimum vertex cover problem is NP-complete. (en.wikipedia.org)
Thus no polynomial-time algorithm is known for arbitrary graphs.
However:
| Graph Type | Complexity |
|---|---|
| Bipartite graphs | Polynomial |
| Trees | Polynomial |
| General graphs | NP-complete |
The bipartite case becomes tractable because of König’s theorem and flow techniques.
61.13 Approximation Algorithms
Although exact solutions may be difficult, good approximations exist.
A simple -approximation algorithm:
- Choose any uncovered edge.
- Add both endpoints to the cover.
- Remove all covered edges.
- Repeat.
This algorithm always produces a cover of size at most twice optimal.
Why It Works
The chosen edges form a matching.
Every vertex cover must contain at least one endpoint of each matching edge.
If the algorithm chooses edges, the optimal cover has size at least , while the algorithm outputs size .
Hence:
61.14 Vertex Cover on Trees
For trees, minimum vertex covers can be found efficiently using dynamic programming.
At each vertex, consider two possibilities:
| State | Meaning |
|---|---|
| Vertex included | Children optional |
| Vertex excluded | Children required |
Combining subtree solutions yields a polynomial-time algorithm.
Trees avoid cycles, which greatly simplifies the optimization structure.
61.15 Edge Cover Duality
An edge cover is a set of edges touching every vertex.
Vertex covers and edge covers solve different covering problems:
| Object Covered | Chosen Objects |
|---|---|
| Edges | Vertices |
| Vertices | Edges |
The two notions are related indirectly through matching theory.
61.16 Hypergraph Vertex Covers
Vertex covers generalize naturally to hypergraphs.
A hypergraph edge may contain many vertices.
A vertex cover becomes a set intersecting every hyperedge.
This generalization appears in database theory, combinatorial optimization, and constraint systems.
61.17 Weighted Vertex Covers
In weighted versions, each vertex has cost:
The objective becomes minimizing:
Weighted vertex cover problems arise in network monitoring, sensor placement, and infrastructure planning.
Approximation algorithms and linear programming relaxations are especially important here.
61.18 Linear Programming Formulation
Introduce variables:
The optimization problem becomes:
subject to:
for every edge
x_u+x_v \ge 1
These inequalities enforce edge coverage.
The linear relaxation is central in approximation theory.
61.19 Applications
Vertex covers appear in many practical settings.
| Application | Interpretation |
|---|---|
| Network monitoring | Monitor all communication links |
| Security systems | Place guards covering all corridors |
| Scheduling | Resolve pairwise conflicts |
| Computational biology | Cover interaction networks |
| Compiler optimization | Register allocation |
| Database systems | Constraint management |
The abstraction is simple but widely applicable.
61.20 Common Relationships
| Parameter | Relation |
|---|---|
| Matching number | |
| Independent number | (\alpha(G)+\tau(G)= |
| Bipartite graphs |
These identities connect packing, covering, and independence.
61.21 Exercises
Find a minimum vertex cover of .
Compute .
Prove that is independent whenever is a vertex cover.
Show that every matching gives a lower bound on vertex cover size.
Find a minimum vertex cover of .
Prove that every minimum vertex cover is minimal.
Give an example of a minimal vertex cover that is not minimum.
Prove:
Apply the -approximation algorithm to a small graph.
Explain why vertex cover is easier on bipartite graphs than on arbitrary graphs.