Pfade in Dreiecks- und Sechseckgittern

Werbung
Rheinische Friedrich-Wilhelms-Universität Bonn
Institut für Informatik I
Norman Jaklin
Pfade in Dreiecks- und
Sechseckgittern
19. Juni 2008
Seminararbeit im Sommersemester 2008
Zusammenfassung
Das Entscheidungsproblem, ob ein gegebener Graph einen Hamiltonischen Kreis enthält, ist als klassisches Problem der Informatik als
NP-vollständig bekannt.
Im Folgenden wird gezeigt, dass sowohl für allgemeine Dreiecksgitterals auch für hexagonale Gittergraphen das Problem NP-vollständig
bleibt. Für eine speziellere Klasse von Dreiecksgittergraphen, die Klasse der zusammenhängenden und lokal zusammenhängenden Dreiecksgittergraphen, lässt sich ein Hamiltonischer Kreis jedoch in polynomieller Zeit finden.
Inhaltsverzeichnis
1 Einführung
2
2 Hamiltonkreise in Dreiecksgittergraphen
2.1 Die NP-Vollständigkeit von HC auf Dreiecksgittergraphen . .
2.1.1 Einbettung von B in slope graph G1 . . . . . . . . . .
2.1.2 Skalierung von G1 , 7-Cluster und T entakel . . . . . .
2.1.3 Die Reduktion des Problems . . . . . . . . . . . . . .
2.2 Weitere Resultate zu Hamiltonkreisen auf Dreiecksgittergraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
5
8
12
16
3 Hamiltonkreise in hexagonalen Gittergraphen
19
3.1 Erstellung eines drawings D(B) aus B . . . . . . . . . . . . . 21
3.2 Simulation der einzelnen Elemente von D(B) durch gadgets
und Zusammensetzung zu G . . . . . . . . . . . . . . . . . . . 22
3.3 Die Reduktion des Problems . . . . . . . . . . . . . . . . . . . 23
4 Zusammenfassung und Ausblick
1
26
1
Einführung
In dieser Arbeit werden Dreicksgittergraphen und hexagonale Gittergraphen
in Bezug auf das Hamiltonkreisproblem näher untersucht. Als Hauptquellen
sind zum einen die Arbeit von Gordon, Orlovich und Werner [1] zu nennen, welche sich mit Dreiecksgittergraphen beschäftigt, und zum anderen
die Arbeit von Islam, Meijer, Núñez, Rappaport und Xiao [2], in denen
die hexagonalen Gittergraphen genauer untersucht werden. Beide Arbeiten
wurden im Jahre 2007 veröffentlicht.
Für allgemeine Graphen ist das Hamiltonkreisproblem als NP-vollständig
bekannt. In der Vergangenheit wurde die Komplexität des Problems in Hinblick auf spezielle Klassen von Graphen untersucht, darunter auch die Klasse der Gittergraphen, deren Knoten Punkte eines Gitters sind, welches eine
regelmäßige Kachelung der Ebene induziert, und deren Kanten jeweils Einheitslänge besitzen.
Itai, Papdimitriou und Szwarcfiter [3] zeigten 1981 die NP-Vollständigkeit
des Problems auf Rechtecksgittergraphen, also auf knoteninduzierten Subgraphen des unendlichen Rechtecksgitters, deren Knoten sich stets durch
ganzzahlige Werte beschreiben lassen und deren Kanten jeweils zwei Knoten
verbinden, deren Abstand genau 1 beträgt. Die in besagter Arbeit verwendete Beweisidee liegt in sehr ähnlicher Form auch dem Beweis von [1] und
somit den hier vorgestellten Ausführungen zugrunde.
Auch Polishchuk, Arkin und Mitchell [6] zeigten bereits im Jahr zuvor im
Rahmen der Canadian Conf erence on Computational Geometrie 2006 die
NP-Vollständigkeit des Problems auf Dreiecksgittergraphen und die polynomielle Lösbarkeit für eine spezielle Unterklasse von Dreiecksgittergraphen,
werden aber nicht in der hier zugrunde liegenden Arbeit von Gordon, Orlovich und Werner [1] erwähnt.
In den folgenden Kapiteln wird nun genauer auf die in den beiden Hauptquellen gezeigten Resultate eingegangen. In Kapitel 2 wird die NP-Vollständigkeit
des Hamiltonkreisproblems auf Dreiecksgittergraphen sowie einige weiterführende
Resultate gezeigt. Auch das Hamiltonpfadproblem von zwei gegebenen Knoten v nach w wird dort kurz betrachtet. Kapitel 3 beschäftigt sich mit der
NP-Vollständigkeit des Problems auf hexagonalen Gittergraphen.
Zunächst sei an dieser Stelle noch die Definition des Hamiltonkreisproblems gegeben, auf welches sich die nachfolgenden Kapitel beziehen.
Definition 1 Hamiltonian Cycle P roblem (im Folgenden kurz: HC)
Instanz: ein Graph G
Frage: Enthält G einen Hamiltonkreis, d.h. gibt es einen Kreis in G,
der alle Knoten genau einmal enthält?
2
2
Hamiltonkreise in Dreiecksgittergraphen
In diesem Kapitel wird das Hamiltonkreisproblem auf Dreiecksgittergraphen
genauer untersucht. Dazu definieren wir zunächst, was unter einem solchen
Graphen zu verstehen ist.
Definition 2 triangular tiling graph
Sei T ∞ = (V (T ∞ ), E(T ∞ )) ein unendlicher Graph, welcher die Ebene in
regelmäßige Dreiecke teilt und folgendermaßen definiert ist:
• V (T ∞ ) = { v = xp + yq | x, y ∈ ZZ, p = (1, 0), q = ( 12 ,
q
3
2)
}
• E(T ∞ ) = { (v, w) | v, w ∈ V (T ∞ ), |vw| = 1 }
Die Knoten von T ∞
q lassen sich also als Linearkombination xp + yq von
1
p = (1, 0) und q = ( 2 , 32 ) darstellen und sind jeweils paarweise genau dann
über eine Kante miteinander verbunden, wenn ihr Euklidischer Abstand
genau 1 beträgt. Ein endlicher Ausschnitt von T ∞ ist in Abbildung 1 zu
sehen.
Abbildung 1: Der Graph T ∞ (Quelle: [1])
Ausgehend von obiger Definition des triangluar tiling graph lässt sich
ein Dreiecksgittergraph (triangular grid graph) nun folgendermaßen definieren:
Definition 3 Dreiecksgittergraph
Ein Dreiecksgittergraph (triangular grid graph) G = (V, E) ist ein
endlicher knoteninduzierter Subgraph von T ∞ .
Wie Abbildung 2 zeigt, kann ein Dreiecksgittergraph G auch einzelne
isolierte Knoten (wie etwa Knoten w in Abbildung 2) sowie Liniensegmente
enthalten, welche keine Dreiecksstrukturen bilden.
3
Abbildung 2: Ein Dreiecksgittergraph (nach: [1], eigene Überarbeitung)
2.1
Die NP-Vollständigkeit von HC auf Dreiecksgittergraphen
In folgendem Theorem halten wir das zentrale Resultat von Kapitel 2 fest:
Theorem 4 Das Problem HC ist NP-vollständig für Dreiecksgittergraphen.
Beweis. Dass das Problem selbst in NP liegt, ist leicht einzusehen, da eine nichtdeterministische Turingmaschine die Lösung in polynomieller Zeit
finden kann.
Es bleibt also die NP-Härte des Problems zu zeigen. Dazu wird nun
im Folgenden eine polynomielle Reduktion vom Hamiltonkreisproblem auf
planaren, kubischen und bipartiten Graphen auf unser vorliegendes Problem (HC auf Dreiecksgittergraphen) durchgeführt.
Diese Reduktion zeigt die NP-Härte des Problems, da HC auf planaren,
kubischen und bipartiten Graphen bereits von Plesnik [5] als NP-Vollständig
bewiesen wurde.
Zur Erinnerung seien die obigen Begriffe an dieser Stelle noch einmal im
Einzelnen definiert:
Definition 5 Ein Graph G = (V, E) heißt...
• ...planar, wenn er sich kreuzungsfrei in die Ebene einbetten lässt.
• ...kubisch, wenn von jedem seiner Knoten genau drei Kanten ausgehen,
also: ∀ v ∈ V : deg(v) = 3
• ...bipartit, wenn gilt:
1. V =(V1 , V2 ), V1 ∩ V2 = ∅
2. ∀ (v, w) ∈ E [(v ∈ V1 ∧ w ∈ V2 ) ∨ (w ∈ V1 ∧ v ∈ V2 )]
4
Um die gewünschte Reduktion durchzuführen, wird nun zu einem gegebenen planaren, kubischen und bipartiten Graphen B ein Dreiecksgittergraph
G konstruiert, so dass gilt:
B enthält einen Hamiltonkreis ⇐⇒ G enthält einen Hamiltonkreis
Die Konstruktion von G gliedert sich in zwei Teilschritte, auf die nachfolgend
näher eingegangen wird:
1. Einbettung von B in einen sogenannten slope graph G1
2. Skalierung von G1 , Einfügen von 7-Clustern und T entakeln
2.1.1
Einbettung von B in slope graph G1
Zunächst definieren wir, was unter einem slope graph zu verstehen ist.
Definition 6 slope grid graph
Ausgehend von dem eingangs definierten Graph T ∞ (siehe Abbildung 1)
wird der unendliche slope grid graph S ∞ definiert, welchen man aus T ∞
durch Entfernen aller Kanten erhält, die von links oben nach rechts unten
laufen. Abbildung 3 verdeutlicht dies, wobei dort die zu entfernenden Kanten
gestrichelt eingezeichnet sind. Die Knotenmenge von S ∞ entspricht dabei
weiterhin der Knotenmenge von T ∞ , also gilt:
V (S ∞ ) = {v = xp + yq | x, y ∈ ZZ, p = (1, 0), q = ( 21 ,
q
3
2 )}
Abbildung 3: S ∞ entsteht aus T ∞ durch Entfernen der gestrichelten Kanten
(Quelle: [1])
Definition 7 slope graph
Ein slope graph S(m, n) ist ein endlicher knoteninduzierter Subgraph
von S ∞ .
5
Identifiziert man die Knoten von S(m, n) mit Paaren (x, y) von ganzzahligen Werten x und y, indem man die tatsächlichen Koordinaten eines Knoten außer Acht lässt und nur die in der Definition der Knotenmenge auftauchenden Werte x und y ∈ ZZ heranzieht, so hat ein Knoten (x, y) ∈ V (S ∞ )
die vier Nachbarknoten (x + 1, y), (x − 1, y), (x, y + 1) und (x, y − 1). Nun
können wir die Knotenmenge (und insbesondere die Bedeutung der ganzzahligen Parameter m und n) von S(m, n) definieren durch:
V (S(m, n)) = {(x + i, y + j) | 0 ≤ i ≤ m − 1, 0 ≤ j ≤ n − 1}
Ein solcher slope graph wird also durch m und n bis auf Isomorphie (denn
durch Wahl von x und y kann die genaue Position des Graphen in der Ebene
verschoben werden) bestimmt.
Im Beweis der NP-Vollständigkeit von HC auf Rechtecksgittergraphen
verwenden Itai et al. [3] einen ähnlichen Graphen R(m, n), welcher einen
durch m und n bestimmten Rechtecksgittergraphen beschreibt. Der hier
verwendete Graph S(m, n) ist zu diesem isomorph, da er nur durch eine Verschiebung der einzelnen quadratischen Kacheln zu Parallelogrammen
entsteht, indem die jeweilgen Punkte oben links in jedem Quadrat so weit
nach rechts geschoben werden, dass ihre x-Koordinate genau auf der Mitte
der Strecke zwischen den beiden unteren Punkten des Quadrats liegt (siehe
Abbildung 4).
Abbildung 4: Ein bipartiter slope Graph S(m, n) mit m=4 und n=5
Dass G1 bipartit ist, lässt sich leicht einsehen. Wählt man einen beliebigen Knoten v im slope graph G1 aus und ordnet ihm einer der beiden
Partitionen der Knotenmenge zu, so lassen sich alle übrigen Knoten, deren Distanz zu v gerade ist, ebenfalls in die gleiche Partition einordnen, die
restlichen Knoten mit ungerader Distanz zu v werden der anderen Partition
zugeordnet (man beachte, dass die Distanz zwischen zwei Knoten v und w
der Anzahl Kanten auf einem kürzesten Pfad zwischen v und w entspricht,
da nach Definition des slope graphs alle Kanten die Länge 1 haben). In Abbildung 4 wird dies verdeutlicht, wobei die Knotenmenge in eine Partition
von schwarzen und eine Partition von weißen Knoten unterteilt ist.
Nun können wir die Einbettung emb: B −→ G1 des bipartiten, kubischen, planaren Graphen B in einen slope graph G1 vornehmen. Wir wir
6
sehen werden, lässt sich B für n=|V (B)| in G1 (kn, kn) (für eine Konstante
k) einbetten.
Wähle emb nun so, dass gilt:
• emb bildet alle v ∈ V0 auf weiße Knoten von G1 ab.
• emb bildet alle v ∈ V1 auf schwarze Knoten von G1 ab.
• emb bildet alle e = (v, w) ∈ E auf Pfade zwischen emb(v) und emb(w)
in G1 ab, so dass zwei Pfade jeweils nur höchstens ihre Endpunkte
gemeinsam haben und ansonsten knotendisjunkt sind.
Abbildung 5: Ein bipartiter, kubischer, planarer Graph B und seine Einbettung G1 =emb(B)
Man beachte, dass emb so gewählt ist, dass auch die Partitionierung der
Knotenmenge erhalten bleibt, dass also für je zwei beliebige Knoten v und
w gilt:
v und w sind in der gleichen Partition ⇐⇒ emb(v) und emb(w) sind in der
gleichen Partition.
In Abbildung 5 ist ein Beispiel für eine solche Einbettung zu sehen.
Ganz ähnlich betten auch Itai et al. [3] ihren zugrunde liegenden bipartiten Graphen in einen Rechtecksgittergraphen ein. Dort wird gezeigt, dass
für einen bipartiten, kubischen, planaren Graphen mit n Knoten eine solche
Einbettung in einen Rechtecksgittergraphen R(kn, kn) für eine Konstante k in polynomieller Zeit realisiert werden kann. Da unser vorliegender
slope graph G1 isomorph zu R ist, gilt dieses Resultat folglich auch für G1 ,
7
und wir können B mit n Knoten in G1 (kn, kn) in polynomieller Zeit einbetten.
Somit ist Schritt 1 unserer Konstruktion abgeschlossen, und wir wenden
uns dem zweiten Schritt zu.
2.1.2
Skalierung von G1 , 7-Cluster und T entakel
Im nun folgenden Schritt wird der soeben konstruierte slope graph G1
zunächst um den Faktor 7 skaliert. Das heißt, jede Kante von G1 wird in
einen Pfad von je 7 Kanten transformiert.
Da das Ziel unserer Konstruktion ein Dreiecksgittergraph G ist, werden
in G1 nun die Kanten ergänzt, welche in einem Dreiecksgittergraph von oben
links nach unten rechts verlaufen. Dies geschieht ähnlich wie die Transformation von T ∞ zu S ∞ , nur dass die entsprechenden Kanten nun ergänzt
statt entfernt werden. Den resultierenden Graph nennen wir G01 .
Man beachte, dass in G01 beim momentanen Stand der Konstruktion zwei
Arten von Knoten auftreten: Zum einen sind dies Knoten, deren Urbilder
unter der Einbettungsfunktion emb bereits in B vorkommen, zum anderen
enthält G01 zahlreiche Knoten, die durch Anlegen der Pfade zwischen ersteren
Knoten und anschließender Skalierung entstanden sind.
Die eigentlichen, als Urbilder bereits in B auftauchenden Knoten, werden
nun jeweils durch ein 7-Cluster ersetzt (siehe Abbildung 6), also einer Menge
von sieben Knoten, von denen sechs im Kreis um einen zentralen Knoten
angeordnet sind. Die Farbe beziehungsweise Parität des zentralen Knotens
eines 7-Clusters wird dabei vom ursprünglichen Knoten übernommen und
die übrigen sechs Knoten entsprechend der vorherigen Konstruktion gefärbt.
Abbildung 6: Ein Knoten (x, y) und sein 7-Cluster (Quelle: [1])
Im letzten Schritt der Konstruktion von G werden jetzt die Kanten von
B, welche bisher als Pfade in G01 auftraten, durch sogenannte T entakel modelliert und die bisherigen Pfade in G01 mit diesen Tentakeln ersetzt. Ein
Tentakel ist aus einem bis mehreren strips aufgebaut, welche wir zunächst
einmal definieren wollen:
8
Definition 8 strip
Ein Dreiecksgittergraph D heißt strip, wenn D isomorph zum Graphen
Pk2 ist. Dabei ist Pk ein beliebiger Pfad über k ≥ 4 Knoten und sein
QuadratPk2 definiert als derjenige Graph mit Knotenmenge V (Pk2 )=V (Pk ),
in dem je zwei Knoten genau dann über eine Kante verbunden sind, wenn
ihre Distanz in Pk höchstens 2 beträgt.
Abbildungen 7 bis 9 zeigen exemplarisch die möglichen Orientierungen
eines strips für k=4, k=5 und k=6 Knoten. Wie man leicht sehen kann,
besitzt jeder strip genau zwei T erminaldreiecke (’Ohren’), also Dreiecke
mit je zwei Kanten, die zu keinem anderen Dreieck des strips gehören, und
mit denen der strip ’endet’ bzw ’terminiert’. Für k=4 besteht ein strip nur
aus seinen beiden Terminaldreiecken und besitzt keine weiteren internen
Dreiecke.
Abbildung 7: mögliche Orientierungen eines strips über 4 Knoten
Abbildung 8: Orientierungen eines strips über 5 Knoten (Quelle: [1])
Abbildung 9: Orientierungen eines strips über 6 Knoten (Quelle: [1])
Nun können wir definieren, was unter einem T entakel zu verstehen ist.
9
Definition 9 T entakel
Ein T entakel ist ein Dreiecksgittergraph, der aus einem oder mehreren
strips über je k Knoten aufgebaut ist, wobei die einzelnen strips durch Kanten ihrer Terminaldreiecke miteinander verbunden sind.
Abbildung 10 zeigt sechs verschiedene Möglichkeiten, wie mehrere strips
zu einem Tentakel zusammengesetzt werden. Die dort gezeigten Möglichkeiten
sind die einzigen, welche im Folgenden zur Konstruktion von G benötigt und
verwandt werden. Natürlich kann ein Tentakel auch einen Pfad in G01 ohne
Biegungenen repräsentieren, hierfür benötigt man jedoch nur ein einziges
strip, dessen Knotenzahl k entsprechend angepasst werden kann.
Abbildung 10: Zusammensetzungen von mehreren stips zu einem Tentakeln
(Quelle: [1])
Wir sind nun also in der Lage, die geradlinigen Pfade in G01 durch entsprechend gewählte Tentakel zu ersetzen. Als nächstes gilt es, auch die Pfade mit Biegungen, welche also unterwegs Richtungsänderungen vornehmen,
ebenfalls duch die soeben definierten Tentakel zu ersetzen.
Hierzu beachte man, dass in G01 aufgrund der Konstruktion nur vier
verschiedene Typen von Biegungen der Pfade auftauchen können. Diese vier
Typen sind in Abbildung 11 dargestellt.
Abbildung 11: Biegungen der Pfade im slope Graph (Quelle: [1])
Die bereits in Abbildung 10 gezeigten Tentakel lassen sich nun in der
Tat dazu verwenden, alle vier Pfad-Biegungen zu repräsentieren. Pfade vom
10
Typ I und II in Abbildung 11 sind sofort und ohne weiteres Zutun durch
Tentakel vom Typ 1 und 2 in Abbildung 10 repräsentiert. Für Pfade vom
Typ III setzt man hingegen Tentakel vom Typ 5 und 3 zusammen, für Pfade
vom Typ IV verwendet man entsprechend Tentakel vom Typ 4 und 6, so
wie es in Abbildung 12 dargestellt ist.
Abbildung 12: Zusammensetzung von Tentakeln zur Simulation von Pfaden
vom Typ III (links) und IV (rechts) (Quelle: [1])
Somit lassen nun alle Pfade in G01 durch entsprechende Tentakel ersetzen.
Um die Konstruktion von G abzuschließen ist nun noch zu klären, wie die
einzelnen Tentakel mit den 7-Clustern verbunden werden.
Hierzu betrachte die in Abbildung 13 aufgelisteten Möglichkeiten. Man
beachte, dass jeder 7-Cluster genau drei angrenzende Tentakel besitzt, da
die 7-Cluster Repräsentationen der Knoten in B sind und B wiederum als
kubisch angenommen war.
Abbildung 13: geeignete Verbindungen von T entakeln mit 7-Clustern
(Quelle: [1])
Wie man weiterhin sieht, reichen grundsätzlich vier Möglichkeiten der
Verbindung zwischen Tentakeln und 7-Clustern aus. Wichtig für den anschließenden Beweis ist jedoch, dass 7-Cluster mit schwarzem zentralen Knoten anders mit ihren drei angrenzenden Tentakeln verbunden werden als
die 7-Cluster mit weißem zentralen Knoten. Bei erstgenannten werden jeweils spezielle ’Brückenkanten’ zwischen 7-Cluster und Tentakel verwandt,
11
während bei den anderen 7-Clustern die Tentakel nahtlos an das Cluster gelegt werden. Dies hat den Grund, dass von 7-Clustern mit weißem zentralen
Knoten aus sogenannte Rückkehrpf ade definiert werden können, welche die
Knoten eines Tentakels vollständig besuchen, ohne das eigentliche 7-Cluster
mit schwarzem zentralen Knoten, was an das besuchte Tentakel angrenzt,
zu betreten (siehe später den entsprechenden Beweis der Reduktion für genauere Details).
Somit ergeben sich also insgesamt die acht in Abbildung 13 dargestellten
Möglichkeiten, die 7-Cluster mit den Tentakeln zu verbinden. Der resultierende Graph ist nun schließlich unser gewünschter Dreiecksgittergraph G
und die Konstruktion hiermit abgeschlossen. Abbildungen 14 und 15 zeigen die Skalierung G01 und den fertigen Graph G mit seinen Clustern und
Tentakeln für das zuvor demonstrierte Beispiel aus Abbildung 5.
Abbildung 14: Skalierung von G1 um Faktor 7 und Ergänzung der diagonalen
Kanten zum Dreiecksgittergraph
2.1.3
Die Reduktion des Problems
Nach der Konstruktion von G aus dem gegebenen Graphen B können wir
uns nun der eigentlichen Reduktion des Hamiltonkreisproblems zuwenden.
Es ist klar, dass die Konstruktion von G aus B nicht mehr als polynomielle
Zeit bezüglich der Anzahl Knoten und Kanten von B benötigt. Es bleibt
also zu zeigen:
B besitzt einen Hamiltonkreis ⇐⇒ G besitzt einen Hamiltonkreis (1)
Beweis. Zunächst definieren wir den Begriff des bereits im letzten Abschnitt
kurz erwähnten Rückkehrpf ads (return path) sowie den des Zickzackpf ads
(cross path).
12
Abbildung 15: der fertige Graph G mit 7-Clustern und Tentakeln
Sei T ein Tentakel und seien u und v zwei Knoten von T , welche die
äußeren Knoten von Terminaldreiecken von T bilden. Von solchen besitzt
jedes Tentakel genau vier. Man sieht leicht, dass es in T nur zwei Arten von
Hamiltonpf aden von u nach v geben kann, also Pfade von u nach v, die alle
Knoten von T beinhalten.
Die erste Möglichkeit eines Hamiltonpfades von u nach v ist der des
Rückkehrpf ades (return path). Liegen u und v auf dem gleichen Terminaldreieck und sind somit benachbart, so ist der in Abbildung 16 (links)
dargestellte Rückkehrpf ad von u nach v der einzig mögliche Hamiltonpfad
von u nach v in T . Der Rückkehrpfad ist in diesem Fall eindeutig bestimmt.
Die zweite Mögichkeit eines Hamiltonpfades von u nach v ist der des
Zickzackpf ades (cross path). Ein solcher ist dann gegeben, wenn u und
v nicht benachbart sind, also auf verschiedenen Terminaldreiecken von T
liegen. Es kann mehrere Zickzackpf ade als Hamiltonpfade von u nach v in
T geben (siehe Abbildung 16).
”=⇒”: Wenn B einen Hamiltonkreis CB besitzt, können wir einen entsprechenden Hamiltonkreis CG aufgrund der Konstruktion von G leicht angeben.
Betrachte jede Kante e = (v, w) von B und das in G zu dieser Kante korrespondierende Tentakel Te . Entweder ist e Teil des Hamiltonkreises CB , und
wir können alle Knoten von Te in G durch einen Zickzackpfad besuchen,
oder e gehört nicht zu CB , und wir besuchen alle Knoten von Te entlang
eines Rückkehrpfades.
Wie im vorangegangenen Abschnitt bereits erwähnt, sind die drei angrenzenden Tentakel eines 7-Clusters mit schwarzem zentralen Knoten über
13
Abbildung 16: Rückkehrpf ad (links), Zickzackpf ad (mitte) und alternativer Zickzackpf ad (rechts) in einem Tentakel(Quelle: [1])
je eine einzelne ’Brückenkante’ mit dem Cluster verbunden. Wir wählen nun
die eben bestimmten Rückkehrpfade so, dass sie stets von einem 7-Cluster
mit weißem zentralen Knoten aus beginnen und auch wieder in den selbigen
zurückkehren. Auf diese Weise wird die jeweilige ’Brückenkante’ am Ende
eines Tentakels, welches mittels eines Rückkehrpfades vollständig besucht
wird, nicht verwendet, und der Pfad mündet erneut in den 7-Cluster, in
welchem er gestartet ist. Wir besuchen das Tentakel folglich, ohne es wirklich als Wechsel vom angrenzenden Cluster mit weißem zentralen Knoten
zum gegenüberliegenden Cluster mit schwarzem zentralen Knoten zu verwenden, und simulieren somit die Nichtverwendung der korrespondierenden
Kante in CB .
Es bleibt zu bestimmen, wie genau ein einzelnes 7-Cluster besucht wird.
Im Falle eines Clusters mit weißem zentralen Knoten verwenden wir genau
eines der drei Tentakel, um mittels eines Zickzackpfades das Cluster erstmalig zu erreichen. Das zweite Tentakel, deren korrespondierende Kante in
CB nicht verwendet wird, besuchen wir mittels eines Rückkehrpfades auf
die soeben beschriebene Weise, während das dritte Tentakel wiederum über
einen Zickzackpfad besucht wird, um vom aktuellen Cluster in das nächste
(mit schwarzem zentralen Knoten) zu gelangen.
Die Knoten dazwischen (innerhalb des Clusters selbst) arbeiten wir folgendermaßen ab (vergleiche Abbildung 17): Bezeichne den zentralen weißen
Knoten mit c, das Tentakel, welches wir über einen Rückkehrpfad besuchen,
mit Tr , das Tentakel, von welchem wir über einen Zickzackpfad zum aktuellen Cluster gelangen mit T1 und das verbleibende dritte Tentakel, über
welches wir den Cluster über einen Zickzackpfad wieder verlassen, mit T2 .
Bezeichne weiterhin die beiden Knoten, welche das Cluster und Tr gemeinsam haben, mit x1 und x2 . Aufgrund der Wahl, wie die drei Tentakel mit den
Clustern verbunden sind, gibt es dann eindeutige Knoten a1 und a2 , wobei
ai benachbart zu xi ist und ai sowohl zum Cluster als auch zu Ti gehört (für
i ∈ {1, 2}). Wir können die Zickzackpfade über T1 und T2 so legen, dass sie
in a1 enden bzw in a2 beginnen. Nun fügen wir die Kanten (a1 , x1 ), (x2 , c)
und (c, a2 ) zu CG hinzu, wodurch wir alle Knoten des Clusters abdecken.
14
Abbildung 17: Traversierung eines 7-Clusters mit weißem zentralen Knoten
Die 7-Cluster mit schwarzem zentralen Knoten besuchen wir folgendermaßen (vergleiche Abbildung 18): Bezeichne die drei angrenzenden Tentakel
analog wie eben mit Tr , T1 und T2 . Dann gibt es eindeutig bestimmte Knoten auf T1 und T2 , welche unmittelbar nach beziehungsweise vor den bereits
erwähnten ’Brückenkanten’ liegen und zu den Tentakeln, aber nicht zum
Cluster gehören. Bezeichne diese entsprechend mit b1 und b2 . Nun besuchen
wir das Cluster, indem wir einen von mehreren möglichen Pfaden von b1
nach b2 über alle Knoten des Clusters wählen. Das Tentakel Tr benötigen
wir an dieser Stelle nicht, da es von einem anderen Cluster mit weißem
zentralen Knoten aus mittels eines Rückkehrpfades abgedeckt wird.
Abbildung 18: Traversierung eines 7-Clusters mit schwarzem zentralen Knoten
Auf diese Weise erhalten wir schließlich einen Hamiltonkreis CG .
”⇐=”: Sei nun ein Hamiltonkreis CG in G gegeben. Wie wir gesehen haben,
gibt es in G nur zwei Arten von Hamiltonpfaden für jedes Tentakel, und
jedes Tentakel wird entweder durch einen Rückkehrpfad oder einen Zickzackpfad abgedeckt. Ganz analog zur Argumentation der zuvor gezeigten
Beweisrichtung wählen wir in B diejenigen Kanten aus, deren korrespondierende Tentakel in CG durch Zickzackpfade besucht werden.
Die Menge der so gewählten Kanten bildet einen Hamiltonkreis in B,
15
und Behauptung (1) ist bewiesen.
2
Insgesamt haben wir eine Polynomialzeit-Reduktion von HC in planaren,
kubischen, bipartiten Graphen auf HC in Dreiecksgittergraphen hergestellt.
Aufgrund der von Plesnik [5] bewiesenen NP-Vollständigkeit von HC in planaren, bipartiten und kubischen Graphen folgt somit die NP-Vollständigkeit
von HC auf Dreiecksgittergraphen.
2
2.2
Weitere Resultate zu Hamiltonkreisen auf Dreiecksgittergraphen
Gordon, Orlovich und Werner [1] machen in der hier zugrunde liegenden
Arbeit einige Beobachtungen über Dreiecksgittergraphen, welche die Eigenschaft des lokalen Zusammenhangs (locally connected triangular grid
graphs) erfüllen. Auf diese werden wir an dieser Stelle kurz eingehen, da
sie einige interessante weiterführende Resultate für das Hamiltonkreisproblem auf Dreiecksgittergraphen liefern.
Definition 10 lokal zusammenhängend (locally connected)
Sei G=(V, E) ein Graph. Für einen Knoten v ∈ V sei seine N achbarschaf t
N (v) definiert durch N (v) = { w ∈ V | ∃ e = (v, w) ∈ E oder e = (w, v) ∈ E},
also durch die Menge aller Knoten w, welche mit v über eine Kante aus E
verbunden sind.
Ein Knoten v ∈ V heißt lokal zusammenhängend, wenn G(N (v)) zusammenhängend ist. Dabei bezeichne G(N (v)) den durch die Knotenmenge
N (v) ⊆ V knoteninduzierten Subgraphen von G.
Der Graph G heißt lokal zusammenhängend, wenn alle seine Knoten
lokal zusammenhängend sind.
Man beachte, dass die Begriffe ’zusammenhängend’ und ’lokal zusammenhängend’ voneinander unabhängig sind, dass also eine der Eigenschaften nicht aus der jeweils anderen folgt. Beispiele für Graphen, die zusammenhängend, aber nicht lokal zusammenhängend, bzw lokal zusammenhängend,
aber nicht zusammenhängend sind, sieht man in Abbildung 19 .
Abbildung 19: nicht zusammenhängend, aber lokal zusammenhängend
(links), zusammenhängend, aber nicht lokal zusammenhängend (rechts)
Eine weitere Definition, welche für die folgenden Aussagen benötigt wird,
ist die des Begriffs f ully cycle extendable für einen Graph G.
16
Definition 11 f ully cycle extendable
Sei G=(V, E) ein Graph und C ein Kreis in G. Wir nennen C erweiterbar
(extendable), wenn es einen Kreis C 0 in G gibt, so dass V (C) ⊂ V (C 0 ) gilt,
und C 0 genau einen Knoten mehr als C besitzt, also |V (C 0 )|=|V (C)| + 1.
G heißt cycle extendable, wenn jeder nicht-hamiltonische Kreis C in G
erweiterbar ist.
G heißt schließlich f ully cycle extendable, wenn G cycle extedable ist,
und jeder Knoten von G auf einem Dreieck in G liegt.
Man sieht aus obiger Definition leicht, dass ein Graph, der fully cycle
extendable ist, auch einen Hamiltonkreis besitzt, denn wählt man einen beliebigen Knoten aus G aus, so liegt dieser per Definition auf einem Dreieck,
was einem Kreis über drei Knoten entspricht. Folglich gibt es einen Kreis in
G, und dieser ist per Definition erweiterbar zu einem Kreis über 4 Knoten,
welcher wiederum erweiterbar sein muss. Setzt man dies induktiv fort, gelangt man schließlich zu einem Kreis, der alle Knoten von G enthält, also
einem Hamiltonkreis in G entspricht.
In [1] zeigen Gordon, Orlovich und Werner, dass ein zusammenhängender
und lokal zusammenhängender Dreiecksgittergraph entweder fully cycle extendable ist (also auch einen Hamiltonkreis besitzt) oder isomorph zum
’Davidsterngraph’ D ist, welcher in Abbildung 20 zu sehen ist. Reay und
Zamfirescu zeigen in [7], dass D der einzige zusammenhängende, lokal zusammenhängende Dreiecksgittergraph ist, welcher keinen Hamiltonkreis besitzt.
Abbildung 20: Der ’Davidsterngraph’ D (Quelle: [1])
Das Resultat von Gordon, Orlovich und Werner [1] besagt also, dass das
Entscheidungsproblem, ob ein gegebener Dreiecksgittergraph G, der lokal
zusammenhängend ist, einen Hamiltonkreis besitzt, in polynomieller Zeit
gelöst werden kann. Hierzu genügt es nämlich zu überprüfen, ob G zusammenhängend ist. Wenn nein, kann G trivialerweise keinen Hamiltonkreis
enthalten. Falls G jedoch zusammenhängend ist, kann man in polynomieller
Zeit prüfen, ob G isomoprh zu D ist. Wenn ja, so enthält G keinen Hamiltonkreis, wenn nein, so gibt es definitiv einen solchen (da G in diesem Fall
fully cycle extendable sein mus).
17
Doch nicht nur das Hamiltonkreis-Entscheidungsproblem lässt sich für
lokal zusammenhängende Dreiecksgittergraphen in polynomieller Zeit lösen,
man kann vielmehr sogar einen solchen Kreis konkret angeben und das entsprechende Konstruktionsproblem damit in polynomieller Zeit lösen. Denn
hat man G wie oben beschrieben als fully cycle extendable erkannt, kann
man mit einem beliebigen Knoten starten, der auf einem Dreieck in G liegen muss. Dieses Dreieck kann man konstruktiv und sukzessive zu immer
größeren Kreisen erweitern, bis man einen Hamiltonkreis gefunden hat. Für
jeweils eine solche Kreiserweiterung braucht man offensichtlich nicht mehr
als polynomielle Zeit.
Wir können also folgern:
Korollar 12 Sei G ein zusammenhängender, lokal zusammenhängender
Dreiecksgittergraph, der nicht isomorph zu D ist. Dann kann ein Hamiltonkreis von G in polynomieller Zeit angegeben werden.
Als letztes Resultat, was sich auf Dreiecksgittergraphen bezieht, betrachten wir die Existenzfrage eines (v, w)-Hamiltonpfades von gegebenen Knoten
v und w.
Theorem 13 Das Problem, zu einem gegebenen Graphen G und Knoten
v und w in G zu entscheiden, ob es einen Hamiltonpfad von v nach w gibt,
ist NP-Vollständig.
Beweis. Wir verwenden die in Abschnitt 2.1 durchgeführte Konstruktion eines Dreiecksgittergraphen G ausgehend von einem planaren, bipartiten und
kubischen Graph B erneut, um auch die hier behauptete NP-Vollständigkeit
zu beweisen.
Sei also B gegeben und G daraus konstruiert, so dass B genau dann
einen Hamiltonkreis enthält, wenn G dies tut. Wir modifizieren G nun folgendermaßen: Man wähle ein beliebiges 7-Cluster mit zentralem schwarzen
Knoten aus G aus, und füge zwei neue Knoten v und w hinzu, welche zu zwei
im Cluster benachbarten Knoten x und y benachbart sind (siehe Abbildung
21), wobei degG (x) = degG (y)=3 gelten soll.
u und v haben im resultierenden Graphen nun jeweils Grad 1. Foglich
kann es einen Hamiltonpfad von u nach v nur genau dann geben, wenn G vor
dem Einfügen der beiden Knoten einen Hamiltonkreis enthielt. Da letzteres
zu entscheiden nach Theorem 1 NP-vollständig ist, folgt unmittelbar die
NP-Vollständigkeit des Hamiltonpfadproblems.
2
18
Abbildung 21: Ergänzung eines Clusters mit schwarzem zentralen Knoten
um u und v
3
Hamiltonkreise in hexagonalen Gittergraphen
Nachdem das Hamiltonkreisproblem nun sowohl für Rechtecksgitter- als
auch für Dreiecksgittergraphen als NP-vollständig bewiesen ist, stellt sich
nun die Frage nach der Komplexität des Problems auf hexagonalen Gittergraphen, da diese eine dritte Möglichkeit der Kachelung der Ebene durch
einen gleichbleibenden regelmäßigen Polygontyp darstellen.
Die in diesem Kapitel vorgestellten Resultate basieren auf einer Arbeit von Islam, Meijer, Núñeze, Rappaport und Xiao [2], welche auf der
Canadian Conf erence on Computational Geometrie 2007 vorgestellt wurde.
Zunächst definieren wir den Begriff des hexagonalen Gittergraphen:
Definition 14 hexagonaler Gittergraph (hexagonal grid graph)
Ein hexagonaler Gittergraph G=(V, E) ist ein Graph mit V ⊆ H, wobei
H die unendliche Menge der Gitterpunkte einer hexagonalen, regelmäßigen
Kachelung der Ebene mit Einheitslänge bezeichne. Die Kantenmenge E ist
die Menge aller Kanten e = (v, w) zwischen Punkten v und w aus V , für die
|vw| = 1 gilt.
Ein hexagonaler Gittergraph ist also ein knoteninduzierter Subgraph des
unendlichen hexagonalen Gittergraphen mit Knotenmenge H, analog zur
Definition der Dreiecksgittergraphen aus Kapitel 2 (siehe Abbildung 22).
Nun werden wir die Komplexität von HC auf hexagonalen Gittergraphen
untersuchen, indem wir folgendes Theorem beweisen:
Theorem 15 Das Hamiltonkreisproblem auf hexagonalen Gittergraphen ist
NP-vollständig.
19
Abbildung 22: Ein hexagonaler Gittergraph
Beweis. Wir gehen analog zum Beweis von Theorem 1 in Kapitel 2 vor
und stellen eine Polynomialzeit-Reduktion von HC in planaren, bipartiten
und 2-zusammenhängenden Graphen mit maximalem Knotengrad 3 (dessen
NP-Vollständigkeit von Johnson und Papadimitriou [4] gezeigt wurde) auf
HC in hexagonalen Gittergraphen her.
Dabei heißt ein Graph k-zusammenhängend für ein k ∈ IIN, k ≥ 2, wenn
der Subgraph, der durch das Entfernen von maximal k −1 beliebigen Kanten
entsteht, zusammenhängend ist.
Sei B also ein planarer, bipartiter, 2-zusammenhängender Graph, dessen
Knoten alle höchstens Grad 3 haben. Dabei seien die zwei Knotenpartitionen
von B durch die Attribute ’schwarz’ und ’weiß’ unterschieden. Eine Kante in
B verläuft also wie gewohnt zwischen je einem weißen und einem schwarzen
Knoten. Wir konstruieren aus B in polynomieller Zeit einen hexagonalen
Gittergraphen G, so dass gilt:
B besitzt einen Hamiltonkreis ⇐⇒ G besitzt einen Hamiltonkreis (2)
Die Konstruktion von G gliedert sich in drei Schritte:
• Erstellung eines drawings D(B) aus B
• Simulation der einzelnen Elemente von D(B) durch gadgets
• Zusammensetzen der einzelnen gadgets zum Graph G
20
3.1
Erstellung eines drawings D(B) aus B
Zunächst erstellen wir zu B ein geradliniges Layout, also eine Anordnung
der Knoten und Kanten von B, so dass alle Kanten vertikal verlaufen, und
alle Knoten durch waagerechte Balken dargestellt sind (siehe Abbildung 23
(mitte)).
Abbildung 23: Ein bipartiter, planarer, kubischer Graph (links), sein
geradliniges layout (mitte) und sein drawing (rechts) (Quelle: [2])
Dies geschieht durch das von Rosenstiehl und Tarjan in [8] beschriebene Verfahren, welches dort für 2-zusammenhängende Graphen beschrieben ist, und zu B ein geradliniges Layout (rectilinear conf iguration) in
polynomieller Zeit liefert. (Dies ist auch der Grund, warum wir B als 2zusammenhängend für die folgende Konstruktion voraussetzen, was wir in
Kapitel 2 bei der Reduktion auf Dreiecksgittergraphen nicht gefordert hatten).
Das erzeugte layout basiert auf einem st-ordering der Knotenmenge, d.h.
auf der Wahl zweier beliebiger Knoten s (Quelle) und t (Senke), für welche
wir alle Kanten des Graphen so orientieren können, dass s nur ausgehende
und t nur eingehende Kanten besitzt, und weiterhin im neu kantenorientierten Graphen keine Zyklen auftreten.
Die Wahl von s und t, sowie die anschließende Orientierung der Kanten
bezüglich s und t ist dabei beliebig, jedoch resultiert jedes solche st-ordering
in einem anderen geradlinigen layout des Graphen. Das layout ist also nicht
eindeutig bestimmt, was für unsere Konstruktion jedoch nicht relevant ist,
da jedes auf diese Weise korrekt erzeugte layout geeignet ist.
Hat man ein geradliniges Layout von B konstruiert, so wird aus diesem
im nachfolgenden Schritt das gewünschte drawing D(B) erzeugt, indem ein
sweep über die Kanten des layouts vollzogen wird, und jede Kante dabei in
eine 60◦ - oder eine 120◦ -Kante rotiert wird. Dabei ist eine 60◦ -Kante eine
Kante, welche mit der x-Achse einen Winkel von 60◦ bildet, analog ist eine
120◦ -Kante definiert.
Durch die Wahl dieser beiden speziellen Winkel ist gewährleistet, dass die
21
nachfolgenden Schritte der Konstruktion zur Simulation des Graphen durch
einen hexagonalen Gittergraphen funktionieren, da auch in einem Sechseck
die Winkel von 60◦ und 120◦ bezüglich der x-Achse auftreten.
Die Planarität des Graphen bleibt dabei erhalten, und auch dieser Schritt
benötigt nur polynomiellen Zeitaufwand. In Abbildung 23 (rechts) ist das
so konstruierte fertige drawing von D(B) zu sehen.
3.2
Simulation der einzelnen Elemente von D(B) durch gadgets
und Zusammensetzung zu G
Nun wird B beziehungsweise sein drawing D(B) durch verschiedene gadgets
in einem hexagonalen Gittergraphen simuliert, ähnlich zur Simulation des
Graphen B in Kapitel 2 durch Tentakel und 7-Cluster in einem Dreiecksgittergraphen.
Auch für die folgende Konstruktion definieren wir den Begriff eines strips,
welcher hier eine Aneinanderreihung von mehreren Sechsecken bezeichnet,
und durch welche wir einerseits die in D(B) auftretenden Kanten, andererseits die durch waagerechte Balken repräsentierten Knoten in D(B) simulieren wollen.
Wir haben somit drei Varianten von strips, welche durch den jeweiligen
mit der x-Achse gebildeten Winkel unterschieden werden können: 0◦ -strips
für die waagerechte Ausdehnung der Knoten in D(B) sowie 60◦ -strips und
120◦ -strips für die jweiligen 60◦ - beziehungsweise 120◦ -Kanten des drawings.
Dabei sind die strips jeweils wie in Abbildung 24 aufgebaut.
Abbildung 24: strips im hexagonalen Gittergraphen
Um die einzelnen strips zum gewünschten hexagonalen Gittergraphen
G zusammensetzen zu können, definieren wir im Folgenden eine Reihe von
gadgets:
Definition 16 extender
Ein extender ist ein 0◦ -strip, also eine horizontale Aneinanderreihung
von Sechsecken (siehe Abbildung 24, rechts), welches die Ausdehnung eines
Knotens im drawing von B simuliert.
Definition 17 U − T urn
Ein U −T urn ist eine wie in Abbildung 25 (links) gezeigte Anordnung von
22
Sechsecken, welche die Verbindung zwischen den schwarzen Knoten und den
maximal drei angrenzenden strips im hexagonalen Gittergraph G darstellt.
Definition 18 rosette
Eine rosette ist eine wie in Abbildung 25 (mitte) gezeigte Anordnung
von Sechsecken, welche den Übergang von einem horizontalen strip (also
einem extender) zu einem 60◦ - oder 120◦ -strip bereitstellt.
Definition 19 core
Ein core ist eine wie in Abbildung 25 (rechts) gezeigte Anordnung von
drei Sechsecken, welche die eigentlichen Knotenpunkte von B in G repräsentiert.
Folglich gibt es zwei Arten von core-gadgets, je einen core für einen schwarzen und für einen weißen Knotenpunkt des Ausgangsgraphen B, wobei die
eine Variante eine Spiegelung der anderen ist.
Abbildung 25: Die verwendeten gadgets im hexagonalen Gittergraphen. Von
links nach rechts: U -T urn, rosette und core. (Quelle: [2])
Mit dieser Sammlung von gadgets können wir nun den gewünschten
Graph G konstruieren. Wir repräsentieren die Knoten durch cores, fügen
U-Turns an die schwarzen cores an, simulieren die waagerechte Ausdehnung
der Knoten durch extender und verwenden rosettes, um den Übergang von
extendern zu 60◦ - und 120◦ -strips herzustellen, welche wiederum die eigentlichen Kanten von D(B) simulieren. Abbildung 26 zeigt einen Ausschnitt
des fertigen hexagonalen Gittergraphen zu dem in Abbildung 23 bereits demonstrierten Graph B. Auch die Art und Weise, wie die Kanten traversiert
werden (siehe später), ist in blau eingezeichnet.
3.3
Die Reduktion des Problems
Nun können wir Behauptung (2) beweisen, und zeigen, dass B genau dann
einen Hamiltonkreis enthält, wenn G dies tut.
Ganz analog zum Reduktionsbeweis auf Dreiecksgittergraphen in Kapitel 2 können wir zwei Arten von Pfaden definieren, über welche die einzelnen
strips vollständig besucht werden können.
23
Abbildung 26: Ausschnitt aus dem fertigen hexagonalen Gittergraphen zum
Graph B aus Abbildung 23. Zu sehen ist der weiße Knoten, der im drawing
D(B) ganz unten zu finden ist, seine ausgehenden Kanten und zwei der angrenzenden schwarzen Knoten. Weiterhin sind in blau die zum Hamiltonkreis
in B korrespondierenden Teilpfade zu sehen. (Quelle: [2])
Zum einen definieren wir einen sequenziellen P f ad (sequential path).
Ein solcher Pfad entspricht in seiner Bedeutung dem in Kapitel 2 definierten Zickzackpfad. Weiterhin definieren wir einen parallelen P f ad (parallel
path), welcher wiederum dem Rückkehrpfad in Kapitel 2 entspricht. Abbildung 27 zeigt, wie ein strip mittels dieser beiden Pfade traversiert werden
kann.
Abbildung 27: sequentieller Pfad (oben) und paralleler Pfad (unten) im hexagonalen Gittergraphen
”=⇒ ”: Angenommen, B besitzt einen Hamiltonkreis CB . Analog zum Reduktionsbeweis von HC auf Dreiecksgittergraphen in Kapitel 2 simulieren
wir die Kanten aus B, welche in CB vorkommen, durch sequentielle Pfade
auf den zu diesen Kanten korrespondierenden strips. Ebenso verwenden wir
parallele Pfade auf denjenigen strips, welche zu in CB unbenutzten Kan24
ten korrespondieren. Wir lassen die parallelen Pfade dabei wieder stets von
weißen Knoten beziehungsweise deren cores in G starten.
Da aufgrund unserer Konstruktion am Ende eines so traversierten strips
ein U-Turn-gadget vor Erreichen des schwarzen Knotens betreten wird, können
wir den Pfad innerhalb des U-Turns auf die in Abbildung 25 (links, unten)
dargestellte Weise umkehren lassen, so dass wir wieder zum weißen Ausgangscore gelangen, und somit das Nichtbenutzen der zu dem gerade traversierten strip korrespondierenden Kante in B simulieren. Abbildung 25
(links, oben) zeigt weiterhin, wie ein U-Turn in dem Falle traversiert wird,
dass der strip, über welchen man den U-Turn erreicht, durch einen sequentiellen Pfad besucht wird (und die korrespondierende Kante in B also zu CB
gehört.
Auch die rosettes können wir mittels eines sequenziellen oder eines parallelen Pfades traversieren (siehe Abbildung 25, mitte), je nachdem, wie die
angrezenden strips traversiert werden sollen.
Abbildung 25 (rechts) zeigt, wie die cores traversiert werden können.
Man sieht leicht ein, dass auf die dargestellte Weise genau zwei an den core
angrenzende strips über sequenzielle Pfade, und der verbleibende dritte strip
(falls existent) durch einen parallelen Pfad besucht werden kann.
Da wir in B auch Knotengrade von 2 zugelassen hatten, kann es passieren, dass an einem core auch nur 2 strips anliegen. In diesem Fall sind
alle präsentierten gadgets als Teilmenge der abgebildeten gadgets zu sehen,
für welche die Sechsecke weggelassen werden, welche zum nichtvorhandenen dritten strip gehören würden. An der eigentlichen Argumentation des
Beweises ändert sich dadurch nichts.
Aus der Konstruktion und der Art der Traversierung ergibt sich schließlich ein Hamiltonkreis CG in G.
”⇐= ”: Angenommen, G besitzt einen Hamiltonkreis CG . Dann wird jedes gadget entweder durch einen parallelen oder einen sequenziellen Pfad
traversiert. Konstruiere einen Hamiltonkreis CB in B, indem alle Kanten
zu CB hinzugenommen werden, welche zu durch sequenzielle Pfade in CG
traversierte strips korrespondieren. Aufgrund unserer Konstruktion und den
vorherigen Überlegungen ergibt sich somit der gewünschet Hamiltonkreis
CB .
Somit haben wir die NP-Vollständigkeit von HC auf hexagonalen Gittergraphen bewiesen.
2
25
4
Zusammenfassung und Ausblick
In dieser Arbeit haben wir die NP-Vollständigkeit des Hamiltonkreisproblems sowohl auf Dreiecksgittergraphen als auch auf hexagonalen Gittergraphen gezeigt. Das Problem bleibt also für diese beiden Arten von Graphen
schwer zu entscheiden. Weiterhin haben wir gesehen, dass im Falle von Dreiecksgittergraphen die Eigenschaft des lokalen Zusammenhangs eine wichtige
Rolle spielt, da auf Dreiecksgittergraphen, die diese Eigenschaft erfüllen, das
Entscheidungsproblem in polynomieller Zeit gelöst und sogar ein konkreter
Hamiltonkreis angegeben werden kann.
Als Nebenresultat wurde auch die NP-Vollständigkeit des Hamiltonpfadproblems von Knoten v nach w auf Dreiecksgittergraphen als NP-vollständig
bewiesen.
Damit ist das Hamiltonkreisproblem durch die Arbeiten von Gordon,
Orlovich und Werner [1], Polishchuk, Arkin und Mitchell [6], Islam, Meijer,
Núñez, Rappaport und Xiao [2] sowie Itai, Papdimitriou und Szwarcfiter [3]
schließlich für alle Arten von Graphen, welche durch gleichbleibende Polygone eine regelmäßigen Kachelungen der Ebene repräsentieren, im Detail untersucht worden. FimF Dennoch bietet das Feld noch weitere Möglichkeiten
der näheren Untersuchung, beispielsweise das Angeben gewisser Eigenschaften für hexagonale und rechteckige Gittergraphen, für welche das Problem
in polynomieller Zeit gelöst werden kann, so wie es hier für Dreiecksgittergraphen getan wurde.
Auch eine Verallgemeinerung der Problemstellung durch eine beliebige
(oder zumindest auf gewisse Weise verallgemeinerte) Kachelung der Ebene
ließe sich in Hinblick auf das Hamiltonkreisproblem untersuchen.
Literatur
[1] V. Gordon, Yury, Orlovich, and F. Werner. Complexity of the hamiltonian cycle problem in triangluar grid graphs. 2007.
[2] K. Islam, H. Meijer, Y. Núñez, D. Rappaport, and H. Xiao. Hamilton circuits in hexagonal grid graphs. In 19th Canadian Conference on
Computational Geometry, 2007.
[3] A. Itai, C. Papadimitriou, and J. Szwarcfiter. Hamiltonian paths in grid
graphs. SIAM Journal on Computing, 11:676–686, 1982.
[4] D. Johnson and C. Papadimitriou. Computational Complexity, pages
37–85. Wiley, 1985.
[5] J. Plesnik. The np-completeness of the hamiltonian cycle problem in
bipartite cubic planar graphs. Acta Math. Unib. Comenian, 42-43:271–
273, 1983.
26
[6] V. Polishchuk, E. Arkin, and J. Mitchell. Hamiltonian cycles in triangular grids. In 18th Canadian Conference on Computational Geometry,
2006.
[7] J. Reay and T. Zamfirescu. Hamiltonian cycles in t-graphs. Discrete
Comput. Geom., 24:497–502, 2000.
[8] P. Rosenstiehl and R. Tarjan. Rectilinear planar layouts and bipolar
orientations of planar graphs. Discrete Comput. Geom., 1:343–353, 1986.
27
Herunterladen