TI12 A82.pdf - FH Aachen
TI12 A82.pdf - FH Aachen
TI12 A82.pdf - FH Aachen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>FH</strong> <strong>Aachen</strong><br />
Fachbereich Elektrotechnik und Informationstechnik<br />
Studiengang Information Systems Engineering (M.Eng.)<br />
Theoretische Informatik<br />
Beweis ungerichteter Hamiltonkreis und<br />
Traveling-Salesman-Problem sind<br />
NP-schwer<br />
Christian Lück, Tobias Neumann, Marcel Stüttgen<br />
<strong>Aachen</strong>, den 19. Juni 2012
INHALTSVERZEICHNIS<br />
Inhaltsverzeichnis<br />
Inhaltsverzeichnis I<br />
1 Einleitung 1<br />
2 Ungerichteter Hammiltonkreis 2<br />
2.1 Beweis NP-Schwere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
2.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
3 Traveling-Salesmann-Problem 6<br />
3.1 Beweis NP-Schwere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
3.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Anhang II<br />
Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II<br />
- I -
1 Einleitung<br />
1 EINLEITUNG<br />
In dieser Ausarbeitung wird bewiesen, dass sowohl das Problem des ungerichteten Hamiltonkreises<br />
(hamilton circle, HC), als auch das Traveling-Salesman-Problem (TSP) NPschwer<br />
sind.<br />
Hierzu wird im Folgenden zuerst gezeigt, dass sich das Problem des gerichteten Hamiltonkreises<br />
(directed hamilton circle, DHC) in polynomieller Zeit auf das Problem des<br />
ungerichteten Hamiltonkreises (HC) transformieren lässt.<br />
DHC ≤p HC<br />
Anschließend wird eine Transition angegeben, mit der sich das HC-Problem ebenfalls in<br />
polynomieller Zeit auf das Traveling-Salesman-Problem (TSP) transformieren lässt.<br />
HC ≤p T SP<br />
Die folgenden Transformationen sind nicht Bestandteil dieser Ausarbeitung und werden<br />
als gegeben vorrausgesetzt.<br />
SAT ≤p 3KNF -SAT ≤p DHC<br />
Satz 1.0.1 (Satz von Cook). Das SAT Problem ist NP-vollständig.<br />
Satz 1.0.2. Das 3KNF-SAT Problem ist NP-vollständig.<br />
Satz 1.0.3. Das DHC Problem ist NP-vollständig.<br />
Um zu beweisen, dass sowohl HC als auch TSP NP-schwer sind, ist zu zeigen, dass folgende<br />
Aussage gilt.<br />
SAT ≤p 3KNF -SAT ≤p DHC ≤p HC ≤p T SP<br />
- 1 -
2 UNGERICHTETER HAMMILTONKREIS<br />
2 Ungerichteter Hammiltonkreis<br />
Definition 2.0.1 (HC). Gegeben sei ein ungerichteter Graph G = (V, E) mit n Knoten<br />
(n = |V |).<br />
Frage: Existiert in G eine Permutation der Knoten π = � �<br />
vπ(1), vπ(2), . . . , vπ(n) , so dass<br />
für i ∈ {1, 2, . . . , n − 1} gilt:<br />
� � � �<br />
vπ(i), vπ(i+1) ∈ E und vπ(n), vπ(1) ∈ E ?<br />
Anders gefragt: Gibt es in G eine Rundreise, so dass alle Knoten auf der Rundreise in G<br />
genau ein mal enthalten sind?<br />
Satz 2.0.4. HC ist NP-schwer.<br />
2.1 Beweis NP-Schwere<br />
Beweis 2.1.1 (HC ist NP-schwer). Gegeben sei ein gerichteter Graph GDHC = (V, E).<br />
Diese Eingabe wird in polynomieller Zeit in den Graphen GHC umgewandelt, der eine<br />
gültige Eingabe für HC ist, d.h. GDHC ≤p GHC. Dabei werden alle Knoten aus V durch<br />
drei neue Knoten ersetzt. Vorgegangen wird dabei nach folgendem Muster:<br />
.<br />
Zu zeigen ist:<br />
v<br />
(a) Knoten in GDHC<br />
.<br />
.<br />
vin<br />
v<br />
(b) Knoten in GHC<br />
Abbildung 1: Transformation GDHC in GHC<br />
vout<br />
GDHC enthält einen Hamiltonkreis ⇔ GHC enthält einen Hamiltonkreis.<br />
Dazu wird zuerst die Hinrichtung gezeigt:<br />
GDHC enthält einen Hamiltonkreis ⇒ GHC enthält einen Hamiltonkreis.<br />
Ein Hamiltonkreis in GDHC kann in einen Hamiltonkreis in GHC transformiert werden,<br />
indem jeder Knoten v ∈ V (. . . , v, . . . ) durch (. . . , vin, v, vout, . . . ) ersetzt wird.<br />
Um die Äquivalenz zu zeigen, wird nun auch die Rückrichtung gezeigt:<br />
GDHC enthält einen Hamiltonkreis ⇐ GHC enthält einen Hamiltonkreis.<br />
In dem Graphen GHC kann es keinen Hamiltonkreis geben, der einen Knoten vin durchläuft<br />
ohne vorher oder anschließend den Knoten v zu durchlaufen. Genause kann es keinen<br />
Hamiltonkreis geben, der einen Knoten vout durchläuft ohne vorher oder anschließend den<br />
Knoten v zu durchlaufen. Hamiltonkreise in GHC können dadurch in zwei Fälle eingeteilt<br />
werden.<br />
- 2 -<br />
.
2 UNGERICHTETER HAMMILTONKREIS<br />
1. Ein Hamiltonkreis in GHC der einen Knoten durch vin beginnend durchläuft, durchläuft<br />
alle Knoten von vin beginnend.<br />
2. Ein Hamiltonkreis in GHC der einen Knoten durch vout beginnend durchläuft, durchläuft<br />
alle Knoten von vout beginnend. Dieser Hamiltonkreis kann allerdings rückwärts<br />
duchlaufen werden, sodass alle Knoten mit vin beginnend durchlaufen werden.<br />
Es existiert also nur genau dann ein Hamiltonkreis in GHC, wenn auch ein Hamiltonkreis<br />
in GDHC existiert. �<br />
2.2 Beispiel<br />
Betrachten wir zunächst die Hinrichtung:<br />
GDHC enthält einen Hamiltonkreis ⇒ GHC enthält einen Hamiltonkreis.<br />
Hierzu betrachten wir den folgenden gerichteten Graph GDHC:<br />
Abbildung 2: Beispiel gerichteter hamiltonscher Graph<br />
Offensichtlich enthält GDHC einen Hamiltonkreis.<br />
Als nächstes benötigen wir eine äquivalente Darstellung für ungerichtete Hamiltonkreise.<br />
Hierzu ersetzen wir jeden Knoten lokal durch ein 3er-Tupel (siehe Abb. 1). Dabei<br />
werden alle gerichteten eingehenden Kanten des ursprünglichen Knotens zu ungerichteten<br />
Eingängen des 3er-Tupels auf der linken Seite, und alle ausgehenden gerichteten Kanten<br />
des ursprünglichen Knotens zu ungerichteten Ausgängen auf der rechten Seite. Ein Knoten<br />
zählt in dieser Darstellung als ” besucht“, wenn alle drei ” Teilknoten“ des Tupels genau ein<br />
mal durchlaufen werden. Ein Weg π muss das Tupel also entweder von links nach rechts,<br />
oder von rechts nach links vollständig durchlaufen.<br />
- 3 -
2 UNGERICHTETER HAMMILTONKREIS<br />
Wir wenden dieses Transformation auf unseren gerichteten Graphen GDHC an und erhalten<br />
den ungerichteten Graphen GHC:<br />
Abbildung 3: Beispiel ungerichteter hamiltonscher Graph<br />
Wir können nun sowohl ” links-“ als auch ” rechtsherum“ den Graphen durchlaufen und<br />
finden in beiden Fällen einen (ungerichteten) Hamiltonkreis.<br />
Betrachten wir nun die Rückrichtung der Äquivalenz. Wir möchten also zeigen dass gilt:<br />
GDHC enthält einen Hamiltonkreis ⇐ GHC enthält einen Hamiltonkreis.<br />
Diese Aussage ist hingegen äquivalent zu:<br />
GDHC enthält keinen Hamiltonkreis ⇒ GHC enthält keinen Hamiltonkreis.<br />
Um dies zu zeigen, betrachten wir exemplarisch einen neuen Graphen GDHC:<br />
Abbildung 4: Beispiel gerichteter Graph, der nicht hamiltonsch ist<br />
Offensichtlich besitzt unser Graph GDHC keinen gerichteten Hamiltonkreis, da der Knoten<br />
1 von keinem anderen Knoten aus erreichbar ist.<br />
- 4 -
2 UNGERICHTETER HAMMILTONKREIS<br />
Wenden wir unsere Tupel-Transformation (siehe Abb. 1) nun erneut auf den Graphen<br />
GDHC an, so erhalten wir einen veränderten Graphen GHC:<br />
Abbildung 5: Beispiel ungerichteter Graph, der nicht hamiltonsch ist<br />
Startet man nun z.B. vom Knoten 1 aus, so gibt es weder ” links-“ noch ” rechtsherum“<br />
eine Möglichkeit alle Tupel zu durchlaufen.<br />
- 5 -
3 TRAVELING-SALESMANN-PROBLEM<br />
3 Traveling-Salesmann-Problem<br />
Definition 3.0.1 (TSP). Gegeben sei ein vollständiger ungerichteter Graph G = (V, E)<br />
mit n Knoten (n = |V |), eine Funktion c(vπ(i), vπ(j)), die die Kosten der Kante zwischen<br />
den Knoten i und j bestimmt, und eine obere Schranke k.<br />
Frage: Gibt es eine Rundreise π, so dass gilt:<br />
� �<br />
n−1 �<br />
c(vπ(i), vπ(i+1)) + c(vπ(k), vπ(1)) ≤ k ?<br />
i=1<br />
Anders gefragt: Gibt es in G eine Rundreise, deren Kosten ≤ k sind?<br />
Satz 3.0.1. TSP ist NP-schwer.<br />
3.1 Beweis NP-Schwere<br />
Beweis 3.1.1 (TSP ist NP-schwer). Gegeben sei ein ungerichteter Graph GHC = (VHC, EHC)<br />
mit n Knoten, d.h. n = |V |. Diese Eingabe wird in polynomieller Zeit in einen Graphen<br />
GT SP umgewandelt, der eine gültige Eingabe für TSP ist, d.h. HC ≤p T SP . Dabei werden<br />
die Kosten einer Kante gesetzt als (c(i, j) ∈ {0, 1}):<br />
Zu zeigen ist:<br />
�<br />
0 wenn(vi, vj) ∈ EHC<br />
c(i, j) =<br />
1 sonst<br />
GHC enthält einen Hamiltonkreis ⇔ GT SP enthält eine Rundreise mit den Kosten ≤ 0.<br />
Dazu wird zuerst gezeigt:<br />
GHC enthält einen Hamiltonkreis ⇒ GT SP enthält eine Rundreise mit den Kosten ≤ 0.<br />
Sei (v π(1), v π(2), . . . , v π(n), v π(1)) ein Hamiltonkreis in GHC. Alle Kanten, die im Hamiltonkreis<br />
enthalten sind, sind in dem Graphen GHC enthalten. Für i ∈ {1, 2, . . . , n − 1} heißt<br />
das:<br />
(v π(i), v π(i+1)) ∈ EHC und (v π(n), v π(1)) ∈ EHC.<br />
Somit haben alle im Hamiltonkreis enthaltenen Kanten das Gewicht 0, was bedeutet:<br />
c(i, i + 1) = 0 und c(n, 1) = 0.<br />
Dadurch ist die Summe der Gewichte der Kanten ebenfalls 0:<br />
� �<br />
n−1 �<br />
c(i, i + 1) + c(n, 1) = 0<br />
Somit existiert in GT SP eine Rundreise mit den Kosten ≤ 0.<br />
i=1<br />
Um die Äquivalenz zu zeigen, wird nun auch die Rückrichtung gezeigt:<br />
GHC enthält einen Hamiltonkreis ⇐ GT SP enthält eine Rundreise mit den Kosten ≤ 0.<br />
- 6 -
3 TRAVELING-SALESMANN-PROBLEM<br />
Es existiert eine Rundreise in GT SP mit Kosten ≤ 0. Dann ist die Summe der Gewichte<br />
aller in dieser Rundreise enthaltenen Kanten ≤ 0:<br />
� �<br />
n−1 �<br />
c(i, i + 1) + c(n, 1) ≤ 0.<br />
i=1<br />
Da die Kosten der Rundreise ≤ 0 sind und c(i, j) ∈ {0, 1} ist, können nur Kanten mit den<br />
Kosten 0 enthalten sein. Damit sind nur Kanten des Graphen GHC enthalten:<br />
(vi, vi+1) ∈ EHC und (vn, v1) ∈ EHC.<br />
Also ist GHC hamiltonsch. �<br />
3.2 Beispiel<br />
E<br />
D<br />
A<br />
(a) Graph<br />
B<br />
C<br />
E<br />
D<br />
0<br />
A<br />
0<br />
0 0<br />
0<br />
0<br />
0<br />
B<br />
C<br />
(b) Kanten bekommen Gewicht<br />
0<br />
0<br />
E<br />
1<br />
D<br />
0<br />
1<br />
A<br />
0<br />
0 0<br />
0<br />
0<br />
0<br />
B<br />
C<br />
(c) Neue Kanten bekommen<br />
das Gewicht 1<br />
Abbildung 6: Beispiel: Hamilton-Problem zu TSP<br />
- 7 -<br />
0
ABBILDUNGSVERZEICHNIS<br />
Abbildungsverzeichnis<br />
1 Transformation GDHC in GHC . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
2 Beispiel gerichteter hamiltonscher Graph . . . . . . . . . . . . . . . . . . . . 3<br />
3 Beispiel ungerichteter hamiltonscher Graph . . . . . . . . . . . . . . . . . . 4<br />
4 Beispiel gerichteter Graph, der nicht hamiltonsch ist . . . . . . . . . . . . . 4<br />
5 Beispiel ungerichteter Graph, der nicht hamiltonsch ist . . . . . . . . . . . . 5<br />
6 Beispiel: Hamilton-Problem zu TSP . . . . . . . . . . . . . . . . . . . . . . 7<br />
- II -