Skript zur Vorlesung Graphentheorie

Werbung
Master Informatik
Graphentheorie
Titel
——————————————————————————————————————
Skript zur Vorlesung
Graphentheorie
——————————————————————————————————————
Hochschule Stralsund
Fakultät Elektrotechnik und Informatik
Prof. Dr. W. Kampowsky
Vorlesungsmitschrift Graphentheorie
1
Beispiele für Graphen
Beispiele für Graphen
1. Kreuzungsproblem : 3 Häuser sollen mit einem Wasser-, Gas- und Elektroanschluß verbunden werden, wobei keine Kreuzung entstehen darf.
Abbildung 1: Kreuzungsproblem
2. Schachaufgabe mit einem Pferd : Das Pferd soll alle 64 Schachfelder
einmal besuchen und zum Start zurückkehren. Diese Aufgabe ist ein
sogenanntes Rundreiseproblem. Der spezielle Fall ist lösbar.
3. Königsberger Brückenproblem1 : Auf einem Rundweg soll jede Brücke
genau einmal überquert werden. Dieser Fall ist nicht lösbar.
Abbildung 2: Königsberger Brückenproblem
1
1736 formulierte Euler das Problem nach einem Spaziergang in Königsberg.
3
Vorlesungsmitschrift Graphentheorie
Beispiele für Graphen
4. Das Haus des Nikolaus : Das Haus soll in einem Zug gezeichnet werden,
ohne dass eine Kante doppelt gezeichnet wird.
Abbildung 3: Das Haus des Nikolaus
5. Kannibalen und Missionare : Zwei Missionare und 2 Kannibalen sollen
über den Fluß gebracht werden. Ein Missionar ( M1 ) und ein Kannibale
( K1 ) können rudern. Es gibt ein Boot, welches 2 Mann tragen kann.
Sobald die Kannibalen in der Überzahl sind, fressen sie den Missionar.
Wie gelangen alle über den Fluß bringen, ohne daß einer gefressen wird?
In der Abbildung sind die Situationen am Ausgangsufer dargestellt.
Abbildung 4: Kannibalen und Missionare
4
Vorlesungsmitschrift Graphentheorie
Beispiele für Graphen
6. Umfüllaufgabe : Es gibt drei Gefäße ohne Maßeinteilung : das erste
mit 8l, das zweite mit 5l und das letzte mit 3l Fassungsvermögen. Am
Anfang ist das 8l-Gefäß vollständig gefüllt. Ziel ist es, 2 mal 4 Liter in
zwei Gefäßen zu erhalten.
Abbildung 5: Umfüllaufgabe
Startknoten ist der Knoten (8,0,0). Der Zielknoten ist der Knoten
(4,4,0).
7. Labyrinth-Probleme :
Abbildung 6: Wegfindung in einem Labyrinth
5
Vorlesungsmitschrift Graphentheorie
2
Grundbegriffe der Graphentheorie
Grundbegriffe der Graphentheorie
Definition : Ein Graph G besteht aus einer Menge X von Knoten ( Punkte,
Ecken ) und aus einer Menge K von Kanten ( Bögen ), d.h. G = (X, K).
Generell werden endliche Graphen betrachtet, wobei |X| = n und |K| = m.
2.1
Gerichtete Graphen
Es gibt 2 Projektionsfunktionen:
p1 : K ⇒ X
p2 : K ⇒ X
wobei p1 (k) Anfangsknoten der Kante k und p2 (k) Endknoten der Kante k
ist.
Häufig : p(k) := {p1 (k), p2 (k)} ( Menge der Knoten der Kante k )
Beispiel :
Dabei ist z.B.: p1 (k1 ) = x3 , p2 (k1 ) = x1 , p(k1 ) = {x3 , x1 }
6
Graph
Vorlesungsmitschrift Graphentheorie
Grundbegriffe der Graphentheorie
Definitionen :
• ein Knoten x und eine Kante k heißen inzident, falls x ∈ p(k)
inzident
• zwei Kanten k1 und k2 heißen adjazent, falls p(k1 ) ∩ p(k2 ) = ∅
adjazent
• zwei Knoten x1 und x2 heißen adjazent, falls ∃k, p(k) = {x1 , x2 }
adjazent
• neben Schlingen können auch parallele Kanten auftreten
Schlingen
parallele Kanten
x
(a) Schlinge
(b) Parallele Kanten
• häufig sind die betrachteten Graphen schlicht , d.h. sie besitzen keine
Schlingen und keine parallelen Kanten
schlicht
• Weiter Charakterisierung durch den sogenannten Grad:
1. äußerer Grad (positiv) d+ (x) : Anzahl der Kanten k mit x = p1 (k)
äußerer Grad
2. innerer Grad (negativ) d− (x) : Anzahl der Kanten k mit x = p2 (k)
innerer Grad
3. Grad d(x) = d+ (x) + d− (x) : Anzahl der mit x inzidenten Kanten
Grad
• ein Punkt x mit d(x) = 0 heißt isolierter Knoten
isolierter Knoten
• ein Graph heißt vollständig, wenn jedes Paar verschiedener Knoten
durch eine Kante verbunden ist
7
vollständiger Graph
Vorlesungsmitschrift Graphentheorie
Grundbegriffe der Graphentheorie
Aussagen :
+
−
1.
x∈X d (x) =
x∈X d (x) = |K|
2.
x∈X d(x) = 2|K|
3. Die Anzahl der Knoten mit einem ungeradem Grad ist gerade.
Beweis zu Aussage 3 :
1) Xu ⊆ X, Xu Menge der Knoten mit ungeraden Grad
d(x) +
d(x) ⇒
d(x) ist gerade
2) 2|K| =
x∈X
x∈X
x∈X\Xu
u
u
gerade
gerade
3) Für x ∈ Xu : d(x) = 2lx + 1 = ungerade
4)
d(x) =
(2lx + 1) = 2
lx + |Xu |
x∈Xu
x∈Xu
x∈Xu
gerade!
gerade
gerade
gerade
Nachbarschaftsbeziehungen
Passend zu den Grad-Definitionen sind die Nachbarschaftsbeziehungen eines
Knoten x:
• die Menge der Nachfolger von x : Γ+ (x) = {y ∈ X | ∃k ∈ K : p1 (k) =
x, p2 (k) = y}
• die Menge der Vorgänger von x : Γ− (x) = {y ∈ X | ∃k ∈ K : p1 (k) =
y, p2(k) = x}
• die Menge der Nachbarn von x : Γ(x) = Γ+ (x) ∪ Γ− (x)
8
Vorlesungsmitschrift Graphentheorie
2.2
Grundbegriffe der Graphentheorie
Ungerichtete Graphen
Beispiel :
Dabei ist z.B.: p(5) = {2, 4}
Eigenschaften :
• Beschreibung durch die Projektionsfunktion p(k) = {Knoten von k}
• Inzidenz, Adjazenz, Schlingen, Parallelkanten – wie bisher
• Halbgrade, Vorgänger und Nachfolger – entfallen jetzt
• Grad, Nachbarn – wie bisher
Definition :
Ein Graph G heißt regulär vom Grade r , wenn
d(x) = r
regulärer Graph
∀x ∈ X.
Beispiel für r = 2 : Dreieck; r = 3 : Pyramide, Würfel; r = 4 : Oktaeder.
(a) Dreieck
(b) Pyramide
(c) Oktaeder
9
Vorlesungsmitschrift Graphentheorie
2.3
Grundbegriffe der Graphentheorie
Teilgraphen, Kantenzüge, Wege und Kreise
Die Beschreibung der Kanten durch die beiden Knoten bringt die Möglichkeit
K ⊆ X × X, d.h. k = (x1 , x2 ) ist ein geordnetes Paar mit Anfangsknoten x1
und Endknoten x2 .
Für ungerichtete Graphen ist K ⊆ X & X, d.h. k = {x1 , x2 } wird als ungeordnetes Paar aufgefasst.
Teilgraphen :
Definition : Ein Graph G = (X , K ) heißt Teilgraph von G = (X, K),
wenn X ⊆ X und K ⊆ K ist. Symbol : G ⊆ G.
Spezialfälle :
Teilgraph
1. Gegeben ist Y ⊆ X. Es ist X = Y , K = {k ∈ K | p(k) ⊆ Y } ist die
neue Kantenmenge. Der Teilgraph GY := (X , K ) heißt der durch Y
erzeugte (Knoten-)Teilgraph von G.
2. Gegeben ist H ⊆ K. Es ist K = H, X = k∈K p(k) ist die neue Knotenmenge. Der Teilgraph GH := (X , K ) heißt der durch H erzeugte
(Kanten-)Teilgraph von G.
Kantenzüge, Wege und Kreise :
Sei G = (X, K) ein (un-)gerichteter Graph, H ⊆ K ⊆
H = {k1 =
X×X
X&X
mit
(x0 , x1 )
(x1 , x2 )
(xr−1 , xr )
, k2 =
, . . . , kr =
}
{x0 , x1 }
{x1 , x2 }
{xl−1 , xl }
Diese Folge von aufeinanderfolgenden Kanten heißt Kantenzug der Länge r
von x0 nach xr , der offen ist, fall x0 = xr ist, oder geschlossen ist, wenn
x0 = xr ist.
Der Kantenzug H kann auch durch seine Spur s(H) = (x0 , x1 , x2 , . . . , xr )
charakterisiert werden.
10
Kantenzug
Vorlesungsmitschrift Graphentheorie
Grundbegriffe der Graphentheorie
Sonderfall 1 : Enthält ein Kantenzug H alle Kanten von G genau einmal, so heißt H Eulerscher Kantenzug. Gibt es in G sogar einen geschlossenen
Eulerschen Kantenzug, dann ist G ein Eulerscher Graph.
Eulerscher Kantenzug
Sonderfall 2 : Sind in einem Kantenzug alle xi mit i = 0, 1, 2, . . . , r verschieden, so heißt H auch Weg in G von x0 nach xr der Länge r. Gilt zusätzlich
x0 = xr , so heißt H auch Kreis in G der Länge r.
Weg
Sonderfall 2.1 : Enthält ein Weg ( Kreis ) H alle Knoten von G, so heißt
H auch Hamiltonscher Weg ( Kreis ). Ein Graph, der einen Hamiltonschen
Kreis enthält, heißt auch Hamiltonscher Graph.
Eigenschaften :
1. Schlingen sind Kreise der Länge 1. In schlichten Graphen haben Kreise
die Länge r ≥ 3 bei ungerichteten Graphen bzw. r ≥ 2 bei gerichteten
Graphen.
2. Jeder offene Kantenzug von x0 nach xr enthält einen Weg von x0 nach
xr . Jeder geschlossene Kantenzug enthält einen Kreis.
3. Gerichtete Graphen mit d+ (x) > 0 ∀x ∈ X bzw. d− (x) > 0 ∀x ∈ X
besitzen stets einen Kreis.
4. Sei ein Kreis H mit s(H) = (x0 , x1 , x2 , . . . , xr ) in einem Graphen G
gegeben, dann existiert ebenfalls ein Kreis H’ mit
s(H ) = (xi , xi+1 , . . . , xr , x1 , x2 , . . . , xi ),
wobei 1 ≤ i ≤ r − 1.
11
Eulerscher Graph
Kreis
Hamiltonscher Weg
Hamiltonscher Graph
Vorlesungsmitschrift Graphentheorie
2.4
Grundbegriffe der Graphentheorie
Zusammenhänge in Graphen, Baum, Distanz
1. Ein ungerichteter Graph kann stets in einen gerichteten Graphen umgewandelt werden, indem jede ungerichtete Kante durch zwei entgegengesetzt gerichtete Kanten ersetzt werden.
2. Ein gerichteter Graph enthält einen ungerichteten Graphen dadurch,
daß die Richtungen der Kanten weggelassen werden.
3. Ein ungerichteter Graph heißt zusammenhängend , wenn jedes Paar
verschiedener Knoten durch mindestens einen Weg verbunden werden
können.
Ein gerichteter Graph heißt stark zusammenhängend , wenn jedes Paar
verschiedener Knoten durch mindestens einen Weg verbunden werden
können. Ein gerichteter Graph heißt schwach zusammenhängend , wenn
der zugehörige ungerichtete Graph zusammenhängend ist.
4. Die starken bzw. schwachen Zusammenhangskomponenten eines Graphen sind die maximalen stark bzw. schwach zusammenhängenden Teilgraphen.
Beispiel :
Abbildung 7: Zusammenhangskomponenten
Der Graph ist an sich schwach zusammenhängend, besitzt aber 3 starke Zusammenhangskomponenten ( die in sich stark zusammenhängend
sind ).
12
zusammenhängend
stark zusammenhängend
schwach
gend
zusammenhän-
Zusammenhangskomponenten
Vorlesungsmitschrift Graphentheorie
Grundbegriffe der Graphentheorie
Definition : Ein zusammenhängender ungerichteter Graph, der kreisfrei
ist, heißt Baum.
Baum
Beispiel :
Abbildung 8: Baum
Definition : Die Distanz D(x, y) zwischen zwei verschiedenen Knoten eines
Graphen ist die Länge eines kürzesten Weges von x nach y, falls ein solcher
existiert, sonst D(x, y) := ∞.
Außerdem ist D(x, x) := 0. Es gilt D(x, y) < ∞, wenn x und y zur gleichen
Zusammenhangskomponente ( bei gerichteten Graphen : zur gleichen starken
Zusammenhangskomponente ) gehören.
13
Distanz
Vorlesungsmitschrift Graphentheorie
2.5
Grundbegriffe der Graphentheorie
Der Satz von Euler
Satz : Ein gerichteter, schwach zusammenhängender Graph G = (X, K)
ist genau dann ein Eulerscher Graph, wenn
d+ (x) = d− (x)
∀x ∈ X .
Bemerkung : Bei ungerichteten Graphen muß d(x) gerade für alle x ∈ X
sein. Diese Eigenschaft ist beim Königsberger Brückenproblem verletzt.
Beweis ( für gerichtete Graphen ) :
⇒“
”
1. Es gibt einen geschlossenen Eulerschen Kantenzug GEK in G. Da G
schwach zusammenhängend ist, muß GEK alle Knoten von X enthalten.
2. Durchläuft man GEK , so liefert jeder Durchgang durch einen Knoten
x ∈ X +1 für d+ (x) und +1 für d− (x). Am Ende, wenn alle Kanten
durchlaufen sind, muß
d+ (x) = d− (x)
∀x ∈ X
sein.
⇐“( Induktionsbeweis über m = |K| )
”
Induktionsanfang und Induktionsvoraussetzung:
1. m = 1 : Schlinge
2. m > 1 : Jeder schwach zusammenhängende Graph G mit |K| < m
und d+ (x) = d− (x) ∀x ∈ X besitze einen geschlossenen Eulerschen
Kantenzug.
Induktionsbehauptung :
Sei nun G ein schwach zusammenhängender Graph mit |K| = m und d+ (x) =
d− (x) ∀x ∈ X.
Induktionsbeweis :
Es gilt : d+ (x) > 0 ∀x ∈ X. Dann besitzt G einen Kreis H = {k1 , k2, . . . , kl }.
14
Satz von Euler
Vorlesungsmitschrift Graphentheorie
Grundbegriffe der Graphentheorie
1. Fall : H = K. Dann ist G ein Eulerscher Graph.
2. Fall : H = K. Dann sei K = K \H und G = (X , K ) der durch K erzeugte Graph. In G gilt : d+ (x) = d− (x) ∀x ∈ X . Mit Herausnahme
von H wurde d+ (x) und d− (x) eventuell um 1 gleichzeitig reduziert.
Seien Z1 , Z2, . . . , Zp die schwachen Zusammenhangskomponenten von
G .
p = 1 : G ist schwach zusammenhängend. Nach der Induktionsvoraussetzung hat G einen geschlossenen Eulerschen Kantenzug H .
Wegen des schwachen Zusammenhanges von G müssen H und H einen
gemeinsamen Knoten haben, so daß H und H zu einem geschlossenen
Eulerschen Kantenzug vereinigt werden können.
p > 1 : Jetzt besitzt jede schwache Zusammenhangskomponente Zi
nach der Induktionsvoraussetzung einen geschlossenen Eulerschen Kantenzug Hi .
Wegen des schwachen Zusammenhanges müssen H und Hi mindestens
einen gemeinsamen Knoten besitzen.
Die Hi werden der Reihe nach mit H vereinigt. Im unteren Beispiel
erfolgt dies durch den Kantenzug :
(x0 , H1 , x0 x1 x2 , H2 , x2 x3 x4 x5 , H3 , x5 , x6 , H4 , x6 x7 x0 ) .
Abbildung 9: Beweis des Satzes von Euler
15
Vorlesungsmitschrift Graphentheorie
3
Speicherung von Graphen
Speicherung von Graphen
Ein Graph G = (X, K) mit X = {x1 , x2 , . . . , xn } und K = {k1 , k2, . . . , km }
soll abgespeichert werden.
3.1
Darstellung durch Matrizen
Adjazenzmatrix :
Definition : Adjazenzmatrix A als quadratische Matrix mit
⎧
⎨1 falls (xi ,xj ) ∈ K
{xi ,xj }
A = (aij )i,j=1,...,n mit aij =
⎩0 sonst
Adjazenzmatrix
Bemerkung :
• parallele Kanten sind problematisch ( z.B. kann die Anzahl der Kanten
abgespeichert werden )
• bei ungerichteten Graphen wird A symmetrisch
Inzidenzmatrix :
Definition : Inzidenzmatrix B = (bij )i=1,...,n mit
Inzidenzmatrix
j=1,...,m
⎧
⎪
falls xi = p1 (kj )
⎪
⎨1
bij = −1 falls xi = p2 (kj )
⎪
⎪
⎩
0
sonst
1 falls xi ∈ p(kj )
bij =
0 sonst
(gerichteter Graph)
(ungerichteter Graph)
Bemerkung : Schlingen sind problematisch
16
Vorlesungsmitschrift Graphentheorie
Speicherung von Graphen
Beispiel für gerichteten Graphen :
⎛
⎜
⎜
⎜
⎜
A=⎜
⎜
⎜
⎜
⎝
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
⎞
⎛
⎟
⎟
⎟
⎟
⎟,
⎟
⎟
⎟
⎠
⎜
⎜
⎜
⎜
B=⎜
⎜
⎜
⎜
⎝
1
1 −1
0
0
0
0
−1
0
0 −1 −1
0
0
0
0
1
1
0
1
0
0 −1
0
0
1 −1
0
0
0
0
0
0
0 −1
0
0
0
0
0
0
1
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
Bemerkung der Autoren : Bei der Adjazenzmatrix A repräsentiert jede
Spalte einen Endknoten x, also x1 bis x6 , analog jede Zeile einen Anfangsknoten.
⎛
⎜
⎜
⎜
⎜
⎜
⎜
A=⎜
⎜
⎜
⎜
⎜
⎜
⎝
0
0
1
0
0
0
↑
x1
1
0
1
1
0
0
↑
x2
0
0
0
0
0
0
↑
x3
1
0
1
0
0
0
↑
x4
0
0
0
0
0
1
↑
x5
0
0
0
0
0
0
↑
x6
← x1
← x2
← x3
← x4
← x5
← x6
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
Bei der Inzidenzmatrix B repräsentiert jede Spalte eine Kante k, also k1 bis
k7 . Jede Zeile repräsentiert einen Knoten x, also x1 bis x6 . In jeder Spalte
stehen eine 1 für den Anfangsknoten und eine −1 für den Endknoten.
⎛
⎜
⎜
⎜
⎜
⎜
⎜
B=⎜
⎜
⎜
⎜
⎜
⎜
⎝
1
1 −1
−1
0
0
0
0
1
0 −1
0
0
0
0
0
0
0
↑
↑
↑
k1 k2 k3
0
0
0
0
−1 −1
0
0
1
0
1
0
0
1 −1
0
0
0
0 −1
0
0
0
1
↑
↑
↑
↑
k4 k5 k6 k7
← x1
← x2
← x3
← x4
← x5
← x6
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
17
Vorlesungsmitschrift Graphentheorie
3.2
Speicherung von Graphen
Darstellung mit Listen
Nachfolgerliste und zugehörige Indexliste :
Zu jedem Knoten wird die Liste der Nachfolger gespeichert.
Beispiel :
1
2
3
4
5
6
→
→
→
→
→
→
Nachfolgerliste
2, 4
leer
1, 2, 4
2
leer
5
Die Nachfolger werden in der Reihenfolge der Knoten aneinander gehängt :
j
nf[j]
1
2
2
4
3
1
4
2
5
4
6
2
7
5
Die Nachfolgerliste nf hat bei gerichteten Graphen die Länge m = |K|. Bei
ungerichteten Graphen verdoppelt sich die Länge auf 2m = 2|K|.
Durch Kenntnis des positiven Halbgrades d+ (i) bzw. des Grades d(i) kann die
Liste nf wieder in die Teillisten aufgeteilt werden. Nützlich ist die folgende
Indexliste der Länge n + 1 = |X| + 1 :
i
inf[i]
1
1
2
3
3
3
4
6
5
7
6
7
7
8
Es gilt bei dieser Festlegung :
d+ (i) = inf[i + 1] − inf[i]
d(i) = inf[i + 1] − inf[i]
(gerichteter Graph)
(ungerichteter Graph)
Die Nachfolger des Knotens xi sind nun folgende : nf[j] mit
j = inf[i], . . . , inf[i + 1] − 1
18
Indexliste
Vorlesungsmitschrift Graphentheorie
Speicherung von Graphen
Kantenlisten :
Zu jeder Kante werden die Knoten gespeichert. Für obiges Beispiel :
i
ap[i]
ep[i]
1
1
2
2
1
4
3
3
1
4
3
2
5
4
2
6
3
4
Kantenliste
7
6
5
wobei i die Kante ki , ap der Anfangsknoten der Kante ki und ep der Endknoten der Kante ki sind.
Bemerkungen :
1. Anstelle einer Nachfolgerliste nf und der zugehörigen Indexliste inf
kann auch mit einer Vorgängerliste plus Indexliste gearbeitet werden.
2. Es ist nützlich, die Kanten wie folgt zu nummerieren :
(a) Knoten 1 : alle dort ausgehenden Kanten erhalten die Nummern
1, 2, . . . , j1
(b) Knoten 2 : alle dort ausgehenden Kanten erhalten die Nummern
j1 + 1, . . . , j2
(c) usw.
Folgerung :
• Vom Knoten xi gehen jetzt die Kanten mit den Nummern inf[i],. . . ,
inf[i + 1] − 1 aus
• Die Nachfolgerliste stimmt mit der Endpunktliste überein
19
Vorlesungsmitschrift Graphentheorie
3.3
Speicherung von Graphen
Algorithmus zum Richten eines Graphen
Gegeben ist ein ungerichteter Graph G(X, K) der Länge |K| = m, der mittels
einer Kantenliste ap und ep definiert ist.
Gesucht ist der zugehörige gerichteter Graph G (X, K ), der durch die Nachfolgerliste nf und zugehörige Indexliste inf definiert ist.
Richten eines Graphen
Schritte:
1. Bestimmung von d(i)
2. Bestimmung von inf
3. Bestimmung von nf
Listing 1: Richten“eines ungerichteten Graphen
”
1
VAR N , M : i n t e g e r;
2
3
4
5
TYPE PListe = ARRAY [1.. N +1] OF i n t e g e r;
KListe = ARRAY [1.. M ] OF i n t e g e r;
K G L i s t e = ARRAY [1..2* M ] OF i n t e g e r;
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
P R O C E D U R E R i c h t e n ( AP , EP : KListe ; inf ,D , H : PLISTE ;
nf : K G L i s t e )
VAR i ,j ,k , l : i n t e g e r;
BEGIN
// S c h r i t t 1 : Grad der Knoten e r m i t t e l n
FOR i :=1 TO N DO D [ i ]:=0;
FOR k :=1 TO M DO BEGIN
i := AP [ k ]; D [ i ]:= D [ i ]+1;
i := EP [ k ]; D [ i ]:= D [ i ]+1;
END ;
// S c h r i t t 2 : I n d e x l i s t e e r s t e l l e n
inf [ 1 ] : = 1 ;
FOR i :=1 TO N DO inf [ i +1]:= inf [ i ] + D [ i ];
// S c h r i t t 3 : N a c h f o l g e r l i s t e e r s t e l l e n
FOR i :=1 TO N DO H [ i ]:= inf [ i ];
FOR k :=1 TO M DO BEGIN
i := AP [ k ]; j := EP [ k ]; l := H [ i ];
nf [ l ]:= j ; H [ i ]:= H [ i ] + 1 ; / / Hin - Kante
l := H [ j ];
nf [ l ]:= i ; H [ j ]:= H [ j ] + 1 ; / / Zurueck - Kante
END ;
END ;
20
Vorlesungsmitschrift Graphentheorie
4
Färbung in Graphen
Färbung in Graphen
Definition : Eine zulässige Färbung ist eine Färbung der Knoten des ( ungerichteten ) Graphen, so daß je zwei adjazente Knoten verschiedene Farben
haben.
Trivial ist, daß n verschiedene Farben immer eine zulässige Färbung sind
( Anzahl Knoten = Anzahl Farben ).
Definition : Die chromatische Zahl eines Graphen G ist die kleinste Anzahl
von Farben für eine zulässige Färbung. Symbol : χ(G)
Beispiele :
1. Polyeder : χ(G = Würfel) = 2, χ(G = Tetraeder) = 4
(a) Würfel
(b) Tetraeder
Abbildung 10: Färbung von Polyedern
2. Färbung eines Graphen : χ(G) = 4
21
zulässige Färbung
chromatische Zahl
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
3. Färben einer Landkarte : Eine Landkarte ist ein planarer Graph2 . Die
Knoten sind durch die Länder gegeben. 2 Knoten werden durch eine
Kante verbunden, wenn die Länder eine gemeinsame Grenze haben.
Abbildung 11: Färbung einer Landkarte
Jede Landkarte kann mit vier Farben zulässig gefärbt werden ( Vierfarbensatz )
4. Party mit n Gästen : Die Gäste stellen die Knoten dar. Jede Kante
zwischen zwei Knoten bedeutet, daß die jeweiligen zwei Gäste nicht
miteinander harmonieren. Gesucht ist eine zulässige Färbung des Graphen, die einer Verteilung der Gäste auf verschiedene Tische ohne Disharmonien entspricht.
Einfache Aussagen :
1. Für einen vollständigen Graphen G mit n Knoten gilt : χ(G) = n
2. Für einen Kreis G mit gerader Länge gilt : χ(G) = 2
3. Für einen Kreis G mit ungerader Länge gilt : χ(G) = 3
2
in der Ebene ohne Überschneidungen der Kanten darstellbar
22
Vierfarbensatz
Vorlesungsmitschrift Graphentheorie
4.1
Färbung in Graphen
Färbung mit 2 Farben
Satz : Ein Graph G = (X, K) hat eine zulässige Färbung mit 2 Farben ⇔
G hat keinen Kreis mit ungerader Länge.
Beweis :
⇒“: trivial ( siehe Aussage 3 )
”
⇐“:
”
In jeder Zusammenhangskomponente von G wird folgendermaßen gefärbt :
1. Wähle x0 aus der Knotenmenge der Zusammenhangskomponente beliebig. Alle Knoten y mit Distanz D(x0 , y) = gerade erhalten die Farbe
F1 . Alle Knoten y mit Distanz D(x0 , y) = ungerade erhalten die Farbe
F2 .
2. Noch zu zeigen : 2 adjazente Knoten x1 und x2 haben nicht die gleiche
Farbe. Indirekter Beweis :
Annahme : x1 und x2 seien adjazent und haben die gleiche Farbe F1 (
oder F2 ).
kürzester Weg von x0 nach x1
kürzester Weg von x0 nach x2
Kante von x1 nach x2
:
:
:
gerade ( ungerade ) Länge
gerade ( ungerade ) Länge
Länge 1
Der Weg von x0 über x1 und x2 und zurück zu x0 ist offenbar stets ein
Kreis ungerader Länge !
Zwei-Farben-Algorithmus
Algorithmus : Beginne mit einem beliebigen Knoten x0 aus X. Bilde
sukzessive um x0 konzentrische Schalen gleichgefärbter Knoten, solange dies
möglich ist.
Die Schalen enthalten genau die Knoten gleicher Distanz von x0 . Eine zulässige Färbung ist möglich, wenn in keiner Schale adjazente Knoten existieren.
Gegeben sei ein ungerichteter zusammenhängender Graph G = (X, K)
mittels Nachfolgerliste nf der Länge 2m und zugehöriger Indexliste inf der
Länge n + 1. Außerdem ist ein Startknoten x0 ∈ X mittels des Indexes i0
gegeben.
Gesucht ist die Entscheidung, ob eine zulässige Färbung mit 2 Farben
möglich ist. Falls ja, Angabe der Färbung der Knoten mittels farbe.
23
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Listing 2: Zwei-Farben-Algorithmus
1
2
3
VAR N ,M , I0 : i n t e g e r;
TYPE PListe = array [1.. N +1] OF i n t e g e r;
KListe = array [1..2* M ] OF i n t e g e r;
4
5
6
7
8
9
P R O C E D U R E Z w e i F a r b e n ( nf : KListe ; inf , Farbe , D : PListe );
VAR i ,j ,k , Dakt , F a r b e A k t : i n t e g e r;
unfaerbbar
: b o o l e a n;
BEGIN
FOR i :=1 TO N DO D [ i ]:= -1;
10
11
12
D [ I0 ]:=0; Dakt :=0; Farbe [ I0 ]:=0;
u n f a e r b b a r := false ; F a r b e A k t :=0; // A n f a n g s i n i t i a l i s i e r u n g
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
REPEAT
FOR i :=1 TO N DO BEGIN
IF D [ i ] = Dakt THEN BEGIN
FOR j := inf [ i ] TO inf [ i +1] -1 DO BEGIN
k := nf [ j ];
IF D [ k ] = -1 THEN BEGIN
D [ k ]:= Dakt +1;
Farbe [ k ]:=1 - F a r b e A k t;
END
ELSE
IF D [ k ] = Dakt THEN u n f a e r b b a r := TRUE ;
END ;
END ;
END ;
Dakt := Dakt +1;
F a r b e A k t :=1 - F a r b e A k t;
UNTIL ( Dakt = N ) OR ( u n f a e r b b a r );
END ;
24
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Beispiel :
1
2
3
4
5
Nachfolgerliste :
j
nf[j]
1
2
2
1
3
3
4
5
i
Index- und Färbeliste : inf[i]
farbe[i]
5
2
1
1
6
4
→
→
→
→
→
7
3
2 3 4
2 5 7
gesucht
2
1, 3, 5
2, 4
3, 5
2, 4
8
5
9
2
5
9
10
4
6
11
Die Abarbeitung des Zwei-Farben-Algorithmus liefert folgende Lösung:
i
farbe[i]
1
0
2
1
3
0
4
1
5
0
25
Vorlesungsmitschrift Graphentheorie
4.2
Färbung in Graphen
Maximalgrad und Greedy-Algorithmus
Definition : Der Maximalgrad eines Graphen G ist definiert durch
Maximalgrad
δ(G) := max d(xi ).
i=1,2,...,n
Offensichtlich gilt: χ(G) ≤ δ(G) + 1 .
Eine zulässige Färbung mit höchstens δ(G) + 1 Farben ermittelt der
Greedy-Algorithmus :
Greedy-Algorithmus
Schritte :
1. x1 ∈ X erhält Farbe 0; i = 2
2. x1 , x2 , . . . , xi−1 ∈ X seien bereits gefärbt
(a) Betrachte die in Γ(xi ) ∩ {x1 , x2 , . . . , xi−1 } vergebenen Farben
j1 , j2 , . . . , jr
(b) xi erhält die Farbe ji = min({0, 1, 2, . . . , δ(G)} \ {j1 , j2 , . . . , jr })
(c) i := i + 1
3. Solange i < n + 1 fahre mit Schritt 2 fort.
26
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Beispiel :
Der Greedy-Algorithmus benötigt fünf Farben, um den obigen Graphen zulässig
zu färben.
Durch Vertauschen der Knotennummern 10 und 12 wird eine Farbe weniger
benötigt.
Eine eventuell günstigere Knotennummerierung kann durch den folgenden
Algorithmus erreicht werden :
1. i := n, Gi := G
2. Ermittle in Gi einen Knoten xi mit minimalem Grad di.
(a) Bilde Gi−1 dadurch, daß xi und alle inzidenten Kanten entfernt
werden
(b) i := i − 1
3. Solange i > 0, setze in Schritt 2 fort.
Der Greedy-Algorithmus liefert jetzt eine zulässige Färbung mit höchstens
δ (G) + 1 Farben, wobei δ (G) := maxi=1,2,...,n d (xi ).
27
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Für obiges Beispiel :
i
1
2
3
4
5
6
7
8
9
10
11
12
xi
xi
di
1
12
2
2
11
2
3
10
2
4
9
2
5
8
1
6
7
2
7
4
2
8
3
1
9
2
1
10
6
2
11
1
0
12
5
1
(a) Ausgangsfärbung
(b) Färbung nach Neunummerierung
Also reichen sogar 3 Farben für eine zulässige Färbung.
Bemerkung : Es gibt eine Nummerierung der Knoten, so daß der GreedyAlgorithmus zu einer zulässigen Färbung mit χ(G) Farben führt.
28
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Backtracking-Algorithmus :
1. x1 , x2 , . . . , xi−1 seien zulässig gefärbt, dann
(a) wird xi zunächst mit der ersten Farbe gefärbt,
(b) verträgt sich diese Farbe mit den bereits gefärbten Nachbarn von
xi , so geht man zu xi+1 ,
(c) wenn nicht, dann wird die nächste Farbe für xi überprüft,
(d) sind alle c Farben für xi mit negativem Resultat überprüft, so geht
man zu xi−1 zurück und ändert die Farbe für xi−1 .
2. Nach Abarbeitung von 1. tritt eine der folgenden Situationen ein:
(a) man erreicht den letzten Knoten xn , kann diesen zulässig färben
und hat damit eine zulässige Färbung des Graphen mit höchstens
c Farben gefunden,
(b) man steht wieder am Anfang des Algorithmus, was bedeutet, dass
eine zulässige Färbung des Graphen mit c Farben nicht möglich
ist (alle Möglichkeiten wurden durchprobiert).
Beispiel :
(a) Graph G
(b) c = 2
(c) c = 3
Abbildung 12: Backtracking-Algorithmus
Für c = 2 entsteht ein Farbänderungsverlauf mit dem Ergebnis, daß eine
zulässige Färbung mit 2 Farben nicht möglich ist. Für c = 3 entsteht ein
gültiger Farbänderungsverlauf und somit eine zulässige Färbung.
29
Vorlesungsmitschrift Graphentheorie
4.3
Färbung in Graphen
Das Vier-Farben-Problem, der Fünf-Farben-Satz
Graphentheoretisch lautet das Vier-Farben-Problem : Jeder planare Graph
G hat die chromatische Zahl χ(G) ≤ 4.
Vier-Farben-Problem
Historie des Vier-Farben-Problems :
1850
1976
in letzter Zeit
Vermutung von de Morgan, über 125 Jahre ungelöst
K. Appel, W. Hahen, ( H. Heesch ) : Betrachtung von
ca. 1950 Arten von planaren Graphen, Computerlösung
N. Robertson, D. Sanders, P. Seymow, R. Thomas : Vereinfachung des Beweises, Reduktion auf ca. 650 Fälle
bisher kein Beweis ohne Computerhilfe
Eulersche Polyederformel :
Sei G ein zusammenhängender planarer Graph mit n Knoten, m Kanten und
g Gebieten ( einschließlich des sog. Außengebietes ). Dann gilt :
m + g =2
n − Knoten
Kanten
Gebiete
Bemerkung : Aus einem Polyeder entsteht durch Projektion ein planarer
Graph.
(a) Polyeder
(b) planarer Graph
Abbildung 13: Projektion eines Polyeders auf einen planaren Graph
Der Quader hat n = 8 Ecken, m = 12 Kanten und g = 6 Flächen; der planare
Graph n = 8 Knoten, m = 12 Kanten und g = 6 Gebiete ( einschließlich des
Außengebietes ).
30
Eulersche Polyederformel
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Beweis der Eulerschen Polyederformel :
Induktionsanfang : für m = 0 folgt, daß n = 1 und g = 1
Induktionsvoraussetzung : für m > 0 sei die Behauptung richtig
Induktionsbehauptung : die Eulersche Polyederformel ist richtig für einen zusammenhängenden planaren Graphen G mit m + 1 Kanten
Induktionsbeweis :
1. Fall : G enthalte keinen Kreis. Dann muß g = 1 und n = m + 2 sein.
Folglich : (m + 2) − (m + 1) + 1 = 2.
2. Fall : G enthalte einen Kreis. Es wird eine Kante aus dem Kreis entfernt. Dadurch verschmelzen zwei Gebiete. Nach Induktionsvoraussetzung gilt :
n − m + (g − 1) = 2
⇒
n − (m + 1) + g = 2
Aussagen :
1. Für einen planaren Graphen G mit n ≥ 3 Knoten gilt : m ≤ 3n − 6
2. In einem planaren Graphen G gibt es mindestens einen Knoten x mit
d(x) ≤ 5.
Beweis zu Aussage 1 : G sei zusammenhängend ( ansonsten für jede
Zusammenhangskomponente )
1. Fall : g = 1 ( d.h. G hat Baumstruktur ). Aus der Baumstruktur folgt,
daß m = n − 1 sein muß. Für n ≥ 3 gilt sicher n − 1 ≤ 3n − 6.
2. Fall : g ≥ 2. Für ein Gebiet i in G ist
die Länge li des umlaufendes
Kreises ≥ 3. Somit ergibt sich : 2m = gi=1 li ≥ 3g. Wenn man nun die
umgeformte Eulersche Polyederformel g = 2 − n − m einsetzt, ergibt
sich folgende Abschätzung : 2m ≥ 6 − 3n + 3m und damit m ≤ 3n − 6.
Beweis zu Aussage 2 : Für n ≤ 6 ist die Aussage klar. Sei nun n > 6
und d(x) ≥ 6 für alle x ∈ X angenommen. Dann gilt : 6n ≤ 2m, was im
Widerspruch zu m ≤ 3n − 6 steht.
31
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Fünf-Farben-Satz :
Fünf-Farben-Satz
1879 zeigte A. Kempe einen Beweis für das Vier-Farben-Problem. 1890 entdeckte P. Heawood einen Fehler in diesem Beweis, der jedoch bei der Färbung
mit 5 Farben nicht auftritt.
Kempes Beobachtung ist die folgende : Sei G zulässig gefärbt. Für zwei Farben i, j wird definiert :
Xij = {x ∈ X|x ist mit i oder j gefärbt}
Gij = der durch Xij erzeugte Teilgraph
Beispiel :
12
11
10
12
10
9
1
2
9
1
5
8
6
3
6
3
4
7
(a) Graph G
4
7
(b) Graph G13 mit getauschten Farben
Z sei eine Zusammenhangskomponente von Gij . Nun werden in Z die Farben
getauscht“: x wird mit der Farbe i gefärbt, falls x vorher mit der Farbe j
”
gefärbt war, und umgekehrt.
Die neue Färbung wird nach G übertragen. Die neue Färbung ist in G zulässig
und die Anzahl der Farben bleibt gleich.
Beim Beweis des Fünf-Farben-Satzes, dass jeder planare Graph mit 5 Farben
zulässig gefärbt werden kann, wird dieser Farbentausch Kempes genutzt..
32
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
Beweis des Fünf-Farben-Satzes:
Induktionsanfang : für n = 1 trivial
Induktionsvoraussetzung : für n sei die Behauptung richtig
Induktionsbeweis :
Sei G ein planarer Graph mit n + 1 Knoten, Sei x ∈ X ein Knoten mit
d(x) ≤ 5. Sei G der durch X \ {x} erzeugte Teilgraph von G. Nach der
Induktionsvoraussetzung besitzt G eine zulässige Färbung mit 5 Farben.
1. Fall : Verwenden die Nachbarn von x nicht alle 5 Farben, so ist eine
zulässige Färbung von G mit 5 Farben trivial.
2. Fall : Die 5 Nachbarn xi von x benutzen alle 5 Farben i, wobei i =
1, . . . , 5. Die Knoten xi laufen um x im Uhrzeigersinn.
x1
x5
x2
x
x3
x4
Ziel ist es, die Knoten x1 bis x5 mit 4 Farben zulässig färben.
Es werden die Teilgraphen Gij mit 1 ≤ i, j ≤ 5 von G nach der Idee von
Kempebetrachtet, konkret G13 .
1. Fall : Es gibt keinen Weg in G13 von x1 nach x3 . x1 liege in einer
Zusammenhangskomponente Z von G13 . In Z werden die Farben 1 und
3 getauscht. Insgesamt bleibt eine zulässige Färbung von G erhalten.
x1 und x3 sind jedoch beide mit der Farbe 3 gefärbt. Die Farbe 1 kann
für x verwendet werden.
x1
Z
x5
x2
x
x4
x3
33
Vorlesungsmitschrift Graphentheorie
Färbung in Graphen
2. Fall : Es gibt einen Weg in G13 von x1 nach x3 . Zusammen mit x und
den beiden Kanten von x nach x1 und x3 ergibt sich ein Kreis GK .
x1
Gk
x5
x2
x
x3
x4
Jeder Weg von x2 nach x4 in G muß einen Knoten xK von GK benutzen. xK ist mit Farbe 1 oder 3 gefärbt. Somit liegen x2 und x4
in unterschiedlichen Zusammenhangskomponenten von G24 . Das heißt,
auf G24 kann der 1. Fall angewendet werden.
x1
Gk
x5
x2
x
xk
x4
x3
34
Vorlesungsmitschrift Graphentheorie
5
Wegprobleme
Wegprobleme
5.1
Erreichbarkeit
Definition : xj heißt erreichbar von xi , wenn es einen Weg von xi nach xj
gibt.
Erreichbarkeit
Welche Knoten xj sind von einem vorgegebenem Startkonten xi0 aus erreichbar und wie lautet ein entsprechender Weg von xi0 nach xj ?
Gegeben : gerichteter Graph G = (X, K) mittels Nachfolgerliste nf und
zugehöhriger Indexliste inf sowie der Startknoten xi0
Verfahren :
1. Markiere Startknoten xi0 ; i = i0
2. Wähle ein Kante (xi , xj ), wobei xi markiert ist und xj nicht markiert
ist; xj wird nun markiert; wiederhole Schritt 2
Sinnvolle Markierungen :
• Markierung von xj mit i ( xj wurde von xi aus erreicht )
• Markierung von xi0 mit n + 1 ( Kennzeichnung des Startknotens )
• Markierung von xj mit 0 (xj wurde noch nicht erreicht)
Strategien für die Auswahl geeigneter Kanten :
1. DFS-Strategie ( Depth First Search, Tiefensuche )
DFS-Strategie
Sobald ein Knoten markiert wird, versuche von diesem Knoten ausgehend einen weiteren zu markieren. Ist kein Knoten markierbar, versuche
Gleiches mit dem zuvor markiertem Knoten.
2. BFS-Strategie ( Breath First Search, Breitensuche )
BFS-Strategie
Falls von einem markierten Knoten xi aus Knoten markierbar sind, so
markiere nacheinander alle diese von xi aus markierbaren Knoten.
Eine zusätzliche Neunummerrierung der Knoten kann eingearbeitet werden :
xi erhält die Nr. k , wenn xi als k-ter Knoten markiert wurde
Technisch : NUM[k]:=i ( Es gilt immer: NUM[1]=i0. )
35
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Damit ist die Folge der neuen Nummern der Konten eines gefundenen Weges
von xi0 aus immer aufsteigend.
Listing 3: DFS-Algorithmus
1
2
3
VAR N ,M , i0 : i n t e g e r;
TYPE PLISTE = array [1.. N +1] OF i n t e g e r;
KLISTE = array [1.. M ] OF i n t e g e r;
4
5
6
7
P R O C E D U R E DFS ( nf : KLISTE ; inf , num , mar , H : PLISTE );
VAR i ,j ,k , l : i n t e g e r;
LABEL Weiter ;
8
9
10
11
12
13
14
BEGIN
FOR i :=1 TO N DO BEGIN
num [ i ]:=0;
mar [ i ]:=0;
H [ i ] := inf [ i ];
END ;
15
16
17
18
19
num [1]:= i0 ;
mar [ i0 ]:= N +1;
l :=1;
i := i0 ;
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Weiter :
k := H [ i ];
H [ i ]:= H [ i ]+1;
IF k < inf [ i +1] THEN BEGIN
j := nf [ k ];
IF mar [ j ]:=0 THEN BEGIN
mar [ j ]:= i ;
i := j ;
l := l +1;
num [ l ]:= j ;
END ;
IF l < N THEN GOTO Weiter ;
END ELSE BEGIN
i := mar [ i ];
IF i < N +1 THEN GOTO Weiter ;
END ;
END ;
36
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Listing 4: BFS-Algorithmus
1
2
3
VAR N ,M , i0 : i n t e g e r;
TYPE PLISTE = array [1.. N +1] OF i n t e g e r;
KLISTE = array [1.. M ] OF i n t e g e r;
4
5
6
P R O C E D U R E BFS ( nf : KLISTE ; inf , num , mar : PLISTE );
VAR i ,j ,k ,l , m : i n t e g e r;
7
8
9
10
11
12
BEGIN
FOR i :=1 to N DO BEGIN
num [ i ]:=0;
mar [ i ]:=0;
END ;
13
14
15
16
17
num [1]:= i0 ;
mar [ i0 ]:= N +1;
l :=1;
k :=1;
18
19
20
21
22
23
24
25
26
27
28
29
30
31
WHILE ( num [ k ] < > 0 ) AND ( l < N ) DO BEGIN
i := num [ k ];
FOR j := inf [ i ] TO inf [ i +1] -1 DO BEGIN
m := nf [ j ];
IF mar [ m ] = 0 THEN BEGIN
mar [ m ]:= i ;
l := l +1;
num [ l ]:= m ;
END ;
END ;
k := k +1;
END ;
END ;
Beispiel :
Gegeben ist der folgende Graph mit der Nachfolgerliste :
j
nf[j]
1
5
2
2
3
1
4
7
5
5
6
6
7
7
8
1
9
2
und der zugehörigen Indexliste :
i
inf[i]
1
1
2
2
3
2
4
4
5
6
6
7
7
8
8
10
37
Vorlesungsmitschrift Graphentheorie
Wegprobleme
1
2
3
7
2
6
3
5
6
4
5
4
1
(a) Abarbeitung des DFS-Algorithmus, Startknoten ist x4
4
2
1
4
5
5
6
3
1
7
2
6
(b) Baum der Erreichbarkeit nach DFS
38
Vorlesungsmitschrift Graphentheorie
Wegprobleme
1
2
4
7
2
5
3
6
6
3
5
4
1
(c) Abarbeitung des BFS-Algorithmus, Startknoten ist x4
(d) Baum der Erreichbarkeit nach BFS
39
Vorlesungsmitschrift Graphentheorie
5.2
Wegprobleme
Kürzeste Wege
Gegeben ist ein ( gerichteter ) Graph G = (X, K) mit einer Kantenbewertungsfunktion :
l:K →R
Gesucht sind die Antworten auf folgenden Fragen :
1. Ist xj von xi0 erreichbar ?
2. Welche Länge hat ein gerichteter Weg xi0 nach xj ?
Antwort :
1. Die Erreichbarkeit wurde im Textabschnitt 5.1 beschrieben.
2. Die Länge eines Weges kann durch die Kantenbewertungsfunktion l
ermittelt werden. Dazu wird zunächst der Weg W betrachtet :
W = {(xi0 , xi1 ), (xi1 , xi2 ), . . . , (xir−1 , xir )}.
xj
Damit kann die Länge des Weges errechnet werden :
Dl (W ) := l(xi0 , xi1 ) + l(xi1 , xi2 ) + . . . + l(xir−1 , xir ).
Im Sinne dieser Weglänge ist ein kürzester Weg und seine Länge gesucht.
40
Vorlesungsmitschrift Graphentheorie
Zunächst : l(k) ≥ 0
Wegprobleme
∀k ∈ K
Gegeben sei ein gerichteter Graph G = (X, K) mit l(k) ≥ 0 ∀k ∈ K.
Der Anfangsknoten sei xi0 .
Gesucht ist ein kürzester Weg und seine Länge zu jedem von xi0 aus erreichbaren Knoten xj .3
Algorithmus von Dijkstra :
1. Setze Dl (xi0 , xj ) = ∞ für j = i0 und Dl (xi0 , xi0 ) = 0. Setze i = i0 und
markiere xi .
2. Fixiere xi . Betrachte alle Knoten xj , zu denen es eine Kante von xi
gibt. Berechne eine vorläufige Distanz :
Dl (xi0 , xj ) := min{Dl (xi0 , xj ), Dl (xi0 , xi ) + l(xi , xj )}
Fall A
Fall B
Die Markierung bleibt bestehen, sofern die Minimum-Funktion Fall A
liefert, ansonsten wird xj mit i markiert ( Fall B ).
3. Unter allen nicht fixierten Knoten xj suche einen Knoten mit kleinster Distanz Dl (xi0 , xj ) < ∞. Dieser Knoten ist ein neuer Knoten xi .
Wiederhole Schritt 2.
4. Gibt es keinen nicht fixierten Knoten xj mit Dl (xi0 , xj ) < ∞, so ist der
Algorithmus beendet.
3
Zu beachten : Es kann auch mehrere kürzeste Wege geben !
41
Algorithmus von Dijkstra
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Listing 5: Algorithmus von Dijkstra
1
2
3
4
5
VAR N ,M , i0 : i n t e g e r;
TYPE PListe = ARRAY [1.. N +1] OF i n t e g e r;
KListe = ARRAY [1.. M ] OF i n t e g e r;
K B L i s t e = ARRAY [1.. M ] OF real ;
DListe = ARRAY [1.. N ] OF real ;
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P R O C E D U R E D I J K S T R A ( nf : Kliste ; inf , mar : PListe ;
L : K B L i s t e ; DL : DListe );
CONST UNENDL = M A X R E A L;
VAR i ,j , k : i n t e g e r;
H : ARRAY [1.. N ] OF b o o l e a n;
min , d0 : real ;
BEGIN
// I n i t i a l i s ie rung , S c h r i t t 1 des V e r f a h r e n s
FOR i :=1 TO N DO BEGIN
DL [ i ]:= UNENDL ;
mar [ i ]:=0;
H [ i ]:= false ;
END ;
DL [ i0 ]:=0; mar [ i0 ]:= N +1; min :=0; i := i0 ;
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
REPEAT
// S c h r i t t 2 des V e r f a h r e n s
H [ i ]:= true ;
FOR j := inf [ i ] TO inf [ i +1] -1 DO BEGIN
k := nf [ j ];
d0 := DL [ i ]+ L [ j ];
IF d0 < DL [ k ] THEN BEGIN
DL [ k ]:= d0 ;
mar [ k ]:= i ;
END ;
END ;
// S c h r i t t 3 des V e r f a h r e n s
min := UNENDL ;
FOR j :=1 to N DO
IF ( NOT ( H [ j ] ) ) AND ( DL [ j ] < min ) THEN BEGIN
min := DL [ j ];
i := j ;
END ;
UNTIL ( min = UNENDL ) ; / / S c h r i t t 4 des V e r f a h r e n s
END ;
42
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Beispiel :
2
12
5
1
1
3
7
3
7
1
2
4
5
3
1
1
7
8
6
(a) Graph G mit Kantenbewertung
(b) 1. Zyklus
(c) 2. Zyklus
(d) 3. Zyklus
(e) 4. Zyklus
(f) 5. Zyklus
(g) 6. Zyklus
(h) letzter Zyklus
Abbildung 14: Dijkstra-Algorithmus
43
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Bemerkung der Autoren : Der Dijkstra-Algorithmus ist recht einfach
und kann gut nachvollzogen werden.
Der gerichtete Graph G mit der Kantenbewertung ist in Abbildung 14(a)
gegeben. Der Startknoten ist der Knoten 1.
1. Zyklus : der Knoten 1 wird fixiert ( Abbildung 14(b) ). Die Weglänge
vom fixierten Knoten 1 zu seinen Nachfolgern ( Knoten 2, 3 und 4 ) wurden blau dargestellt. Alle anderen Knoten wurden mit einer Weglänge
von ∞ festgelegt. Aus den nicht fixierten4 Knoten ( Knoten 2, 3 und
4 ) wird nun derjenige gesucht, dessen Weglänge minimal und nicht ∞
ist. Dies ist Knoten 3. Er wird markiert und für den nächsten Zyklus
fixiert.
2. Zyklus : der Knoten 3 ist nun fixiert ( Abbildung 14(c) ). Für seine
Nachfolger werden nun die kumulierten Weglängen errechnet ( rote
Zahlen neben den Knoten 4 und 5, da hier eine Verbesserung erreicht
wird ). Aus den nicht fixierten Knoten wird nun derjenige gesucht,
dessen Weglänge minimal und endlich ist. Dies ist Knoten 2.5 Er wird
markiert und fixiert.
3. Zyklus : der Knoten 2 ist nun fixiert ( Abbildung 14(d) ). Für seine
Nachfolger werden nun die kumulierten Weglängen errechnet ( braune
Zahl neben dem Knoten 7, da hier eine Verbesserung erreicht wird
). Aus den nicht fixierten Knoten wird nun derjenige gesucht, dessen
Weglänge minimal und endlich ist. Es wird Knoten 4 markiert und
fixiert.
4. Zyklen bis zum Ende : es werden nun nacheinander die Knoten 5, 6 und
7 markiert und fixiert. Die kumulierten Weglänge befinden sich in den
Abbildungen in der Farbe des fixierten Knotens neben den jeweiligen
Nachfolgern.
Zum Beispiel kann als kürzester Weg von Knoten 1 nach Knoten 7 durch die
Kantenmarkierungen der Weg W
W = {(1, 3), (3, 4), (4, 6), (6, 5), (5, 7)}
bestimmt werden. Die Weglänge dieses kürzesten Weges beträgt 10.
4
In den Abbildungen sind die fixierten Knoten immer gestrichelt umrandet
Es kann auch Knoten 4 genutzt werden. Es gibt aber die Nummerierung der Knoten
den Ausschlag.
5
44
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Jetzt : l(k) < 0 für k ∈ K ist erlaubt
Dazu folgendes Beispiel :
xj
3
-4
xi
6
xk
Dabei sei xi fixiert. Nach dem obigen Algorithmus folgt daraus für die Distanzen der Nachfolgerknoten :
Dl (j) = Dl (i) + 3
Dl (k) = Dl (i) + 6
Angenommen, xj wird als nächstes fixiert. Dann ist aber
Dl (k) − 4 = Dl (i) + 6 − 4 = Dl (i) + 2
besser ! Deshalb muß Schritt 2 des Verfahrens allgemeiner gefaßt werden :
2. Solange es eine Kante von xi nach xj gibt mit
Dl (xi0 , xi ) + l(xi , xj ) < Dl (xi0 , xj )
korrigiere Dl (xi0 , xj ) = Dl (xi0 , xi ) + l(xi , xj ).
45
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Betrachtet wird nun folgendes Beispiel :
xj
3
-2
xi
-2
xk
Hier würde Schritt 2 immer wieder zur Verbesserung von Dl (xi0 , xj ) führen,
da ein Durchgang von xj über xk und xi zurück nach xi immer Dl (xi0 , xj )
um −1 verringert. Offenbar dürfen also Kreise negativer Länge dürfen nicht
beachtet werden.
Eine Teillösung liefert der folgende Algorithmus.
Algorithmus von Ford :
Algorithmus von Ford
Schritt 2 des obigen Algorithmus wird n−1 mal durchlaufen. Dann sind Wege
mit n − 1 Kanten durchlaufen. Wird Schritt 2 ein weiteres Mal durchlaufen
und tritt eine Verbesserung auf, so muß ein Kreis negativer Länge vorhanden
sein.
46
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Listing 6: Algorithmus von Ford
1
2
3
4
5
VAR N ,M , i0 : i n t e g e r;
TYPE PListe = ARRAY [1.. N +1] OF i n t e g e r;
KListe = ARRAY [1.. M ] OF i n t e g e r;
K B L i s t e = ARRAY [1.. M ] OF real ;
DListe = ARRAY [1.. N ] OF real ;
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
P R O C E D U R E Ford ( nf : Kliste ; inf , mar , num : PListe ;
L : K B L i s t e ; DL : DListe );
CONST UNENDL = M A X R E A L;
VAR i , j , k , durchl , p , q : i n t e g e r;
Kreis : b o o l e a n;
d0 : real ;
BEGIN
// I n i t i a l i s i e r u n g des V e r f a h r e n s
FOR i :=1 TO N DO BEGIN
DL [ i ]:= UNENDL ;
mar [ i ]:=0;
num [ i ]:=0;
END ;
DL [ i0 ]:=0; mar [ i0 ]:= N +1; num [1] := i0 ;
q :=1; Durchl := 0;
22
23
24
25
26
REPEAT
durchl := durchl +1;
Kreis := false ;
p :=1;
27
28
29
WHILE ( p <= N ) AND ( num [ p ] >0 ) DO BEGIN
i := num [ p ]; p := p +1;
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
FOR j := inf [ i ] TO inf [ i +1] -1 DO BEGIN
k := nf [ j ]; d0 := DL [ i ]+ L [ j ];
IF mar [ k ] = 0 THEN BEGIN
DL [ k ]:= d0 ; mar [ k ]:= i ; q := q +1; num [ q ]:= k ;
END
ELSE
IF d0 < DL [ k ] THEN BEGIN
DL [ k ]:= d0 ; mar [ k ]:= i ;
Kreis := true ; // erst w i c h t i g im n - ten D u r c h l a u f
END ;
END ;
END ; // Ende eines D u r c h l a u f s
UNTIL ( durchl = N );
END ;
47
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Beispiel :
1
2
8
-3
-3
1
2
Kantenbewertung
Knotennummer
5
Kantennummer
4
2
3
-2
4
6
5
5
5
3
Durchl := 1
P := 1
-3
-5
4
DL - Entfernung
2
7
Knotennummer
Durchl := 1
P := 2
-3
1
1
DL - Entfernung
2
Knotennummer
-6
2
3
3
5
5
4
Durchl := 1
P := 3..5
-3
4
DL - Entfernung
2
1
Knotennummer
Durchl := 2..5
P := 1..5
4
4
-3
2
1
-6
DL - Entfernung
Knotennummer
-6
3
3
-8
-8
5
5
-1
4
-1
4
Abbildung 15: Algorithmus von Ford
48
Vorlesungsmitschrift Graphentheorie
5.3
Wegprobleme
Längste Wege
Beispiel 1 : Bauvorhaben ( Netzplantechnik )
Netzplantechnik
I
E
H
B
Start
G
D
A
J
J
F
C
J
F
J
K
Ende
wobei :
Kante
A
B
C
D
E
F
G
H
I
J
K
Aktion
Ausschachten
Keller anlegen
Gas- oder Öltank anlegen
Heizung montieren
Rohbau
Heizung installieren
Elektroinstallation
Sanitärinstallation
Innenausbau
Malerarbeiten
Einzug
Mathematisch gesehen ist dieser Netzplan also ein gerichteter Graph G =
(X, K) mit
• Kante Aktivität ( Vorgang ) mit Bewertung ( meist Zeitdauer )
• Knoten Ereignis der Beendigung aller Aktivitäten, die in den Knoten
einmünden
Dabei wird angenommen, daß x1 der Start- und xn der Endknoten sind. Es
sei nun ti der Zeitpunkt für das Eintreten des Ereignisses xi .
49
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Eine sinnvolle Aufgabe ist es, tn zu minimieren. Mathematisch kann die Aufgabe dann so ausgedrückt werden :
tn = min!
t1 = 0
tj − ti ≥ l(k) , falls xi und xj durch die Kante k verbunden sind
Diese Aufgabe heißt Terminplanungsproblem oder Potentialproblem.
Terminplanungsproblem
Lösung :
Sei W ein beliebiger Weg von x1 nach xn , d.h.
W = {( xi0 , xi1 ), (xi1 , xi2 ), . . . , (xir−1 , xir )}
x1
xn
so gilt
tn =
tn −tir−1 + tir−1 − tir−2 + tir−2 ± . . . − ti1 + ti1 − ti0
tir
t1 =0
≥ l(xir−1 , xir ) + l(tir−2 , tir−1 ) + . . . + l(ti0 , ti1 )
= l(W )
D.h., der frühestmögliche Zeitpunkt tn ist größer oder gleich der Länge eines
beliebigen Weges von x1 nach xn !
Somit ist die Länge eines längsten Weges von x1 nach xn interessant.
Bemerkungen :
Ist xn von x1 aus erreichbar, dann gibt es immer einen längsten Weg von x1
nach xn .
Zur Bestimmung eines längsten Weges stören jetzt Kreise positiver Länge.
In diesem Fall ist das Terminplanungsproblem unlösbar.
50
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Beispiel :
x2
2
1
x1
1
x3
Im Beispiel soll t3 minimal werden. Beim Startknoten x1 ist t1 = 0. Aus
t2 − t1 ≥ 2 folgt, daß −t2 ≤ −2 sein muß. Weiterhin ist t3 − t2 ≥ 1. Durch
t1 − t3 ≥ 1 folgt, daß t3 ≤ −1 sein muß.
Summiert man −t2 ≤ −2 und t3 ≤ −1, erhält man t3 − t2 ≤ −3. Dies ist ein
Widerspruch zu t3 − t2 ≥ 1.
Beispiel 2 : Knappsackproblem
Knappsackproblem
Gegeben sei ein Handelsmann, der n Gegenstände A1 , A2 , . . . , An seinen Kunden verkaufen soll. Die Gegenstände haben jeweils ein gewisses Gewicht pi
und versprechen jeweils einen Gewinn von gi .
Das Problem ist nun, daß nur ein Transport der Gegenstände bis zu einem
maximalen Gewicht K möglich ist. Es soll aber ein maximaler Gewinn realisiert werden.
Mathematisch ausgedrückt :
• Nutzung der Gegenstände :
0 Ai ist nicht eingepackt
Ai → xi =
1 Ai ist eingepackt
• Gewichtsbegrenzung :
• Gewinnmaximierung :
n
i=1
pi · xi ≤ K
i=1
gi · xi = max!
n
51
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Beispiel : Bei K = 16 und n = 6 sind folgende Werte bekannt :
0
1
2
3
Ai
1
2
3
4
5
6
pi
gi
9
13
7
10
5
8
4
6
4
5
2
2
7
8
4
5
6
9
10
11
12
13
14
15
16
1
13
0
2
10
0
10
0
3
0
8
0
0
8
0
4
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
5
0
5
5
0
6
2
0
7
0
8
0
Graph ist nicht vollständig !
Abbildung 16: Knappsack-Problem
Die Länge eines längsten Weges in diesem Graphen entspricht dem maximalen Gewinn des Handelsmannes.
Anmerkung der Autoren : Im Graphen ist auf der x-Achse das momentane Gesamtgewicht der eingepackten Gegenstände dargestellt ( 0 bis
maximal 16 ). Auf der y-Achse sind die jeweils einzupackenden Gegenstände
abgetragen. Auf den Kanten ist der jeweilige Gewinn dargestellt.
Ausgehend von Gegenstand 1 hat der Handelsmann die Wahl, ob er es einpackt oder nicht ( Knoten auf Koordinate (0,1)6 ).
Packt er es ein, erhöht sich das Gesamtgewicht auf 9 ( p1 = 9 ). Dabei ist ein
Gewinn von g1 = 13 zu erwarten ( Kante vom Knoten auf Koordinate (0,1)
zu Knoten auf Koordinate (9,2) ). Vom Knoten auf Koordinate (9,2) hat er
nun die Wahl, ob er Gegenstand 2 einpackt oder nicht. Packt er es ein, erhöht
sich das Gesamtgewicht auf 16 ( p1 + p2 = 16) bei einem Gesamtgewinn von
23 ( g1 +g2 = 23 ), wodurch man im Graphen auf den Knoten auf Koordinate
(16,3) gelangt. Da nun das Maximalgewicht von K = 16 erreicht ist, können
keine Gegenstände mehr eingepackt werden.
6
(0,1) bedeutet : Gesamtgewicht von Null, Gegenstand 1
52
Vorlesungsmitschrift Graphentheorie
Wegprobleme
Hat sich der Handelsmann aber entschieden, Gegenstand 1 nicht einzupacken,
so gelangt man vom Knoten auf Koordinate (0,1) zu Koordinate (0,2). Das
Gesamtgewicht hat sich nicht erhöht und der Gesamtgewinn verbleibt auf
Null. Vom Knoten auf Koordinate (0,2) hat der Handelsmann nun die Wahl,
ob er den Gegenstand 2 einpackt oder nicht.
Nach diesem Prinzip kann der Graph aufgestellt werden ( Anmerkung: In
obiger Abbildung ist der Graph nicht vollständig ! ).
Lösung des Längsten-Weg-Problems :
Man kann sich stets auf das Kürzester-Weg-Problem zurückziehen, indem die
Vorzeichen aller Kantenbewertungen umgedreht und dann der kürzeste Weg
bestimmt wird7 .
Damit ist auch begründet, daß beim Längsten-Weg-Problem Kreise positiver
Länge stören“.
”
7
Anmerkung der Autoren : Dieser Weg ist dann der längste Weg
53
Vorlesungsmitschrift Graphentheorie
6
Fluß- und Stromprobleme
Fluß- und Stromprobleme
Sei G = (X, K) ein gerichteter Graph.
Definition : Ein Fluß in G ist eine Abbildung α : K → R,
d.h. für k = (xi , xj ) ∈ K ist α(k) = α(xi , xj ) ∈ R.
In der Regel wird ein Fluß α gesucht, α soll dabei gewissen Bedingungen
genügen.
Fluß
Beispiele :
1. Maximalflußproblem
Maximalflußproblem
Gegeben ist ein Transportnetz“( gerichteter Graph ).
”
Dabei sind 2 Knoten ausgezeichnet :
xq = x1 (Quelle) mit d− (xq ) = 0,
xs = xn (Senke) mit d+ (xs ) = 0.
Für jede Kante k = (xi , xj ) gibt es eine obere Kapazitätsschranke
βo (k) = βo (xi , xj ) für den Transport ( = Fluß) pro Zeiteinheit.
Gesucht ist der maximale Fluß von xq nach xs .
Es wird der Graph einschl. einer Rückkehrkante kr von xs nach xq mit
der Kapazitätsschranke βo (xs , xq ) = βo (kr ) = ∞ betrachtet.
Rückkehrkante
Aufgabe : Bestimmung eines Flusses α mit
(a) α(xs , xq ) = max !
α(x
,
x
)
≤
(b)
i
j
j
k α(xk , xi )
für alle Knoten xi
(c) 0 ≤ α(xi , xj ) ≤ βo (xi , xj )
für alle Kanten (xi , xj )
2. Verteilungsproblem
Verteilungsproblem
In r Orten wird Kies abgebaut und zwar in einer Zeiteinheit die Mengen b1 , b2 , . . . , br . In t Orten wird der Kies benötigt, und zwar in einer
Zeiteinheit die Mengen c1 , c2 , . . . , ct .
Gesucht ist eine Verteilung des Kieses.
54
Vorlesungsmitschrift Graphentheorie
Fluß- und Stromprobleme
Modell :
Knoten x1 . . . xr
y1 . . . yt
zq , zs (
Kanten (xi , yj )
(zq , xi )
(yj , zs )
(zs , zq )
( Produzenten )
( Verbraucher )
künstliche Quelle und Senke )
falls yi von xi beliefert werden, kann,
i = 1, 2, . . . , r ( Quelle zu allen Produzenten ),
j = 1, 2, . . . , t ( von Verbrauchern zur Senke ),
Rückkehrkante
Aufgabe : Bestimmung des Flusses α, wobei
(a)
(b)
(c)
(d)
(e)
(f)
0 ≤ α(xi , yj )
für alle Kanten (xi , yj )
0 ≤ α(zq , xi ) ≤ bi
für i = 1, 2, . . . , r
cj ≤ α(yj , zs )
für j = 1, 2, . . . , t
α(xi , yj ) = α(zq , xi )
für i = 1, 2, . . . , r
j
α(xi , yj ) = α(yj , zs )
für j = 1, 2, . . . , t
i
j α(yj , zs ) = α(zs , zq ) =
i α(zq , xi )
3. Transportproblem
Transportproblem
Zusätzlich ist eine Kantenbewertung γ für die Kanten (xi , yj ) gegeben
( Kosten für den Transport pro Zeit- und Mengeneinheit ).
Aufgabe : Bestimmung eines Flusses α mit minimalen Kosten, d.h.
γ(xi , yj )α(xi , yj ) = min !
i,j
wobei die Gleichungen (a) bis (f) gelten.
55
Vorlesungsmitschrift Graphentheorie
Fluß- und Stromprobleme
Gemeinsamkeiten aller Aufgaben :
Die sogenannte Ergiebigkeit des Flusses in jedem Knoten xi ist Null8 :
α(xj , xi ) −
α(xk , xi ) = 0
j
was rausgeht“
”
k
Ergiebigkeit
was reingeht“
”
Ein solcher Fluss heißt auch Strom in G.
Strom
Stromprobleme :
Gegeben ist ein gerichteter Graph G = (X, K) mit fixierten Knoten xa = xi1
und xe = xi2 und fixierter Kante k0 = (xa , xe ). Jeder Kante k = (xi , xj ) sind
2 Bewertungen βu (xi , xj ) ≤ βo (xi , xj ) zugeordnet ( βu = −∞ und βo = +∞
sind zugelassen ).
Aufgabe : Bestimmung eines Stromes α mit
1. α(k0 ) = α(xa , xe ) = max!
2. βu (xi , xj ) ≤ α(xi , xj ) ≤ βo (xi , xj )
Unter der Annahme, es sei ein sogenannter zulässiger Strom α bekannt, d.h.
βu (xi , xj ) ≤ α(xi , xj ) ≤ βo (xi , xj ) für alle Kanten k = (xi , xj )9
so kann folgende Teilaufgabe formuliert werden.
Teilaufgabe : Ein zulässiger Strom α soll sukzessive bezüglich der Bewertung α(k0 ) = α(xa , xe ) verbessert werden.
8
9
Vgl. 1. Kirchhoff’sches Gesetz
Sind die βu (xi , xj ) ≡ 0, so ist α ≡ 0 immer ein zulässiger Strom.
56
zulässiger Strom
Vorlesungsmitschrift Graphentheorie
Fluß- und Stromprobleme
Beispiel :
Es sei k0 = (x3 , x4 ). Offenbar liegt α(x3 , x4 ) = 2 unterhalb des maximalen
Wertes 6. Man sieht :
• Erhöhung von α(x3 , x4 ) =⇒
– Erhöhung von α(x4 , x5 )
– Absenkung von α(x1 , x4 ) – ist nicht möglich
• Erhöhung von α(x4 , x5 ) =⇒
– Erhöhung von α(x5 , x2 ) – ist nicht möglich
– Absenkung von α(x3 , x5 )
• Absenkung von α(x3 , x5 ) um 1 =⇒
– Erhöhung von α(x4 , x5 ) um 1
– Erhöhung von α(x3 , x4 ) um 1
57
Vorlesungsmitschrift Graphentheorie
Fluß- und Stromprobleme
Verfahren zur Verbesserung eines zulässigen Stromes :
α sei ein zulässiger Strom in G.
Falls α(xa , xe ) = βo (xa , xe ), dann hat α den maximalen Wert α(xa , xe ).
Im anderen Fall : Es wird folgender neuer Graph G = (X, K ) mit einer
Kantenbewertung l gebildet :
(xa , xe ) ∈ K mit l (xa , xe ) = βo (xa , xe ) − α(xa , xe ) > 0
Wenn (xi , xj ) ∈ K mit
1. α(xi , xj ) < βo (xi , xj ), dann (xi , xj ) ∈ K mit l (xi , xj ) = βo (xi , xj ) −
α(xi , xj ) > 0.
2. α(xi , xj ) > βu (xi , xj ), dann (xj , xi ) ∈ K mit l (xj , xi ) = α(xi , xj ) −
βu (xi , xj ) > 0.
Beachte : (xe , xa ) ∈
/ K !
Beispiel: G mit Kantenbewertung l
Es wird ein Weg von xe nach xa in G gesucht. Ein solcher sei der Weg :
W = {( xi0 , xi1 ), (xi1 , xix2 ), . . . , (xir−1 , xir )}
xa
xe
Berechne den Stromerhöhungswert h := minj=1...r l (xij−1 , xij ).
58
Vorlesungsmitschrift Graphentheorie
Fluß- und Stromprobleme
Der neue Strom ist der folgende :
α(xa , xe ) := α(xa , xe ) + h
Für (xij−1 , xij ) ∈ W
α(xij−1, xij ) := α(xij−1 , xij ) + h,
oder
α(xij , xij−1 ) := α(xij , xij−1) − h,
falls (xij−1 , xij ) ∈ K
falls (xij , xij−1 ) ∈ K
Beispiel: Ein Weg von x4 nach x3 ist W = {(x4 , x5 ), (x5 , x3 )}.
Der Stromerhöhungswert ist h = 1. Der neue Strom α ist abgebildet.
Das Verfahren wird mit diesen neuen zulässigen Strom erneut durchgeführt.
Es bricht ab, wenn es in G keinen Weg von xe nach xa gibt.
59
Herunterladen