• 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