Diskrete Strukturen (WS 2009/10)

Werbung
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 242 –
7: Graphen
Definition 103
Ein Graph besteht aus
I einer nichtleeren Menge V
(“Vertices”) von Knoten und
I einer Menge E von Kanten
(“Edges” – Verbindungen
zwischen den Knoten),
d.h., zwei-elementigen
Mengen {v , w} mit v 6= w.
Der Grad deg(v ) eines Knotens
v ∈ V ist die Anzahl der
Kanten, die v mit anderen
Knoten verbinden.
7: Graphen
Beispiel:
Ein Graph mit
V = {1, 2, 3, 4, 5, 6} und
E = {{1, 2}, {1, 5}, . . . , {4, 6}}.
Es ist deg(1) = 2, . . . ,
deg(5) = 3, deg(6) = 1.
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 243 –
Vollständige Graphen
B
A
Definition 104
Sei (V , E) ein Graph.
I
(V , E) ist vollständig,
wenn es für alle v , w ∈ V
eine Kante {v , w} in E gibt.
C
F
D
E
7: Graphen
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 244 –
Wege in Graphen
Definition 105
Sei (V , E) ein Graph.
I
I
Es gibt einen Weg der Länge 1 zwischen v und w in V ,
wenn eine Kante {v , w} in E existiert.
Es gibt einen Weg der Länge n > 1 zwischen v und w in V ,
wenn ein x in V existiert, so dass es
I
I
I
7: Graphen
einen Weg der Länge n − 1 zwischen x und w und
einen Weg der Länge 1 zwischen x und v
gibt.
Ein Graph ist zusammenhängend,
wenn für alle v , w ∈ V ein Weg zwischen v und w existiert.
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 245 –
Beispiele
Ein zusammenhängender Graph.
Es gibt unendlich viele Wege zwischen 1
und 6. Der kürzeste davon hat die Länge 3.
B
A
Ein Graph, der nicht zusammenhängt.
Es gibt, z.B., keinen Weg zwischen A und B.
C
F
D
E
7: Graphen
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
7.1: Die Entwicklung der Graphentheorie
7: Graphen
7.1: Die Entwicklung der Graphentheorie
– 246 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 247 –
Das Königsberger Brückenproblem
(Euler, 1736)
Gibt es einen Rundgang durch
Königsberg, der jede der 7
Brücken über die Pregel genau
einmal benutzt?
7: Graphen
7.1: Die Entwicklung der Graphentheorie
Die offensichtliche Modellierung
des Problems ist kein Graph
sondern ein “Multigraph” (er hat
Mehrfachkanten).
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Modelliere das Problem als Graph!
Jede Mehrfachkante kann man durch einen Knoten mit zwei
Kanten ersetzen. So erhält man tatsächlich einen Graphen, in
dem jeder Kreis einem Kreis im Mehrfachgraphen entspricht.
Gesucht ist ein Weg, der jede Kante genau einmal
durchläuft und zum Ausgangspunkt zurückführt!
7: Graphen
7.1: Die Entwicklung der Graphentheorie
– 248 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 249 –
Kreise in Graphen
Definition 106
Sei (V , E) ein Graph.
I
I
I
7: Graphen
Sei v ∈ V . Ein Kreis ist ein Weg der Länge n ≥ 1 zwischen
v und v , in dem jede Kante höchstens einmal durchlaufen
wird.
Ein Eulerkreis ist ein Kreis der Länge |E|. D.h., jede Kante
wird genau einmal durchlaufen.
Ein Hamiltonkreis ist ein Weg von v nach v , der jeden
Knoten w ∈ V \{v } genau einmal besucht.
7.1: Die Entwicklung der Graphentheorie
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Gibt es einen Eulerkreis? Die Antwort!
Satz 107 (Euler)
Sei (G, V ) ein
zusammenhängender Graph.
Es gibt genau dann einen
Eulerkreis, wenn jeder Knoten
graden Grad hat.
Folgerung
In Eulers Königsberg gibt es
keine Rundreise über jede
Brücke.
Denn wir haben 4 Knoten von
ungeradem Grad.
7: Graphen
7.1: Die Entwicklung der Graphentheorie
– 250 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Vom Euler- zum Hamiltonkreis
Wir wissen also, wie wir herausfinden können, ob es einen
Eulerkreis gibt. Aber:
Gibt es in diesem Graph einen Hamiltonkreis?
Nein! (Kann man durch “scharfes Hinsehen” erkennen.)
7: Graphen
7.1: Die Entwicklung der Graphentheorie
– 251 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 252 –
Allgemein: Die Hamiltonkreis-Frage
Sei ein Graph (V , E) gegeben.
Die Frage, “gibt es einen Eulerkreis in (G, V )” können wir sehr
einfach (und vor allem sehr effizient) beantworten.
Wenn wir statt jeder Kante, nur jeden Knoten besuchen wollen,
dann suchen wir nach einem Hamiltonkreis. Obwohl
Hamiltonkreise und Eulerkreise ähnlich zu sein scheinen – man
vertauscht ja nur Kanten und Knoten –, ist der
Schwierigkeitsgrad beider Probleme tatsächlich total
verschieden:
Die Frage, ob es einen Hamiltonkreis gibt, gehört zu einer
Kategorie von Problemen, die als besonders schwer zu lösen
gelten, den “NP-harten” Problemen.
7: Graphen
7.1: Die Entwicklung der Graphentheorie
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
7.2: Eigenschaften von Graphen
Satz 108
In jedem Graphen (V , E) gilt
X
deg(v ) = 2 ∗ |E|.
v ∈V
Insbesondere ist die Anzahl an Knoten mit ungeradem Grad
grade.
Satz 109
Ist der Graph (V , E) zusammenhängend, dann gilt
|V | ≤ |E| + 1.
7: Graphen
7.2: Eigenschaften von Graphen
– 253 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 254 –
Die Anzahl der Kanten in vollständigen
Graphen
Satz 110
Jeder vollständige Graph (V , E) ist zusammenhängend und hat
genau
|V | ∗ (|V | − 1)
|E| =
Kanten.
2
Mehr Kanten kann ein Graph mit |V | Knoten nicht haben.
(Induktiv;
7: Graphen
(v −1)(v −2)
2
+ (v − 1) =
7.2: Eigenschaften von Graphen
(v )(v −1)
.)
2
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 255 –
7.3: Bäume – eine der wichtigsten
Datenstrukturen der Informatik
Definition 111
Wir bezeichnen einen zusammenhängenden Graphen als
Baum, wenn der Graph keinen Kreis enthält.
Sind (V , E) ein Graph und (V , E 0 ) mit E 0 ⊆ E ein Baum,
bezeichnen wir (V , E 0 ) als Spannbaum von (V , E).
Ein Tripel (R, V , E), wobei (V , E) ein Baum ist und R ∈ V die
“Wurzel” des Baumes, bezeichnen wir als Wurzelbaum.
Satz 112
Ein Baum mit |V | = n Knoten enthält immer genau |E| = n − 1
Kanten.
In jedem zusammenhängenden Graphen existiert ein
Spannbaum.
7: Graphen
7.3: Bäume
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 256 –
Abstrakte Sicht auf einen (Wurzel-)Baum
Wurzel
Blätter
Man beachte: Die Wurzel ist ein beliebiger Knoten im Baum.
Aber die Festlegung der Wurzel impliziert eine Richtung für die
Kanten (immer von der Wurzel weg).
7: Graphen
7.3: Bäume
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Ein binärer Suchbaum
Darstellung einer Menge M = {1, 3, 4, 6, 7, 8, 10, 13, 14};
Voraussetzung: Transitive Ordnungsrelation “<” über der
Grundmenge (hier: N)!
Kann für große M die
Frage “x ∈ M” sehr
schnell beantworten.
Beispiel:
I Ist 5 ∈ M?
I 5 < 8
I 5 > 3
I 5 < 6
I 5 > 4; Blatt erreicht!
⇒ 5 6∈ M!
7: Graphen
7.3: Bäume
– 257 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Der “Parse Tree” für “while (x < 3): f(x)”
7: Graphen
7.3: Bäume
– 258 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
7.4: Das TSP
(“Traveling Salesman Problem”)
Gibt es in dieser Inselgruppe einen Hamiltonpfad?
Ja, z.B. A→H→C→G→F→E→D→B→A
TSP: Was ist der “billigste” Hamiltonpfad?
7: Graphen
7.4: Das TSP
– 259 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 260 –
Graphen mit Kantenbewertung
Definition 113
Ein Graph mit Kantenbewertung ist ein Tripel (V , E, K ), wobei
(V , E) ein vollständiger Graph ist, und K : E → N0 eine
Funktion, die jeder Kante ihre Kosten zuordnet.
Bemerkung
In der Praxis ist der betrachtete Graph nicht immer vollständig,
so auch in unserer “Inselgruppe”.
Dann muss man die Kosten nicht vorhandener Kanten
“astronomisch hoch” festlegen.
7: Graphen
7.4: Das TSP
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Gibt es eine kürzere Route?
7: Graphen
7.4: Das TSP
– 261 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 262 –
Typische Aufgaben für die Informatik
Sei ein Graph (V , E, K ) mit Kantenbewertung gegeben. Es gibt
I
I
I
I
7: Graphen
Entscheidungsprobleme: Sei ein Höchstpreis P gegeben.
Gibt es einen Weg oder einen Kreis in (V , E) (mit
bestimmten Eigenschaften), dessen Kosten ≤ P sind?
Suchprobleme: Sei ein Höchstpreis P gegeben. Finde
einen Weg oder einen Kreis in (V , E) (mit bestimmten
Eigenschaften), dessen Kosten ≤ P sind!
Optimierungsprobleme: Finde einen Weg oder einen
Kreis in (V , E) (mit bestimmten Eigenschaften), mit
minimalen Kosten.
Suche nach Näherungslösungen: Sei eine
Genauigkeitsschranke g gegeben. Finde einen Weg oder
einen Kreis in (V , E) (mit bestimmten Eigenschaften),
dessen Kosten höchstens die minimalen Kosten um
höchstens g % übersteigen.
7.4: Das TSP
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 263 –
Schlechte Nachricht für Odysseus:
Das TSP-Entscheidungsproblem ist
NP-hart!
Satz 114
Angenommen, es gibt einen Algorithmus A, der für jeden
vollständigen Graphen mit Kantenbewertung (V , E, K ) und jede
Schranke S effizient entscheidet, ob in dem Graph ein
Hamiltonkreis existiert, dessen Kosten höchstens S betragen.
Dann gibt es einen Algorithmus B, der für einen beliebigen
Graphen (V 0 , E 0 ) effizient entscheidet, ob (V 0 , E 0 ) einen
Hamiltonkreis enthält.
7: Graphen
7.4: Das TSP
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
7.5: Minimale Spannbäume
7: Graphen
7.5: Minimale Spannbäume
– 264 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
– 265 –
7.6: Eine Näherungslösung für
geographische TSP
Satz 115
Sei (V , E, K ) ein Graph mit Kantenbewertung (V , E, K ), in dem
die Dreiecksungleichung gilt. D.h.:
∀u, v , w ∈ V :
K ({u, v }) + K ({v , w}) ≥ K ({u, w}).
Sei (V 0 , E) ein minimaler Spannbaum von (V , E, K ) mit den
Kosten S. Dann gilt:
1. Die Kosten des billigsten Hamiltonkreises liegen zwischen
S und 2S.
2. Gegeben (V 0 , E) kann man effizient einen Hamiltonkreis mit
den Kosten ≤ 2S konstruieren.
7: Graphen
7.6: Eine Näherungslösung für geographische TSP
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
Gute Nachricht für Odysseus: Ein
minimaler Spannbaum!
7: Graphen
7.6: Eine Näherungslösung für geographische TSP
– 266 –
Stefan Lucks
Diskrete Strukturen (WS 2009/10)
7.7: Anregung zum Selber-Lesen (und
Quellen einiger der zitierten Bilder)
I
I
7: Graphen
Grötschel, Padberg: “Die optimierte Odyssee”.
hhttp://www.zib.de/groetschel/
pubnew/paper/groetschelpadberg1999a.pdfi
Langkau, Skutella: “Minimal aufspannende Bäume”.
hhttp://www-i1.informatik.rwth-aachen.de/
˜algorithmus/algo21.phpi
7.7: Anregung zum Selber-Lesen
– 267 –
Herunterladen