Das Hamiltonische-Kreis-Problem - Institut für Informatik

Werbung
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!
Herunterladen