Vertex Cover Problem
In the mathematical discipline of graph theory, a vertex cover (sometimes node cover) of a graph is a set of vertices that includes at least one endpoint of every edge of the graph. The minimum vertex cover problem is the optimization problem of finding a smallest vertex cover in a given graph. In short, it is to find a minimum set of vertices to track all edges.
- Input: Set
, Set - Output: Set
- Constraint: For all
, either or - Objective Function: Minimize
Suppose
We introduce the Incidence Matrix
- Input:
- Matrix
- vector
- vector
- Assumption: At each row of
, two elements are 1, others are 0. All elements of and are 1.
- Matrix
- Output: vector
, where is either 0 or 1. - Constraint:
- Objective Function: Minimize
Rounding
Fractional Vertex Cover
- Input:
- Matrix
- vector
- vector
- Assumption: At each row of
, two elements are 1, others are 0. All elements of and are 1.
- Matrix
- Output: vector
, where . - Constraint:
- Objective Function: Minimize
Algorithm
The algorithm is based the fractional vertex cover problem we just defined.
- Use linear programming to solve fractional vertex cover, and get output vector
, where - For all
, let when , otherwise, . Let . - Return
as the answer of the vertex cover problem.
Theorem
is an answer for the vertex cover problem. It satisfies the constraint.- It is a 2-approximation algorithm. For any particular input,
.
Proof
Here we prove that the algorithm is a 2-approximation algorithm, i.e.,
Let
Now, consider the value of