The document describes an implementation and experimental evaluation of a combinatorial min-cost flow algorithm. It outlines the potential reduction algorithm, describes how it models the electrical flow problem, and discusses challenges in solving the electrical flow problem efficiently as it is the most computationally expensive part of the algorithm. The implementation aims to reduce the number of required electrical flow problem solves by beginning with better initial solutions and reducing the stretch of the trees used.
Study on PWM Rectifier without Grid Voltage Sensor Based on Virtual Flux Dela...
defense_slides
1. Implementation and Experimental
Evaluation of a Combinatorial Min-Cost Flow
Algorithm
Adithya Vadapalli
Supervisor: Dr. Andreas Karrenbauer
Max Planck Institute for Informatics
March 6, 2015
2. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Outline
Introduction
Potential Reduction Algorithm
Electrical Flow Problem
Implementation
Conclusion
March 6, 2015 2/29
3. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Min Cost Flow Problem
5 -4
-8
9 -11
9
(3,8)
(4, 5)(2,1)
(8, 4)
(10,15)
(2,5)
(4,11)
Problem Statement
Given a graph G = (V, A)
demands b : V → Z s.t. bT 1 = 0
costs c : A → Z
capacities u : A → Z>0
Find a flow satisfying
demands, respecting capacities, minimizing cost.
March 6, 2015 3/29
4. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Primal and Dual
Primal
min {cT x : Ax = b, x ≥ 0}, node-arc incidence matrix A
March 6, 2015 4/29
5. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Primal and Dual
Primal
min {cT x : Ax = b, x ≥ 0}, node-arc incidence matrix A
Dual
max {bT y : AT y + s = c, s ≥ 0}
March 6, 2015 4/29
6. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Primal and Dual
Primal
min {cT x : Ax = b, x ≥ 0}, node-arc incidence matrix A
Dual
max {bT y : AT y + s = c, s ≥ 0}
Duality Gap
The distance to optimality measured by duality gap
cT x − bT y = xT s.
March 6, 2015 4/29
7. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
March 6, 2015 5/29
8. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
Simplex
March 6, 2015 5/29
9. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
Simplex
March 6, 2015 5/29
10. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
Simplex
March 6, 2015 5/29
11. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
Simplex
March 6, 2015 5/29
12. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
LP Solvers
Optimum
Simplex
Interior Point Method
March 6, 2015 5/29
13. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Snapping to the Optimum
Note
Interior-point method doesn’t take us to the exact optimum.
In fact it takes us to the point s.t. xT s < 1.
March 6, 2015 6/29
14. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Snapping to the Optimum
Note
Interior-point method doesn’t take us to the exact optimum.
In fact it takes us to the point s.t. xT s < 1.
Theorem - Crossover Algorithm BK, 2014
If we have primal and dual solutions x and y, s, such that
xT s < 1, we can get integral optimal potentials y in
O(m + n log n) time.
March 6, 2015 6/29
15. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Preprocessing - Getting a Good Interior Point
16. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Preprocessing - Getting a Good Interior Point
b1
b2 b3
b4 b5
(c
1,u
1)
(c6, u6) (c3,u3)
(c4 , u4 )
(c5,u5)
(c7, u7)
(c2
,u2
)
18. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Preprocessing - Getting a Good Interior Point
b1
b2 b3
b4 b5
(c
1,u
1)
(c6, u6) (c3,u3)
(c4 , u4 )
(c5,u5)
(c7, u7)
(c2
,u2
)
z
1
z6 = 0
z3
z4 =
0
z5
z7 = 0
b2
b1
b3
b4 b5
z2
v
w
bv
(ca,ua)
bw
19. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Preprocessing - Getting a Good Interior Point
b1
b2 b3
b4 b5
(c
1,u
1)
(c6, u6) (c3,u3)
(c4 , u4 )
(c5,u5)
(c7, u7)
(c2
,u2
)
z
1
z6 = 0
z3
z4 =
0
z5
z7 = 0
b2
b1
b3
b4 b5
z2
v
w
bv
(ca,ua)
bw
v
w
vw
(0, ∞
)
ua
(ca
, ∞
)
bv
bw − ua
20. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Preprocessing - Getting a Good Interior Point
b1
b2 b3
b4 b5
(c
1,u
1)
(c6, u6) (c3,u3)
(c4 , u4 )
(c5,u5)
(c7, u7)
(c2
,u2
)
z
1
z6 = 0
z3
z4 =
0
z5
z7 = 0
b2
b1
b3
b4 b5
z2
v
w
bv
(ca,ua)
bw
v
w
vw
(0, ∞
)
ua
(ca
, ∞
)
bv
bw − ua
v
w
vw
bvw
0
ca
Cˆa
bv
bw
March 6, 2015 7/29
21. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Potential, Gradient, Electrical Flow
March 6, 2015 8/29
22. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Potential, Gradient, Electrical Flow
Potential Function
P(x, s) := q ln(xT
s
gap
) − a∈A ln(xasa
barrier
) − m ln m
March 6, 2015 8/29
23. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Potential, Gradient, Electrical Flow
Potential Function
P(x, s) := q ln(xT
s
gap
) − a∈A ln(xasa
barrier
) − m ln m
Gradient of Potential Function
g := Px = q
xT s
s − X−11
March 6, 2015 8/29
24. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Potential, Gradient, Electrical Flow
Potential Function
P(x, s) := q ln(xT
s
gap
) − a∈A ln(xasa
barrier
) − m ln m
Gradient of Potential Function
g := Px = q
xT s
s − X−11
Projection Problem
min {||g − d ||2 : ¯Ad = 0}
March 6, 2015 8/29
25. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
March 6, 2015 9/29
26. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
March 6, 2015 9/29
27. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
2. Electrical flow gives an approximation of d .
March 6, 2015 9/29
28. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
2. Electrical flow gives an approximation of d .
3. Length of this approximation is ‘long enough’ :
make a primal step by augmenting flow along a cycle.
March 6, 2015 9/29
29. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
2. Electrical flow gives an approximation of d .
3. Length of this approximation is ‘long enough’ :
make a primal step by augmenting flow along a cycle.
4. Otherwise do a dual step by changing s and y along a cut.
March 6, 2015 9/29
30. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
2. Electrical flow gives an approximation of d .
3. Length of this approximation is ‘long enough’ :
make a primal step by augmenting flow along a cycle.
4. Otherwise do a dual step by changing s and y along a cut.
5. If xT s < 1 , algorithm stops.
March 6, 2015 9/29
31. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Doing a Primal or Dual Step
Initially
We constructed an Auxiliary Graph.
Found a ‘good’ interior points for the Auxiliary Graph.
1. Solves electrical flow problem: resistances, 1
x2
a
and batteries, g.
2. Electrical flow gives an approximation of d .
3. Length of this approximation is ‘long enough’ :
make a primal step by augmenting flow along a cycle.
4. Otherwise do a dual step by changing s and y along a cut.
5. If xT s < 1 , algorithm stops.
6. Otherwise go back to step 1 and solve
electrical-flow problem with new iterates.
March 6, 2015 9/29
32. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Solves the Electrical Flow Problem
r15, g15
r11,g11
r12
,g12
r13, g13
r14,g14
r16,g16
r17 ,g17
r6 ,g6
r5,g5
r4,g4
r1, g1 r2, g2
r3,g3
r10 ,g10
r9,g9
r8,g8
r7
,g7
resistances,
ri := 1
x2
i
batteries, g
March 6, 2015 10/29
33. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
March 6, 2015 11/29
34. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
March 6, 2015 11/29
35. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
1. Begins with a feasible solution.
March 6, 2015 11/29
36. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
1. Begins with a feasible solution.
2. Picks a low-stretch tree w.r.t. resistances.
March 6, 2015 11/29
37. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
1. Begins with a feasible solution.
2. Picks a low-stretch tree w.r.t. resistances.
3. Picks a non-tree edge using a probability distribution.
March 6, 2015 11/29
38. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
1. Begins with a feasible solution.
2. Picks a low-stretch tree w.r.t. resistances.
3. Picks a non-tree edge using a probability distribution.
4. Does a cycle-update by pushing a flow α
through the cycle completed by the non-tree edge.
March 6, 2015 11/29
39. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem Kelner et. al. 2013
Given: G = (V, A, r), with batteries g and resistances r.
Objective: Find a flow f which minimizes
a∈A raf2
a − 2gafa with the constraint Af = 0.
1. Begins with a feasible solution.
2. Picks a low-stretch tree w.r.t. resistances.
3. Picks a non-tree edge using a probability distribution.
4. Does a cycle-update by pushing a flow α
through the cycle completed by the non-tree edge.
5. If solution does not become good enough go back to step 3.
March 6, 2015 11/29
40. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Electrical Flow Problem
March 6, 2015 12/29
41. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Implementation Challenges
Main Challenge
Solving the electrical flow problem is the most expensive part of
the implementation.
The complexity of electrical-flow problem is ˜O(m).
It is run in each of ˜O(
√
m) potential reduction iterations.
March 6, 2015 13/29
42. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Implementation Challenges
Main Challenge
Solving the electrical flow problem is the most expensive part of
the implementation.
The complexity of electrical-flow problem is ˜O(m).
It is run in each of ˜O(
√
m) potential reduction iterations.
Our Strategy
Try reducing the number of electrical flow iterations.
Begin with a better initial solution.
Try Reducing the stretch of the Tree.
March 6, 2015 13/29
43. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Which Electrical Flow Problems do we solve in
each Iteration?
Dual Step: Only batteries change.
Primal Step: Resistances and batteries change.
But these changes may not be too large.
March 6, 2015 14/29
44. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Which Electrical Flow Problems do we solve in
each Iteration?
Dual Step: Only batteries change.
Primal Step: Resistances and batteries change.
But these changes may not be too large.
Intuition
The Electrical flow problem being solved in the current and the
previous iteration should be ‘quite similar’
March 6, 2015 14/29
45. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Warm Start the Electrical Flow Problem
Our Aim
Begin with a better initial solution.
March 6, 2015 15/29
46. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Warm Start the Electrical Flow Problem
Our Aim
Begin with a better initial solution.
Idea
Use final solution of the previous iteration as an initial solution.
Make the flow feasible by adjusting the imbalances.
March 6, 2015 15/29
47. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Reduce the Stretch of the Tree
Stretch
st(e) := e ∈Pe
re
re
and st(T) := e∈ET st(e)
Stretch effects the running time of the electrical flow problem.
Higher stretch =⇒ Higher running time.
March 6, 2015 16/29
48. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Reduce the Stretch of the Tree
Stretch
st(e) := e ∈Pe
re
re
and st(T) := e∈ET st(e)
Stretch effects the running time of the electrical flow problem.
Higher stretch =⇒ Higher running time.
Recall
The pre-processing step introduces m triangles.
March 6, 2015 16/29
49. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Reduce the Stretch of the Tree
Stretch
st(e) := e ∈Pe
re
re
and st(T) := e∈ET st(e)
Stretch effects the running time of the electrical flow problem.
Higher stretch =⇒ Higher running time.
Recall
The pre-processing step introduces m triangles.
Idea
Use the Delta-Wye transformation on these triangles.
This would reduce the number of fundamental cycles.
This should reduce the stretch.
March 6, 2015 16/29
50. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Delta-Wye Transformation
r3
r2
r1
˘r2˘r1
˘r3
˘r1 =
r1r2
r3 + r2 + r2
˘r2 =
r2r3
r1 + r2 + r3
˘r3 =
r1r2
r1 + r2 + r3
.
Fact
Both the electrical circuits above are equivalent.
March 6, 2015 17/29
51. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
The Effect on Stretch
Experiment on Graph with 520 arcs and 49 nodes
0 3000 6000 9000 12000
Potential Reduction Iteration Number
2000
3000
4000
5000
6000
7000
Stretch
w.o. Delta-Wye
with Delta-Wye
March 6, 2015 18/29
52. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Effect on the Electrical Flow Iterations without the
Warm Start
Experiment on Graph with 520 arcs and 49 nodes
0 2000 4000 6000 8000 10000
Iteration Number
0
10000
20000
30000
40000
50000
ElectricalFlowIterations
w.o. delta-wye
with delta-wye
March 6, 2015 19/29
53. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Effect on the Electrical Flow Iterations with the
Warm Start
Experiment on Graph with 520 arcs and 49 nodes
0 2000 4000 6000 8000 10000
Potential Reduction Iteration Number
0
10000
20000
30000
40000
50000
No.ofElectricalFlowIterations
w.o. Delta-Wye(WS)
Delta-Wye (WS)
ss March 6, 2015 20/29
54. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Effect on the Number of Electrical Flow Iterations
Observation
The Reduction in the number of Electrical-Flow Iterations is less
pronounced when the Warm-Start is done.
Inference
The stretch of the tree should be a less significant factor for the
running time, if we have a good initial solution.
March 6, 2015 21/29
55. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Arc-Removal
Lemma
If for feasible interior primal and dual points x and s with sa > xT s
for some arc a, then for every optimal solution x∗, x∗
a = 0.
After every dual step we look for an arc such that sa > xT s.
If we find such an arc, set the flow on that arc to be zero
and balance the flow on the other arcs.
March 6, 2015 22/29
56. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Arc-Removal’s effect on the stretch of the tree
Experiment on Graph with 1920 arcs and 65 nodes
2150 2200 2250
Potential Reduction Iteration Number
1600
1650
1700
1750
1800
Stretch
Before Arc-Removal
After Arc-Removal
March 6, 2015 23/29
57. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Effect on the Duality Gap
Experiment on Graph with 1920 arcs and 65 nodes
3500 3600 3700
Potential Reduction Iteration Number
0
2e+08
4e+08
6e+08
8e+08
DualityGap
Before Arc-Removal
After Arc-Removal
March 6, 2015 24/29
60. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
New Initialization
Case 1: za > ua
2
61. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
New Initialization
Case 1: za > ua
2
Case 2: za < ua
2
62. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
New Initialization
Case 1: za > ua
2
Case 2: za < ua
2
Case 3: za = ua
2
March 6, 2015 25/29
63. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
New Initialization
Our Aim
Maximize arcs in original graph which would be in third case.
The case occurs when za = ua
2
March 6, 2015 26/29
64. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
New Initialization
Our Aim
Maximize arcs in original graph which would be in third case.
The case occurs when za = ua
2
The Solution
Set the flow on each non-tree edge of the original graph to ua
2 .
Balance flow by pushing imbalances created through tree arcs.
March 6, 2015 26/29
65. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Rate of decrease of the Duality Gap
Experiment on Graph with 1920 arcs and 65 nodes
0 5000 10000
Potential Reduction Iteration Number
1
1e+05
1e+10
1e+15
1e+20
DualityGap
with the new initialization
with the old initialization
3.892e+14 exp(-0.0334x)
1.466e+15 exp(-0.00323x)
March 6, 2015 27/29
66. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Open Problems and Future Work
Is it possible to find a graph class where an ‘improved’ version
of our implementation is faster that standard systems like
GUROBI, CPLEX?
Would the implementation be faster if we use some other
interior point methods?
Is it possible to have an implementation where solving the
electrical flow problem is not required at all?
March 6, 2015 28/29
67. Introduction Potential Reduction Algorithm Electrical Flow Problem Implementation Conclusion
Thank you for your attention!
March 6, 2015 29/29