Vorlesung
Kombinatorische Optimierung (Wintersemester 2018/19)
Kapitel 1: K¨urzeste Wege und Kreise
Volker Kaibel
Otto-von-Guericke Universit¨at Magdeburg
(Version vom 11. Oktober 2018)
Graphen und Digraphen
Definition 1.1
EinGraph ist ein Paar G = (V,E) bestehend aus einer endlichen KnotenmengeV und einer TeilmengeE ⊆ V2
der
zweielementigen Teilmengen vonV, der KantenmengevonG. Definition 1.2
EinDigraph (gerichteter Graph) ist ein Paar D= (V,A) bestehend aus einer endlichenKnotenmenge V und einer Teilmenge
A⊆V ×V \ {(v,v)|v ∈V},
derBogenmengevon D. Zwei B¨ogen (v,w),(w,v)∈Aheißen antiparallel.
Multigraphen und -digraphen
Bemerkung
I Verallgemeinerung von Digraphen: Multi-Digraphen
D = (V,A,Ψ) mitΨ :A−→V ×V und beliebiger endlicher Indexmenge A der B¨ogen. ( ¨Ahnlich: Multi-Graphen)
I Man kann Konzepte, Resultate, Algorithmen in der Regel in offensichtlicher Weise von (Di-)Graphen auf
Multi-(Di-)Graphen ¨ubertragen.
Wege und Kreise (ungerichtet)
Definition 1.3
SeiG = (V,E) ein Graph mit V ={v0,v1, . . . ,vl}und E ={{v0,v1},{v1,v2}, . . . ,{vl−1,vl}}
1. Sind v0,v1, . . . ,vl paarweise verschieden, so heißt G ein v0−vl-Weg der(kombinatorischen) L¨ange l.
2. Istv0 =vl und sindv0=vl,v1, . . . ,vl−1 paarweise verschieden, so istG einKreisder (kombinatorischen) L¨angel.
Wege und Kreise (gerichtet)
Definition 1.4
SeiD = (V,A) ein Digraph mit V ={v0,v1, . . . ,vl} und A={(v0,v1),(v1,v2), . . . ,(vl−1,vl)}
1. Sind v0,v1, . . . ,vl paarweise verschieden, so heißt D ein (gerichteter) v0−vl-Wegder (kombinatorischen) L¨ange l.
2. Istv0 =vl und sindv0=vl,v1, . . . ,vl−1 mit l ≥2 paarweise verschieden, so istG ein(gerichteter) Kreisder
(kombinatorischen) L¨ange l.
Teilgraphen
Definition 1.5
SindG = (V,E) und G0 = (V0,E0) (bzw. D = (V,A) und D0= (V0,A0)) zwei Graphen (bzw. Digraphen) mitV0 ⊆V und E0 ⊆E (bzw. A0 ⊆A), so ist G0 einTeilgraphvon G (bzw.D0 ein TeildigraphvonD). Falls sogar
E0 =E∩ V0
2
bzw. A0=A∩(V0×V0) gilt, so heißt der Teilgraphinduzierter Untergraph(bzw.
induzierter Unterdigraph). GiltV0 =V, so heißt der Teilgraph spannend.
Induzierte Knoten-, Kanten-, B¨ ogenmengen
Definition 1.6
SeiG = (V,E) ein Graph. F¨ur Teilmengen V0 ⊆V und E0 ⊆E definieren wirE(V0) :=E ∩ V20
und
V(E0) :={v ∈V| {v,w} ∈E0 f¨ur ein w ∈V}
Definition 1.7
SeiD = (V,A) ein Graph. F¨ur TeilmengenV0⊆V und A0 ⊆A definieren wirA(V0) :=A∩(V0×V0) und
V(A0) :={v ∈V |(v,w)∈A0 oder (w,v)∈A0 f¨ur ein w ∈V}
Wege und Kreise in Graphen
Definition 1.8
F¨ur eine endliche MengeM,c ∈RM und N⊆M definieren wir c(N) := X
x∈N
cx.
Definition 1.9
IstG = (V,E) ein Graph,c ∈RE, und G0 = (V0,E0) ein Untergraph vonG, der eins-t-Weg (bzw. ein Kreis) ist, so heißt E0 ⊆E ein s-t-Weg (bzw. Kreis) inG. Seinec-L¨angeist c(E0).
Die Menge dervon E0 besuchten Knoten istV0 =V(E0).
Wege und Kreise in Digraphen
Definition 1.10
IstD= (V,A) ein Digraph,c ∈RA, undD0 = (V0,A0) ein Unterdigraph vonD, der ein (gerichteter) s-t-Weg (bzw. ein (gerichteter) Kreis) ist, so heißtA0 ⊆A ein (gerichteter) s-t-Weg (bzw. (gerichteter) Kreis) inD. Seinec-L¨ange istc(A0). Die Menge dervon A0 besuchten Knotenist V0=V(A0).
Wege- und Kreisprobleme
Problem 1.11 (K¨urzeste-Wege Problem)
Instanz: Digraph D= (V,A), c ∈QA, s,t ∈V
Aufgabe: Finde einen s-t-Weg k¨urzester c-L¨ange oder stelle fest, dass es keinen s-t-Weg in D gibt.
Problem 1.12 (K¨urzester-Kreis-Problem) Instanz: Digraph D= (V,A), c ∈QA
Aufgabe: Finde einen Kreis k¨urzester c-L¨ange oder stelle fest, dass es keinen Kreis in D gibt.
Ungerichtete Graphen
Bemerkung 1.13
Das Problem, in einem ungerichteten Graphen G = (V,E) k¨urzeste Wege oder Kreise zu finden, kann man durch Konstruktion des Digraphen D= (V,A)mit
A={(v,w)∈V ×V| {v,w} ∈E} auf die Probleme 1.11 bzw. 1.12 zur¨uck f¨uhren.
Weitere Bemerkungen
Bemerkung 1.14
I Analog zum K¨urzesten-Wege bzw. K¨urzesten-Kreis Problem ist das L¨angste-Wege Problem bzw. das L¨angster-Kreis Problemdefiniert.
I Durch Multiplikation des L¨angenvektors c mit(−1)kann man K¨urzeste- und L¨angste-Wege/Kreise-Probleme ineinander transformieren (solange es nicht auf Vorzeichen ankommt).
I K¨urzester/L¨angster-Kreis Probleme kann man mit Hilfe von
|A|K¨urzeste/L¨angste-Wege Problemen l¨osen.
I Das K¨urzeste/L¨angste-Wege/Kreise Probleme f¨ur beliebige D und c sind NP-schwer (z.B. Reduktion von Hamilton-Kreis oder Hamilton-Pfad).
Konservative L¨ angen
Definition 1.15
SeiD = (V,A) ein Digraph. Der L¨angenvektor c ∈RA heißt konservativ, wenn es keinen Kreis negativerc-L¨ange inD gibt.
(d. h.c(C)≥0 f¨ur alle KreiseC ⊆A) Satz 1.16
Seien D = (V,A) ein Digraph mit konservativen Kantenl¨angen c ∈RA und s,w ∈V . Hat W ⊆A unter den s-w -Wegen mit kombinatorischer L¨ange≤k k¨urzeste c-L¨ange und ist(v,w)∈W der letzte Bogen auf W , so hat W \ {(v,w)} k¨urzeste c-L¨ange unter allen s-v -Wegen der kombinatorischen L¨ange ≤k−1.
Korollar 1.17
Ist D= (V,A)ein Digraph mit konservativen Bogenl¨angen c ∈RA, und ist W ⊆A ein c-k¨urzester s-t-Weg in D, so ist f¨ur jeden Knoten w∈V(W) der s-w -Weg W0 ⊆W ein c-k¨urzester s-w -Weg in D.
Nachbarn, Sterne, Knotengrade
Definition 1.18
F¨ur einen Digraphen D= (V,A) undv ∈V definieren wir:
I Naus(v) :={w ∈V|(v,w)∈A}
I Nein(v) :={w ∈V |(w,v)∈A}
I δaus(v) :={(v,w)|w ∈Naus(v)}
I δein(v) :={(w,v)|w ∈Nein(v)}
|δaus(v)|und |δein(v)|sind derAusgradbzw. der Eingradvon v.
F¨ur einen Graphen G = (V,E) und v ∈V definieren wir:
I N(v) :={w ∈V | {v,w} ∈E}
I δ(v) :={{v,w} |w ∈N(v)}
|δ(v)|ist derGrad vonv.
Distanzen
Definition 1.19
F¨ur einen Digraphen D= (V,A),c ∈RA und s,v ∈V ist die c-Distanz zwischens und v
distc(s,v)∈R∪ {∞}
die L¨ange eines s-v-Weges minimalerc-L¨ange bzw.∞, wenn kein s-v-Weg inD existiert.
Korollar 1.20
F¨ur einen Digraphen D= (V,A)mit konservativen Bogenl¨angen c ∈RA gilt f¨ur alle s,v ∈V mit s6=v :
I distc(s,s) = 0
I distc(s,v) = min
distc(s,u) +c(u,v):u ∈Nein(v)
Zusammenhang
Definition 1.21
Ein GraphG = (V,E) heißt zusammenh¨angend, wenn es f¨ur jedes Paars,t∈V einen s-t-Weg inG gibt. Die
(inklusions-)maximalen zusammenh¨angenden Teilgraphen eines Graphen sind seineZusammenhangskomponenten.
Definition 1.22
F¨ur einen Digraphen D= (V,A) heißtG = (V,E) mit E ={{v,w} |(v,w)∈Aoder (w,v)∈A}
derD zugrunde liegende ungerichtete Graph.
Definition 1.23
Ein DigraphD= (V,A) heißtstark zusammenh¨angend, wenn es f¨ur jedes Paars,t ∈V einen (gerichteten) s-t-Weg inD gibt. Ist derD zugrunde liegende ungerichtete Graph zusammenh¨angend, so heißtD schwach zusammenh¨angend.
B¨ aume und W¨ alder
Definition 1.24
EinWald ist ein (ungerichteter) Graph, der keine Kreise enth¨alt.
Ein Wald ist einBaum, wenn er zusammenh¨angend ist.
Bemerkung 1.25
Ein Graph G = (V,E)mit|V| ≥1ist genau dann ein Baum, wenn er zusammenh¨angend ist und|E|=|V| −1gilt.
Branchings und Arboreszenzen
Definition 1.26
Ein DigraphD= (V,A) heißt ein Branching, wenn er keine antiparallelen B¨ogen hat, der D zugrunde liegende ungerichtete Graph ein Wald ist und|δein(v)| ≤1 f¨ur alle v ∈V gilt. Ein schwach zusammenh¨angendes Branching ist eineArboreszenz.
Bemerkung 1.27
In einer Arboreszenz D= (V,A)gibt es genau einen Knoten r∈V mitNein(r) =∅. Er heißt die Wurzel von D. F¨ur jedes v∈V gibt es einen eindeutigen r -v -Weg in D.
Bemerkung 1.28
Eine Arboreszenz D = (V,A) mit Wurzel r ∈V ist eindeutig bestimmt durch die Abbildung p:V \ {r} −→V mit
(p(v),v)∈A.
K¨ urzeste-Wege B¨ aume
Definition 1.29
F¨ur einen Digraphen D= (V,A) unds ∈V bezeichnen wir mit RD(s)⊆V die Menge alle Knoten v∈V, f¨ur die ein s-v-Weg inD existiert.
Korollar 1.30 (aus Satz 1.16)
F¨ur einen Digraphen D= (V,A)mit konservativen Bogenl¨angen c ∈RA und s ∈V gibt es eine Arboreszenz T = (RD(s),A0), so dass f¨ur jedes v ∈RD(s) der s-v -Weg in T ein c-k¨urzester s-v -Weg in D ist.
Definition 1.31
Eine Arboreszenz wie in Kor. 1.30 heißt ein K¨urzeste-Wege-Baum (f¨ur D,c,s).
Azyklische Digraphen
Definition 1.32
Ein Digraph heißtazyklisch, wenn er keinen (gerichteten) Kreis hat.
Definition 1.33
F¨urn ∈Ndefinieren wir [n] :={1,2, . . . ,n}.
Topologische Sortierung
Definition 1.34
Einetopologische Sortierung eines DigraphenD = (V,A) ist eine NummerierungV ={v1,v2, . . . ,vn}der Knoten mit
(vi,vj)∈A⇒i <j f¨ur alle i,j ∈[n].
Satz 1.35
Sei D= (V,A) ein Digraph.
1. D hat genau dann eine topologische Sortierung, wenn D azyklisch ist.
2. Es gibt einen Algorithmus, der f¨ur mittels Adjazenzliste gegebenes D in O(|V|+|A|) Zeit eine topologische Sortierung von D berechnet oder feststellt, dass D einen Kreis hat.
K¨ urzeste Wege in azyklischen Digraphen
Algorithmus 1.36 (K¨urzeste Wege in azyklischen Digraphen) Eingabe: Azyklischer Digraph D = (V,A) mit topologischer
Sortierung V ={v1, . . . ,vn}, c ∈QA,σ∈[n]
Ausgabe: F¨ur jeden Knoten v ∈V \ {vσ} den Wert
d(v) = distc(vσ,v) und, falls d(v)6=∞, den letzten Bogen(p(v),v) auf einem vσ-v -Weg k¨urzester c-L¨ange (k¨urzeste-Wege Baum bzgl. vσ)
1: for i = 1, . . . ,n do
2: d(vi)← ∞
3: d(vσ)←0
4: for i =σ+ 1, . . . ,n do
5: d(vi)←min{d(w) +c(w,vi)|w ∈Nein(vi)}
6: p(vi)←ein w ∈Nein(vi) mit d(vi) =d(w) +c(w,vi)
(p(vi)bleibt undefiniert, falls d(vi) =∞ oderNein(vi) =∅)
Analyse von Algorithmus 1.36
Satz 1.37
Mit Algorithmus 1.36 kann man f¨ur mittels Adjazenzlisten gegebene azyklische gerichtete Graphen D= (V,A) das
K¨urzeste-Wege Problem (und genauso das L¨angste-Wege Problem) inO(|V|+|A|) Zeit l¨osen (f¨ur beliebige c ∈QA), sogar simultan f¨ur alle t∈V (bei festem s ∈V ).
Dijkstras Algorithmus
Algorithmus 1.38 (Dijkstra-Algorithmus) Eingabe: Digraph D= (V,A),c ∈QA+,s ∈V
Ausgabe: F¨ur alle v ∈V \ {s} den Wert d(v) = distc(s,v) und, falls d(v)6=∞, den letzten Bogen(p(v),v) auf einem s-v -Weg k¨urzester c-L¨ange
1: for all {v ∈V \ {s}} do
2: d(v)← ∞
3: d(s)←0;F ← ∅
4: Bestimme v ∈V \F mit d(v) = min{d(w)|w ∈V \F}
5: F ←F ∪ {v}
6: for all {w ∈Naus(v)\F}do
7: if{d(w)>d(v) +cvw} then
8: d(w)←d(v) +cvw
9: p(w)←v
10: if{F 6=V}then
11: Gehe zu Schritt 4.
Analyse von Algorithmus 1.38
Satz 1.39
Dijkstras Algorithmus f¨ur nicht-negative Bogenl¨angen arbeitet korrekt und kann so implementiert werden, dass die Laufzeit O(|A|+|V|log|V|) ist.
Bemerkung 1.40
Das K¨urzeste-Wege Problem in einem ungerichteten Graphen G = (V,E) mit nicht-negativen Kantenl¨angen kann man mit Hilfe des Dijkstra-Algorithmus im Digraphen D= (V,A) mit
A={(v,w)∈V ×V| {v,w} ∈E} l¨osen (jede Kante wird zu zwei B¨ogen).
Potenziale
Definition 1.41
SeienD = (V,A) ein Digraph undc ∈RA. Ein Vektorπ ∈Rv heißt einc-Potenzialf¨ur D, wenn f¨ur alle (v,w)∈A
πw ≤πv +cvw (d.h. cvw ≥πw−πv) gilt.
Bemerkung 1.42
Ist D= (V,A)ein Digraph, c ∈RA, undπ ∈Rv ein c-Potenzial, so gilt f¨ur alle s,v∈V
distc(s,v)≥πv−πs.
Potenziale und konservative L¨ angen
Bemerkung 1.43
Ist D= (V,A)ein Digraph, c ∈RA konservativ und gilt RD(s) =V f¨ur ein s ∈V , so ist wegen Korollar 1.20 durch
πv := distc(s,v) f¨ur alle v ∈V ein c-Potenzial auf D definiert. F¨ur alle v ∈V ist dann insbesondere (wegen Bem. 1.42)distc(s,v)die maximale
Potenzialdifferenzσv−σs ¨uber alle c-Potenzialeσ ∈RV von D.
Satz 1.44
Sei D= (V,A) ein Digraph. Dann ist c ∈RA genau dann konservativ, wenn es ein c-Potenzial f¨ur D gibt.
Pfade
Definition 1.45
SeiD = (V,A) ein Digraph und c ∈RA. Ein l-Tupel P = (v0,v1),(v1,v2),(v2,v3), . . . ,(vl−1,vl)
∈Al von B¨ogen inA heißt ein v0-vl-Pfad in D (dabei d¨urfen einzelne Knoten und einzelne B¨ogen beliebig oft auftreten) der c-L¨ange
c(P) :=
l
X
i=1
cvi−1,vi.
Seine(kombinatorische) L¨angeist l.
Bemerkung 1.46
In einem Digraphen D= (V,A) mit konservativen Bogenl¨angen c ∈RA gilt c(P)≥distc(s,t) f¨ur jeden s-t-Pfad P.
Der Bellman-Ford Digraph
Definition 1.47
SeiD = (V,A) ein Digraph,c ∈RA. Der Graph BF(D) = (V0,A0) hat die KnotenmengeV0 =V × {0,1, . . . ,|V|}und die
Bogenmenge A0 =
((v,i−1),(w,i))
(v,w)∈A,i ∈[|V|]
∪
((v,i−1),(v,i))
i ∈[|V|] . Die Mengen{(v,i) :i ∈ {0,1, . . . ,|V|}}(v ∈V) sind dieZeilen vonBF(D). Analog sind {(v,i) :v ∈V}(i ∈ {0,1, . . . ,|V|}) die Spaltenvon BF(D). Die B¨ogen, welche Knoten einer Zeile verbinden, heißenwaagerecht. Wir definierenc0 ∈RA
0 via c(v,i),(w,i+1)0 =
cvw , falls (v,w)∈A 0 , falls v =w
.
BF (D )
1 2
3 5
4
6
1
2
3
4
5
6
BF (D ): Repr¨ asentation von Wegen
1 2
3 5
4
6
1
2
3
4
5
6
BF (D ): Repr¨ asentation von Pfaden
1 2
3 5
4
6
1
2
3
4
5
6
BF (D ): Repr¨ asentation von Kreisen
1 2
3 5
4
6
1
2
3
4
5
6
K¨ urzeste Wege in BF (D ) (I)
Definition 1.48
I F¨urs ∈V undv ∈RD(s) sei Ps(v)⊆A0 der c0-k¨urzeste (s,0)-(v,|V|)-Weg in BF(D), der von Algorithmus 1.36 (BF(D) ist azyklisch) berechnet wird, wenn man in Schritt 6 wenn m¨oglich den waagerechten Nachbarn nimmt.
I F¨urT ⊆A0 sei
A(T) :={(v,w)∈A|((v,i−1),(w,i))∈T f¨ur ein i ∈[|V|]}
I Ein Weg P ⊆A0 betritt Zeilew, wenn es einen Bogen ((v,i−1),(w,i))∈P mitv 6=w gibt.
K¨ urzeste Wege in BF (D ) (II)
Bemerkung 1.49
Betritt Ps(v) keine Zeile mehrmals (und Zeile s gar nicht), so ist A(Ps(v)) ein c-k¨urzester (s,v)-Weg in D.
Lemma 1.50
Besucht Ps(v) die Knoten(w,i) und (w,j) (i <j) und verl¨auft der Teilweg Q ⊆A0 von Ps(v), der von (w,i)nach (w,j) f¨uhrt, nicht vollst¨andig in Zeile w , so ist c0(Q)<0.
K¨ urzeste Wege in BF (D ) (III)
Bemerkung 1.51
W¨ahlt man in Lem. 1.50 (w,i) und (w,j) so, dass Ps(v) zwischen diesen beiden Knoten keinen waagerechten Bogen hat und keine Zeile mehrmals und die zu w geh¨orende Zeile gar nicht betritt, so ist A(Q)ein Kreis negativer c-L¨ange in D.
Satz 1.52
F¨ur einen Digraphen D= (V,A)und konservative Bogenl¨angen c ∈QA kann man das K¨urzeste-Wege Problem inO(|V||A|) Zeit mit Algorithmus 1.36 auf BF(D) l¨osen.
Entscheiden von Konservativit¨ at
Satz 1.53
F¨ur einen Digraphen D= (V,A)und c ∈QA kann man in O(|V||A|)Zeit ein c-Potenzial oder einen Kreis negativer c-L¨ange finden, indem man Algorithmus 1.36 auf BF( ˜D) laufen l¨asst, wobei D aus D durch Hinzuf¨˜ ugen eines Knotens s und der B¨ogen (s,v) mit L¨ange0 f¨ur alle v ∈V entsteht.
Das 0/1-Knapsack Problem
Problem 1.54 (0/1-Knapsack Problem) Instanz: a∈Nn, β ∈N,c ∈Nn
Aufgabe: L¨osemax{hc,xi:ha,xi ≤β,x ∈ {0,1}n} Definition 1.55
F¨ur eine endliche MengeM und N⊆M heißt χ(N)∈ {0,1}M mit χ(M)N =1N undχ(M)M\N =OM\N der charakteristische Vektoroder derInzidenzvektorvon N.
Dynamische Programmierung f¨ ur 0/1-Knapsack (I)
I (Das 0/1-Knapsack Problem ist NP schwer.)
I Definiere einen azyklischen Digraphen D= (V,A) mit V = ([n]× {0,1, . . . , β})∪ {(0,0)}
und
((i,g),(j,h))∈A
⇐⇒
i <j undg +aj =h
F¨ur (v,w)∈A mitv = (i,g),w = (j,h) setzecvw :=cj.
DP-Graph f¨ ur 0/1-Knapsack
a= (2,1,3,1,2,2), c = (5,1,3,2,4,1),β = 7
Dynamische Programmierung f¨ ur 0/1-Knapsack (II)
I F¨urs = (0,0) und v = (i,g) ist dann diec-L¨ange eines c-l¨angsten s-v-Weges P ⊆Ain D gleich
max n
hc[i],x˜i:ha[i],xi˜ =g,˜x∈ {0,1}[i]o
(1) und mit
J:={j ∈[n] :P besucht einen Knoten (j,h)}
ist χ(J)∈ {0,1}n eine Optimall¨osung von (1).
I Ein c-l¨angsters-v-Weg inD (¨uber alle v ∈V) liefert also eine Optimall¨osung des 0/1-Knapsackproblems.
Satz 1.56
Das0/1-Knapsackproblem kann man in O(n2β) Zeit mit dynamischer Programmierung l¨osen.
Minimum Mean Cycle Problem
Definition 1.57
F¨ur einen Digraphen D= (V,A) undc ∈RA sei µc(D) := min
c(C)
|C| :C ⊆AKreis in D
(µc(D) =∞, fallsD azyklisch).
Problem 1.58 (Minimum Mean Cycle Problem) Instanz: Digraph D= (V,A),c ∈QA
Aufgabe: Finde einen Kreis C ⊆A mit c(C)|C| =µc(D) oder stelle fest, dass D azyklisch ist.
Der Digraph K (D )
I Seien D= (V,A) ein Digraph undc ∈RA,n:=|V|.
I Definiere ˜D := ( ˜V,A) mit ˜˜ V :=V ] {s}, ˜n :=n+ 1, und A˜ :=A∪ {(s,v)|v ∈V}
und ˜c ∈RA˜ mit ˜cA:=c,˜cA\A˜ :=OA\A˜ .
I Definiere K(D) := (V0,A0) mitV0:= ˜V × {0,1, . . . ,˜n}, A0 :={((v,i−1)(w,i))|(v,w)∈A,˜ i ∈[˜n]}
und c0∈RA
0 mit c((v,i−1),(w,i))0 := ˜cvw f¨ur alle (v,w)∈A,˜ i ∈[˜n].
I Wege der kombinatorischen L¨angel in K(D) entsprechen Pfaden der kombinatorischen L¨angel in ˜D.
I F¨urk ∈[˜n] undv ∈V˜ sei Fk(v) := distc0((s,0),(v,k)).
K (D )
1 2
3 5
4
6
1
2
3
4
5
6 s
Der Min Mean Cycle Satz
Satz 1.59
Sei D= (V,A) ein nicht azyklischer Digraph, c ∈RA. Dann gilt µc(D) =µ˜c( ˜D) =
min
max{Fn˜(v)−Fk(v)
˜
n−k |0≤k ≤˜n−1}
v ∈V˜ . (2)
Finden eines Minimum Mean Cycle (I)
I Stelle fest, ob D azyklisch ist.
I Falls D nicht azyklisch ist, seiv ∈V˜ ein Knoten, f¨ur den das Minimum in Gleichung (2) angenommen wird.
I Sei ˜Q ⊆A0 ein (s,0)−(v,n)-Weg mit˜ c0( ˜Q) =F˜n(v).
I Q˜ muss wenigstens eine Zeile mehrmals besuchen, er besteht also aus einem Anfangsst¨uckQ1 ⊆A0, einem Endst¨uck Q2 ⊆A0, und einem Mittelst¨uckQ ⊆A0, das von (w,i) zu (w,j) (i <j) f¨uhrt und keine Zeile mehrmals betritt.
Finden eines Minimum Mean Cycle (II)
I Dann ist C := ˜A(Q)⊆A˜ ein Kreis und mitk? := ˜n− |Q|gilt c0(Q1) +c0(Q2)≥Fk∗(v)
(weil man durch Anh¨angen einer um |Q|Spalten nach links verschobenen Kopie von Q2 anQ1 einen (s,0)-(v,k?)-Weg der c0-L¨angec0(Q1) +c0(Q2) erzeugen kann), also
˜ c(C)
|C| = c0|Q(Q)| = F˜n(v)−(c0(Q|Q|1)+c0(Q2))
≤ Fn˜(v)−F˜n−kk∗∗(v) ≤µ˜c( ˜D)
(wobei die letzte Ungleichung wegen Satz 1.59 und der Wahl von v gilt)
I Wegen δein(s) =∅ist C ⊆A sogar ein Kreis inD mit c(C)
|C| =µc(D) =µ˜c( ˜D).
Laufzeit des Min Mean Cycle Algorithmus
Satz 1.60
Das Minimum Mean Cycle Problem kann inO(|V||A|)Zeit gel¨ost werden.