Primal Dual Method Lecture 20: March 28 primaldual restricted primal restricted dual y z found x,...
-
date post
20-Dec-2015 -
Category
Documents
-
view
215 -
download
0
Transcript of Primal Dual Method Lecture 20: March 28 primaldual restricted primal restricted dual y z found x,...
Primal Dual Method
Lecture 20: March 28
primal dualrestricted
primalrestricted
dual
y z
found x, succeed!
Construct a better dual
Primal Dual ProgramPrimal Dual Program
Primal Program Dual Program
If there is a feasible primal solution x and a feasible dual solution y,
then both are optimal solutions.
Primal-Dual Method: An algorithm to construct such a pair of solutions.
Optimality Condition
Suppose there is a feasible primal solution x, and a feasible dual solution y.
How do we check that they are optimal solutions?
Avoid strict inequality
Complementary Slackness Conditions
Primal complementary slackness condition:
Dual complementary slackness condition:
Primal Dual Method
Start from a feasible dual solution.
Search for a feasible primal solution
satisfying complementary slackness conditions.
If not, improve the objective value of dual solution.
repeat
Restricted Primal
Formulate this as an LP itself!
Given a feasible dual solution y, how do we search for a feasible
primal solution x that satisfies complementary slackness conditions?
Primal complementary slackness condition:
Dual complementary slackness condition:
Restricted Primal
If j not in J, then we need x(j) to be zero.
If i not in I, then we need
Restricted primal
If zero, we are done
Restricted Dual
Suppose the objective of the restricted primal is not zero, what do we do?
Then we want to find a better dual solution.
Restricted primal Restricted dualnonzero
Restricted Dual
Restricted dualnonzeroDual Program
Consider y+єz as the new dual solution.
Still feasible
Larger value
General Framework
primal dualrestricted
primalrestricted
dual
y z
found x, succeed!
Construct a better dual
Start from a feasible vertex cover
Find a perfect matching using tight edges
non-zero
Consider y- єz, a better dual
Hungarian Method
Remarks
It is not a polynomial time method.
It reduces the weighted problem to the unweighted problem,so that the restricted primal linear program is easier to solve,and often there are combinatorial algorithms to solve it.
Many combinatorial algorithms, like max-flow, matching,min-cost flow, shortest path, spanning tree, …, can be derivedwithin this framework.
Approximation Algorithm
How do we adapt the primal-dual method for approximation algorithms?
We want to construct a primal feasible solution x anda dual feasible solution y so that cx and by are “close”.
Avoid losing too much
Approximate Complementary Slackness Condition
Primal complementary slackness condition:
Dual complementary slackness condition: Only a sufficient condition
Approximate Optimality Conditions
Primal complementary slackness condition:
Dual complementary slackness condition:
Pick only vertices that go tight.
Pick only edge with one vertex in the vertex cover.
This would imply a 2-approximation.
This is nothing!
Just focus on this!
Algorithm
Pick only vertices that go tight.
Algorithm (2-approximation for vertex cover)
Initially, x=0, y=0
When there is an uncovered edge
Pick an uncovered edge, and raise y(e) until some vertices go tight.
Add all tight vertices to the vertex cover.
Output the vertex cover x.
Familiar? This is the greedy matching 2-approximation
when every vertex has the same cost.
Multicut
Given k source-sink pairs {(s1,t1), (s2,t2), ...,(sk,tk)},a multicut is a set of edges whose removal disconnects each source-sink pair.
The multicut problem asks for the minimum weight multicut.
Today we only consider a tree!
s1
s2
t2
t1
Primal Dual Programs
Primal complementary slackness condition:
Dual complementary slackness condition:
Approximate Optimality Conditions
Primal complementary slackness condition:
Dual complementary slackness condition:
Only pick saturated edges.
At most one edge can be picked from a path carrying nonzero flow.
Relaxed dual complementary slackness condition:
two
Algorithmic Idea
Only pick saturated edges.
At most two edges can be picked from a path carrying nonzero flow.
We want to construct flow and cut so that:
How to choose the flow?
We should avoid sending flow along a long path…
Algorithm
Multicut in Tree (2-approximation algorithm)
Initially, f=0, D=0
Flow routing:Find a pair (si,ti) with lowest lowest common ancestor,Greedily send flow from si to ti.Add all the saturated edges to D.
Let e1, e2,…, el be the ordered list of edges in D.
Reverse delete:In reverse order, delete an edge e from D if D-e is still a multicut.
Output the flow and the cut.
Reverse Delete
At most two edges can be picked from a path carrying nonzero flow.
Lemma. After reverse delete, the above condition is satisfied.
si ti
v
e’
e
sj
tj
uthere exists j wheree is the only edge. j is processed
earlier than i.
i can send a flow, so e is added after e*.
e*Idea?
Bonus Question
Bouns Question 5 (50%):
Show that a basic solution of the linear program for
multicut in tree has an edge of value at least 1/2.
Bouns Question 6 (50%):
Show that a basic solution of the linear program for
multiway cut has an edge of value at least 1/2.