Algorithmique Cycles 2011a
Algorithmique Cycles 2011a
Algorithmique
Fall semester 2011/12
Recap
2 3 6
4
-2 2
1 -3 Cycle value = -2-2+2=-2 < 0
4 7
3
-2
3 2 4
5 2
1 -2
4
8
Moore-Bellman-Ford Algorithm
-1 -2
1 3 2 5 -2 6
1
4 -4
4
Nodes
1 2 3 4 5 6
0 0 inf inf inf inf inf Initialization
-1 -2
1 3 2 5 -2 6
1
4 -4
4
Nodes
1 2 3 4 5 6
0 0 inf inf inf inf inf Initialization
Invariant:
• l(v) is the length of the shortest path from s to v using at most i edges in the i-th iteration.
At most i edges
• Proof by induction.
v
s
Negative cycles: If there are no negative cycles visible from s, then for any v there is a
shortest path from s to v using at most n-1 edges. A negative cycle visible from s is a negative cycle on a path
from s to some other node v in the graph.
If the l-value of at least one node changes in round n of the MBF algorithm, then there is a
negative cycle that is visible from s.
This is because the contrapositive is true: if there are no negative cycles visible from s, then
the l-values don’t change in round n. See previous slide.
Equal!
t
�
=⇒ 0 ≤ w(vi−1 , vi ) Cycle is not negative.
i=1
Visible Negative Cycles
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
The MBF step is finished at
7 0 2 -3 2 -1 -4 -6 -1
this point. We run one more
8 0 4 -3 -1 -4 -4 -6 -4 step
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
7 0 2 -3 2 -1 -4 -6 -1
8 0 2 -3 -1 -4 -4 -6 -4
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
7 0 2 -3 2 -1 -4 -6 -1
8 0 2 -3 -1 -4 -4 -6 -4
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
7 0 2 -3 2 -1 -4 -6 -1
8 0 2 -3 -1 -4 -4 -6 -4
If the path crosses the same column twice, then the corresponding
node is on a negative cycle
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 2 0 2 -1 -4 -3 -1
7 0 2 -3 2 -1 -4 -6 -1
8 0 2 -3 -1 -4 -4 -6 -4
If the path crosses the same column twice, then the corresponding
node is on a negative cycle
Karp’s Algorithm
4
t
� 2
1 s=1 4
-2
-3
µ(C) := w(vi−1 , vi ) 4
7
t i=1 3 4 -2
2 2
1
6 -2
8
3
Karp has designed an algorithm to compute this number which we will study in the following.
Karp’s Algorithm: First Step
For k from 0 to n calculate the shortest path from s to all v using exactly k edges.
Set value to infinity if no such path exists.
This is the same as adding all non-existent edges to the graph with
a weight of infinity, and calculating shortest paths with exactly k
edges
�
min(u,v)∈E Fk−1 (u) + w(u, v) if ∃(u, v) ∈ E
Fk (v) :=
∞ else
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
1 0 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
2 0 4 inf 4 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
3 0 4 9 4 2 -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
4 0 4 0 4 2 -1 -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
5 0 4 0 2 -1 -1 -3 -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
6 0 4 0 2 -1 -4 -3 -1
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
7 0 4 -3 2 -1 -4 -6 -1
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
8 0 4 -3 -1 -4 -4 -6 -4
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
Reading the Paths
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4 Follow the arrows backwards
Now we have calculated Fk(v) for all k=0,...,n and all nodes v.
For all v, calculate
Fn (v) − Fk (v)
α(v) := max
0≤k<n n−k
Karp’s theorem says:
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1
(-4-2)/(8-2)=-1
Example
2 5
3
-2 2
s=1 4 -3
4
7
4 -2
3
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1 µ∗ (G) = −1
(-4-2)/(8-2)=-1
What does it Have to do with Cycles?
2 5
3
2x
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2x
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1
Path of length 8
and cost -4
What does it Have to do with Cycles?
2 5
3
2x
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2x
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8 Path of length 2
and cost 2
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
F4(v) 4 12 inf 0 11 8 inf -3 8
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1
What does it Have to do with Cycles?
2 5
3
2x
2x
-2 2
s=1 4 -3
4
7
4 -2
3
2x
2 2
1
6 -2
8
3
1 2 3 4 5 6 7 8
Fo(v) 0 0 inf inf inf inf inf inf inf
F1(v) 1 inf 4 inf 4 inf inf inf inf
F2(v) 2 inf inf inf inf 2 8 inf inf
F3(v) 3 inf 5 9 inf inf -1 6 inf
What remains is a cycle with
F4(v) 4 12 inf 0 11 8 inf -3 8 6 edges and cost -6
F5(v) 5 3 11 inf 2 -1 5 inf -1
F6(v) 6 inf 2 6 7 0 -4 3 inf
F7(v) 7 9 3 -3 8 5 -3 -6 5
F8(v) 8 0 8 -2 -1 -4 2 -5 -4
alpha 0 5 1 -5/7 -1 5 1 -1
Fn(v)-Fk(v) is the weight of a cycle with n-k edges starting and ending in v
Proof of Karp’s Therem
Now we have calculated Fk(v) for all k=0,...,n and all nodes v.
For all v, calculate
Fn (v) − Fk (v)
α(v) := max
0≤k<n n−k
Karp’s theorem says:
Consider the graph Ĝ obtained from G by subtracting from all edge values the quantity µ∗ (G)
µ∗ (Ĝ) = 0
Proof: weights in new graph are ŵ(u, v) = w(u, v) − µ∗ (G)
Without loss of generality: consider a graph in which smallest average cycle length is 0.
Second Step:
Zero is Smallest Average Cycle Weight
σ := min Fk (v)
k=0,...,n−1
is the length of the shortest path from s to v. On the other hand, Fn(v) is the length of the
shortest path from s to v with exactly n edges, so it is not smaller than σ. Therefore
Path P
Path P