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 –