Vorlesung
Kombinatorische Optimierung (Wintersemester 2014/15)
Kapitel 1: K¨urzeste Wege und Kreise
Volker Kaibel
Otto-von-Guericke Universit¨at Magdeburg
(Version vom 23. Oktober 2014)
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.
Wege und Kreise in Graphen
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 in Digraphen
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, s. ¨Ubungen).
Nachbarn, Sterne, Knotengrade
Definition 1.19
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.
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-w-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).
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) =∅)
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.
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 Knotenmenge
V0=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
1 2
3 5
4
6
1
2
3
4
5
6
1 2
3 5
4
6
1
2
3
4
5
6
1 2
3 5
4
6
1
2
3
4
5
6
0/1-Knapsack
1
2
3
4
5
6
0 1 2 3 4 5 6 7
5
3
4 3
2
4 5
4 1 2
a= (2,1,3,1,2,2), c = (5,1,3,2,4,1),β = 7
K (D )
1 2
3 5
4
6
1
2
3
4
5
6 s
Beweis des Min Mean Cycle Satzes
w
v s
P1 (Q1) P
P2 (Q2)
P3