Einf ¨uhrung in die Graphentheorie (Mathematik IIIb)

Werbung
• Die Folien zur Vorlesung (Skript) stehen auf der Homepage vor der
Vorlesung zur Verfügung.
• Formate: PDF, ein- und mehrseitig
• Sie können also die ausgedruckten Folien mit in die Vorlesung bringen und dort mit schriftlichen Bemerkungen versehen.
Einführung in die Graphentheorie
(Mathematik IIIb)
• Benutzen Sie zum Drucken bitte die mehrseitige Version des Skriptes.
Peter Becker
Fachbereich Informatik, FH Bonn-Rhein-Sieg
[email protected]
Vorlesung Wintersemester 2003/04
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Allgemeines zur Vorlesung
2
Übungen
• Es gibt eine Homepage zur Vorlesung:
• Übungen finden Mittwochs verteilt auf drei Gruppen statt.
http://www2.inf.fh-rhein-sieg.de/~pbecke2m/graphentheorie/
• Zuteilung zu den Übungsgruppen: siehe Aushang
• Die Vorlesung wird folienbasiert gehalten,
• Erster Übungstermin: Montag, 15.10.2003
• aber die Folien enthalten nur die wichtigsten Aspekte (Definitionen,
Sätze, knappe Beispiele, wichtige Bemerkung).
• Alles was sonst eine Vorlesung ausmacht (Erläuterungen, ausführliche Beispiele, Beweise von Sätzen, Anwendungen, Querverweise
auf andere Gebiete der Informatik, etc.) gibt es nur in der Vorlesung
selbst.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1
• Die Ausgabe der Übungsblätter findet vor der Vorlesung statt.
• Bearbeitungszeit: 6 oder 13 Tage
• Abgegebene Übungsaufgaben werden korrigiert!
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3
Prüfung
Literatur
• Im Rahmen der Prüfung für Mathematik III zusammen mit Mathematik IIIa
D. Jungnickel, Graphen, Netzwerke und Algorithmen, Spektrum Akademischer Verlag, 1994.
A. Brandstädt, Graphen und Algorithmen, Teubner, 1994.
• Mit Bestehen der Prüfung erhalten Sie 8 Leistungspunkte für die Veranstaltung Mathematik III.
T. Ihringer, Diskrete Mathematik, Teubner, 1994.
• Prüfungstermin: siehe Prüfungsplan
V. Turau, Algorithmische Graphentheorie, Addison-Wesley, 1996.
R. Diestel, Graphentheorie, Springer, 1996.
• Prüfungsform: schriftlich (Klausur)
L. Volkmann, Graphen und Digraphen, Springer, 1991.
• Hilfsmittel: Skript und Fachliteratur
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
F. Harary, Graphentheorie, Oldenbourg, 1969.
4
Inhalt
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6
S. O. Krumke, H. Noltemeier, H.-C. Wirth, Graphentheoretische
Konzepte und Algorithmen, ZIB Technischer Report 00-19, 2000,
http://www.zib.de/PaperWeb/abstracts/ZR-00-19.
1. Grundbegriffe und Bezeichungen
☞ Weitere Verweise auf Online-Quellen finden Sie auf der Homepage
der Vorlesung.
2. Durchsuchen von Graphen
3. Kreis- und Wegeprobleme
4. Bäume und Wälder
5. Planare Graphen und Färbungen
6. Flüsse und Matchings
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
5
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
7
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
1 Einführung
Grundbegriffe und Bezeichungen
Das Königsberger Brückenproblem (2)
Die Abstraktion des Problems:
Norden
• Grundbegriffe und Bezeichnungen
• Beispiele
• Darstellung von Graphen im Computern
Insel
Osten
Süden
Gibt es einen Rundweg, der jede Linie (Kante) genau einmal enthält?
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
8
Grundbegriffe und Bezeichungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
10
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Das Haus vom Nikolaus
Das Königsberger Brückenproblem
c
Norden
Neuer Pregel
Insel
Osten
Pregel
b
d
a
e
Alter Pregel
Süden
Beispiel 1.1. [Euler, 1736] Gibt es einen Rundweg durch Königsberg,
der jede der sieben Brücken genau einmal überquert?
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
9
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
11
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Labyrinth
Beispielgraph
• Ein Graph besteht aus Knoten und
Kanten.
Beispiel 1.2. Finde einen Weg vom Start zum Ziel durch das Labyrinth!
Beispiel 1.3.
b
e1
Start
e4
e8
a
e2
• a, b, c, d sind Knoten.
e5
c
Ziel
e6
e7
e3
d
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
12
Grundbegriffe und Bezeichungen
Repräsentation als Graph:
• Diese Knoten werden durch die
Kanten e1 bis e8 miteinander verbunden
☞ Ein Graph symbolisiert die max.
zweistelligen Beziehungen zwischen den Elementen einer Menge.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
14
Grundbegriffe und Bezeichungen
Graph
Definition 1.1. Ein Graph (graph) G = (V, E, γ) ist ein Tripel bestehend
aus:
Start
Ziel
• V, einer nicht leeren Menge von Knoten (vertices),
• E, einer Menge von Kanten (edges) und
• γ, einer Inzidenzabbildung (incidence relation), mit
γ : E −→ {X|X ⊆ V, 1 ≤ |X| ≤ 2}
Zwei Knoten a, b ∈ V heißen adjazent (adjacent) gdw.
∃e ∈ E : γ(e) = {a, b}.
a ∈ V und e ∈ E heißen inzident (incident) gdw. a ∈ γ(e).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
13
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
15
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Beispielgraph (2)
Grundbegriffe und Bezeichungen
Schlichte Graphen
b
Definition 1.3.
e1
e4
e8
a
e2
e5
c
V
= {a, b, c, d}
E = {e1, e2, . . . , e8}
γ = {(e1, {a, b}), (e2, {a, c}), (e3, {a, d}),
e6
e7
e3
d
(e4, {b, c}), (e5, {b, c}), (e6, {c, d}),
(e7, {c, d}), (e8, {a})}
• Eine Kante e ∈ E heißt Schlinge (loop) gdw. e nur zu einem Knoten
inzident ist.
• Zwei Kanten e1, e2 heißen parallele Kanten (parallel edges) gdw. sie
zu den selben Knoten inzident sind.
• Ein Graph heißt schlicht (simple) gdw. G keine Schlingen und keine
parallelen Kanten enthält.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
16
Grundbegriffe und Bezeichungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
18
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Beispiel 1.4.
Endliche Graphen
Definition 1.2. Ein Graph G = (V, E, γ) heißt endlich (finite) gdw. die
Knotenmenge V und die Kantenmenge E endlich sind.
Bemerkung 1.1. Wir treffen folgende Vereinbarung:
Bemerkung 1.2.
Ein schlichter
Graph G = (V, E) wird beschrieben
durch eine Knotenmenge V und die
Kantenmenge E, wobei E eine Menge
zweielementiger Teilmengen von V
ist, also
c
b
d
a
e
• Im weiteren werden nur endliche Graphen betrachtet.
E ⊆ {{v, w}|v, w ∈ V, v 6= w}
• Der Zusatz “endlich” wird dabei weggelassen.
☞ Wir betrachten im folgenden fast
ausschließlich schlichte Graphen.
V
= {a, b, c, d, e}
E = {{a, b}, {a, d}, {a, e}, {b, c},
{b, d}, {b, e}, {c, d}, {d, e}}
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
17
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
19
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Diagramme
Knotengrade (2)
p
• Graphen können durch Diagramme veranschaulicht werden.
q
• Der selbe Graph kann viele verschiedene Diagramme haben.
t
q
s
Beispiel 1.5. G = (V, E) mit
q
r
E = {{p, q}, {p, s}, {p, t}, {q, r},
t
v∈V
Beweis. Andernfalls wäre die Summe der Grade ungerade; Wdsp. zum
Handschlaglemma. 2
s
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
Lemma 1.1. [Handschlaglemma] Für jeden endlichen Graphen G =
(V, E, γ) gilt:
X
deg(v) = 2|E|
Korollar 1.2. In endlichen Graphen ist die Anzahl der Knoten mit ungeradem Grad gerade.
s
= {p, q, r, s, t}
{q, s}, {q, t}, {r, s}, {s, t}}
r
p
t
p
V
Jede Kante liefert genau zweimal einen Beitrag zu der Summe der Grade über alle Knoten.
r
20
Grundbegriffe und Bezeichungen
Knotengrade
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Vollständiger Graph, Komplement
Definition 1.4. Der Grad (degree) deg(v) eines Knotens v ∈ V ist die
Zahl der zu v inzidenten Kanten. Hierbei zählen Schlingen doppelt.
Der Maximalgrad ∆(G) eines Graphen G ist definiert durch
Definition 1.5. Sei G = (V, E) ein Graph. Gilt {v, w} ∈ E für alle v, w ∈
V, v 6= w, dann heißt G vollständig (complete).
Mit Km wird der vollständige Graph mit m Knoten bezeichnet.
Kanten.
Bemerkung 1.3. Km hat m2 = m(m−1)
2
∆(G) = max{deg(v)|v ∈ V}
Der Minimalgrad δ(G) eines Graphen G ist definiert durch
Definition 1.6. Es sei G = (V, E) ein Graph. Dann heißt der Graph
Ḡ = (V, Ē) mit
Ē = {{v, w}|v, w ∈ V, v 6= w} \ E
δ(G) = min{deg(v)|v ∈ V}
Ein Knoten v ∈ V mit deg(v) = 0 heißt isoliert.
Komplementgraph (complementary graph) von G.
Ein Knoten v ∈ V mit deg(v) = 1 heißt Blatt.
Beispiel 1.6. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
22
21
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
23
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Untergraph
Grundbegriffe und Bezeichungen
Zusammenhang
Definition 1.7. Sei G = (V, E) ein Graph. Ein Graph H = (W, F) mit
W ⊆ V und F ⊆ E heißt Untergraph (subgraph) von G.
Gilt W = V, dann heißt H aufspannender Untergraph (spanning subgraph) von G.
Gilt
F = {{v, w}|{v, w} ∈ E, v, w ∈ W},
Definition 1.9. Es sei G = (V, E) ein Graph.
Zwei Knoten v, w ∈ V heißen verbindbar (connected) gdw. ein Weg von
v nach w existiert.
G heißt zusammenhängend (connected) gdw. je zwei Knoten von G
verbindbar sind.
Für solch einen induzierten Untergraphen schreibt man auch G(W).
Eine Zusammenhangskomponente (connected component) von G ist
ein durch eine Knotenmenge U ⊆ V induzierter Untergraph G(U), der
zusammenhängend und bezüglich der Knotenzahl maximal ist.
Beispiel 1.7. Tafel ✎.
Beispiel 1.9. Tafel ✎.
dann heißt H induzierter Untergraph (induced subgraph) von G.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
24
Grundbegriffe und Bezeichungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
Wege und Kreise
26
Grundbegriffe und Bezeichungen
Zusammenhang (2)
Definition 1.8. Es sei G = (V, E) ein Graph. Eine Folge (v0, v1, . . . , vn)
von Knoten mit ei := {vi−1 , vi} ∈ E für i = 1, 2, . . . , n heißt Kantenzug
(walk).
Gilt v0 = vn, so spricht man von einem geschlossenen Kantenzug (closed walk).
Ein Kantenzug, bei dem die ei alle verschieden sind heißt Weg (trail).
Die Länge des Weges ist n.
Ein Weg für den v0 = vn gilt heißt Kreis (closed trail).
Ein Weg bzw. Kreis heißt einfach (path bzw. cycle) gdw. die vj paarweise
verschieden sind (bzw. mit Ausnahme von v0 = vn).
Lemma 1.3. Ein Graph G = (V, E) ist genau dann zusammenhängend,
wenn für jede disjunkte Zerlegung V = V1 + V2 mit V1, V2 6= ∅ ein Kante
e = {v, w} existiert mit v ∈ V1 und w ∈ V2.
Beweis. Tafel ✎. 2
Satz 1.4. Jeder zusammenhängende Graph G = (V, E) mit n Knoten
hat mindestens n − 1 Kanten.
Beweis. Tafel ✎. 2
Beispiel 1.8. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
25
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
27
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Isomorphie (2)
Clique
Definition 1.10. Es sei G = (V, E) ein Graph.
Eine Knotenmenge U ⊆ V (bzw. der von U induzierte Untergraph G(U))
heißt Clique (clique) gdw. G(U) ein vollständiger Graph ist.
Bemerkung 1.4. Zwei Graphen sind genau dann isomorph, wenn der
eine Graph aus dem anderen Graphen durch Umbennenung der Knoten
hervorgeht.
Isomorphe Graphen haben die gleichen graphentheoretischen Eigenschaften.
Die maximale Größe einer Clique in G wird mit ω(G) bezeichnet, d.h.
ω(G) := max{|U| | U ist Clique in G}
Beispiel 1.11. Tafel ✎.
Beispiel 1.10. Die Knotenmenge {a, b, d, e} ist die größte Clique im
Haus vom Nikolaus.
Also: ω(Haus vom Nikolaus) = 4.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
28
Grundbegriffe und Bezeichungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
30
Grundbegriffe und Bezeichungen
Isomorphie
Bäume
Definition 1.11. Zwei Graphen G1 = (V1, E1) und G2 = (V2, E2) heißen
isomorph (isomorphic) gdw. es eine bijektive Abbildung ϕ : V1 −→ V2
gibt, so daß folgendes gilt:
Definition 1.12. Es sei G = (V, E) ein Graph. G heißt Wald (forest)
gdw. G keinen Kreis enthält.
∀v, w ∈ V1 : {v, w} ∈ E1 ⇐⇒ {ϕ(v), ϕ(w)} ∈ E2
G heißt Baum (tree) gdw. G ein Wald und zusammenhängend ist.
Beispiel 1.12. Die Bäume mit fünf Knoten.
Man nennt ϕ dann einen Isomorphismus von G1 auf G2 und schreibt
∼ G2 .
G1 =
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
29
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
31
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
1. Einf ¨uhrung
Charakterisierung von Bäume
Gerichtete Graphen
Satz 1.5. Für einen Graphen G = (V, E) mit |V| = n sind die folgenden
Aussagen äquivalent:
• V, der Menge der Knoten und
2. je zwei Knoten von G sind durch genau einen Weg verbunden,
• A, der Menge der gerichteten Kanten (arcs), die aus geordneten
Paaren (v, w) mit v, w ∈ V, v 6= w besteht.
3. G ist zusammenhängend, aber für jede Kante e ∈ E ist
G 0 = (V, E \ {e}) nicht zusammenhängend,
Für eine gerichtete Kante a = (v, w) heißt v der Anfangsknoten (tail)
und w der Endknoten (head) von a.
4. G ist zusammenhängend und hat genau n − 1 Kanten,
1. Einf ¨uhrung
Für viele Anwendungen ist es sinnvoll, die Kanten mit einer Richtung zu
versehen.
Definition 1.13. Ein gerichteter Graph (directed graph) ist ein Paar
G = (V, A) bestehend aus den Mengen
1. G ist ein Baum,
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Grundbegriffe und Bezeichungen
32
Grundbegriffe und Bezeichungen
5. G ist kreisfrei und hat genau n − 1 Kanten,
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
34
Grundbegriffe und Bezeichungen
Bemerkung 1.5. Man kann ungerichtete Graphen als gerichtete Graphen betrachten, bei denen die Relation A symmetrisch ist.
6. G ist kreisfrei, aber für je zwei nicht adjazente Knoten v, w von G
enthält G 00 = (V, E ∪ {v, w}) genau einen Kreis.
Definition 1.14. Es sei G = (V, A) ein gerichteter Graph.
Beweis. Tafel ✎. 2
• indeg(v) := |{(x, v)|(x, v) ∈ A}| heißt der Eingangsgrad von v ∈ V.
• outdeg(v) := |{(v, y)|(v, y) ∈ A}| heißt der Ausgangsgrad von v ∈ V.
• Ein gerichteter Kantenzug ist eine Folge (v0, . . . , vn) von Knoten mit
ei := (vi−1, vi) ∈ A für i = 1, . . . , n.
• Die Begriffe aus Definition 1.8 werden analog auf gerichtete Graphen
übertragen.
• Der einem gerichtete Graph G = (V, A) zugeordnete ungerichtete
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
33
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
35
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
0
0
1. Einf ¨uhrung
Darstellung von Graphen im Computer
0
Graph G = (V, A ) ist definiert durch: {v, w} ∈ A gdw. (v, w) ∈ A
oder (w, v) ∈ A.
• G heißt zusammenhängend gdw. der zugeordnete ungerichtete
Graph G 0 zusammenhängend ist.
• G heißt stark zusammenhängend gdw. es für je zwei Knoten v, w ∈ V
einen gerichteten Weg von v nach w gibt.
Lemma 1.6. Für einen gerichteten Graphen G = (V, A) gilt:
X
indeg(v) =
v∈V
X
Adjazenzmatrix
Definition 1.16. Gegeben sei ein Graph G = (V, E) mit V =
{v1, . . . , vn}, n ≥ 1. Dann kann E in Form einer n×n-Matrix repräsentiert
werden. Es sei
1 falls {vi, vj} ∈ E
aij =
0 sonst
AG = (aij)i,j∈{1,...,n} heißt die Adjazenzmatrix (adjacency matrix) von G.
Bemerkung 1.6. AG ist symmetrisch und aii = 0, 1 ≤ i ≤ n.
outdeg(v)
Analog kann die Adjazenzmatrix für die Darstellung gerichteter Graphen
verwendet werden. Sie ist dann i.d.R. nicht symmetrisch.
v∈V
Beispiel 1.13. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
36
1. Einf ¨uhrung
Grundbegriffe und Bezeichungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
1. Einf ¨uhrung
Darstellung von Graphen im Computer
Adjazenzmatrix (2)
DAGs
Definition 1.15. Ein gerichteter Graph G = (V, A) heißt DAG (dag, directed acyclic graph) gdw. G keinen einfachen gerichteten Kreis der
Länge ≥ 2 enthält.
v3
Beispiel 1.14. Der linke Graph ist ein DAG, der rechte nicht.
c
v2
c
v4
G=
b
d
b
d
v1
a
e
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
38
a



AG = 


0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0






v5
e
37
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
39
1. Einf ¨uhrung
Darstellung von Graphen im Computer
2. Durchsuchen von Graphen
Adjazenzlisten
Tiefensuche
2 Durchsuchen von Graphen
Definition 1.17. Gegeben sei ein Graph G = (V, E) mit V =
{v1, . . . , vn}, n ≥ 1. Dann kann E in Form einer Liste von n-Listen Ai
repräsentiert werden. Für 1 ≤ i ≤ n seien vi1 , vi2 , . . . , vni die mit vi ∈ V
adjazenten Knoten. Die Liste
• Tiefensuche
• Breitensuche
Ai = (vi1 , vi2 , . . . , vni )
• Topologisches Sortieren
heißt die Adjazenzliste von vi ∈ V.
Die Liste LG = (A1, . . . , An) ist die Adjazenzlistendarstellung von G.
Für einen gerichteten Graphen G = (V, A) enthält die Adjazenzliste Ai
die Knoten w ∈ V, für die (vi, w) ∈ A gilt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
40
1. Einf ¨uhrung
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Darstellung von Graphen im Computer
2. Durchsuchen von Graphen
Adjazenzlisten (2)
42
Tiefensuche
Tiefensuche
v1
v2
v5
v2
v1
v3
v3
v2
v4
v4
v2
v3
v5
v1
v4
• Verallgemeinerung des preorder-Durchlaufprinzips für binäre Bäume.
v3
LG =
v2
v4
• Erreicht man von v aus einen noch nicht erforschten Knoten w, so
verfährt man mit w genauso wie mit v.
v4
v5
G=
v1
• Wenn alle mit w inzidenten Kanten erforscht sind, erfolgt ein Backtracking zu v.
v5
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Kanten werden ausgehend von dem zuletzt entdeckten Knoten v, der
mit noch unerforschten Kanten inzident ist, erforscht.
41
• Die Knoten v ∈ V erhalten in der Reihenfolge ihres Erreichens eine
DFS-Nummer t(v). Zu Beginn setzen wir t(v) = ∞ für alle v ∈ V.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
43
2. Durchsuchen von Graphen
Tiefensuche
2. Durchsuchen von Graphen
Tiefensuche
Eigenschaften der Tiefensuche
Für einen Knoten v sei die Prozedur DFSEARCH(v) wie folgt definiert:
i := i + 1; t(v) := i; N(v) := {w|{v, w} ∈ E};
while ∃w ∈ N(v) mit t(w) = ∞ do
N(v) := N(v) \ {w};
B := B ∪ {{v, w}};
DFSEARCH(w);
end
Bemerkung 2.2.
• Durch DFS wird jeder Knoten besucht und jede Kante wird untersucht.
Algorithmus 2.1. [Tiefensuche (Depth-First Search)]
Es sei G = (V, E) ein Graph.
• Ist G nicht zusammenhängend, dann werden durch DFS nacheinander die Zusammenhangskomponenten ermittelt.
B := ∅; i := 0;
for all v ∈ V do t(v) := ∞;
while ∃v ∈ V mit t(v) = ∞ do DFSEARCH(v);
• DFS unterteilt die Kantenmenge E in die Menge der Baumkanten (die
Menge B) und die Menge der Rückwärtskanten (E \ B).
• (V, B) bildet einen aufspannenden Untergraphen von G, der ein Wald
ist.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
44
2. Durchsuchen von Graphen
Tiefensuche
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2. Durchsuchen von Graphen
46
Tiefensuche
Bemerkung 2.1. Das Ergebnis für t(v) und B hängt i.d.R. von der Repräsenation des Graphen (z.B. als Adjazenzliste) ab.
• Ist G zusammenhängend, dann ist (V, B) ein sogenannter aufspannender Baum von G.
Beispiel 2.1. Wir betrachten den folgenden Graphen:
Satz 2.1. Der Zeitaufwand für DFS ist O(|V| + |E|).
c
b
d
g
a
e
f
Durchlauf und weitere Beispiele: Tafel ✎.
h
Adjazenzlisten:
a b → e
b a → c
c b → d
d b → c
e a → d
f g → h
g f → h
h f → g
Beweis. Tafel ✎. 2
→
→
d
e
Definition 2.1. Es sei G = (V, E). Ein Knoten w ∈ V heißt Nachfolger
von v ∈ V gdw. DFSEARCH(w) wird nach Eröffnung und vor Beendigung
von DFSEARCH(v) aufgerufen.
Lemma 2.2. Wenn {v, w} eine Rückwärtskante ist, dann ist v Vorfahr
von w oder umgekehrt.
Bemerkung 2.3. D.h., durch DFS werden keine sogenannten Querkanten konstruiert. Tafel ✎.
Beweis. Tafel ✎. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
45
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
47
2. Durchsuchen von Graphen
Breitensuche
Breitensuche
Breitensuche
Algorithmus 2.2. [Breitensuche (Breadth-First Search)]
Es sei G = (V, E) ein Graph.
• Man geht an einem Knoten nicht sofort in die Tiefe, sondern bearbeitet zunächst alle noch nicht erreichten Nachbarn dieses Knotens.
• Anschließend fügt man die Knoten in eine Warteschlange ein.
• Ein Knoten gilt als erreicht, wenn er in die Warteschlange aufgenommen wurde.
• Solange die Warteschlange nicht leer ist, selektiert man einen Knoten aus der Warteschlange und geht wie oben beschrieben vor.
• Die Knoten v ∈ V erhalten in der Reihenfolge ihres Herausnehmens
aus der Warteschlange eine BFS-Nummer b(v).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2. Durchsuchen von Graphen
2. Durchsuchen von Graphen
48
Breitensuche
B := ∅; i := 0; W := ();
for all v ∈ V do b(v) := ∞; r(v) := false; end
while W = () and ∃v ∈ V : b(v) = ∞ do
W := (v);
r(v) := true;
while W 6= () do
wähle ersten Knoten w aus W;
entferne w aus W;
BFSEARCH(v);
end
end
Beispiel 2.2. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2. Durchsuchen von Graphen
50
Breitensuche
Eigenschaften der Breitensuche
Für einen Knoten v sei die Prozedur BFSEARCH(v) wie folgt definiert:
i := i + 1; b(v) := i; N(v) := {w|{v, w} ∈ E}
while ∃w ∈ N(v) mit r(w) = false do
N(v) := N(v) \ {w};
B := B ∪ {{v, w}};
füge w an W an;
r(w) := true;
end
• Jeder Knoten wird besucht und jede Kante wird untersucht.
• Es werden nacheinander die Zusammenhangskomponenten ermittelt.
Diese Prozedur wird für den jeweils ersten Knoten der Warteschlange
W ausgeführt.
• (V, B) bildet einen aufspannenden Untergraphen, der ein Wald ist.
Satz 2.3. Der Zeitaufwand für BFS ist O(|V| + |E|).
Beweis. Tafel ✎. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
49
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
51
2. Durchsuchen von Graphen
Topologisches Sortieren
2. Durchsuchen von Graphen
Halbordnung
Topologisches Sortieren
Definition 2.2. Eine binäre Relation R ⊆ V × V heißt Halbordnung auf
V gdw. folgendes gilt:
1. ∀v ∈ V : (v, v) ∈ R
(Reflexivität)
2. ∀v, w ∈ V : (v, w) ∈ R ∧ (w, v) ∈ R ⇒ v = w
3. ∀u, v, w ∈ V : (u, v) ∈ R ∧ (v, w) ∈ R ⇒ (u, w) ∈ R
(Antisymmetrie)
(Transitivität)
Beispiel 2.3. Die Teilbarkeitseigenschaft definiert eine Halbordnung
auf den natürlichen Zahlen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2. Durchsuchen von Graphen
Topologisches Sortieren
52
Topologisches Sortieren
Algorithmus 2.3. Gegeben sei ein DAG G = (V, A) beschrieben durch
seine Adjazenzlisten. Berechnet wird eine topologische Sortierung, die
durch die Numerierung t(v) gegeben ist.
k := 0; Q := {v ∈ V|indeg(v) = 0}
while Q 6= ∅ do
wähle ein v aus Q;
k := k + 1;
t(v) := k;
Q := Q \ {v};
for all (v, w) ∈ A do
indeg(w) := indeg(w) − 1;
if indeg(w) = 0 then Q := Q ∪ {w};
end
end
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2. Durchsuchen von Graphen
54
Topologisches Sortieren
Beispiel 2.5. Tafel ✎.
Topologische Ordnung
Satz 2.5. Algorithmus 2.3 liefert in O(|V| + |E|) eine topologische Sortierung L = (vi1 , . . . , vin ), wobei vi der Knoten mit t(v) = i ist.
Lemma 2.4. Es sei G = (V, A) ein DAG. Die Relation R ⊆ V × V mit
Beweis. Tafel ✎. 2
(v, w) ∈ R ⇐⇒ ∃ gerichteter Weg von v nach w
definiert eine Halbordnung auf V.
Definition 2.3. Es sei G = (V, A) ein DAG mit V = {v1, . . . , vn}. Eine
Knotenreihenfolge L = (vi1 , . . . , vin ) aller Knoten aus V heißt topologische Ordnung von G gdw.
(vij , vik ) ∈ A =⇒ ij < ik
Beispiel 2.4. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
53
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
55
2. Durchsuchen von Graphen
Topologisches Sortieren
Zusammenfassung des Kapitels
3. Kreis- und Wegeprobleme
Eulersche Graphen
Das Königsberger Brückenproblem
• Tiefensuche: Gehe in die Tiefe solange wie möglich
• Knotennumerierung und aufspannender, kreisfreier Untergraph
Norden
• Breitensuche: Prinzip der Warteschlange
• Anwendungen:
Insel
– systematisches Durchsuchen von Graphen, z.B. Labyrinth
– Ermittlung von Eigenschaften eines Graphen
Osten
Süden
• Berechnung von zulässigen Reihenfolgen durch topologische Sortierung der Knoten
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
56
Kapitel ¨ubersicht
3 Kreis- und Wegeprobleme
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
58
Eulersche Graphen
Eulerweg, Eulerkreis
Definition 3.1. Es sei G = (V, E) ein Graph.
• Charakterisierung von eulerschen Graphen
• Ein Weg, der jede Kante von G genau einmal
enthält, heißt eulerscher Weg von G.
• Bestimmung von eulerschen Wegen und Kreisen
• Ein Kreis, der jede Kante von G genau einmal
enthält, heißt eulerscher Kreis von G.
• Hamiltonsche Graphen
• Abstände in Graphen
• G heißt eulersch gdw. G einen eulerschen Kreis
enthält.
• Berechnung kürzester Wege
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
57
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Leonard Euler
59
3. Kreis- und Wegeprobleme
Eulersche Graphen
Beispiel 3.1. Der Graph des Königsberger Brückenproblems scheint
nicht eulersch zu sein, er scheint auch keinen eulerschen Weg zu enthalten.
3. Kreis- und Wegeprobleme
Eulersche Graphen
Beweis. 1. “=⇒”: G habe einen eulerschen Kreis K = (v0, v1, . . . , vm−1 , v0).
• Dann ist G bis auf isolierte Knoten zusammenhängend und
Das “Haus des Nikolaus” enthält einen eulerschen Weg.
• tritt der Knoten v in der Folge v0, v1, . . . , vm−1 genau t-mal auf, so gilt
deg(v) = 2t, d.h. v hat geraden Grad.
c
b
d
2. “⇐=”: Beweis durch vollständige Induktion über die Zahl der Knoten.
Das “Haus des Nikolaus mit Keller” ist eulersch:
a
e
f
g
Induktionsanfang: Der Graph G = ({v0}, {}) ist eulersch, denn (v0) ist
ein eulerscher Kreis.
Weitere Graphen: ✎.
Induktionsannahme: Für Graphen mit höchsten n Knoten gelte die
Behauptung.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
60
Eulersche Graphen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
62
3. Kreis- und Wegeprobleme
Eulersche Graphen
Induktionsschritt: Sei G = (V, E) ein zusammenhängender Graph mit
n + 1 Knoten und und alle Knoten haben geraden Grad.
Charakterisierung von eulerschen Graphen
Wähle einen beliebigen Knoten
v0 ∈ V.
Satz 3.1. [Euler 1736] Es sei G = (V, E) ein Graph.
G hat einen eulerschen Weg gdw.
v0
v1
• G bis auf isolierte Knoten zusammenhängend ist und
Wähle solange dies möglich
ist Knoten v1, v2, . . ., so daß
(v0, . . . , vi) jeweils ein Weg in G
ist.
• die Zahl u der Knoten mit ungeradem Grad 0 oder 2 ist.
Die Existenz eines Eulerkreises ist äquivalent mit u = 0.
v2
v0
v3
Unter den gegebenen Voraussetzungen entsteht so automatisch ein
Kreis K. Sei Ek die Menge der Kanten in K.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
61
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
63
3. Kreis- und Wegeprobleme
Eulersche Graphen
3. Kreis- und Wegeprobleme
Wenn K alle Kanten aus E enthält, so ist K ein Eulerkreis.
Eulersche Graphen
Berechnung eines Eulerweges
Algorithmus 3.1. [Hierholzer 1873] Es sei G = (V, E) ein bis auf isolierte Knoten zusammenhängender Graph, der nur Knoten mit geradem
Grad aufweist.
Ansonsten bildet man den Restgraphen G 0 = (V, E \ EK).
1. Wähle einen beliebigen Knoten v0 ∈ V.
v1 v5
v0
Für die Komponenten des Restgraphen gilt die Induktionsannahme.
Wähle solange dies möglich ist Knoten v1, v2, . . ., so daß (v0, . . . , vi)
jeweils ein Weg in G ist.
v4
v7
v2
v3
2. Prüfe, ob K ein eulerscher Kreis ist. Wenn ja, dann STOP, ansonsten
gehe zu 3.
v6
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
64
3. Kreis- und Wegeprobleme
Eulersche Graphen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
66
Eulersche Graphen
3. Setze K 0 := K.
Nun fügt man die Kreise an Knoten zusammen, die in K und einer Komponente des Restgraphen
enthalten sind.
Laufe ab w 0 entlang K 0 und wähle einen in K 0 enthaltenen Knoten w,
der mit einer nicht in K 0 enthaltenen Kante inzident ist.
Konstruiere wie unter 1. ausgehend von w einen Kreis K 00, der keine
Kanten von K 0 enthält.
v3
v10 v5
v0
v8 v11
Füge K 00 in den Kreis K 0 an der Stelle w ein. Setze w 0 := w.
v2 v6
v1 v9
Man läuft entlang K bis zu solch
einem Knoten, dann entlang des
Kreises des Restgraphen und anschließend wieder entlang K.
Unter den gegebenen Voraussetzungen entsteht so automatisch ein
Kreis K. Setze w 0 := v0.
Gehe zu 2.
v4 v7
2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
65
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
67
3. Kreis- und Wegeprobleme
Eulersche Graphen
3. Kreis- und Wegeprobleme
Anwendung von Eulerwegen
Bemerkung 3.1. Übungsaufgabe: Algorithmus von Hierholzer in
Pseudo-Code.
Beispiel 3.2. Wir demonstrieren den Algorithmus von Hierholzer an
dem folgenden Graphen:
b
c
d
Eulersche Graphen
• Dominospiel: Gegeben sind eine Menge S von Spielsteinen, die auf
jeder Seite mit einem Symbol markiert sind.
• Einen Spielstein [A : B] kann man sowohl in dieser Form als auch als
[B : A] verwenden.
a
e
• Man darf zwei Spielsteine aneinander legen, wenn die sich berührenden Hälften das gleiche Symbol aufweisen.
h
g
f
• Kann man die Steine der Menge S zu einer ununterbrochenen Kette
zusammenlegen?
Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
68
Eulersche Graphen
Eigenschaften des Algorithmus von Hierholzer
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
70
3. Kreis- und Wegeprobleme
Eulersche Graphen
Beispiel 3.3. Gegeben ist die folgende Menge an Spielsteinen:
[A : B]
[D : D]
[A : D]
[B : C]
[B : C]
[A : C]
[C : D]
[B : D]
Satz 3.2. Algorithmus 3.1 ist korrekt, d.h. bei erfüllten Voraussetzungen wird ein eulerscher Kreis konstruiert.
Zugehöriger Graph:
Beweis. Tafel ✎. 2
• Jede Kante entspricht einem
Spielstein.
[A : A]
B
Satz 3.3. Die Zeitkomplexität von Algorithmus 3.1 beträgt O(|E|).
• Eulerweg entspricht einer
ununterbrochenen Dominokette.
Beweis. Siehe Übungen. 2
A
C
D
Anwendungen in der Praxis: Berechnung von Prozessketten mit
möglichst wenigen Unterbrechungen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
69
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
71
3. Kreis- und Wegeprobleme
Hamiltonsche Graphen
3. Kreis- und Wegeprobleme
Hamiltonsche Graphen
Hamiltonsche Graphen
Definition 3.2. Es sei G = (V, E) ein Graph.
• Ein Weg, der jeden Knoten von G genau einmal enthält, heißt hamiltonscher Weg.
• Ein Kreis, der jeden Knoten von G genau einmal enthält, heißt hamiltonscher Kreis.
• G heißt hamiltonsch gdw. G einen hamiltonschen Kreis enthält.
Sir William Rowan Hamilton
Around the World
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
72
Hamiltonsche Graphen
Beispiel 3.4.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
74
Hamiltonsche Graphen
Charakterisierung von hamiltonschen Graphen
• Die Bezeichnung “hamiltonsch” geht auf
Sir William Rowan Hamilton (1805 –
1865) zurück, der 1859 das Spiel “around
the world” erfand.
Satz 3.4. Es sei G = (V, E) ein Graph mit n := |V| ≥ 3. Gilt:
• Die Punkte eines Dodekaeders stellten
Städte dar.
dann ist G hamiltonsch.
∀v ∈ V : deg(v) ≥ n/2,
Beweis. Tafel ✎. 2
• Die Aufgabe des Spiels bestand darin,
entlang der Kanten des Dodekaeders eine Rundreise zu unternehmen, bei der
man jede Stadt genau einmal besucht.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Bemerkung 3.2. Das Entscheidungsproblem, ob ein Gaph G hamiltonsch ist (HC), ist N P-vollständig.
73
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
75
3. Kreis- und Wegeprobleme
Hamiltonsche Graphen
• Ein Problem Π aus N P ist N P-vollständig, wenn aus seiner polynomiellen Lösbarkeit P = N P folgt, d.h. alle Probleme in N P sind
polynomiell lösbar.
Die Klasse P:
• Ein Entscheidungsproblem heißt polynomiell lösbar, wenn es einen
Algorithmus zur Lösung des Problems gibt, dessen Worst-CaseLaufzeit durch ein Polynom in der Länge der Eingabe beschränkt
ist.
• Die Klasse P ist die Klasse der polynomiell lösbaren Probleme.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Die N P-vollständigen Probleme können anschaulich als die “schwersten” Probleme in der Klasse N P angesehen werden.
Wie kann man zeigen, daß ein Problem Π N P-vollständig ist?
• Man nimmt sich ein Problem Π 0, von dem man weiß, daß es N Pvollständig ist und zeigt, daß Π “nicht leichter” ist.
• Beispiel: Ist G zusammenhängend? Hat G einen eulerschen Kreis?
76
Hamiltonsche Graphen
Die Klasse N P:
• Die Klasse N P ist die Klasse der Entscheidungsprobleme, für die
ein Lösungsvorschlag in polynomieller Rechenzeit überprüft werden
kann.
• Beispiel: Überprüfung, ob eine Knotenfolge eines Graphen einen hamiltonschen Kreis bildet.
• Beispiel: Überprüfung, ob eine TSP-Tour eine Länge ≤ l hat.
Es gilt: P ⊆ N P
Gilt sogar P = N P? Man weiß es nicht! Man vermutet, daß dies nicht
der Fall ist.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Hamiltonsche Graphen
N P-Vollständigkeit:
Crashkurs N P-Vollständigkeit
3. Kreis- und Wegeprobleme
3. Kreis- und Wegeprobleme
77
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
78
Hamiltonsche Graphen
• Genauer: Man reduziert polynomiell Π 0 auf Π, d.h. man zeigt, daß
man Π 0 in polynomieller Zeit lösen könnte, wenn man Π in polynomieller Zeit lösen könnte.
Was bringt einem das in der Praxis?
• Gelingt der Nachweis der N P-Vollständigkeit, so zeigt dies, daß man
nicht zu dumm ist, ein polynomielles Lösungsverfahren zu finden.
Vermutlich existiert keines. Zumindest hat noch nie jemand ein solches gefunden und es macht keinen Sinn, nach einem solchen zu
suchen.
• Man kann für “große” Probleme keine (optimalen) Lösungen erwarten.
• Anwendung heuristischer statt exakter Verfahren
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
79
3. Kreis- und Wegeprobleme
Hamiltonsche Graphen
¨
Abstande
in Graphen
3. Kreis- und Wegeprobleme
Traveling Salesman Problem
Abstände in Graphen
Definition 3.3. Gegeben sei ein vollständiger Graph G = (V, E) mit
einer Kostenfunktion c : E −→ IN auf den Kanten.
Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w ∈ V ist die minimale Länge eines Weges von v nach w.
Falls es keinen solchen Weg gibt, setzen wir d(v, w) = ∞.
Die Enscheidungsvariante des Traveling Salesman Problem (TSP) lautet: Existiert ein hamiltonscher Kreis K in G, für den die Summe der
Kantengewichte c(K) ≤ k ist.
Bemerkung 3.3. Die Entscheidungsvariante des TSP ist N Pvollständig.
Bemerkung 3.4. Die Länge eines Kantenzugs bzw. Weges ist definiert
als die in ihm enthaltenen Kanten.
Insbesondere gilt also d(v, v) = 0 für alle v ∈ V.
Dies kann durch HC ∝ TSP bewiesen werden.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
80
Hamiltonsche Graphen
TSP als Optimierungsproblem
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
82
¨
Abstande
in Graphen
3. Kreis- und Wegeprobleme
Berechnung von Abständen
Algorithmus 3.2. Es sei G = (V, E) ein durch seine Adjazenzlisten A v
gegebener Graph und v0 sei ein Knoten von G. Es werden die Abstände
d(v) von v0 zu v für alle v ∈ V berechnet.
• Die Optimierungsvariante des TSP lautet: Finde einen hamiltonschen Kreis mit minimalem Gewicht.
• Durch die N P-Vollständigkeit des zugehörigen Entscheidungsproblems kann es optimal nur für “kleine” n gelöst werden.
• Für “große” n müssen Heuristiken zur Berechnung einer möglichst
guten Lösung angewendet werden.
• Theoretisch interessant sind Heuristiken mit Gütegarantie (siehe folgendes Kapitel).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
81
d(v0) := 0; V(0) := {v0}; k := 1;
for all v ∈ V, v 6= v0 do d(v) := ∞;
while V(k − 1) 6= ∅ do
V(k) := ∅
S
for all v ∈ {Au|u ∈ V(k − 1)} do
if d(v) = ∞ then
d(v) := k; V(k) := V(k) ∪ {v}
end
end
k := k + 1;
end
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
83
¨
Abstande
in Graphen
3. Kreis- und Wegeprobleme
• Ausgehend von V(0) = {v0} werden sukzessive die Mengen
V(1), V(2), . . . berechnet.
• V(k) besteht aus den Knoten, die mit Knoten aus V(k − 1) adjazent
sind, aber nicht in V(0) ∪ . . . ∪ V(k − 1) liegen.
• Mit Induktion zeigt man leicht, daß jedes V(k) genau aus den Knoten
besteht, die von v0 den Abstand k haben.
• Bei der Definition des Abstandes können solche negativen Längen
aber zu Problemen führen.
• Wir setzen daher voraus, daß die Längen nicht negativ sind.
Definition 3.6. Es sei (G, w) ein Netzwerk, G = (V, E) sowie w(e) ≥ 0
für alle e ∈ E.
Der Abstand d(v, w) zweier Knoten v, w ∈ V in einem Netzwerk ist
definiert als das Minimum der Längen aller Wege von v nach w. Falls
es keinen solchen Weg gibt, setzen wir d(v, w) = ∞.
• Dieses Vorgehen entspricht einer Breitensuche.
• Die Zeitkomplexität beträgt O(|V| + |E|).
84
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
¨
Abstande
in Netzwerken
• Bei den Längen können auch negative Werte sinnvoll sein (z.B. Ertrag, Aufwand).
Erläuterungen zu Algorithmus 3.2:
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
86
¨
Abstande
in Netzwerken
Beispiel 3.5. In einem Netzwerk sei jeder Kante e eine Ausfallwahrscheinlichkeit p(e) zugeordnet.
Abstände in Netzwerken
Wir ordnen nun jeder Kante eines Graphen eine Länge zu. Typisches
Beispiel sind Straßennetze mit Entfernungsangaben.
Definition 3.5. Es sei G = (V, E) ein Graph sowie w : E −→ IR eine
Bewertung der Kanten mit reellen Zahlen.
Setzt man voraus, daß Fehler unabhängig voneinander auftreten, dann
ist
(1 − p({v0, v1})) · · · (1 − p({vk−1 , vk}))
die Wahrscheinlichkeit für das Funktionieren eines Kantenzuges
(v0, . . . , vk).
P
Dieser Wert ist maximal, wenn ki=1 log(1 − p({vi−1, vi})) maximal ist.
Das Paar (G, w) heißt Netzwerk. Für jede Kante e ∈ E heißt w(e) die
Länge oder das Gewicht von e.
Pk
Für einen Kantenzug K = (v0, . . . , vk) ist w(K) := i=1 w({vi−1 , vi}) die
Länge von K.
Setzt man w(e) := − log(1 − p(e)), dann ist die zuverlässigste Verbindung zwischen zwei Knoten v und w äquivalent zu einem kürzesten
Weg zwischen v und w.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
85
87
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
Kürzeste Wege in Netzwerken
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
Beispiel 3.6. Wir betrachten das folgende gerichtete Netzwerk:
v0=a
Algorithmus 3.3. [Dijkstra] Es sei (G, w) ein Netzwerk mit G = (V, E)
und einer nichtnegativen Längenfunktion w auf E sowie v0 ∈ V. Es werden alle Abstände d(v) von v0 zu einem Knoten v ∈ V berechnet.
b
16
3
1. Setze d(v0) := 0, d(v) := ∞ für alle v ∈ V \ {v0}, U := V.
8
2
e
0
1
4
2. Falls U = ∅, dann STOP. Sonst weiter mit 3.
c
6
7
d
3. Finde ein u ∈ U, für das d(u) minimal ist.
5
2
f
g
Algorithmus 3.3 liefert hierfür die folgenden Abstände:
4. Für alle v ∈ U mit {u, v} ∈ E setze d(v) := min{d(v), d(u) + w({u, v})}.
5. Setze U := U \ {u}. Gehe zu 2.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
88
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
Bemerkung 3.5. Der Algorithmus von Dijkstra kann analog für gerichtete Graphen verwendet werden.
Der Algorithmus kann leicht so erweitert werden, daß nicht nur die
Abstände d(v0, v) sondern auch die kürzesten Wege berechnet werden.
v
d(v)
a
0
d
3
f
4
e
6
g
6
c
6
b
11
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
Beispiel 3.7. Wir betrachten das folgende nicht gerichtete Netzwerk:
b
9
v0=a
5
2
6
13
f
1
3
Beweis. Tafel ✎. 2
26
5
18
g
89
4
i
2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
4
e
d
Die Zeitkomplexität des Algorithmus ist O(|V| ).
c
4
10
Satz 3.5. Nach der Terminierung von Algorithmus 3.3 gilt d(v) =
d(v0, v) für alle v ∈ V.
2
90
h
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2
91
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
3. Kreis- und Wegeprobleme
¨
Abstande
in Netzwerken
Bemerkung 3.6.
Bemerkung 3.7.
• In einem Netzwerk mit negativen Katenlängen werden durch den
Dijkstra-Algorithmus u.U. falsche Abstände ermittelt
• Wenn man in Satz 3.6 min durch max ersetzt, dann erhält man die
Länge eines längsten Weges.
• und zwar selbst dann, wenn keine Kreise negativer Länge existieren.
• Durch die Wahl einer geeigneten Datenstruktur für die Selektion des
Knotens u (Schritt 3) kann die Laufzeit erheblich verbessert werden.
• Für die Berechnung von Routen in Straßennetzen benötigt man optimierte Varianten des Dijkstra-Algorithmus.
• Das allgemeine Entscheidungsproblem, ob in einem (ungerichteten)
Netzwerk ein (einfacher) Weg der Länge ≥ l existiert, ist dagegen
N P-vollständig.
• Die in Satz 3.6 angewendete Vorgehensweise, eine optimale Lösung
durch eine bestmögliche Kombination der Lösungen zu Subproblemen zu finden, nennt man dynamisches Programmieren.
• Satz 3.6 läßt sich in einen Algorithmus mit Zeitkomplexität O(|V|+|E|)
umsetzen.
Beweis. Mit Induktion über i. Tafel ✎. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
92
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
94
¨
Abstande
in Netzwerken
Bemerkung 3.8.
Kürzeste Wege in DAGs
Da in DAGs keine Kreise auftreten, sind negative Kantenlängen unproblematisch
Satz 3.6. Gegeben sei ein gerichtetes Netzwerk (G, w) mit G = (V, A).
Wir lassen auch w(e) < 0 zu. L = (v1, . . . , vn) sei eine topologische
Sortierung von V. Dann ergibt sich die Länge d(v1, vi) eines kürzesten
Weges von v1 zu einem Knoten vi durch die folgende Rekursion für
d(vi):
• Mit dem Verfahren aus Algorithmus 3.6 können nicht nur kürzeste
und längste Wege sondern auch Anzahlen von Wegen berechnet
werden.
• Z.B. die Anzahl der verschiedenen Wege von vi nach vj.
• Hierfür muß der Minimum-Operator durch die Summenbildung ersetzt werden.
1. d(v1) = 0
• Für optimale Wege in DAGs gibt es eine Fülle von Anwendungen.
Wir betrachten zwei:
2. Für i > 1:
d(vi) =
min
{1≤j<i|(vj ,vi )∈A}
w(vj, vi) + d(vj)
– Optimale Einteilung in Blöcke (z.B. in der Textverarbeitung)
– Projektplanung
Beispiel 3.8. Tafel ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
93
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
95
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
• Gesucht ist eine Blockung, die eine möglichst kleine Bewertung hat,
also eine Anzahl k an Blöcken und eine Folge 0 = i0 < i1 < i2 <
· · · < ik = n mit
k
X
(B − Lj)2 −→ min
Blocksatzbildung
Beispiel 3.9. [Berechnung optimaler Blockungen]
j=1
unter den Bedingungen
• Gegeben ist eine Folge F = (1, . . . , n) von n Gegenständen.
• Jeder Gegenstand hat eine Länge l(i).
Lj =
ij
X
l(r) ≤ B für j = 1, . . . , k
r=ij−1 +1
• Die Gegenstände sollen in Blöcke eingeteilt werden, wobei die Idealgröße eines Blockes B ist.
• Die Gesamtlänge der Gegenstände in einem Block darf B nicht übersteigen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
96
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
• Die Gegenstände dürfen nicht umsortiert werden. Ein Block Bj ergibt
sich also durch einen Index ij mit
3. Kreis- und Wegeprobleme
98
¨
Abstande
in Netzwerken
Beispielproblem:
• Länge der Gegenstände: 9, 1, 5, 5, 1, 10
– ij−1 + 1 ist das erste Element im Block j und
– ij ist das letzte Element im Block Bj.
• Blockgröße: 10
• Für die Abweichung der Länge
Lj :=
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
ij
X
• “gierige” Einteilung: [9, 1], [5, 5], [1], [10], Bewertung: 81
l(r)
r=ij−1 +1
eines Blockes Bj von B wird eine Bewertung definiert, die monoton in
der Größe der Abweichung ist, z.B. (B − Lj)2.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
97
• andere Einteilung: [9], [1, 5], [5, 1], [10], Bewertung: 33
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
99
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
3. Kreis- und Wegeprobleme
¨
Abstande
in Netzwerken
• Ein Job j kann erst dann gestartet werden, wenn alle Jobs aus P(j)
beendet wurden.
Modellierung des Problems als Wegeproblem:
• V := {0, . . . , n}
• E := {(i, j)|i < j und
Pj
• Wir gehen davon aus, daß Jobs parallel bearbeitet werden können.
r=i+1 l(r) ≤ B}
• Gewichte: w(i, j) := (B −
Pj
r=i+1 l(r))
• Man möchte z.B. wissen:
2
• Jeder Weg von 0 nach n definiert dann eine zulässige Einteilung in
Blöcke, wobei die Bewertung dieser Blockung gleich der Länge des
Weges ist.
– Ab welchem Zeitpunkt kann mit einem Job begonnen werden?
– Wie lange wird ein Projekt dauern?
– Welche Jobs sind besonders kritisch in bezug auf die Gesamtdauer eines Projekts?
• Also: Finde einen Weg minimaler Länge von 0 nach n.
☞ Auf diesem Prinzip basiert die Formatierung in TeX.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
100
¨
Abstande
in Netzwerken
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
102
¨
Abstande
in Netzwerken
Beispiel 3.11. Zusammenbau eines Fahrrads:
Projektplanung mit Netzplantechnik
Beispiel 3.10. [Netzplantechnik mit CPM]
• Bei der Durchführung umfangreicher Projekte ist es erforderlich, daß
einzelne Teilaufgaben (Jobs) zeitlich genau aufeinander abgestimmt
werden.
• Hierfür werden häufig Methoden der Netzplantechnik eingesetzt.
• Die bekannteste Methode der Netzplantechnik heißt CPM (Critical
Path Method).
Job
a
b
c
d
e
f
g
h
j
k
Beschreibung
Rahmen vorbereiten (Gabel, Schutzbleche, usw.)
Kettenführung anbringen
Gangschaltung anbringen
Kettenblatt an Kurbel montieren
Vorderrad montieren und anpassen
Hinterrad montieren und anpassen
Kurbel am Rahmen anbringen
Endmontage (Lenker, Sattel, usw.)
Linkel Pedal anbringen
Rechtes Pedal anbringen
Dauer
6
2
3
4
6
6
3
12
3
3
Vorg.
–
–
b
b
a
a,c
d
e,f
c,g
c,g
• J sei die Menge der Jobs eines Projekts. Jeder Job j ∈ J hat eine
zugeordnete Dauer t(j) sowie eine Menge P(j) ⊂ J von Vorgängern.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
101
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
103
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
• Die Abhängigkeiten der Jobs untereinander können wir in Form eines
DAGs repräsentieren.
Die Critical-Path-Method CPM stellt eine Modellierung dar, bei der die
Jobs die Kanten eines DAGs sind.
• Die Knoten stellen hierbei die Jobs dar.
Die Knoten können als Fertigstellungsereignisse angesehen werden.
• Die Kanten stellen Vorgängerbeziehungen zwischen den Jobs dar.
e
Projektbeginn
e|6
0
h|12
f|6
0
h
a
a|6
b|2
f
0
0
j|3
d|4
Projektende
0
g|3
j
c
0
c|3
k|3
Die Kanten a, e, h stellen einen längsten Weg vom Projektbeginn zum
-ende dar (kritische Pfad).
b
d
g
Die Gesamtlaufzeit des Projekts ist also 24.
k
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
104
¨
Abstande
in Netzwerken
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
106
¨
Abstande
in Netzwerken
• Die Jobs a und b können offensichtlich sofort begonnen werden.
Für die Projektplanung sind u.a. die folgenden interessant:
• Der Job f kann begonnen werden, wenn a beendet ist und wenn c
beendet ist.
• Projektdauer D: Länge eines längsten Weges (kritischer Pfad) vom
Projektbeginn bis zum Projektende.
• a ist nach einer Dauer von 6 beendet, c nach einer Dauer von 5, da
c erst gestartet werden kann, wenn b beendet ist.
• Starttermin für Jobs j: Länge eines längsten Weges bis zum Startknoten von j.
• Somit kann f zum Zeitpunkt 6 begonnen werden.
• Zeitkritische Jobs: Alle Jobs, die auf einem kritischen Pfad liegen.
• Allgemein: Der frühste Starttermin eines Jobs ergibt sich durch einen
Weg zu diesem Job mit maximaler Gesamtdauer.
• Hier liegen die Bewertungen nun auf den Knoten.
• Und warum verzögern sich Projekte trotz ausgefeilter Planungsmethoden? Siehe Übungen.
Tafel: Frühste Starttermine für die Jobs des Beispiels ✎.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Pufferzeit für Job j: D−Länge eines längsten Weges, der Kante j
enthält.
105
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
107
¨
Abstande
in Netzwerken
3. Kreis- und Wegeprobleme
¨
¨
4. Baume
und Walder
Die Routen der geringsten Videoüberwachung
Charakterisierung von Minimalger ¨usten
4 Bäume und Minimalgerüste
Definition 4.1. Es ein G = (V, E) ein zusammenhängender Graph.
Aus der Rheinischen Post vom 29.11.2001:
New Yorker Webpage sucht kamerafreie
Wege
New York (rpo). Wer in einer Großstadt lebt, kann sich kaum noch bewegen, ohne von diversen Überwachungskameras aufgenommen zu werden. Da war
es zwangsläufig nur eine Frage der Zeit,
bis sich Widerstand regt. Ein Projekt von
US-Bürgerrechtsaktivisten berechnet Usern
jetzt die Route mit der geringsten VideoÜberwachung durch New York.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
3. Kreis- und Wegeprobleme
108
¨
Abstande
in Netzwerken
H = (V, E 0) heißt Gerüst von G gdw. wenn H ein Baum ist und E 0 ⊆ E
gilt.
Bemerkung 4.1. Ein Gerüst ist also ein zusammenhängender, zykleinfreier, aufspannender Untergraph von G.
Beispiel 4.1. Gerüste für das Haus vom Nikolaus:
c
c
c
b
d
b
d
b
d
a
e
a
e
a
e
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
110
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
Zusammenfassung des Kapitels
Minimalgerüst
• Charakterisierung und Berechnung von Eulerwegen (HierholzerAlgorithmus)
Definition 4.2. Es sei G = (V, E) ein zusammenhängender Graph mit
einer Kantengewichtsfunktion w : E → IR.
• Für F ⊆ E heißt
w(F) :=
• Hamiltonsche Wege und Kreise (Berechnung ist schwer)
X
w(e)
e∈F
das Gewicht der Kantenmenge F.
• Dijkstra-Algorithmus zur Ermittlung kürzester Wege
• Dynamische Programmierung zur Berechnung kürzester Wege in
DAGs
• Ein Gerüst H von G heißt Minimalgerüst von G gdw. w(H) ≤ w(H 0)
für alle Gerüste H 0 von G.
• Anwendungen: Blocksatzbildung und Netzplantechnik
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Es sei H = (V, F) ein Gerüst von G. Dann ist w(H) := w(F) das
Gewicht des Gerüstes H.
109
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
111
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
C1, C2, . . . , Ct(n,k) die Bäume mit deg(1) = k.
Anzahl an Gerüsten
• Die t(n, k − 1) × t(n, k) Matrix A = (aij) sei definiert durch:
n−2
Satz 4.1. [Cayley] Es gibt n
verschiedene Gerüste für den
vollständigen Graphen Kn (mit n Knoten).
Bemerkung 4.2. Verschieden bedeutet hier wirklich verschieden und
nicht “nichtisomorph”.
2
1
2
3
2
1
3
1
aij :=
1 falls (Bi, Cj) verwandtes Paar
0 sonst
• Aus Bi kann jede der n − 1 Kanten entfernt werden, ausgenommen
die k − 1 mit 1 inzidenten Kanten.
In der i-ten Zeile von A stehen so viele Einsen, wie es verwandte
Paare (Bi, C) gibt, also genau (n − 1) − (k − 1) = n − k.
3
Beweis.
Summe der Zeilensummen von A = t(n, k − 1)(n − k).
• Idee: Prinzip der doppelten Abzählung: In jeder Matrix ist die Summe
der Zeilensummen gleich der Summe der Spaltensummen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
112
Charakterisierung von Minimalger ¨usten
• Sei t(n, k) die Anzahl der Bäume auf V = {1, . . . , n}, in denen der
Knoten 1 den Grad k hat.
• Es wird eine Formel für t(n, k) bestimmt. Das Ergebnis erfolgt durch
Aufsummieren über alle k.
• B sei ein Baum mit deg(1) = k − 1, C sei ein Baum mit deg(1) =
k. (B, C) heißt verwandtes Paar gdw. C aus B entsteht, indem eine
Kante {x, y} entfernt und eine Kante {1, y} eingefügt wird.
x
y
x
B
C
• Es seien B1, B2, . . . , Bt(n,k−1) die Bäume mit deg(1) = k − 1 und
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
114
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
• Die in Cj mit 1 verbundenen Knoten seien y1, . . . , yr.
y1
1
y4
y3
y2
C
• Entfernt man eine der Kanten {1, yr}, so entsteht ein Graph mit zwei
ZHKs. Vr sei die ZHK, die yr enthält und nr := |Vr|.
y
1
1
• In der j-ten Spalte von A stehen so viele Einsen, wie es verwandte
Paare (B, Cj) gibt.
113
• Ein verwandtes Paar (B, Cj) entsteht genau dann, wenn B = (Cj \
{{1, yr}})∪{{x, yr}} gilt, wobei x einer der n−1−nr Knoten in V\({1}∪Vr)
ist.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
115
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
¨
¨
4. Baume
und Walder
• Es gibt also genau (n − 1 − n1) + · · · + (n − 1 − nk) = (k − 1)(n − 1)
Einsen in der j-ten Spalte von A.
Berechnung von Minimalger ¨usten
Berechnung von Minimalgerüsten
Summe der Spaltensummen von A = t(n, k)(k − 1)(n − 1).
Lemma 4.2. Es sei G = (V, E) ein zusammenhängender Graph mit
einer Kantengewichtsfunktion w : E → IR. Weiterhin sei U ⊆ V und e0
eine Kante zwischen U und V \ U mit minimalem Gewicht.
• Das Prinzip der doppelten Abzählung liefert
t(n, k − 1)(n − k) = t(n, k)(k − 1)(n − 1)
Dann existiert ein Minimalgerüst für G, das die Kante e0 enthält.
bzw.
t(n, k − 1) = (n − 1)
k−1
t(n, k)
n−k
Beweis. Falls ein Minimalgerüst T0 die Kante e0 nicht enthält, so nehmen wir e0 zu T0 und entfernen eine Kante e1, die U und V \ U verbindet.
• Ausgehend von t(n, n − 1) = 1 ergibt sich durch Induktion
t(n, n − i) = (n − 1)i−1
n−2
i−1
Wegen der Minimalitätseigenschaft von e0 erhöhen wir damit nicht das
Gewicht des Gerüstes. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
116
¨
¨
4. Baume
und Walder
Charakterisierung von Minimalger ¨usten
• Für die Anzahl t(n) aller Bäume ergibt sich somit
t(n) =
n−1
X
=
=
Berechnung von Minimalger ¨usten
t(n, n − i)
• Wir beginnen mit einem beliebigen Knoten v, d.h. U := {v}.
(n − 1)i−1
i=1
n−2
X
¨
¨
4. Baume
und Walder
118
Der Algorithmus von Prim
i=1
n−1
X
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
(n − 1)
i
i=0
= ((n − 1) + 1)
n−2
i−1
n−2
i
n−2
=n
• In einem Iterationsschritt berechnen wir für alle v ∈ V \ U den Knoten
w, der am nächsten zu einem Knoten in U liegt.
• Dieser Knoten w wird selektiert, die entsprechenden Kante wird in
den Baum aufgenommen und w wird in U aufgenommen.
n−2
• Dies setzen wir fort, bis alle Knoten in U sind.
2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
117
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
119
¨
¨
4. Baume
und Walder
¨
¨
4. Baume
und Walder
Berechnung von Minimalger ¨usten
Beispiel 4.3.
Algorithmus 4.1. [Prim] Es sei G = (V, E) ein zusammenhängender Graph mit V = {1, . . . , n} und Kantengewichtsfunktion w. Es gelte
w({i, j}) = ∞, falls {i, j} ∈
/ E. Der Algorithmus berechnet ein Minimalgerüst in B.
U := {1};
for i := 2 to n do du(i) := w({1, i});
while U 6= V do
bestimme Knoten u mit dU(u) = min{dU(v) : v ∈ V \ U};
bestimme Kante e := {x, u} mit w(e) = dU(u) und x ∈ U;
B := B ∪ {e};
U := U ∪ {u};
for all v ∈ V \ U do dU(v) := min{dU(v), w({u, v});
end
Berechnung von Minimalger ¨usten
b
8
m
12
f
4
12
a
10
11
7
17
10
3
13
d
g
(**)
e
i
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
Berechnung von Minimalger ¨usten
9
c
4
j
20
3
120
v0=a
k
5
20
(*)
(*)
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
b
l
7
c
8
¨
¨
4. Baume
und Walder
4
h
16
9
122
Berechnung von Minimalger ¨usten
Satz 4.3. Algorithmus 4.1 berechnet ein Minimalgerüst in Zeit O(|V| 2).
Beweis. Es sind zwei Dinge zu beweisen:
5
Beispiel 4.2. Wir betrachten
den Graphen:
2
6
10
4
• Korrektheit des Algorithmus
Wir zeigen induktiv: Nach jeder Ausführung von (*) (bzw. nach (**))
gibt dU(v) für alle v ∈ V \ U den Abstand zu einem nächstgelegenen
Knoten u ∈ U an.
Korrektheit des Algorithmus folgt dann mit Lemma 4.2. Tafel ✎.
e
d
13
f
1
3
26
4
5
18
• Laufzeit
g
– Die dominieren Schritte innerhalb der While-Schleife: (*) und (**).
– Die While-Schleife wird |V|-mal durchlaufen.
– Schritte (*) und (**) können in O(|V|) ausgeführt werden.
i
2
h
2
Es ergibt sich in dieser Reihenfolge:
B = {{a, d}, {b, d}, {b, c}, {c, f}, {e, f}, {e, h}, {g, h}, {h, i}}
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
2
121
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
123
¨
¨
4. Baume
und Walder
Berechnung von Minimalger ¨usten
¨
¨
4. Baume
und Walder
Berechnung von Minimalger ¨usten
Der Algorithmus von Kruskal
• Beim Algorithmus von Prim baut man ausgehend von einem Knoten
den Baum sukzessive auf.
• Beim Algorithmus von Kruskal beginnt man stattdessen mit den einzelnen Knoten. Diese stellen einen Wald dar.
• Man versucht nun, diese Wälder optimal zu einem Baum zusammenzusetzen.
• Hierzu sortiert man zunächst alle Kanten aufsteigend nach ihrer
Länge.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
124
Berechnung von Minimalger ¨usten
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
126
Berechnung von Minimalger ¨usten
• Man beginnt, in dem man die die kürzeste Kante in den Wald aufnimmt. Der Wald hat jetzt eine ZHK weniger.
Algorithmus 4.2. [Kruskal] Vorraussetzungen, Ein- und Ausgabe wie
beim Algorithmus von Prim.
• In Iteration i: Falls die i-te Kante zu einem Kreis führen würde, verwirft man sie. Andernfalls nimmt man sie in den Wald auf, wodurch
sich wiederum die Anzahl der ZHKs verringert.
B := ∅; ZHK := ∅; i := 0;
L := Liste der Kanten aufsteigend sortiert nach ihrer Länge;
for all v ∈ V do ZHK := ZHK ∪ {{v}};
while |ZHK| > 1 do
i := i + 1;
Es sei {v, w} das i-te Element von L;
if v und w gehören zu verschiedenen Komponenten K1 und K2 in ZHK then
ZHK := (ZHK \ {K1, K2}) ∪ {K1 ∪ K2};
B := B ∪ {v, w};
end
end
• Dies macht man solange, bis ein aufspannender Baum entstanden
ist.
• Dies ist genau dann der Fall, wenn man n − 1 Kanten aufgenommen
hat (vgl. Satz 1.4 und Satz 1.5).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
125
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
127
¨
¨
4. Baume
und Walder
¨
¨
4. Baume
und Walder
Berechnung von Minimalger ¨usten
b
9
v0=a
5
2
c
4
6
10
Minimalger ¨uste und TSP
Minimalgerüste und TSP
4
e
Beispiel 4.4. Wir betrachten
den Graphen:
d
13
f
1
3
26
4
5
18
g
i
2
h
2
Es ergibt sich in dieser Reihenfolge:
B = {{e, f}, {b, d}, {g, h}, {h, i}, {e, h}, {b, c}, {c, f}, {a, d}}
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
128
Berechnung von Minimalger ¨usten
Satz 4.4. Algorithmus 4.2 berechnet ein Minimalgerüst in Zeit
O(|E| log |V|).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
2
O(|E| log |E|) = O(|E| log |V| ) = O(|E| 2 log |V|) = O(|E| log |V|)
Für die effiziente Vereinigung der ZHKs und den vorangehenden
Test benutzt man Datenstrukturen für das sogenannte Union-FindProblem. 2
Minimalger ¨uste und TSP
Satz 4.5. Es sei G = (V, E) ein vollständiger Graph mit Gewichtsfunktion w : E −→ IN. Weiterhin sei TSP eine optimale TSP-Tour und MST
sei ein Minimalgerüst. Dann gilt:
Beweis. Die Korrektheit des Algorithmus von Kruskal kann induktiv
durch wiederholte Anwendung von Lemma 4.2 gezeigt werden. Tafel
✎.
Zeitaufwand: Der dominierende Schritt ist die Sortierung. Der Aufwand
zur Sortierung der Kanten ist
130
w(MST ) ≤ w(TSP)
Beweis.
• Wenn man aus TSP eine beliebige Kante entfernt, erhält man einen
hamiltonschen Weg HP.
• Jeder hamiltonsche Weg ist ein Gerüst.
• Also folgt w(TSP) ≥ w(HP) ≥ w(MST ).
2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
129
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
131
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
Satz 4.6. Es sei G = (V, E) ein vollständiger Graph mit Gewichtsfunktion w : E −→ IN, für die die Dreiecksungleichung gilt, d.h.
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
Bemerkung 4.3.
w({i, k}) ≤ w({i, j}) + w({j, k}) ∀i, j, k ∈ V
• Das Verfahren aus Satz 4.6 liefert uns nicht nur eine obere Schranke
für die Länge einer optimalen Tour,
Weiterhin sei TSP eine optimale TSP-Tour und MST sei ein Minimalgerüst. Dann gilt:
• sondern auch ein effizientes Konstruktionsverfahren für eine Tour mit
Länge ≤ 2 w(TSP).
• Die Tour ergibt sich dabei direkt aus der DFS-Numerierung.
w(MST ) ≤ w(TSP) ≤ 2 w(MST )
• Alternative:
Beweis. Die linke Ungleichung folgt aus Satz 4.5.
– Jede Kante des MST wird durch zwei gerichtete Kanten ersetzt,
– mit dem Algorithmus von Hierholzer wird ein Eulerkreis berechnet
und
– die Knoten werden in der Reihenfolge wie im Eulerkreis “angefahren”.
Für den Beweis der rechten Ungleichung konstruieren wir mit Hilfe der
Tiefensuche eine Tour aus dem Minimalgerüst MST . Tafel ✎. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
132
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
Beispiel 4.5.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
Beispiel 4.6.
a
b
d
3
j
1
b
10
d
f
9
a
2
4
d
c
6
f
e
a
v
t(v)
a
1
b
2
c
3
d
4
e
5
f
6
i
c
e
c
134
g
8
5
7
f
b
h
Tour: a, b, c, d, e, f, a
e
v
t(v)
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
133
a
1
b
2
c
8
d
7
e
3
f
6
g
5
h
4
i
9
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
j
Tour: a, b, e, h, g, f, d, c, i, j, a
10
135
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
• Anschließend können sogenannte Verbesserungsverfahren angewendet werden.
• Der Algorithmus “2-opt” sucht beispielsweise nach zwei Kanten, die
gegen zwei andere Kanten ausgetausch werden können, so daß eine
kürzere Tour entsteht.
• Im euklidischen Fall werden damit alle “Kreuzungen” eliminiert.
i
c
i
c
j
¨
¨
4. Baume
und Walder
Anwendung von Minimalger ¨usten
Clusteranalyse mit Minimalgerüsten
Beispiel 4.7. [Clusteranalyse]
Gegeben sei eine Menge von
Punkten z.B. im IR2, die gewisse
Häufungen aufweist.
Wie kann man diese Häufungen algorithmisch erkennen?
j
d
d
f
f
a
a
g
g
b
b
h
h
e
e
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
136
¨
¨
4. Baume
und Walder
Minimalger ¨uste und TSP
• Analog sucht der Algorithmus “3-opt” nach drei Kanten für einen Austausch.
i
c
i
c
j
j
d
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
138
Anwendung von Minimalger ¨usten
• In Häufungen liegen Knoten nahe zusammen.
• Ansatz: Wir legen zwischen zwei Knoten eine Kante, wenn sie nicht
zu weit voneinander entfernt sind (≤ α).
d
f
f
a
E := {{v, w}|d(v, w) ≤ α}
a
g
g
b
• Hierbei ist d(v, w) die Entfernung auf Basis einer Metrik d(·, ·) und α
ist die maximal erlaubte Entfernung.
b
h
h
e
e
i
c
j
d
f
• Der nächste 2-opt-Tausch liefert eine optimale Tour.
a
g
• Zur Berechnung dieser können wir den Algorithmus von Kruskal verwenden.
b
h
e
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Die Zusammenhangskomponenten des entsprechenden Graphen
sehen wir dann als Häufungen an.
137
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
139
¨
¨
4. Baume
und Walder
Anwendung von Minimalger ¨usten
¨
¨
4. Baume
und Walder
• Berechnung eines Minimalgerüstes mit dem Algorithmus von Kruskal
und
Matroide
Greedy-Verfahren
• Elimination der Kanten mit Länge > α.
• Der Algorithmus von Kruskal ist ein Spezialfall des sogenannten
Greedy-Algorithmus.
• greedy = gefräßig, raffgierig
• Man versucht das Optimierungsproblem durch lokale Auswahl eines
jeweils besten Elements unter Beachtung von Nebenbedingungen zu
lösen.
• Allgemein liefert dies keine optimale Lösung sondern nur eine Näherungslösung.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
140
¨
¨
4. Baume
und Walder
Anwendung von Minimalger ¨usten
Die Benutzung des Algorithmus von Kruskal hat den Vorteil, daß die
Kanten aufsteigend nach Ihrer Länge selektiert werden.
Die Aufnahme einer Kante in den MST können wir als die Verschmelzung zweier Cluster ansehen.
Der Verlauf der Cluster-Verschmelzung wird mit einem sogenannten
Dendogramm visualisiert.
b
¨
¨
4. Baume
und Walder
142
Matroide
Teilmengensystem
Definition 4.3. Es sei E eine endliche Menge und T eine nichtleere
Menge von Teilmengen von E.
Das Mengensystem (E, T ) heißt Teilmengensystem gdw. für alle A, B ⊆
E gilt:
A ∈ T und B ⊆ A =⇒ B ∈ T
d.h., jede der Teilmengen in T ist bezüglich ⊆ abgeschlossen.
Das zu (E, T ) gehörige Optimierungsproblem besteht darin, für jede beliebige Gewichtsfunktion w : E −→ IR eine in T maximale Menge T zu
finden, deren Gesamtgewicht
X
w(e)
w(T ) :=
a
f
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
g
e
c
e∈T
e
f
g
a
b
c
d
maximal (bzw. minimal) ist.
d
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
141
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
143
¨
¨
4. Baume
und Walder
Matroide
¨
¨
4. Baume
und Walder
Matroide
Matroid
Greedy-Algorithmus
Algorithmus 4.3. Gegeben sei ein Teilmengensystem (E, T ) und eine
Gewichtsfunktion w : E −→ IR. Es wird eine Menge T ⊆ E ausgewählt.
Definition 4.4. Ein Teilmengensystem (E, T ) heißt Matroid gdw. für alle A, B ∈ T das folgende Austauschaxiom gilt:
|A| = |B| + 1 =⇒ ∃a ∈ A \ B : B ∪ {a} ∈ T
1. Sortiere die Elemente von E nach absteigendem Gewicht (Maximierung). Sei E = {e1, . . . , em} mit w(e1) ≥ · · · ≥ w(em).
2. Setze T := ∅ und k := 1.
Beispiel 4.10. Sei G = (V, E) ein Graph und sei T = {T ⊆
E|(V, T ) ist ein Wald}. Dann ist (E, T ) ein Matroid (sogenanntes graphisches Matroid).
3. Falls T ∪ {ek} ∈ T , dann setze T := T ∪ {ek}.
Das Teilmengensystem aus Beispiel 4.9 für das TSP ist dagegegen kein
Matroid.
4. Falls k = m, dann STOP. Sonst setze k := k + 1 und gehe zu 3.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
Die Mengen in T werden unabhängige Mengen genannt. Jede maximale unabhängige Menge heißt Basis.
144
Matroide
Bemerkung 4.4. Man beachte die Ähnlichkeit zwischen Algorithmus 4.2 und dem Greedy-Algorithmus.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
146
Matroide
Satz 4.7. Es sei (E, T ) ein Teilmengensystem.
Beispiel 4.8. Der Greedy-Algorithmus liefert nicht immer eine Menge
T mit maximalem Gewicht.
Der Greedy-Algorithmus löst genau dann das zu (E, T ) gehörige Optimierungsproblem (für jede Gewichtsfunktion), wenn (E, T ) ein Matroid
ist.
Sei E = {a, b, c}, T = {∅, {a}, {b}, {c}, {a, b}}, w(a) = w(b) = 2, w(c) = 3.
Beweis. Richtung “⇐”:
0
Dann berechnet der Algorithmus T = {c} mit w(T ) = 3, obwohl T =
{a, b} mit w(T 0) = 4 optimal ist.
Beispiel 4.9. Wir könnten versuchen, das Traveling Salesman Problem mit einem Greedy-Algorithmus zu lösen (Minimierung). Dann ist
E die Menge der Kanten des vollständigen Graphen und
• Alle maximalen Mengen von T haben die gleiche Mächtigkeit!
• Es sei k diese Mächtigkeit und es sei T = {e1, . . . , ek} die mit dem
Greedy-Algorithmus berechnete Menge T ∈ T .
Es gelte w(e1) ≥ · · · ≥ w(ek).
T := {X|X ⊆ T ⊆ E mit T ist eine Tour}
• Es sei U = {g1, . . . , gk} ∈ T eine andere maximale Menge aus T .
Es gelte w(g1) ≥ · · · ≥ w(gk).
Die so erhaltene Lösung ist i.d.R. suboptimal.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
145
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
147
¨
¨
4. Baume
und Walder
Matroide
¨
¨
4. Baume
und Walder
Matroide
• Annahme: Es existiert i mit w(gi) > w(ei).
Beispiel 4.11. Gegeben sei eine Menge J = {1, . . . , n} von Jobs.
• Es sei i der kleinste solche Index, also w(g1) ≤ w(e1), . . . , w(gi−1) ≤
w(ei−1).
Jeder Job habe einen Fertigstellungstermin f(i) und eine Strafe s(i), die
bei nicht rechtzeitiger Fertigstellung gezahlt werden muß.
• Definition 4.4 liefert mit A = {g1, . . . , gi} und B = {e1, . . . , ei−1 } ein
gj ∈ A \ B, so daß B ∪ {gj} ∈ T gilt.
• Wegen w(gj) ≥ w(gi) > w(ei) hätte der Greedy-Algorithmus vor ei
schon gj genommen. Wdsp.
• Also w(gi) ≤ w(ei) für 1 ≤ i ≤ k und somit w(U) ≤ w(T ).
Pro Tag kann nur ein Job erledigt werden.
Wie muß man die Jobs einplanen, so daß die Gesamtstrafe minimiert
wird?
Job
f(i)
s(i)
1
1
10
2
1
9
3
2
6
4
3
7
5
3
4
6
6
2
Richtung “⇒”: Das Austauschaxiom gelte nicht.
• Dann gibt es A, B ∈ T , |A| = |B| + 1 so daß B ∪ {a} 6∈ T für alle A \ B.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
148
Matroide
• Es sei r := |A| und w : E −→ IR sei gegeben durch:

 r + 1 für x ∈ B
r
für x ∈ A \ B
w(e) :=

0
sonst
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
¨
4. Baume
und Walder
150
Matroide
Antwort: (J, T ) mit
T
:= {P ⊆ J|∀j ∈ P : j ist pünktlich planbar}
=
• Der Greedy-Algorithmus wählt dann eine Menge T mit T ⊇ B und
T ∩ (A \ B) = ∅ von Gewicht w(T ) = |B| · (r + 1) = r2 − 1.
• Wählt man stattdessen ein U ∈ T mit U ⊇ A, dann ergibt sich
w(U) ≥ |A| · r = r2 > w(T ).
2
{P ⊆ J|∀n ∈ IN : (Anzahl j ∈ P mit f(j) ≤ n) ≤ n}
ist ein Matroid. Also nehme man s(i) als Gewichtsfunktion und wende
den Greedy-Algorithmus an.
Terminplan:
Job
f(i)
s(i)
t
1
1
10
1
2
1
9
5
3
2
6
2
4
3
7
3
5
3
4
6
6
6
2
4
Bemerkung 4.5. Damit haben wir einen anderen Beweis für die Korrektheit von Algorithmus 4.2.
Strafe: 13
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
149
151
¨
¨
4. Baume
und Walder
Matroide
¨
5. Planare Graphen und Farbungen
¨
Planaritat
2
Zusammenfassung des Kapitels
Beispiel 5.1. Im IR ist eine Funktion f zur Darstellung einer Kurve gegeben durch
x(t)
f(t) =
y(t)
mit x : [0, 1] −→ IR und y : [0, 1] −→ IR. f ist stetig, wenn die Funktionen
x(t) und y(t) stetig sind.
• Berechnung von Minimalgerüsten: Prim, Kruskal
• Verallgemeinerung: Teilmengensystem, Matroide
• Greedy-Algorithmus zur Lösung von Optimierungsproblemen in Matroiden
Eine Strecke von einem Punkt (x1, y1) zu einem Punkt (x2, y2) ist gegeben durch
x1 + t(x2 − x1)
f(t) =
y1 + t(y2 − y1)
Der Einheitskreis entspricht der Kurve mit
• Anwendungen:
f(t) =
– Gütegarantie beim Traveling Salesman Problem
– Clusteranalyse
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
152
¨
Planaritat
cos(2πt)
sin(2πt)
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
154
¨
Planaritat
5 Planare Graphen und Färbungen
Planarität
Zentrale Frage bei der Planarität: Welche Graphen lassen sich zeichnen, ohne daß sich die Kanten schneiden?
Definition 5.2. Ein Graph G = (V, E) heißt einbettbar in den IRn gdw.
• seine Knoten als paarweise verschiedene Punkte des IRn und
Die Kanten stellen wir als Jordankurve dar.
Definition 5.1. Eine Jordankurve des IRn ist eine Menge der Form
{f(t)|t ∈ [0, 1]}, wobei f : [0, 1] −→ IRn eine injektive stetige Abbildung
ist.
Bemerkung 5.1. Jordankurven sind stetige und schnittpunktfreie Kurven mit Anfangs- und Endpunkt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
153
• seine Kanten als Jordankurven des IRn dargestellt werden können,
• wobei die Jordankurven als Anfangs- bzw. Endpunkt die Punkte der
zugeordneten Knoten haben und
• sich die Kurven paarweise nicht schneiden (außer in den Knotenpunkten für die Anfangs- und Endpunkte).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
155
¨
5. Planare Graphen und Farbungen
¨
Planaritat
2
¨
5. Planare Graphen und Farbungen
¨
Planaritat
Definition 5.3. Ein Graph G = (V, E) heißt planar gdw. er in den IR
einbettbar ist. Das Diagramm einer solchen Einbettung heißt ebenes
Diagramm.
Knoten- und Kantenanzahlen in planaren Graphen
Jedes Ebene Diagramm eines Graphen unterteilt die Ebene in zusammenhängende Gebiete, die man Flächen nennt.
Satz 5.3. Es sei G = (V, E) ein planarer Graph mit n := |V| und m :=
|E| ≥ 2. Dann gilt:
m ≤ 3n − 6
Es existiert genau ein solches Gebiet, das unbeschränkt ist. Es heißt
Außengebiet.
Wenn G keinen Kreis der Länge 3 enthält, dann gilt:
m ≤ 2n − 4
K4 :
nicht eben
eben
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
156
¨
Planaritat
Eulersche Polyederformel
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
158
¨
Planaritat
Beweis. Gegeben sei ein ebenes Diagramm eines zusammenhängenden Graphen mit n Knoten, m ≥ 3 Kanten e1, . . . , em und f Flächen
F1 , . . . , F f .
Satz 5.1. Gegeben sei ein planarer zusammenhängender Graph G =
(V, E) mit n := |V| und m := |E| sowie ein ebenes Diagramm von G mit f
Flächen. Dann gilt
n+f=m+2
Beweis. Beweis durch Induktion über m. Für m = 0 folgt n = f = 1. Damit ist die Formel richtig. Für den Induktionsschritt Fallunterscheidung
ob G Baum oder nicht. Tafel ✎. 2
Korollar 5.2. Für ein ebenes Diagramm eines planaren Graphen G =
(V, E) mit k Zusammenhangskomponenten gilt
Die m × f-Matrix A = (aij) sei definiert durch
1 falls ei Teil des Randes von Fj
aij :=
0 sonst
• Jede Kante gehört zum Rand von höchstens zwei Flächen. Also
enthält jede Zeile der Matrix höchstens zwei Einsen, d.h. die Summe der Zeilensummen ist ≤ 2m.
• Jede Fläche wird von mindestens drei Kanten berandet. Somit gibt
es insgesamt mindestens 3f Einsen (Summe der Spaltensummen).
n+f=m+k+1
• Es folgt 3f ≤ 2m. Polyederformel: f = m − n + 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
157
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
159
¨
5. Planare Graphen und Farbungen
¨
Planaritat
• Damit folgt m ≤ 3n − 6.
¨
5. Planare Graphen und Farbungen
¨
Farbungen
Vier-Farben-Vermutung
• Die Formel gilt auch für m = 2.
Landkarten möchte man so färben, daß keine benachbarten Länder die
gleiche Farbe erhalten.
• Für nicht zusammenhängende Graphen: Formel gilt in jeder ZHK.
Wie viele Farben braucht man zur Färbung einer Landkarte?
2
Korollar 5.4. Für jeden planaren Graph G = (V, E) existiert ein v ∈ V
mit deg(v) ≤ 5.
Vier-Farben-Vermutung: Jede Landkarte kann so mit vier Farben
gefärbt werden, daß benachbarte Länder stets verschiedene Farben
haben.
B
C
D
E
A
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
160
¨
Planaritat
Korollar 5.5. Die Graphen K5 und K3,3 sind nicht planar.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
162
¨
Farbungen
Färbungen
Bemerkung 5.3. Eine Landkarte kann als planarer Graph dargestellt
werden.
K5
K3,3
Die Länder werden durch Knoten repräsentiert und benachbarte Länder
werden durch eine Kante miteinander verbunden.
Definition 5.4. Ein Graph G = (V, E) heißt k-färbbar gdw.
Beweis. Für die Graphen ist die 1. bzw. 2. Ungleichung in Satz 5.3 nicht
erfüllt. 2
Bemerkung 5.2. Diese beiden Graphen sind in gewissem Sinne die
“kleinsten” nicht planaren Graphen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
161
∃f : V → {1, . . . , k} mit {v, w} ∈ E ⇒ f(v) 6= f(w)
d.h. den Knoten können k Farben zugeordnet werden, so daß benachbarte Knoten stets verschiedene Farben haben.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
163
¨
5. Planare Graphen und Farbungen
¨
Farbungen
Die Zahl
¨
5. Planare Graphen und Farbungen
¨
Farbungen
Chromatisches Polynom
χ(G) := min{ k | G ist k färbbar }
heißt chromatische Zahl von G.
Beispiel 5.2. Alle Bäume sind 2-färbbar.
Für den vollständigen Graphen Kn und sein Komplement K¯n gilt:
χ(Kn) = n, χ(K¯n) = 1
Für den Graphen K3,3 aus Korollar 5.5 gilt: χ(K3,3) = 2.
Definition 5.5. Es sei G = (V, E) ein Graph. Die Anzahl der Möglichkeiten G mit x Farben zu färben wird mit f(G, x) bezeichnet. Hierbei
müssen nicht alle x Farben verwendet werden.
Die Funktion f(G, x) heißt chromatisches Polynom von G.
Beispiel 5.3. Der Graph
kann auf 12 veschiedene Arten mit 3 Farben gefärbt werden.
Das Haus vom Nikolaus ist 4-färbbar. Ist es auch 3-färbbar?
Für den vollständigen Graphen Kn gilt:
f(Kn, x) = x(x − 1) · · · (x − n + 1)
Für das Komplement gilt: f(K¯n, x) = xn.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
164
¨
Farbungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
166
¨
Farbungen
Es sei G = (V, E) ein Graph und a, b ∈ V seien nicht adjazent. Dann sei
Der Fünf-Farben-Satz
G{a,b} = (V, E ∪ {a, b})
Satz 5.6. Jeder planare Graph G = (V, E) ist 5-färbbar.
Weiterhin bezeichne Ga=b den Graphen, der entsteht, wenn in G die
Knoten a und b entfernt und durch einen neuen Knoten c ersetzt werden. Dabei ist {v, c} für v ∈ V \ {a, b} genau dann eine Kante von Ga=b,
wenn {v, a} oder {v, b} eine Kante von G war.
Beweis. Es sei n := |V|. Beweis erfolgt mit Induktion über n.
Für n ≤ 5 ist der Satz richtig.
n → n + 1: G sei ein planarer Graph mit n + 1 Knoten. Nach Korollar 5.4
hat G einen Knoten v mit deg(v) ≤ 5.
Gilt deg(v) < 5: fertig.
Gilt deg(v) = 5 und die fünf adjazenten Knoten benutzen weniger als
fünf Farben: fertig.
Beispiel zu G{a,b} und Ga=b : Tafel ✎.
Satz 5.7. Sind a und b zwei nicht adjazente Knoten eines Graphen G,
dann gilt
f(G, x) = f(G{a,b} , x) + f(Ga=b , x)
Rest: Tafel ✎. 2
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
165
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
167
¨
5. Planare Graphen und Farbungen
¨
Farbungen
¨
5. Planare Graphen und Farbungen
¨
Farbungen
Anwendungen
Beweis. Es seien a und b zwei nicht adjazente Knoten eines Graphen
G.
a und b sind entweder verschieden oder gleich gefärbt.
Stundenplanprobleme:
Die Anzahl der Färbungen, bei denen a und b verschiedene Farben
haben, ist identisch mit der Anzahl der Färbungen von G{a,b} .
• Die Vorlesungen werden als Knoten betrachtet.
Die Anzahl der Färbungen, bei denen a und b die gleiche Farbe haben,
ist identisch mit der Anzahl der Färbungen von Ga=b.
• Zwei Knoten sind durch eine Kante verbunden, wenn die Vorlesungen nicht gleichzeitig stattfinden sollen (gleicher Professor, gleiche
Studenten, etc.).
Die Anzahl aller Färbungen ergibt sich somit aus der Summe. 2
Bemerkung 5.4. Satz 5.7 gibt einem die Möglichkeit, das chromatische Polynom rekursiv zu berechnen.
• Die Farben entsprechen möglichen Vorlesungszeiten. Eine Färbung
des Graphen stellt dann einen möglichen Stundenplan dar.
• Das chromatische Polynom gibt an, wieviele mögliche Stundenpläne
es gibt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
¨
5. Planare Graphen und Farbungen
168
¨
Farbungen
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
170
Flußnetzwerke
6 Flüsse und Matchings
Beispiel 5.4. Der Graph
• In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert werden können.
hat das chromatische Polynom (Tafel ✎)
• Wir können uns einen Graphen als Versorgungsnetzwerk vorstellen,
z.B. als Datennetz.
f(G, x) = f(K5, x) + 3f(K4, x) + 2f(K3, x)
• Die entscheidende Frage ist, welchen maximalen Durchsatz wir erreichen können.
Wieviele Einheiten können wir maximal von einem Knoten zu einem
anderen pro Zeiteinheit transportieren?
= x5 − 7x4 + 19x3 − 23x2 + 10x
Wegen f(G, 2) = 0 und f(G, 3) = 12 folgt χ(G) = 3.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
169
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
171
6. Fl ¨usse in Netzwerken
Flußnetzwerke
6. Fl ¨usse in Netzwerken
Lemma 6.1. Für einen Fluß f eines Flußnetzwerks N = (G, c, s, t) gilt
Flußnetzwerk
Φ(f) :=
Definition 6.1. Ein Flußnetzwerk N ist ein Tupel N = (G, c, s, t) bestehend aus:
• G = (V, A), einem gerichteten Graphen,
• c : A −→ IR+, einer Kapazitätsfunktion auf den gerichteten Kanten
mit nichtnegativen Werten und
• s, t ∈ V, zwei ausgezeichneten Knoten, der Quelle s und der Senke
t mit s 6= t.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
Flußnetzwerke
172
Flußnetzwerke
X
e∈Aout(s)
Eine Abbildung f : A −→ IR heißt Fluß auf N, wenn die folgenden
Bedingungen erfüllt sind:
P
e∈Aout(v) f(e)
f(e) −
e∈Ain (t)
f(e)
e∈Aout(t)
Das Maximalflußproblem besteht darin, zu einem gegebenen Flußnetzwerk einen Maximalfluß zu bestimmen.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
174
6. Fl ¨usse in Netzwerken
Flußnetzwerke
Definition 6.4. Gegeben sei ein Flußnetzwerk N = (G, c, s, t) mit einem Fluß f. Eine Folge (v0, . . . , vk) heißt zunehmender Weg bzgl. f gdw.
für jedes i = 1, . . . , k eine der folgenden Bedingungen erfüllt ist:
Vorwärtskante
für alle v ∈ V \ {s, t},
d.h. aus jedem Knoten fließt genausoviel heraus wie hinein, mit Ausnahme der Quelle und Senke.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
X
Ein Fluß f mit Φ(f) ≥ Φ(f 0) für alle Flüsse f 0 auf N heißt Maximalfluß
auf N.
“Vorwärtskante”
2. (vi, vi−1) ∈ A und f(vi, vi−1 ) > 0
d.h. die Kapazität wird für keine Kante überschritten und
=
e∈Ain (s)
X
1. (vi−1, vi) ∈ A und f(vi−1 , vi) < c(vi−1, vi)
1. 0 ≤ f(e) ≤ c(e) für alle e ∈ A,
e∈Ain (v) f(e)
f(e) =
Zunehmender Weg
Definition 6.2. Es sei N = (G, c, s, t) ein Flußnetzwerk. Für einen Knoten v ∈ V sei Ain (v) := {(u, v) ∈ A} und Aout(v) := {(v, u) ∈ A}.
P
X
Definition 6.3. Der Wert Φ(f) aus Lemma 6.1 heißt Wert des Flusses
f auf N.
Fluß
2.
f(e) −
173
“Rückwärtskante”
+1
−1
+1
+1
Rückwärtskante
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
175
6. Fl ¨usse in Netzwerken
Flußnetzwerke
Offensichtlich können wir den Fluß erhöhen, wenn wir einen zunehmenden Weg gefunden haben.
Die Existenz eines zunehmenden Weges ist also hinreichend für eine
Flußerhöhung.
Der folgende Satz zeigt, daß dieses Kriterium auch notwendig ist.
Satz 6.2. Ein Fluß f in einem Flußnetzwerk N ist genau dann ein Maximalfluß, wenn kein zunehmender Weg von s nach t existiert.
Beweis. “⇒”: Wenn ein zunehmender Weg W von s nach t existiert,
dann kann Φ(f) um das Minimum der Werte c(e) − f(e) für Vorwärtskanten von W bzw. f(e) für Rückwärtskanten von W erhöht werden.
“⇐”: Es gebe keinen zunehmenden Weg von s nach t.
Es sei S die Menge der Knoten, die von s aus mit einem zunehmenden
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
176
Flußnetzwerke
6. Fl ¨usse in Netzwerken
Berechnung maximaler Fl ¨usse
Berechnung eines Maximalflusses
Satz 6.2 liefert die Basis zur Berechnung eines Maximalflusses.
1. Wir starten mit einem beliebigen Fluß, z.B. f(e) = 0 für alle e ∈ A.
Weiter mit 2.
2. Wenn es keinen zunehmenden Weg bzgl. f gibt, dann STOP. Ansonsten weiter mit 3.
3. Sei W = (s = v0, v1, . . . , vk = t) ein zunehmender Weg von s nach t
bzgl. f und sei
z := min( {c(vi−1, vi) − f(vi−1 , vi)|(vi−1, vi) Vorwärtskante von W}
∪{f(vi, vi−1 )|(vi, vi−1) Rückwärtskante von W} )
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
178
6. Fl ¨usse in Netzwerken
Berechnung maximaler Fl ¨usse
Weg erreichbar sind, und sei T := V \ S.
Setze f(vi−1 , vi) := f(vi−1 , vi) + z für jede Vorwärtskante (vi−1 , vi).
Für jede Kante (v, w), v ∈ S, w ∈ T gilt: f(v, w) = c(v, w)
Setze f(vi, vi−1 ) := f(vi, vi−1 ) − z für jede Rückwärtskante (vi, vi−1).
Weiter mit 2.
Für jede Kante (w, v), w ∈ T, v ∈ S gilt: f(w, v) = 0
Anschaulich: Die Kanten zwischen S und T bilden einen Engpaß, der
eine Flußerhöhung verhindert. 2
Beispiel 6.1. Wir betrachten das folgende Flußnetzwerk. Die Kapazität ist für alle Kanten 1. Der Fluß ist zunächst
auf allen Kanten 0.
c
a
0|1
0|1
0|1
s
t
0|1
0|1
0|1
b
0|1
d
(s, b, c, t) ist ein zunehmender Weg mit z = 1. Alle Kanten des Weges
sind Vorwärtskanten.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
177
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
179
6. Fl ¨usse in Netzwerken
Berechnung maximaler Fl ¨usse
Flußerhöhung auf dem zunehmenden Weg ergibt den Graphen:
a
c
0|1
Auf der Rückwärtskante wird der
Fluß verringert, ansonsten erhöht.
a
1|1
0|1
s
t
s
0|1
b
0|1
1|1
t
0|1
1|1
mit Φ(f) = 1.
(s, a, c, b, d, t) ist nun ein zunehmender Weg mit z = 1, wobei
(b, c) eine Rückwärtskante ist.
1|1
1|1
d
b
1|1
Berechnung maximaler Fl ¨usse
Algorithmus 6.1. Gegeben sei ein Flußnetzwerk N = (G, c, s, t) und
ein initialer Fluß f(e) ≡ 0.
c
1|1
1|1
1|1
6. Fl ¨usse in Netzwerken
1. Setze S := {s}, R := {s}, z(s) := ∞.
2. Wähle einen Knoten u ∈ R. Setze R := R \ {u}.
3. Für alle w ∈ V \ S mit (u, w) ∈ A und f(u, w) < c(u, w):
d
Wir haben Φ(f) = 2 und es existiert kein zunehmender Weg. Damit ist der angegebene Fluß ein
Maximalfluß.
S := S ∪ {w}, R := R ∪ {w},
v(w) := u, r(w) :=→, z(w) := min{z(u), c(u, w) − f(u, w)}
4. Für alle w ∈ V \ S mit (w, u) ∈ A und f(w, u) > 0:
S := S ∪ {w}, R := R ∪ {w},
v(w) := u, r(w) :=←, z(w) := min{z(u), f(w, u)}
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
180
Berechnung maximaler Fl ¨usse
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
182
Berechnung maximaler Fl ¨usse
5. Falls R = ∅, dann STOP. Falls t ∈ S, dann weiter mit 6, ansonsten
weiter mit 2.
Markierungsalgorithmus
6. z := z(t); w := t.
• Der Markierungsalgorithmus von Ford und Fulkerson (1956) konkretisiert das Verfahren zur Berechnung maximaler Flüsse.
• Man markiert sukzessive die Knoten w auf einem zunehmenden
Weg mit drei Werten v(w), r(w), z(w).
8. w := v(w). Falls w = s, dann weiter mit 1, ansonsten weiter mit 7.
Satz 6.3. Sei N = (G, c, s, t) ein Flußnetzwerk mit rationaler Kapazitätsfunktion c. Dann berechnet Algorithmus 6.1 einen maximalen Fluß
f auf N.
• v(w) ist der Vorgänger von w in dem zunehmenden Weg.
r(w) gibt die Richtung der verwendeten Kante an
(→= Vorwärtskante, ←= Rückwärtskante).
z(w) ist der mögliche zusätzliche Fluß auf dem Weg nach w.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
7. Falls r(w) =→: u := v(w), f(u, w) := f(u, w) + z
Falls r(w) =←: u := v(w), f(w, u) := f(w, u) − z
181
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
183
6. Fl ¨usse in Netzwerken
Berechnung maximaler Fl ¨usse
6. Fl ¨usse in Netzwerken
max-flow min-cut
Bemerkung 6.1.
Trennender Schnitt
• Bei irrationalen Kapazitäten kann es vorkommen, daß der Markierungsalgorithmus immer weitere Verbesserungen des Flußwertes
findet, ohne jemals zu terminieren.
• Auch bei ganzzahligen Kapazitäten ist die Laufzeit des Markierungsalgorithmus nicht polynomial, da die Anzahl der Schritte von
c abhängen kann.
• Eine polynomiale Lauzeit erhält man aber, wenn man für die Suche
nach einem zunehmenden Weg die Breitensuche einsetzt (Edmonds
und Karp, 1972).
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
184
Berechnung maximaler Fl ¨usse
Wie groß kann der Fluß in dem folgenden Flußnetzwerk höchstens
sein?
a
e
c
d
s
t
f
b
Der Fluß kann nicht größer als die Kapazität der der Kante (c, d) sein,
da jeder Weg von s nach t diese Kante enthält. Die Kante (c, d) ist ein
sogenannter trennender Schnitt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
186
max-flow min-cut
Definition 6.5. Es sei N = (G, c, s, t) ein Flußnetzwerk mit G = (V, A).
Satz 6.4. Ersetzt man in Algorithmus 6.1 den Schritt 2 durch
2a. Wähle den Knoten u ∈ R, der zuerst in R eingefügt wurde. Setze
R := R \ {u}.
Für eine Teilmenge S ⊆ V heißt AS := {(v, w) ∈ A|v ∈ S, w ∈ V \ S}
Schnitt von G.
Falls s ∈ S, t ∈ V \ S, so ist AS ein trennender Schnitt.
dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen in O(|V||E|2) einen Maximalfluß.
Ein trennender Schnitt AS mit minimaler Kapazität
Beispiel 6.2. Anwendung des Markierungsalgorithmus. Tafel ✎
c(AS) :=
X
c(e)
e∈AS
heißt minimaler Schnitt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
185
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
187
6. Fl ¨usse in Netzwerken
max-flow min-cut
6. Fl ¨usse in Netzwerken
Matchings
Satz 6.5. [max-flow-min-cut-Theorem]
In einem Flußnetzwerk N = (G, c, s, t) ist der Wert eines maximalen
Flusses gleich der Kapazität eines minimalen Schnittes.
Adam
Beweis. Tafel ✎. 2
Bemerkung 6.2.
• Kennen wir einen Fluß f und finden wir einen trennenden Schnitt AS
mit Φ(f) = c(AS), so ist f ein Maximalfluß.
• Für die Menge S bei Terminierung von Algorithmus 6.1 ist AS ein
minimaler Schnitt (vgl. Beweis zu Satz 6.2).
• Der Markierungsalgorithmus berechnet also nicht nur einen maximalen Fluß sondern auch einen minimalen Schnitt.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
Matchings
188
max-flow min-cut
Beispiel 6.3. Wie groß ist der Maximalfluß in dem folgenden Graphen?
Das Heiratsproblem lautet:
In einer Gruppe von Männer
und Frauen kennnen sich einige Männer und Frauen. Ist
es möglich, daß jeder mit einer seiner Bekannten verheiratet wird?
Hänsel
Siegfried
Eva
Kriemhild
Gretel
Tristan
Berta
Romeo
Julia
Definition 6.6. Ein Graph G = (V, E) heißt bipartit gdw. V in zwei disjunkte Teilmengen S und T zerlegt werden kann (d.h. V = S + T ), so daß
für alle Kanten e = {v, w} ∈ E gilt: v ∈ S, w ∈ T .
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
190
Matchings
Definition 6.7. Es sei G = (V, E) ein bipartiter Graph. Ein Menge M ⊂
E von Kanten heißt Zuordnung (Matching) gdw. für alle e1, e2 ∈ M mit
e1 6= e2 gilt: e1 ∩ e2 = ∅, d.h. die Kanten haben keinen gemeinsamen
Knoten.
Bemerkung 6.3.
• Das Heiratsproblem ist genau dann lösbar, wenn ein Matching maximaler Mächtigkeit existiert.
• Das wesentliche Problem besteht also darin, zu einem bipartiten Graphen ein Matching mit maximaler Mächtigkeit zu berechnen. Hierzu
können wir die das Problem als Flußproblem modellieren.
f(S, B) = f(B, T ) = 3,
f(S, A) = 5, f(A, C) = f(C, T ) = 2,
f(A, D) = f(D, T ) = 3 also Φ(f) = 8.
Die Kapazität des trennenden Schnittes {(S, B), (C, T ), (D, T )} ist 8.
Also ist f ein Maximalfluß.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
• Alle Kanten des Orginalgraphen werden von S nach T gerichtet.
189
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
191
6. Fl ¨usse in Netzwerken
Matchings
• Neuer Knoten s und neue Kanten (s, v) für alle v ∈ S
6. Fl ¨usse in Netzwerken
Matchings
Beispiel 6.5. Für unser spezielles Heiratsproblem erhalten wir als eine
Lösung:
S
• Neuer Knoten t und neue Kanten (v, t) für alle v ∈ T
T
• Alle Kanten erhalten die Kapazität 1.
Beispiel 6.4. Transformiert man den bipartiten Graphen des gegebenen Heiratsproblem nach obigen Regeln ergibt sich:
S
s
s
t
T
t
Es ist also nicht möglich, alle zu verheiraten. Tristan und Julia bleiben
bei dieser Lösung unverheiratet.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
192
Matchings
• Es sei f ein Maximalfluß, der mit dem Markierungsalgorithmus berechnet wurde. Wegen der Ganzzahligkeit des Problems ist dann
auch f ganzzahlig.
6. Fl ¨usse in Netzwerken
194
Matchings
Das gewichtete Zuordnungsproblem
Das gewichtete Zuordnungsproblem lautet:
• In einen Knoten v ∈ T kann dann nicht mehr als 1 hineinfließen.
• Gegeben sei ein vollständiger bipartiter Graph, d.h. für alle s ∈ S und
t ∈ T gibt es eine Kante, die s und t verbindet.
• Aus einem Knoten v ∈ S kann nicht mehr als 1 herausfließen.
• Daraus folgt, daß die Kanten zwischen S und T mit Fluß 1 ein Matching bilden.
• Auf den Kanten ist eine Gewichtsfunktion definiert.
• Man finde ein Matching maximaler Mächtigkeit mit minimalem Gesamtgewicht.
• Die Anzahl dieser Kanten ist gleich dem Flußwert Φ(f).
• Damit stellen diese Kanten ein Matching maximaler Mächtigkeit dar.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
193
• Beispiel: Man verbindet im Heiratsproblem alle Männer mit allen
Frauen und drückt den Grad der Zuneigung durch ein Antipathiegewicht aus.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
195
6. Fl ¨usse in Netzwerken
Matchings
• Es sind dann alle zu verheiraten und zwar so, daß die Gesamtantipathie möglichst klein und somit die Gesamtzuneigung möglichst groß
ist.
• Zur Lösung von gewichteten Zuordnungsproblemen wendet man
ähnliche Verfahren wie bei der Berechnung von Maximalflüssen und
wie beim ungewichteten Zuordnungsproblem an.
• Ein sehr bekanntes Verfahren ist der ungarische Algorithmus.
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
6. Fl ¨usse in Netzwerken
196
Matchings
Zusammenfassung
• Flußnetzwerk und Maximalfluß
• Zunehmender Weg als Grundlage zur Berechnung von maximalen
Flüssen
• Berechnung maximaler Flüsse mit dem Markierungsalgorithmus
• max flow = min cut
• Anwendung des Maximalflußproblems zur Berechnung maximaler
Matchings
Einf ¨uhrung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04
197
Herunterladen