Global Price Updates Help A.V Goldberg and R. Kennedy - PowerPoint PPT Presentation

1 / 119
About This Presentation
Title:

Global Price Updates Help A.V Goldberg and R. Kennedy

Description:

Presented by: Orit Nissan-Messing. Motivation. Solving two 'new' problems: ... The sets of vertices V can be divided into two disjoint sets (X, Y) where there ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 120
Provided by: IBMU357
Category:

less

Transcript and Presenter's Notes

Title: Global Price Updates Help A.V Goldberg and R. Kennedy


1
Global Price Updates Help A.V Goldberg and R.
Kennedy
  • Advanced Algorithms Seminar
  • Instructor Prof. Haim Kaplan
  • Presented by Orit Nissan-Messing

2
Motivation
  • Solving two new problems
  • Bipartite matching problem
  • Assigment problem
  • Using Push Relabel methods
  • Improve complexity using Global Updates

3
Some definitions
  • Bipartite Graph G (X U Y, E)
  • Undirected graph
  • The sets of vertices V can be divided into two
    disjoint sets (X, Y) where there is no edge e ? E
    such that both endpoint of e are in the same set.

4
Bipartite graph example
Y
X
5
Bipartite Matching problem
  • Matching in G is a subset of edges M that have no
    node in common.
  • Cardinality of matching is M.
  • Bipartite matching problem is to find the
    matching with the maximum cardinality.
  • Usage matching tasks to processors.

6
Bipartite matching to Max Flow
  • Given G (X U Y,Ê)
  • Build G for the maximum flow problem by
  • Adding nodes s and t.
  • V X U Y U s,t
  • For each v ? X , placing (s,v) in E with
    capacity 1.
  • For each v ? Y, placing (v,t) in E with capacity
    1.
  • For each edge v,w ? Ê, placing (v,w) in E with
    capacity 1.
  • Reverse arcs will have zero capacity.
  • G is called a matching network

7
Building a matching network
1
1
1
t
S
8
  • Any integral flow in G can be converted into a
    matching in G.
  • The matching are the arcs (x,y) with f 1.
  • Maximum flow in G corresponds to a maximum
    matching in G.

9
Pseudoflow one more time
  • pseudoflow satisfies the following
  • f(u,v) - f(v,u)
  • f(u,v) u(u,v)
  • Excess flow ef(v)
  • ef(v) ? (u,v) ? E f(u,v)
  • A flow is a pseudoflow such that there is no
    excess at any node.

10
Some more definitions
  • Distance labeling d is valid w.r.t f if
  • d(t) 0
  • d(s) n
  • For every arc (v,w) ? Ef d(v) d(w) 1
  • Admissible arc (v,w) d(v) d(w) 1.
  • GA is acyclic for any valid distance labeling

11
Basic algorithm
  • Init
  • d(s) n, d(t) 0
  • for every v ? V d(v) 0
  • saturate all arcs out of s.
  • Apply sequence of Push and Relabels until f is a
    flow.

12
Push and Relabel operations
  • Push
  • Send a unit of flow from v to w.
  • Relabel
  • d(v) ? min (v,w) ? Ef d(w) 1
  • Limitation on invocation as we know already

13
Analysis of the basic algorithm
  • All arcs have unit capacity , therefore each push
    is a saturating push ?
  • 2n d(v) 0 for all nodes v.
  • Relabel increases d(v).
  • Number of Relabel operations per node is O(n).
  • The work done in Relabel operations is O(nm).

14
Analysis - Cont
  • If v is relabeled k times then the number of
    Pushes from v is at most (k1)degree (v).
  • The number of Push operation are O(nm).
  • Selecting an arc to push flow on will be done
    using the current arc method.

Current arc
15
dw(v) definition
  • For any node v and w
  • dw(v) bfs distance from v to w in Gf of the
    current preflow f.
  • If w is unreachable from v then dw(v) 8.

16
Global Update definition
  • Global Update for every node v setting d(v)
    min dt(v), nds(v).
  • The global update also sets the current arc of
    every node to be the first arc.
  • Can be done in O(m).
  • d(v) can not be decreased...

17
Global update When?
  • At Init.
  • After each Push and Relabel operation if
  • Since the last update, at least one unit of
    excess has reached s or t.
  • And
  • Since the last update, the algorithm has done at
    least m work in Push and Relabel operations.

18
Minimum Distance Discharge The idea
  • Selecting a unit of excess at active node with
    minimum d(v).
  • Process this unit of excess until
  • Relabel occurs.
  • The excess reached t or s.
  • If after the Relabel the node still has the
    minimum d(v) continue with this node.

19
Minimum Distance Discharge algorithm with Global
Update
  • Init
  • saturate all arcs out of s.
  • Global update.
  • Apply sequence of Push, Relabels and Global
    updates by the MDD order until f is a flow.

20
Minimum distance discharge how is it
implemented?
  • Building buckets B0,.., B2n.
  • Bucket Bi holds the active nodes with d(v) i.
  • µ - index of the bucket from which we selected
    the recent active node (unit of excess).

21
Minimum distance discharge how is it
implemented? - Cont
  • After each Global Update
  • Current arc is set to the nodes first arc.
  • The buckets are built again - O(n).
  • µ is reset to 0.

22
Some definitions for the analysis
  • G(f,d) the minimum distance label of an active
    node w.r.t pseudoflow f and distance label d.
  • G max The maximum G value reached by the
    algorithm so far.

23
Minimum Distance Discharge - Analysis
  • Lemma 4.1
  • Between two consecutive Global Updates, the
    algorithm does O(n) work in examining empty
    buckets.

24
Minimum Distance Discharge - Analysis
  • Proof
  • µ decreases only when it is set to zero after an
    update.

25
Minimum Distance Discharge - Analysis
  • Proof
  • µ decreases only when it is set to zero after an
    update.

µ 3
d3
d2
d1
Active node
T
d 1
26
Minimum Distance Discharge - Analysis
  • Proof
  • µ decreases only when it is set to zero after an
    update.
  • There are 2n1 buckets.

27
Minimum Distance Discharge - Analysis
  • We will divide the analysis into 4 stages
  • Gmax ? 0,k
  • Gmax ? k,n
  • Gmax ? n,nk
  • Gmax ? nk,2n
  • K will be chosen later.

28
Stage 1 and 3
  • Lemma 4.2
  • The Minimum Distance Discharge Algorithm
    expends O(km) work during the periods when Gmax ?
    0,k and Gmax ? n,nk

29
Stage 1 and 3 Proof
  • If Gmax ?0,k then G?0,k .
  • If Gmax ?n,nk then G? n,nk, since no excess
    can reached t anymore.
  • Each node can be relabeled at most k1 times
  • Relabels and Pushes require O(km).
  • During O(km) work, at most k Global Updates can
    be done.
  • Global Updates require O(km) work during each
    stage.
  • gt Stage 1 and 3 require O(km) work.

30
Flow Decomposition
  • Lemma 4.3 (Without a proof)
  • Any Integral pseudoflow f in the augmented
    residual graph of an integral flow g in a
    matching network can be decomposed into cycles
    and simple paths that are pairwise node disjoint
    except at the endpoints of the paths, such that
    each element in the decomposition carries one
    unit of flow. Each Path is from a node v with
    ef(v) lt 0 to ef(w) gt 0

31
Example for 4.3

0
-2
2
t
s
  • Augmented residual graph for flow f (f2).
  • All Arcs have unit capacity on both sides

32
Stage 2
  • Definition residual flow value total excess that
    can reach t in Gf.
  • Lemma 4.4
  • If Gmax K (gt2), the residual flow value is at
    most n/(k-1) if G is a matching network.

33
Stage 2
  • Proof
  • Lets look at the first time G(f,d) K.
  • Assume f is the maximum flow in G.
  • f f - f.
  • -f is a pseudoflow in the augmented residual
    graph of f gt can be decomposed into cycles and
    paths as in Lemma 4.3

34
Stage 2 - cont
  • From f decomposition we can find f
    decomposition.
  • G k therefore any path in Gf from an active node
    to t must contain at least k1 nodes.
  • Since each such path is node disjoint gt there
    are at most (n-2)/(k-1) such paths.
  • The amount of excess that can reach t is at most
    n/(k-1).

35
Stage 4
  • Same idea as in Stage 2.
  • For Gmax n k (gtn2) the residual flow value is
    at most n/(k-1) if G is a matching network.

36
Stage 2 and Stage 4
  • Lemma 4.6
  • Between any two consecutive global update
    operations, the algorithm does T(m) work.

37
Stage 2 and Stage 4 - Cont
  • Proof
  • Its sufficient to show that the work done in
    moving a unit of excess to s or t after global
    update is O(m).
  • For each node v, at least one of dt(v), ds(v) is
    finite.
  • After global update there is at least one
    admissible arc leaving each node.
  • So the first unit of excess being processed after
    global update can reach t or s without any
    Relabel.

38
Stage 2 and Stage 4 - Cont
  • Choosing a unit of excess to process is done in
    O(n).
  • The path to s or t can be at most n.
  • The work of pushing the excess to its destination
    is O(n) the work in finding the admissible arc
    leaving the node.
  • O(n m ) O(m).

39
Complexity of Minimum Distance Discharge Algorithm
  • Lemma 4.7
  • The Minimum Distance Discharge algorithm with
    Global Updates computed maximum flow in a
    matching network (and hence a maximum cardinality
    bipartite matching) in O(mvn).

40
Complexity of Minimum Distance Discharge Algorithm
  • Proof
  • The amount of work during stage 1 and 3 is
    O(km).
  • The amount of excess processed during stage 2
    and 4 is at most 2n/(k-1)
  • Moving this excess takes O(mn/k).
  • O(km mn/k) O(mvn) when k vn.

41
Bad family

relabel
0
0
1
d(v) 7
0
0
1
-3
0
0
1
42
Bad family

1
0
1
relabel
7
0
0
1
-3
0
0
1
43
Bad family

1
0
1
7
0
1
1
-3
0
0
1
relabel
44
Bad family

relabel
1
0
0
1
7
0
1
1
-3
0
1
1
45
Bad family

1
1
0
0
7
0
1
1
1
-3
0
0
1
1
46
Bad family

1
1
0
0
7
0
1
1
0
-3
0
1
1
relabel
1
47
Bad family

1
1
0
0
7
0
1
2
0
-3
1
0
1
1
48
Bad family

1
1
0
0
7
0
1
2
0
-3
1
0
2
1
relabel
49
Bad family

1
relabel
1
0
1
7
0
1
2
0
-3
1
0
2
0
50
Bad family

relabel
1
2
1
0
7
0
1
2
0
-3
1
0
2
0
51
Bad family

2
2
0
0
7
0
1
2
0
-3
1
1
2
0
relabel
52
Bad family

2
relabel
2
0
0
7
0
1
2
1
-3
2
0
2
0
53
Bad family

relabel
2
2
0
1
7
0
3
2
0
-3
2
0
2
0
54
So what Global Update would have changed?

2
3
0
1
7
0
3
2
0
-3
2
0
2
0
After some ping pong Relabels it would set d(v)
to the right values such that there is a path to
s or t
55

8
9
0
1
7
0
8
2
0
-3
9
0
8
0
56
Second problem Assignment Problem
  • Weight of matching M is the sum of the weights of
    the edges in M.
  • The Assignment problem is to find a maximum
    cardinality matching with minimum weight.
  • Assumption cost are integers in the range 0,..C

57
Assignment problem to Minimum Cost Circulation
problem
  • Given G weighted bipartite graph
  • Build G for the Minimum Cost Circulation problem
    by
  • Adding nodes s and t
  • For each v ? X , placing (s,v) in E with
    capacity 1 and cost -nC
  • For each v ? Y, placing (v,t) in E with capacity
    1 and cost 0
  • For each edge v,w ? Ê, placing (v,w) in E with
    capacity 1 and the cost as in G.
  • Reverse arcs will have zero capacity and obey the
    cost symmetry constraint.
  • Adding n/2 arcs (t,s) in E with 0 cost and
    capacity 1.

58
Building G for the Minimum Cost Circulation
Problem
0
2
-45
-2 u0
t
S
2
3
1
5
4
0
59
  • As in the matching problem, Any integral
    circulation in G can be converted into a
    matching in G.
  • The matching are the arcs (x,y) with f 1.
  • Minimum circulation in G corresponds to a maximum
    matching of minimum weight in G.

60
Back to definitions
  • Price function P V ?R.
  • Reduced Cost of arc (v,w)
  • Cp(v,w) p(v) c(v,w) p(w)
  • U X U t
  • Eu the set of arcs whose tail node is in U.

61
Definition example

2
0
12
0
0
-12
2
0
62
e-optimality
  • A pseudoflow f is e-optimal w.r.t price function
    p, if for every residual arc a
  • a ? Eu ? Cp (a) 0
  • a ? Eu ? Cp (a) - 2e
  • A pseudoflow f is e-optimal if its e-optimal
    with respect to some price function p.
  • When the arc cost are int and e lt 1/n, any
    e-optimal circulation is optimal.

63
Admissibility
  • a ? Ef is admissible
  • a ? Eu ? Cp (a) lt e
  • a ? Eu ? Cp (a) lt -e

64
Succssive Approximation Algorithm The idea
  • Starting with e C
  • Running in iterations until e lt 1/n.
  • Each iteration refines e (divide by a constant a)
    and saturate all arcs with Cp lt 0 thus making f
    pseudoflow eoptimal .
  • Making f an eoptimal circulation by Pushs and
    Relabels.
  • Number of iterations 1 loga(nC)

65
Cost scaling Algorithm
  • Min-Cost(V,E,u,c)
  • Init
  • e ? C , p(v) 0 , f(a) 0
  • While e 1/n
  • (e,f,p)? Refine(e,f,p)

66
Refine Procedure
  • Init
  • e ? e/a
  • All a ? E with Cp(a) lt 0, f(a) 1
  • While f is not a circulation (e optimal)
  • Apply Relabel and Push operations.
  • Return (e,f,p)

67
Relabel and Push
  • Push(v,w)
  • Send a unit of flow from v to w
  • Relabel(v)
  • If v ? U
  • P(v) max (v,w) ? Ef p(w) c(v,w)
  • Else
  • P(v) max (v,w) ? Ef p(w) c(v,w) - 2e

68
Relabel and Push
  • Relabel and Push preserve e optimality.
  • Every Push is a saturating push.
  • Each Relabel decreases p(v) by at least e.
  • After Relabel , no admissible arc enters v.
  • Ga is acyclic.

69
Relabel Analysis
  • Based on the analysis of minimum cost
    circulation
  • Every Relabel decreases a node price by at least
    e.
  • Each iteration , p(v) decreases by O(ne).
  • Or more accurately by at most 2ane.

70
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • a ? Eu Cp (a) lt -e

2
0
-12
0
0
-12
2
0
e 1
71
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

1
2
0
12
-2
0
0
2
1
12
0
72
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

0
2
0
12
0
-2
0
2
1
1
12
0
Relabel -2
ReducedCost (cost)
73
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

0
2
0
12
-2 (0)
-2
-2 (0)
P -2
4(2)
1
1
12
0
ReducedCost (cost)
74
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

0
2
0
12
-2 (0)
-1
-2 (0)
P -2
4(2)
1
0
12
0
  • Relabel -4

75
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

0
2
0
12
-2 (0)
-1
-2 (0)
P -4
P -2
0(2)
1
0
12
0
76
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

0
2
0
12
-1
-2 (0)
2(0)
P -4
P -2
0
1
12
0
0 (-2)
77
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • Else Cp (a) lt -e

Relabel -2
0(2)
1
0
12
-1
0 (0)
2(0)
P -4
P -2
0
0
12
0
0 (-2)
78
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
0
0
12
-1
0 (0)
2(0)
P -4
P -2
0
1
12
0
0 (-2)
Relabel -4
79
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
0
0
12
-1
-2 (0)
4(0)
P -4
P -4
0
1
12
0
-2 (-2)
80
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
0
0
12
-1
-2 (0)
4(0)
P -4
P -4
1
0
12
0
2 (2)
  • Relabel -6

81
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
0
0
12
-1
-2 (0)
4(0)
P -6
P -4
1
0
12
0 (2)
0
82
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
0
0
12
-1
-2 (0)
4(0)
P -6
P -4
0
1
12
0
0 (-2)
83
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

P -2
0(2)
1
0
12
-1
2 (0)
P -6
4(0)
P -4
0
0
12
0
0 (-2)
84
  • Relabel(v)
  • v ? U P(v) max p(w) c(v,w)
  • Else P(v) max p(w) c(v,w) - 2e
  • admissible
  • a ? Eu Cp (a) lt e
  • else Cp (a) lt -e

Relabel -2
P -2
0(-2)
0
1
0
12
-1
2 (0)
(4(0
P -6
P -4
0
0
12
0 (-2)
0
85
This is our matching with minimum cost.
P -2
0 (-2)
0
0
2(0)
12
0
2 (0)
4(0)
P -6
P -4
0
0
12
0 (-2)
0
86
Global Updates
  • The goal Changing p(v) such as there is a path
    from every node with excess ef(v) gt 0 to some
    node ef(w) lt 0 in Ga.

87
Length function
  • Define length function
  • l(a) ceil ( Cp(a)/ e) if a ? Eu
  • otherwise l(a) 1 ceil ( Cp(a)/ e)
  • dl(v) the distance of node v from nodes with
    deficit.
  • From CS-TR-95-1556

88
Global update intuition
  • Global update intuition
  • decreasing p(v) by dl(v) e for each node would
    preserve e optimality and Ga acyclicity and
    ensuring that there is an admissible path for
    every node with excess to a node with deficit.

89
Example of Global Update
dl 1, p -3
dl 1, p -1
P -2
0(2)
0
0
12
dl 0, p 0
-1
-2 (0)
4(0)
P -6
P -4
This is our set of deficit node
0
1
12
0
0 (2)
dl 0, p - 4
dl 12, p -18
e 1
90
But..
  • But it costs too much.. There is no bound on
    price change for every node.
  • We would like Global Update to take o(m)
  • They applied a variation of Dial where the
    scanned nodes are those who can be reached from
    an active node, active nodes has a bound on the
    price change.

91
Global update When?
  • At Init.
  • After each Push and Relabel operation if
  • Since the last update, at least one unit of
    excess has canceled some deficit.
  • And
  • Since the last update, the algorithm has done at
    least m work in Push and Relabel operations.

92
Price Change
  • d(v) ceil ( -p(v) / e )
  • Setting at the beginning of refine iteration p(v)
    0 for all nodes will make d(v) to be the price
    change of node v during the iteration.

93
Minimum Change Discharge The idea
  • Selecting a unit of excess at active node with
    minimum d(v).
  • Process this unit of excess until
  • Relabel occurs.
  • A deficit is canceled.
  • If after the Relabel and the node still has the
    minimum d(v) continue with this node.

94
Minimum change discharge how is it implemented?
  • Building buckets B0,.., B2an.
  • Bucket Bi holds the active nodes with d(v) i.
  • µ - index of the bucket from which we selected
    the recent active node (unit of excess).

95
Definitions for Refine Analysis
  • G(f,p) the minimum change price of an active
    node w.r.t pseudoflow f and p.
  • Gmax The maximum value reached by G so far in
    the iteration.

96
Minimum Change Discharge - Analysis
  • Lemma 9.1 (same as Lemma 4.1)
  • Between two consecutive Global Updates, the
    algorithm does O(n) work in examining empty
    buckets.

97
Refine Analysis small d
  • Lemma 9.2
  • The algorithm does O(km) work in the course of
    Relabel operations on nodes v obeying d(v) k
    and Push operations from those nodes.

98
Minimum Change Discharge - Analysis
  • Proof
  • V can be relabeled at most k1 times while d(v)
    k.
  • The work for Relabels on those nodes O(km).
  • The work for Pushes is also O(km).

99
Refine Analysis
  • Define E to be total excess
  • E ?ef(v) gt 0 ef(v)
  • Lemma 9.4 (will be proved later)
  • At any point during the execution of refine
    other than the first
  • E Gmax 2(( 5 a)n -1)

100
Refine Analysis Gmax K
  • Corollary 9.5
  • When Gmax K then E O(n/k)
  • Can be derived from Lemma 9.4
  • E Gmax 2(( 5 a)n -1)

101
Refine analysis Gmax k big d
  • Lemma 9.6
  • While Gmax k, the amount of work done in
    relabeling at nodes v with d(v) gt k and pushes
    from those nodes is O(n2/k)

102
Refine analysis Gmax k
  • Proof
  • Define a node with d(v) gt k when Gmax k a
    bad node.
  • Find a bound on Relabel operations on bad nodes.
  • A node v is being processed for one of 2 reasons
  • It was selected from a bucket d(v) Gmax - can
    not be a bad node.
  • A unit of excess was pushed to it.

103
Refine analysis Gmax k
  • Proof continue
  • A unit of excess just pushed to v
  • After v is relabeled, a different node w with
    d(w) G will be chosen (by MCD).
  • The excess will remain at v until Gmax d(v).
  • When Gmax K then the total excess remaining is
    O(n/k).

104
Refine analysis Gmax k
  • Proof continue
  • Since the excess will have to remain at v until
    Gmax K ,The numbers of relabeling of bad nodes
    is O(n/k)
  • The degree of each node is at most n.
  • The work in pushes and relabeling bad nodes is
    O(n2/k)

105
Minimum Change Discharge - Analysis
  • Lemma 9.7
  • Between any two consecutive global update
    operations, the algorithm does O(m) work.

106
  • Proof
  • Its sufficient to show that the work done in
    canceling a deficit after global update is O(m).
  • From Global Update definition after global
    update there is a path from a node with excess to
    a node with deficit which does not require any
    Relabel operation.

107
  • The work of pushing the excess to its destination
    is O(n).
  • The amount of work in choosing the unit of excess
    to process in O(n)

108
Minimum Change Discharge - Analysis
  • Theorem 9.8
  • The Minimum Change Discharge algorithm with
    global updates computes a minimum cost
    circulation in a matching network in O(mvn
    log (nC)) time

109
Minimum Change Discharge - Analysis
  • Proof
  • During a refine
  • Gmax k The algorithm takes O(kmn2/k)
  • Gmax k
  • Total excess remaining is O(n/k).
  • The work done in pushing an excess to a deficit
    is O(m)
  • The algorithm takes O(km/n)

110
Minimum Change Discharge - Analysis
  • Proof Continue
  • The work done in Refine O(km/n n2/k
    km).
  • Choosing k to be vn and a 2
  • Refine O(mvn)
  • Minimum change discharge with Global Update
    takes O(mvn log (nC))

111
Lemma 9.4
  • Lemma 9.4
  • At any point during the execution of refine other
    than the first
  • E Gmax 2(( 5 a)n -1)

112
Flow Decomposition
  • Lemma 9.3
  • Given a matching network G and an integral
    circulation g, any integral pseudoflow f in Gg
    can be decomposed into
  • Cycles and
  • Paths, each from a node u with a deficit to a
    node v with excess.
  • Where all the elements are pairwiase node
    disjoint except at s,t and the endpoints of the
    paths, and each element carries one unit of flow.

113
Refine Analysis
  • Lemma 9.4 Proof
  • c the (reduced) arc cost at the beginning of
    this refine.
  • G the augmented residual graph at the same time.
  • E Gmax ? ef(v) gt 0 d(v)ef(v)

114
Lemma 9.4
  • Prove -? ef(v) gt 0 p(v)ef(v) cp(f) c(f)
  • Cp(f) C(f) ?f(v,w)gt0 (p(v)-p(w))f(v,w)
  • Let D be the decomposition of f into paths and
    cycles.
  • Cycles do not effect the above equation.
  • ?f(v,w)gt0 (p(v)-p(w))f(v,w)
  • ?p(u)-p(v) when (u ? v) ? D

115
Lemma 9.4
  • Nodes with deficit never relabled , thus p(u)
    0.
  • Cp(f) C(f) -? p(v) when (u ? v) ? D
  • Cp(f) C(f) -? ef(v) gt 0 p(v)ef(v)

116
Lemma 9.4 Cp(f) C(f)
  • Finding a bound Cp(f) C(f)
  • C(f)
  • For a circulation g, the residual graph has
    exactly n arcs a ? Eu
  • There are at most n negative cost arcs , each has
    cost at least - 2ae
  • C(f) - 2aen

117
Lemma 9.4, Cp(f)
  • Cp(f)
  • f(a) gt0 ? a reverse ? Ef
  • From f e-optimality
  • a reverse ? Ef ? Cp(a reverse) -2e.
  • f(a) gt 0 ? Cp(a) 2e.
  • So how many arcs with positive flow are there?

118
Lemma 9.4, Cp(f)
  • Cp(f) ? d ? D Cp(d)
  • Define V(d) interior of a path W(d) the set
    containing the initial and final arcs of d. If
    d is a cycle then V(d) d W(d) Ø.
  • Cp(f) ? d ? D Cp(V(d)) ? d ? D Cp(W(d))

119
Lemma 9.4
  • Counting the number of arcs in that equation
  • Total number of arc not incident to s or t in
    path and cycles interiors is at most n by node
    disjoint.
  • Total number of arc incident to s or t are at
    most 2n-1
  • Total excess is at most n ? initial and final
    arcs of paths are no more than 2n.
  • Arc with positive flow has reduced cost at most
    2e.
  • Cp(f) (n 2n-12n) 2e (5n-1) 2e
  • Cp(f) c(f) 2(5 a)n -1) e
Write a Comment
User Comments (0)
About PowerShow.com