Graphentheorie: Das Hamiltonische-Kreis-Problem: Definitionen, Resultate und Anwendungen Dr. Gerold Jäger Habilitationsvorlesung Christian-Albrechts-Universität zu Kiel Institut für Informatik 21. April 2010 Ablauf 1. Wiederholung der letzten Vorlesung 2. Definition: Hamiltonisches-Kreis-Problem 3. Satz von Dirac mit Beweis 4. Anwendung 1: Springerproblem 5. Anwendung 2: Problem von Mr. No 6. Ausblick auf nächste Vorlesungen Elementare Definitionen aus letzter Vorlesung Sei G = (V , E ) Graph mit n := |V |, m := |E |. I u, v ∈ V benachbart, falls {u, v } ∈ E . I Grad von v ∈ V : Anzahl der Nachbarn von v . Notation: grad(v ). d c f a b e g h i I Minimal-Grad von G : minimaler Grad über alle Knoten von G . Notation: δ(G ). I v1 , v2 , . . . , vk ∈ V , k ≤ n, vi paarweise verschieden. P := (v1 , v2 , . . . , vk ): Pfad. (Notation: Aufeinanderfolgende Knoten seien durch eine Kante verbunden.) I v1 , v2 , . . . , vk ∈ V , k ≤ n, vi paarweise verschieden. K := (v1 , v2 , . . . , vk , v1 ): Kreis. I v1 , v2 , . . . , vk ∈ V , Z := (v1 , v2 , . . . , vk , v1 ): Zyklus. d c f a b e g h i h i Pfad (c,e,g,h) d c f a b e g Kreis (a,b,c,d,a) d c f a b e g h Zyklus (a,b,c,e,g,f,c,d,a) i I G zusammenhängend, falls es in G für je zwei verschiedene Knoten v , w ∈ V immer einen Pfad von v nach w gibt. I Bemerkung: Jeder Graph zerfällt in k disjunkte Zusammenhangskomponenten V1 , V2 , . . . , Vk ⊆ V mit V = V1 ∪ V2 ∪ · · · ∪ Vk . Es gibt für zwei Knoten genau dann einen verbindenden Pfad, wenn sie in derselben Zusammenhangskomponente liegen. Im Fall k = 1 ist der Graph zusammenhängend. d c f a b e g j k h i 2 Zusammenhangskomponenten Euler-Kreis-Problem (EKP) I Euler-Kreis: Zyklus, der alle Kanten durchläuft. I Euler-Kreis-Problem: Geg.: Zusammenhängender Graph G = (V , E ). Frage: Existiert in G ein Euler-Kreis? Theorem: Sei G = (V , E ) ein Graph. G enthält einen Euler-Kreis. ⇔ G ist zusammenhängend und jeder Knoten hat geraden Grad. Theorem: Sei G = (V , E ) ein Graph. Dann kann man in Laufzeit O(m) einen Euler-Kreis finden, sofern er existiert. Hamiltonisches-Kreis-Problem (HKP) Definition 1: Sei G = (V , E ) ein Graph. Ein Hamiltonischer Kreis ist ein Kreis mit n Knoten, d.h. ein Kreis, der alle Knoten besucht. I Hamiltonisches-Kreis-Problem: Geg.: Graph G = (V , E ). Frage: Existiert in G ein Hamiltonischer Kreis? I Vergleich: EKP: Zyklus, der alle Kanten durchläuft. Beispiel 1: Das-Haus-vom-Nikolaus e b c a d Hamiltonischer Kreis (a, b, e, c, d, a) Kein Euler-Kreis Beispiel 2 b a e c d f g Kein Hamiltonischer Kreis Euler-Kreis (a, b, c, e, f , g , c, d, a) Sir William Rowan Hamilton (1857): n m t r s l k a f b c e j d g h i q Dodekaeder p o n m t r s l k a f b c e j d g h i q p Hamiltonischer Kreis auf dem Dodekaeder o Satz 1 (Dirac, 1952): Sei G = (V , E ) ein Graph mit Minimalgrad δ(G ). Falls δ(G ) ≥ n/2 , dann hat G einen Hamiltonischen Kreis. Beweis-Plan: a) Zeige: G ist zusammenhängend. b) Nimm einen Pfad P1 in G . c) Konstruiere aus P1 einen Kreis K . d) Zeige: K ist Hamiltonisch. Anwendung 1: Springerproblem Mögliche Züge eines Springers beim Schachspiel Frage: Gibt es eine Springer-Tour, so dass der Springer an einem Feld des Schachbretts startet, jedes weitere Feld genau einmal besucht und schließlich auf sein Ausgangsfeld zurückkehrt. Modellgraph des Springerproblems I Formale Modellierung als HKP: Definiere G1 = (V , E1 ) mit |V | = 64 V = {vi,j | 1 ≤ i, j ≤ 8} und E1 = {vi,j , vi 0 ,j 0 } | 1 ≤ i, j, i 0 , j 0 ≤ 8 ∧ |i − i 0 | = 2, |j − j 0 | = 1 ∨ |i − i 0 | = 1, |j − j 0 | = 2 I I Es gilt: Es existiert eine Springer-Tour. ⇔ G1 enthält einen Hamiltonischen Kreis. Existenz einer Springer-Tour? Anwendung des Satzes von Dirac nicht möglich: δ(G1 ) = 2 < 32. Antwort: Ja. Springer-Tour Anwendung 2: Problem von Mr. No I Mr. No und Mr. Go sind zwei mystische japanische Detektive. I Mr. No wohnt in dem rechten unteren Eckfeld eines Schachbretts und Mr. Go in dem linken oberen Eckfeld. I Mr. No möchte Mr. Go besuchen, aber vorher auch alle anderen Felder des Schachbretts. I Er darf aber in jedem Schritt nur ein Feld vertikal oder nur ein Feld horizontal gehen. I Frage: Gibt es einen solchen Pfad für Mr. No? Mögliche Schritte von Mr. No Modellgraph des Problems von Mr. No I Formale Modellierung als HKP: Definiere G2 = (V , E2 ) mit |V | = 64 V = {vi,j | 1 ≤ i, j ≤ 8} und E2 = {vi,j , vi 0 ,j 0 } | 1 ≤ i, j, i 0 , j 0 ≤ 8 ∧ |i − i 0 | = 1, |j − j 0 | = 0 ∨ |i − i 0 | = 0, |j − j 0 | = 1 ∨ i = 1, j = 8, i 0 = 8, j 0 = 1 I Es gilt: Es existiert ein Pfad für Mr. No. ⇔ G2 enthält einen Hamiltonischen Kreis. I Existenz eines Pfads für Mr. No? Anwendung des Satzes von Dirac nicht möglich: δ(G2 ) = 2 < 32. Mr. Go und Mr. No auf einem Schachbrett Versuch 1 für einen Pfad für Mr. No Versuch 2 für einen Pfad für Mr. No Versuch 3 für einen Pfad für Mr. No I Antwort: Nein. I Warum? I Jeder Schritt von Mr. No wechselt die Farbe des besuchten Feldes. Bei Start auf einem weißen Feld müsste er nach 63 Schritten auf einem schwarzen Feld landen. Das obere linke Eckfeld ist aber weiß. Ausblick auf nächste Vorlesungen I HKP ist NP-hart. Polynomiale Reduktion von 3-SAT auf HKP I Definition Handelsreisendenproblem (HRP) Verallgemeinerung des HKP I HRP ist NP-hart. Polynomiale Reduktion von HKP auf HRP I Algorithmen für das HRP Kürzeste Rundreise durch 15.112 Städte in Deutschland 1050.000 mögliche Touren Zum Vergleich: 1078 Atome im Universum Vielen Dank für Ihre Aufmerksamkeit!