Kürzeste Wege und Kreise

Werbung
1
Vorlesung
Kombinatorische Optimierung
(Wintersemester 2014/15)
Kapitel 1: Kürzeste Wege und Kreise
Volker Kaibel
Otto-von-Guericke Universität Magdeburg
(Version vom 23. Oktober 2014)
2
Graphen und Digraphen
Definition 1.1
Ein Graph ist ein Paar G = (V , E ) bestehend aus
einer endlichen
V
Knotenmenge V und einer Teilmenge E ⊆ 2 der
zweielementigen Teilmengen von V , der Kantenmenge von G .
Definition 1.2
Ein Digraph (gerichteter Graph) ist ein Paar D = (V , A)
bestehend aus einer endlichen Knotenmenge V und einer
Teilmenge
A ⊆ V × V \ {(v , v ) | v ∈ V } ,
der Bogenmenge von D. Zwei Bögen (v , w ), (w , v ) ∈ A heißen
antiparallel.
3
Wege und Kreise in Graphen
Definition 1.3
Sei G = (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änge l.
2. Ist v0 = vl und sind v0 = vl , v1 , . . . , vl−1 paarweise
verschieden, so ist G ein Kreis der (kombinatorischen)
Länge l.
4
Wege und Kreise in Digraphen
Definition 1.4
Sei D = (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 -Weg der (kombinatorischen) Länge l.
2. Ist v0 = vl und sind v0 = vl , v1 , . . . , vl−1 mit l ≥ 2 paarweise
verschieden, so ist G ein (gerichteter) Kreis der
(kombinatorischen) Länge l.
5
Teilgraphen
Definition 1.5
Sind G = (V , E ) und G 0 = (V 0 , E 0 ) (bzw. D = (V , A) und
D 0 = (V 0 , A0 )) zwei Graphen (bzw. Digraphen) mit V 0 ⊆ V und
E 0 ⊆ E (bzw. A0 ⊆ A), so ist G 0 ein Teilgraph von G (bzw. D 0 ein
Teildigraph von D). Falls sogar
0
V
0
E =E∩
bzw. A0 = A ∩ (V 0 × V 0 )
2
gilt, so heißt der Teilgraph induzierter Untergraph (bzw.
induzierter Unterdigraph). Gilt V 0 = V , so heißt der Teilgraph
spannend.
6
Induzierte Knoten-, Kanten-, Bögenmengen
Definition 1.6
Sei G = (V , E ) ein Graph. Für Teilmengen V 0 ⊆ V und E 0 ⊆ E
0
definieren wir E (V 0 ) := E ∩ V2 und
V (E 0 ) := {v ∈ V | {v , w } ∈ E 0 für ein w ∈ V }
Definition 1.7
Sei D = (V , A) ein Graph. Für Teilmengen V 0 ⊆ V und A0 ⊆ A
definieren wir A(V 0 ) := A ∩ (V 0 × V 0 ) und
V (A0 ) := {v ∈ V | (v , w ) ∈ A0 oder (w , v ) ∈ A0 für ein w ∈ V }
7
Wege und Kreise in Graphen
Definition 1.8
Für eine endliche Menge M, c ∈ RM und N ⊆ M definieren wir
X
c(N) :=
cx .
x∈N
Definition 1.9
Ist G = (V , E ) ein Graph, c ∈ RE , und G 0 = (V 0 , E 0 ) ein
Untergraph von G , der ein s-t-Weg (bzw. ein Kreis) ist, so heißt
E 0 ⊆ E ein s-t-Weg (bzw. Kreis) in G . Seine c-Länge ist c(E 0 ).
Die Menge der von E 0 besuchten Knoten ist V 0 = V (E 0 ).
8
Wege und Kreise in Digraphen
Definition 1.10
Ist D = (V , A) ein Digraph, c ∈ RA , und D 0 = (V 0 , A0 ) ein
Unterdigraph von D, der ein (gerichteter) s-t-Weg (bzw. ein
(gerichteter) Kreis) ist, so heißt A0 ⊆ A ein (gerichteter) s-t-Weg
(bzw. (gerichteter) Kreis) in D. Seine c-Länge ist c(A0 ). Die
Menge der von A0 besuchten Knoten ist V 0 = V (A0 ).
9
Wege- und Kreisprobleme
Problem 1.11 (Kürzeste-Wege Problem)
Instanz: Digraph D = (V , A), c ∈ QA , s, t ∈ V
Aufgabe: Finde einen s-t-Weg kürzester c-Länge oder stelle
fest, dass es keinen s-t-Weg in D gibt.
Problem 1.12 (Kürzester-Kreis-Problem)
Instanz: Digraph D = (V , A), c ∈ QA
Aufgabe: Finde einen Kreis kürzester c-Länge oder stelle fest,
dass es keinen Kreis in D gibt.
10
Ungerichtete Graphen
Bemerkung 1.13
Das Problem, in einem ungerichteten Graphen G = (V , E )
kürzeste 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ück führen.
11
Weitere Bemerkungen
Bemerkung 1.14
I
Analog zum Kürzesten-Wege bzw. Kürzesten-Kreis Problem
ist das Längste-Wege Problem bzw. das Längster-Kreis
Problem definiert.
I
Durch Multiplikation des Längenvektors c mit (−1) kann man
Kürzeste- und Längste-Wege/Kreise-Probleme ineinander
transformieren (solange es nicht auf Vorzeichen ankommt).
I
Kürzester/Längster-Kreis Probleme kann man mit Hilfe von
|A| Kürzeste/Längste-Wege Problemen lösen.
I
Das Kürzeste/Längste-Wege/Kreise Probleme für beliebige D
und c sind NP-schwer (z.B. Reduktion von Hamilton-Kreis
oder Hamilton-Pfad, s. Übungen).
12
Nachbarn, Sterne, Knotengrade
Definition 1.19
Für einen Digraphen D = (V , A) und v ∈ 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 der Ausgrad bzw. der Eingrad von v .
Für 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 der Grad von v .
13
Zusammenhang
Definition 1.21
Ein Graph G = (V , E ) heißt zusammenhängend, wenn es für
jedes Paar s, t ∈ V einen s-t-Weg in G gibt. Die
(inklusions-)maximalen zusammenhängenden Teilgraphen eines
Graphen sind seine Zusammenhangskomponenten.
Definition 1.22
Für einen Digraphen D = (V , A) heißt G = (V , E ) mit
E = {{v , w } | (v , w ) ∈ A oder (w , v ) ∈ A}
der D zugrunde liegende ungerichtete Graph.
Definition 1.23
Ein Digraph D = (V , A) heißt stark zusammenhängend, wenn es
für jedes Paar s, t ∈ V einen (gerichteten) s-t-Weg in D gibt. Ist
der D zugrunde liegende ungerichtete Graph zusammenhängend,
so heißt D schwach zusammenhängend.
14
Bäume und Wälder
Definition 1.24
Ein Wald ist ein (ungerichteter) Graph, der keine Kreise enthält.
Ein Wald ist ein Baum, wenn er zusammenhängend ist.
Bemerkung 1.25
Ein Graph G = (V , E ) mit |V | ≥ 1 ist genau dann ein Baum, wenn
er zusammenhängend ist und |E | = |V | − 1 gilt.
15
Branchings und Arboreszenzen
Definition 1.26
Ein Digraph D = (V , A) heißt ein Branching, wenn er keine
antiparallelen Bögen hat, der D zugrunde liegende ungerichtete
Graph ein Wald ist und |δ ein (v )| ≤ 1 für alle v ∈ V gilt. Ein
schwach zusammenhängendes Branching ist eine Arboreszenz.
Bemerkung 1.27
In einer Arboreszenz D = (V , A) gibt es genau einen Knoten
r ∈ V mit Nein (r ) = ∅. Er heißt die Wurzel von D. Für 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.
16
Kürzeste-Wege Bäume
Definition 1.29
Für einen Digraphen D = (V , A) und s ∈ V bezeichnen wir mit
RD (s) ⊆ V die Menge alle Knoten v ∈ V , für die ein s-w -Weg
in D existiert.
Korollar 1.30 (aus Satz 1.16)
Für einen Digraphen D = (V , A) mit konservativen Bogenlängen
c ∈ RA und s ∈ V gibt es eine Arboreszenz T = (RD (s), A0 ), so
dass für jedes v ∈ RD (s) der s-v -Weg in T ein c-kürzester
s-v -Weg in D ist.
Definition 1.31
Eine Arboreszenz wie in Kor. 1.30 heißt ein
Kürzeste-Wege-Baum (für D, c, s).
17
Kürzeste Wege in azyklischen Digraphen
Algorithmus 1.36 (Kürzeste Wege in azyklischen Digraphen)
Eingabe: Azyklischer Digraph D = (V , A) mit topologischer
Sortierung V = {v1 , . . . , vn }, c ∈ QA , σ ∈ [n]
Ausgabe: Für 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ürzester
c-Länge (kürzeste-Wege Baum bzgl. vσ )
for i = 1, . . . , n do
d(vi ) ← ∞
3: d(vσ ) ← 0
4: for i = σ + 1, . . . , n do
5:
d(vi ) ← min{d(w ) + c(w ,vi ) | w ∈ Nein (vi )}
1:
2:
6:
p(vi ) ← ein w ∈ Nein (vi ) mit d(vi ) = d(w ) + c(w ,vi )
(p(vi ) bleibt undefiniert, falls d(vi ) = ∞ oder Nein (vi ) = ∅)
18
Dijkstras Algorithmus
Algorithmus 1.38 (Dijkstra-Algorithmus)
Eingabe: Digraph D = (V , A), c ∈ QA
+, s ∈ V
Ausgabe: Für 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ürzester c-Länge
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
for all {v ∈ V \ {s}} do
d(v ) ← ∞
d(s) ← 0; F ← ∅
Bestimme v ∈ V \ F mit d(v ) = min{d(w ) | w ∈ V \ F }
F ← F ∪ {v }
for all {w ∈ Naus (v ) \ F } do
if {d(w ) > d(v ) + cvw } then
d(w ) ← d(v ) + cvw
p(w ) ← v
if {F 6= V } then
Gehe zu Schritt 4.
19
Pfade
Definition 1.45
Sei D = (V , A) ein Digraph und c ∈ RA . Ein l-Tupel
P = (v0 , v1 ), (v1 , v2 ), (v2 , v3 ), . . . , (vl−1 , vl ) ∈ Al
von Bögen in A heißt ein v0 -vl -Pfad in D (dabei dürfen einzelne
Knoten und einzelne Bögen beliebig oft auftreten) der c-Länge
c(P) :=
l
X
cvi−1 ,vi .
i=1
Seine (kombinatorische) Länge ist l.
Bemerkung 1.46
In einem Digraphen D = (V , A) mit konservativen Bogenlängen
c ∈ RA gilt c(P) ≥ distc (s, t) für jeden s-t-Pfad P.
20
Der Bellman-Ford Digraph
Definition 1.47
Sei D = (V , A) ein Digraph, c ∈ RA . Der Graph BF (D) = (V 0 , A0 )
hat die Knotenmenge
V 0 = 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 die Zeilen
von BF (D). Analog sind {(v , i) : v ∈ V } (i ∈ {0, 1, . . . , |V |}) die
Spalten von BF (D). Die Bögen, welche Knoten einer Zeile
0
verbinden, heißen waagerecht. Wir definieren c 0 ∈ RA via
cvw , falls (v , w ) ∈ A
0
c(v ,i),(w ,i+1) =
.
0
, falls v = w
21
BF (D)
2
4
1
6
3
5
1
2
3
4
5
6
2
1
4
6
22
0/1-Knapsack
5
5
1
3
3
2
2
3
4
2
4
4
1
4
5
6
0
1
2
3
4
5
6
a = (2, 1, 3, 1, 2, 2), c = (5, 1, 3, 2, 4, 1), β = 7
7
23
K (D)
2
4
1
6
3
s
1
2
3
4
5
6
5
24
Beweis des Min Mean Cycle Satzes
s
P1 (Q1)
P3
w
P
P2 (Q2)
v
Herunterladen