Circuiti >
Un percorso Hamiltoniano, chiamato anche percorso di Hamilton, è un percorso tra due vertici di un grafico che visita ogni vertice esattamente una volta. Se esiste un percorso hamiltoniano i cui punti finali sono adiacenti, allora il ciclo del grafo risultante è chiamato ciclo hamiltoniano (o ciclo hamiltoniano).
Un grafo che possiede un percorso hamiltoniano è chiamato traceablegraph.
In generale, il problema di trovare un percorso hamiltoniano è NP-completo (Garey e Johnson 1983, pp. 199-200), quindi l’unico modo conosciuto per determinare se un dato grafo generale ha un percorso hamiltoniano è quello di intraprendere una ricerca esaustiva
Ogni grafo bipartito con uno sbilanciamento di parità dei vertici non ha percorsi hamiltoniani.
Trovare un singolo percorso hamiltoniano di un grafo è implementato nel linguaggio Wolfram come FindHamiltonianPath. Tutti i percorsi hamiltoniani di un dato grafo possono essere trovati (in modo inefficiente) usando il comando HamiltonianPath nel pacchetto Combinatorica` del linguaggio Wolfram. Una lista precalcolata di tutti i percorsi hamiltoniani per molti grafi nominati può essere ottenuta usando GraphData, dove e entrambi gli orientamenti dei percorsi sono inclusi (in modo che
è considerato distinto da
). Un conteggio precalcolato del corrispondente numero di cammini hamiltoniani è dato da GraphData.
I numeri totali di cammini hamiltoniani diretti per tutti i grafi semplici di ordine , 2, … sono 0, 2, 8, 50, 416, 5616, 117308, 4862736, … (OEIS A193352).
Rubin (1974) descrive una procedura di ricerca efficiente che può trovare alcuni o tutti i percorsi e circuiti Hamilton in un grafo usando deduzioni che riducono notevolmente il backtracking e le congetture. Un algoritmo probabilistico dovuto ad Angluin e Valiant (1979), descritto da Wilf (1994), può anche essere utile per trovare cicli e percorsi hamiltoniani. Un percorso hamiltoniano tra due vertici e
può essere trovato se è disponibile un algoritmo per i cicli hamiltoniani. Questo può essere fatto controllando se il grafico originale
contiene il bordo
e aggiungendolo in caso contrario per ottenere
. Poiché un percorso hamiltoniano con punti finali adiacenti è un ciclo hamiltoniano e poiché
e
sono ora adiacenti, trovando un ciclo hamiltoniano e dividendo il bordo si ottiene un percorso hamiltoniano da
a
in
. Allo stesso modo, se non esiste un ciclo hamiltoniano in
, allora non esiste un percorso hamiltoniano da
a
in
.
La seguente tabella riassume i numeri di percorsi hamiltoniani (non diretti) su varie classi di grafi.
grafo | formula |
grafo a bilanciere | ![]() |
grafico del cocktail party ![]() |
![]() |
grafico completo ![]() |
![]() |
grafo bipartito completo ![]() |
![]() |
![]() |
![]() |
grafico del ciclo ![]() |
![]() |
grafico del cambio grafico | ![]() |
grafico ladder ![]() |
![]() |
Scala di Möbius ![]() |
![]() |
percorso grafico ![]() |
1 |
grafico del prisma ![]() |
![]() |
grafico del sole | ![]() |
grafico della ruota ![]() |
![]() |
Le relazioni di ricorrenza per il numero di percorsi hamiltoniani diretti per alcune famiglie di grafi sono riassunte di seguito.
graph | order | recurrence |
grafico antiprisma | 9 | ![]() |
grafico a corona | 3 | ![]() |
grafico del prisma ![]() |
6 | ![]() |