02.12.2012 Aufrufe

TI12 A82.pdf - FH Aachen

TI12 A82.pdf - FH Aachen

TI12 A82.pdf - FH Aachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!