Primal Dual Method Lecture 20: March 28 primaldual restricted primal restricted dual y z found x,...

29
Primal Dual Method Lecture 20: March 28 primal dual restricted primal restricted dual y z found x, succeed! Construct a better dual
  • 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

Avoid strict inequality

Optimality Condition

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

Bipartite Matching

Primal complementary slackness condition:

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

Avoid strict inequality

Approximate Optimality Condition

Approximate Complementary Slackness Condition

Primal complementary slackness condition:

Dual complementary slackness condition: Only a sufficient condition

Vertex Cover

Primal complementary slackness condition:

Dual complementary slackness 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

Hardness

Why would this problem is hard?

Vertex cover.

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.

Remarks

• Network design

• Facility location

• Online primal dual

A unify primal-dual method for exact and approximation algorithm?