3. Kreis- und Wegeprobleme Kapitelübersicht 3. Kreis- und Wegeprobleme 3 Kreis- und Wegeprobleme Eulerwege 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ührung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 57 3. Kreis- und Wegeprobleme Leonard Euler Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 Eulerwege 59 3. Kreis- und Wegeprobleme Eulerwege Beispiel 3.1. Der Graph des Königsberger Brückenproblems scheint nicht eulersch zu sein, er scheint auch keinen eulerschen Weg zu enthalten. Das Königsberger Brückenproblem Das “Haus des Nikolaus” enthält einen eulerschen Weg. c Norden Insel Osten b d a e f g Das “Haus des Nikolaus mit Keller” ist eulersch: Süden Weitere Graphen: ✎. Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 58 Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 60 3. Kreis- und Wegeprobleme Eulerwege 3. Kreis- und Wegeprobleme Eulerwege 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ührung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 3. Kreis- und Wegeprobleme 61 Eulerwege Beweis. 1. “=⇒”: G habe einen eulerschen Kreis K = (v0, v1, . . . , vm−1 , v0). Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 63 3. Kreis- und Wegeprobleme Eulerwege Wenn K alle Kanten aus E enthält, so ist K ein Eulerkreis. • Dann ist G bis auf isolierte Knoten zusammenhängend und • 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. Ansonsten bildet man den Restgraphen G 0 = (V, E \ EK). 2. “⇐=”: Beweis durch vollständige Induktion über die Zahl der Knoten. Induktionsanfang: Der Graph G = ({v0}, {}) ist eulersch, denn (v0) ist ein eulerscher Kreis. Induktionsannahme: Für Graphen mit höchsten n Knoten gelte die Behauptung. Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 62 v1 v5 v0 Für die Komponenten des Restgraphen gilt die Induktionsannahme. v4 v7 Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 v2 v3 v6 64 3. Kreis- und Wegeprobleme Eulerwege 3. Kreis- und Wegeprobleme Eulerwege 0 3. Setze K := 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. Man läuft entlang K bis zu solch einem Knoten, dann entlang des Kreises des Restgraphen und anschließend wieder entlang K. v3 v10 v5 v0 Füge K 00 in den Kreis K 0 an der Stelle w ein. Setze w 0 := w. v2 v6 v1 v9 v8 v11 Gehe zu 2. v4 v7 2 Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 3. Kreis- und Wegeprobleme 65 Eulerwege Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 67 3. Kreis- und Wegeprobleme Eulerwege Berechnung eines Eulerweges Bemerkung 3.1. Übungsaufgabe: Algorithmus von Hierholzer in Pseudo-Code. 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. Beispiel 3.2. Wir demonstrieren den Algorithmus von Hierholzer an dem folgenden Graphen: b c d 1. Wähle einen beliebigen Knoten v0 ∈ V. a Wähle solange dies möglich ist Knoten v1, v2, . . ., so daß (v0, . . . , vi) jeweils ein Weg in G ist. Unter den gegebenen Voraussetzungen entsteht so automatisch ein Kreis K. Setze w 0 := v0. e h g 2. Prüfe, ob K ein eulerscher Kreis ist. Wenn ja, dann STOP, ansonsten gehe zu 3. Tafel ✎. Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 66 f 68 3. Kreis- und Wegeprobleme Eulerwege Eigenschaften des Algorithmus von Hierholzer 3. Kreis- und Wegeprobleme Eulerwege Beispiel 3.3. Gegeben ist die folgende Menge an Spielsteinen: [A : B] [D : D] Satz 3.2. Algorithmus 3.1 ist korrekt, d.h. bei erfüllten Voraussetzungen wird ein eulerscher Kreis konstruiert. [A : D] [B : C] [B : C] [A : C] [C : D] [B : D] [A : A] Zugehöriger Graph: B Beweis. Tafel ✎. 2 C • Jede Kante entspricht einem Spielstein. Satz 3.3. Die Zeitkomplexität von Algorithmus 3.1 beträgt O(|E|). • Eulerweg entspricht einer ununterbrochenen Dominokette. Beweis. Siehe Übungen. 2 A D Anwendungen in der Praxis: Berechnung von Prozessketten mit möglichst wenigen Unterbrechungen. Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 3. Kreis- und Wegeprobleme 69 Eulerwege Anwendung von Eulerwegen • 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. • Man darf zwei Spielsteine aneinander legen, wenn die sich berührenden Hälften das gleiche Symbol aufweisen. • Kann man die Steine der Menge S zu einer ununterbrochenen Kette zusammenlegen? Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 70 Einführung in die Graphentheorie — FH Bonn-Rhein-Sieg, WS 03/04 71