IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Minimum-Cost Flow Network
flow network: G = (V ,E )balance values: b : V → Z
costs: c : E → R≥0
capacities: u : E → N
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
cost/capacity 2 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Minimum-Cost Flow Problem
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
1
1
2
1
1
1
flow: f : E → R≥0
capacity constraints: ∀e ∈ E : f (e) ≤ u(e)Kirchhoff’s law: ∀v ∈ V : b(v) = out(v)− in(v)
3 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Minimum-Cost Flow Problem
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
1
1
2
1
1
1
flow: f : E → R≥0
capacity constraints: ∀e ∈ E : f (e) ≤ u(e)Kirchhoff’s law: ∀v ∈ V : b(v) = out(v)− in(v)
Goal: minflow f
∑e∈E f (e) · c(e)
3 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Minimum-Cost Flow Problem
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
2
1
21
1
flow: f : E → R≥0
capacity constraints: ∀e ∈ E : f (e) ≤ u(e)Kirchhoff’s law: ∀v ∈ V : b(v) = out(v)− in(v)
Goal: minflow f
∑e∈E f (e) · c(e)
3 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Short History
Pseudo-Polynomial Algorithms:
Out-of-Kilter algorithm [Minty 60, Fulkerson 61]Cycle Canceling algorithmSuccessive Shortest Path algorithm
4 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Short History
Pseudo-Polynomial Algorithms:
Out-of-Kilter algorithm [Minty 60, Fulkerson 61]Cycle Canceling algorithmSuccessive Shortest Path algorithm
Polynomial Time Algorithms:
Capacity Scaling algorithm [Edmonds and Karp 72]Cost Scaling algorithm
4 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Short History
Pseudo-Polynomial Algorithms:
Out-of-Kilter algorithm [Minty 60, Fulkerson 61]Cycle Canceling algorithmSuccessive Shortest Path algorithm
Polynomial Time Algorithms:
Capacity Scaling algorithm [Edmonds and Karp 72]Cost Scaling algorithm
Strongly Polynomial Algorithms:
Tardos’ algorithm [Tardos 85]Minimum-Mean Cycle Canceling algorithmNetwork Simplex algorithmEnhanced Capacity Scaling algorithm [Orlin 93]
4 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Theory vs. Practice
Theory Practice
Fastest algorithm:Enhanced Capacity Scaling
Fastest algorithm:Network Simplex
5 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Theory vs. Practice
Theory Practice
Fastest algorithm:Enhanced Capacity Scaling
Fastest algorithm:Network Simplex
Successive Shortest Path:exponential in worst case
Minimum-Mean Cycle Canceling:strongly polynomial
Successive Shortest Path
much faster than
Minimum-Mean Cycle Canceling
5 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Reason for Gap between Theory and Practice
Worst-case complexity is too pessimistic!
There are artificial worst-case inputs. Theseinputs, however, do not occur in practice.
Adversary
“I willtrick youralgo-rithm!”
6 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Reason for Gap between Theory and Practice
Worst-case complexity is too pessimistic!
There are artificial worst-case inputs. Theseinputs, however, do not occur in practice.
This phenomenon occurs also for many otherproblems and algorithms.
Adversary
“I willtrick youralgo-rithm!”
6 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Reason for Gap between Theory and Practice
Worst-case complexity is too pessimistic!
There are artificial worst-case inputs. Theseinputs, however, do not occur in practice.
This phenomenon occurs also for many otherproblems and algorithms.
Adversary
“I willtrick youralgo-rithm!”
Goal
Find a more realistic performance measure that is not just basedon the worst case.
6 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Observation: In worst-case analysis, the adversary is too powerful.Idea: Let’s weaken him!
Input model:
Adversarial choice of flow network
Adversarial real arc capacities ue and node balance values bv
Adversarial densities fe : [0, 1] → [0, φ]
Arc costs ce independently drawn according to fe
7 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Observation: In worst-case analysis, the adversary is too powerful.Idea: Let’s weaken him!
Input model:
Adversarial choice of flow network
Adversarial real arc capacities ue and node balance values bv
Adversarial densities fe : [0, 1] → [0, φ]
Arc costs ce independently drawn according to fe
Randomness models, e.g., measurement errors, numericalimprecision, rounding, . . .
7 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Worst-case Analysis: maxce T
Smoothed Analysis: maxfe E [T ]
8 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Worst-case Analysis: maxce T
Smoothed Analysis: maxfe E [T ]
φ = 1: Average-case analysis
0 1
1x
f (x)
8 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Worst-case Analysis: maxce T
Smoothed Analysis: maxfe E [T ]
0 1x
f (x)
φ
1/φ
8 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Worst-case Analysis: maxce T
Smoothed Analysis: maxfe E [T ]
φ → ∞: Worst-case analysis
0 1x
f (x)
φ
x⋆
8 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Smoothed Analysis
Worst-case Analysis: maxce T
Smoothed Analysis: maxfe E [T ]
φ → ∞: Worst-case analysis
0 1x
f (x)
x⋆
φ
8 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Initial Transformation
Successive Shortest Path algorithm
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
9 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Initial Transformation
Successive Shortest Path algorithm
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
0
0
0
0
3 -3
0/2
0/20/1
0/1
9 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Augmenting Steps
Successive Shortest Path algorithm
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
0
0
0
0
3 -3
0/2
0/20/1
0/12
2
2
2
2
path length: 3, augmenting flow value: 2
10 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Augmenting Steps
Successive Shortest Path algorithm
0
0
3/2 3/1
3/1
3/1
0
0
0
0
0/1
0/10/2
0/2
-1/2
-1/2
1 -1-1/21/1
update residual network
10 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Augmenting Steps
Successive Shortest Path algorithm
0
0
3/2 3/1
3/1
3/1
0
0
0
0
0/1
0/10/2
0/2
-1/2
-1/2
1 -1-1/21/1
1
1
1
1
1
path length: 5, augmenting flow value: 1
10 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Augmenting Steps
Successive Shortest Path algorithm
0
0
3/2 3/1
0
0
0
0
0/2
0/2
-1/2
-1/2
-3/1
-3/1
0/1
0/1
0 0-1/11/2
update residual network
10 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Resulting Flow
Successive Shortest Path algorithm
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
0
0
0
0
3 -3
0/2
0/20/1
0/12
1
21
1
2
21
1
flow cost: 11, flow value: 3
11 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Resulting Flow
Successive Shortest Path algorithm
2
1
-1
-2
0
0
3/2 3/1
1/2 3/1
1/3
3/1 1/2
2
1
21
1
flow cost: 11, flow value: 3
11 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Results
Theorem (Upper Bound)
In expectation, the SSP algorithm requires O(mnφ) iterations andhas a running time of O(mnφ(m + n log n)).
12 / 17
IntroductionAnalysis
Minimum-Cost Flow ProblemSmoothed AnalysisSuccessive Shortest Path Algorithm
Results
Theorem (Upper Bound)
In expectation, the SSP algorithm requires O(mnφ) iterations andhas a running time of O(mnφ(m + n log n)).
Theorem (Lower Bound)
There are smoothed instances on which the SSP algorithm requiresΩ(m ·min n, φ · φ) iterations in expectation.
upper bound tight for φ = Ω(n)
12 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
initial solution: empty flow
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
value
length
slope = path length
×
value
after 1 iteration
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
after 2 iterations
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
after 3 iterations
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
after 4 iterations
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
after 5 iterations#iterations = #distinct slopes
13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Useful Properties
Lemma
The distances from the source to any node increase monotonically.
0value
cost
after 5 iterations#iterations = #distinct slopes
Lemma
Every intermediate flow is optimal for its flow value.13 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n]
0 n
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
=⇒ #slopes =k∑
ℓ=1
#slopes ∈ Iℓ
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
=⇒ E[#slopes] =k∑
ℓ=1
E[#slopes ∈ Iℓ]
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
=⇒ E[#slopes] =k∑
ℓ=1
E[#slopes ∈ Iℓ]
≈k∑
ℓ=1
Pr [∃slope ∈ Iℓ]
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
=⇒ E[#slopes] =k∑
ℓ=1
E[#slopes ∈ Iℓ]
≈k∑
ℓ=1
Pr [∃slope ∈ Iℓ]
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Counting the Number of Slopes
slope = augmenting path length ∈ (0, n] =k⋃
ℓ=1
Iℓ, |Iℓ| =n
k
0 n
=⇒ E[#slopes] =k∑
ℓ=1
E[#slopes ∈ Iℓ]
≈k∑
ℓ=1
Pr [∃slope ∈ Iℓ]
= O(mnφ)
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
14 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
cost
value0
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
d - slope threshold
≤ d
≤ d
> d
> d
d
cost
value0
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
d - slope threshold
F ⋆- flow at breakpoint
≤ d
≤ d
> d
> d
d
cost
F⋆
value0
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
d - slope threshold
F ⋆- flow at breakpoint
P - next augmenting path
e - empty arc of P in Gf ⋆ ≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
d - slope threshold
F ⋆- flow at breakpoint
P - next augmenting path
e - empty arc of P in Gf ⋆ ≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
∃slope ∈ (d , d + ε] ⇐⇒ c(P) ∈ (d , d + ε]
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
d - slope threshold
F ⋆- flow at breakpoint
P - next augmenting path
e - empty arc of P in Gf ⋆ ≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
∃slope ∈ (d , d + ε] ⇐⇒ c(P) ∈ (d , d + ε]
Goal: Reconstruct F ⋆ and P without knowing ce
15 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Principle of Deferred Decisions
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
Phase 1: Reveal all ce′ for e′ 6= e.
Assume this suffices to uniquely iden-tify F ⋆ and P .
≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
16 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Principle of Deferred Decisions
Main Lemma
∀d ≥ 0 : ∀ε ≥ 0 : Pr [∃slope ∈ (d , d + ε]] = O(mφε)
Phase 1: Reveal all ce′ for e′ 6= e.
Assume this suffices to uniquely iden-tify F ⋆ and P .
Phase 2:
Pr [c(P) ∈ (d , d + ε]]
= Pr [c(e) ∈ (z , z + ε]] ≤ φε,
where z is fixed if ce′ for e′ 6= e is fixed.
≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
16 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Case 1: e forward arc
Set c ′(e) = 1 and for all e ′ 6= e set c ′(e ′) = c(e ′).Run SSP with modified costs c ′.
17 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Case 1: e forward arc
Set c ′(e) = 1 and for all e ′ 6= e set c ′(e ′) = c(e ′).Run SSP with modified costs c ′.
≤ d
≤ d
> d
> d
d
c(P )
cost
F⋆
value0
17 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Case 1: e forward arc
Set c ′(e) = 1 and for all e ′ 6= e set c ′(e ′) = c(e ′).Run SSP with modified costs c ′.
≤ d
≤ d
> d
> d
d
cost
F⋆
value0
c′
c
17 / 17
IntroductionAnalysis
ObservationsDiscretizationFlow Reconstruction
Flow Reconstruction
Case 1: e forward arc
Set c ′(e) = 1 and for all e ′ 6= e set c ′(e ′) = c(e ′).Run SSP with modified costs c ′.
≤ d
≤ d
> d
> d
d
cost
F⋆
value0
c′
c
F ⋆ is the same for c and c ′17 / 17