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