Linear Programming and Approximation Seminar in Approximation Algorithms
Linear Programming Linear objective function and Linear constraints Canonical form Standard form
Linear Programming – Example x=(2,1,3) is a feasible solution 7 * 2 + 1 + 5 * 3 = 30 is an upper bound the optimum
Lower Bound How can we find a lower bound? For example,
Lower Bound Another example:
Lower Bound Assign a non-negative coefficient yi to every primal inequality such that Lower bound 10y1+6y2
LP Duality The problem of finding the best lower bound is a linear program
LP Duality For every x and y: cTx bTy Thus, Opt(primal) Opt(dual) The dual of the dual is the primal
Example x=(7/4,0,11/4) and y=(2,1) are feasible solutions 7*7/4 + 0 + 5*11/4 = 10*2 + 6*1 = 26 Thus, x and y are optimal
Max Flow vs. Min s,t-cut Path(s,t) - the set of directed paths from s to t. Max Flow: Dual: Implicit Min s,t-cut Opt(Dual) = Opt(Min s,t-cut)
LP-duality Theorem Theorem: Opt(primal) is finite Opt(dual) is finite If x* and y* are optimal Conclusion: LP NPcoNP
Weak Duality Theorem If x and y are feasible Proof:
Complementary Slackness Conditions x and y are optimal Primal conditions: Dual conditions:
Complementary Slackness Conditions - Proof By the duality theorem Similar arguments work for y For other direction read the slide upwards
Algorithms for Solving LP Simplex [Dantzig 47] Ellipsoid [Khachian 79] Interior point [Karmakar 84] Open question: Is there a strongly polynomial time algorithm for LP?
Integer Programming NP-hard Branch and Bound LP relaxation Opt(LP) Opt(IP) Integrality Gap – Opt(IP)/Opt(LP)
Using LP for Approximation Finding a good lower bound - Opt(LP) Opt(IP) Integrality gap is the best we can hope for Techniques: Rounding Solve LP-relaxation and then round solution. Primal Dual Find a feasible dual solution y, and a feasible integral primal solution x such that cTx r * bTy
Minimum Vertex Cover LP-relaxation and its dual: (P) (D)
Solving the Dual Algorithm: Solve (D) Define: Analysis: CD is a cover:
Solving the Dual CD is r-approx: Weak duality The.
Rounding Algorithm: Solve (P) Define: Analysis: x* is not feasible Due to the complementary conditions: Conclusion: x(CP) is 2-approx
Rounding Algorithm: Solve (P) Define: Analysis: x* is not feasible Clearly, Conclusion: x(C½) is 2-approx
The Geometry of LP Claim: Let x1,x2 be feasible solutions Then, x1+(1-)x2 is a feasible solution Definition: x is a vertex if Theorem: If a finite solution exists, there exists an optimal solution x* which is a vertex
Half Integrality Theorem: If x is a vertex then x{0,1/2,1}n Proof: Let x be a vertex such that x {0,1/2,1}n Both solutions are feasible = shortest distance to {0,1/2,1} Conclusion:
Half Integrality Algorithm: Construct the following bipartite graph G’: Find a vertex cover C’ in G’ (This can be done by using max-flow.)
Primal Dual Construct an integral feasible solution x and a feasible solution y such that cTx r bTy Weak duality theorem bTy Opt(LP) cTx r Opt(LP) r Opt(IP) x is r-approx
Greedy H()-Approximation Algorithm While there exists an uncovered edge: Remove u and incident edges
Primal Dual Schema Modified version of the primal dual method for solving LP Construct integral primal solution and feasible dual solution simultaneously. We impose the primal complementary slackness conditions, while relaxing the dual conditions
Relaxed Dual Conditions Primal: Relaxed dual: Claim: If x,y satisfy the above conditions Proof:
Vertex Cover Output C Algorithm: For every edge e=(u,v) do: (We can construct C at the end.)
Vertex Cover There are no uncovered edges, or over packed vertices at the end. So x=x(C) and y are feasible. Since x and y satisfy the relaxed complementary slackness conditions with =2, x is a 2-approx solution. Primal: Relaxed Dual:
Generalized Vertex Cover LP-relaxation and its dual: (P) (D)