MIT 6.1220 — Lecture 16
Approximation Algorithms (Part II)
Problem. (Weighted Vertex Cover) Given a graph , find a minimum-weight vertex cover.
Solution. (Weighted Vertex Cover) Write the appropriate minimization LP: the variables are , the constraints are and for each , and the quantity to be minimized is .
Find the optimal solution, then round it: output .
Proof: Say is the LP optimal we find, is the rounded solution, and is the vertex-cover optimal.
The proof is in two inequalities. The former holds because rounding incurs at most a factor-of-two increase. The latter holds because all ILP solutions are LP solutions.
You should show is a valid solution to begin with. You can also show is tight.
Problem. (Set Cover) Given subsets , find a cover of using as few subsets as possible.
Solution. (Set Cover) Greedily pick sets covering the most uncovered elements. This is an -approximation algorithm—for the same reasons as our bad Vertex Cover approximation algorithm!
(The bad Vertex Cover approximation algorithm never used the fact that edges connect two vertices…)
It turns out that if , then we cannot do better. All of this is true for the weighted case, too.
Problem. (Clique) Find a maximum clique in a graph .
Solution. (Clique) Partition into subsets of size . For each subset of size , brute-force through every subset of to find the maximum clique in . Output the largest clique you found.
This is an -approximation. Obviously. And this is tight. Obviously.
It turns out that we can't do better.
Remark. Recall that Clique reduces to Vertex-Cover very easily. And Vertex-Cover has a -approximation algorithm. Think about that.
Problem. (Max-3-SAT) Given a -CNF formula, maximize the number of satisfied clauses.
Assume each clause has three distinct variables, for simplicity.
Solution. (Max-3-SAT) If you output an assignment at random, you get an -approximation in expectation.
To guarantee an -approximation, assign the variables one at a time, at each point assigning so that the conditional expected number of clauses satisfied (assuming are assigned randomly) is largest.
You can prove inductively that this will yield an -approximation.
And, again, we can't do better.