Title: Global Price Updates Help A.V Goldberg and R. Kennedy
1Global Price Updates Help A.V Goldberg and R.
Kennedy
- Advanced Algorithms Seminar
- Instructor Prof. Haim Kaplan
- Presented by Orit Nissan-Messing
2Motivation
- Solving two new problems
- Bipartite matching problem
- Assigment problem
- Using Push Relabel methods
- Improve complexity using Global Updates
3Some 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.
4Bipartite graph example
Y
X
5Bipartite 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.
6Bipartite 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
7Building 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.
9Pseudoflow 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.
10Some 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
11Basic 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.
12Push 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
13Analysis 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).
14Analysis - 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
15dw(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.
16Global 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...
17Global 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.
18Minimum 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.
19Minimum 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.
20Minimum 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).
21Minimum 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.
22Some 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. -
23Minimum Distance Discharge - Analysis
- Lemma 4.1
- Between two consecutive Global Updates, the
algorithm does O(n) work in examining empty
buckets.
24Minimum Distance Discharge - Analysis
- Proof
- µ decreases only when it is set to zero after an
update.
25Minimum Distance Discharge - Analysis
- Proof
- µ decreases only when it is set to zero after an
update.
µ 3
d3
d2
d1
Active node
T
d 1
26Minimum Distance Discharge - Analysis
- Proof
- µ decreases only when it is set to zero after an
update. - There are 2n1 buckets.
-
27Minimum 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.
-
28Stage 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 -
29Stage 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.
30Flow 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 -
31Example for 4.3
0
-2
2
t
s
- Augmented residual graph for flow f (f2).
- All Arcs have unit capacity on both sides
32Stage 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.
33Stage 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 -
34Stage 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). -
35Stage 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.
36Stage 2 and Stage 4
- Lemma 4.6
- Between any two consecutive global update
operations, the algorithm does T(m) work.
37Stage 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.
38Stage 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).
39Complexity 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).
40Complexity 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.
41Bad family
relabel
0
0
1
d(v) 7
0
0
1
-3
0
0
1
42Bad family
1
0
1
relabel
7
0
0
1
-3
0
0
1
43Bad family
1
0
1
7
0
1
1
-3
0
0
1
relabel
44Bad family
relabel
1
0
0
1
7
0
1
1
-3
0
1
1
45Bad family
1
1
0
0
7
0
1
1
1
-3
0
0
1
1
46Bad family
1
1
0
0
7
0
1
1
0
-3
0
1
1
relabel
1
47Bad family
1
1
0
0
7
0
1
2
0
-3
1
0
1
1
48Bad family
1
1
0
0
7
0
1
2
0
-3
1
0
2
1
relabel
49Bad family
1
relabel
1
0
1
7
0
1
2
0
-3
1
0
2
0
50Bad family
relabel
1
2
1
0
7
0
1
2
0
-3
1
0
2
0
51Bad family
2
2
0
0
7
0
1
2
0
-3
1
1
2
0
relabel
52Bad family
2
relabel
2
0
0
7
0
1
2
1
-3
2
0
2
0
53Bad family
relabel
2
2
0
1
7
0
3
2
0
-3
2
0
2
0
54So 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
558
9
0
1
7
0
8
2
0
-3
9
0
8
0
56Second 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
57Assignment 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.
58Building 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.
60Back 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.
61Definition example
2
0
12
0
0
-12
2
0
62e-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.
63Admissibility
- a ? Ef is admissible
- a ? Eu ? Cp (a) lt e
- a ? Eu ? Cp (a) lt -e
64Succssive 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)
65Cost 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)
66Refine 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)
67Relabel 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
68Relabel 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.
-
69Relabel 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
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)
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
85This 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
86Global 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.
87Length 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.
88Global 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.
89Example 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
90But..
- 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.
91Global 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.
92Price 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.
93Minimum 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.
94Minimum 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).
95Definitions 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.
96Minimum 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.
97Refine 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.
98Minimum 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).
-
99Refine 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)
100Refine 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)
101Refine 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)
102Refine 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.
-
103Refine 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).
104Refine 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)
105Minimum 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)
108Minimum 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
109Minimum 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)
110Minimum 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))
111Lemma 9.4
- Lemma 9.4
- At any point during the execution of refine other
than the first - E Gmax 2(( 5 a)n -1)
112Flow 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.
113Refine 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)
114Lemma 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
115Lemma 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)
116Lemma 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
117Lemma 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?
118Lemma 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))
119Lemma 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