Ein Hamiltonscher Pfad, auch Hamilton-Pfad genannt, ist ein Graphenpfad zwischen zwei Scheitelpunkten eines Graphen, der jeden Scheitelpunkt genau einmal besucht. Wenn ein Hamilton’scher Pfad existiert, dessen Endpunkte benachbart sind, dann wird der resultierende Graphzyklus als Hamilton’scher Zyklus (oder Hamilton’scher Zyklus) bezeichnet.
Ein Graph, der einen Hamilton’schen Pfad besitzt, wird als traceablegraph bezeichnet.
Im Allgemeinen ist das Problem, einen Hamilton’schen Pfad zu finden, NP-komplett (Garey und Johnson 1983, pp. 199-200), so dass der einzige bekannte Weg, um festzustellen, ob ein gegebener allgemeiner Graph einen Hamiltonschen Pfad hat, darin besteht, eine erschöpfende Suche durchzuführen
Jeder bipartite Graph mit einem Vertex-Paritäts-Ungleichgewicht hat keine Hamiltonschen Pfade.
Das Finden eines einzelnen Hamiltonschen Pfades eines Graphen ist in der Wolfram Language als FindHamiltonianPath implementiert. Alle Hamiltonschen Pfade eines gegebenen Graphen können (ineffizient) mit dem Befehl HamiltonianPath im Wolfram Language-Paket Combinatorica` gefunden werden. Eine vorberechnete Liste aller Hamiltonschen Pfade für viele benannte Graphen erhält man mit GraphData, wobei und beide Orientierungen der Pfade enthalten sind (so dass als verschieden von betrachtet wird). Eine vorberechnete Anzahl der entsprechenden Hamilton-Pfade wird von GraphData angegeben.
Die Gesamtzahl der gerichteten Hamilton-Pfade für alle einfachen Graphen der Ordnung , 2, … sind 0, 2, 8, 50, 416, 5616, 117308, 4862736, … (OEIS A193352).
Rubin (1974) beschreibt ein effizientes Suchverfahren, das einige oder alle Hamilton-Pfade und -Schaltungen in einem Graphen mit Hilfe von Ableitungen finden kann, die Backtracking und Rätselraten stark reduzieren. Ein probabilistischer Algorithmus, der auf Angluin und Valiant (1979) zurückgeht und von Wilf (1994) beschrieben wird, kann ebenfalls nützlich sein, um Hamilton’sche Kreisläufe und Pfade zu finden. Ein Hamiltonscher Pfad zwischen zwei Eckpunkten und kann gefunden werden, wenn ein Algorithmus für Hamiltonsche Zyklen vorhanden ist. Dazu wird geprüft, ob der ursprüngliche Graph die Kante enthält, und wenn nicht, wird sie hinzugefügt, um zu erhalten. Da ein Hamilton’scher Pfad mit benachbarten Endpunkten ein Hamilton’scher Zyklus ist und da und nun benachbart sind, Die Suche nach einem Hamilton-Zyklus und die Aufteilung am Rand ergibt einen Hamilton-Pfad von nach in . Ähnlich, wenn kein Hamilton-Zyklus in existiert, dann gibt es keinen Hamilton-Pfad von nach in .
Die folgende Tabelle fasst die Anzahl der (ungerichteten) Hamiltonschen Pfade auf verschiedenen Klassen von Graphen zusammen.
Graph | Formel |
Barbell-Graph | |
Cocktailparty-Graph | |
vollständiger Graph | |
vollständiger bipartiter Graph | |
-gekreuzter Prismengraph | |
Zyklusdiagramm | |
Leiterdiagramm | |
Möbius-Leiter | |
Pfaddiagramm | 1 |
Prismengraph | |
Sonnengraph | |
Raddiagramm |
Die Wiederkehrbeziehungen für die Anzahl der gerichteten Hamiltonschen Pfade für einige Graphenfamilien sind unten zusammengefasst.
Graph | Ordnung | Wiederholung |
Antiprismengraph | 9 | |
Kronendiagramm | 3 | |
Prismengraph | 6 |