Dal 2010 · Oltre 2 milioni di utilizzi degli strumenti ogni mese
Dal 2010
Aggiungi a Chrome

La Mia Cassetta Degli Attrezzi

Modalità Automatica

Nessuno strumento salvato.

Aggiorna alla Versione Premium
Strumenti correlati
Verificatore di Grafo PlanareCalcolatore del Percorso più Breve di DijkstraPrevisione di Ovulazione
Pagina Iniziale > Matematica > Operazioni matematiche avanzate
 

Verificatore di Cammino Hamiltoniano

Verifica se un grafo contiene un cammino o ciclo hamiltoniano. Usa backtracking con potatura di Warnsdorff, controlla connettività e gradi, testa le condizioni di Dirac e Ore e mostra il percorso trovato su un diagramma SVG.

Utilizzo gratuitoSenza registrazioneRisultati istantanei
Verificatore di Cammino HamiltonianoProvalo ora — gratis ▼
Accetta A-B, A->B, A B, A,B o righe di matrice come 0 1 1 0. Usa lettere, cifre o underscore per le etichette.
Etichette separate da virgola o spazio, una per riga. Default: A, B, C... se omesso.

Embed Verificatore di Cammino Hamiltoniano Widget

Verificatore di Cammino Hamiltoniano

Il Verificatore di Cammino Hamiltoniano stabilisce se un grafo contiene un cammino hamiltoniano — una sequenza che visita ogni vertice esattamente una volta — o un ciclo hamiltoniano, che inoltre ritorna al vertice di partenza. Combina veloci controlli strutturali preliminari (connettività, prerequisiti sui gradi, teorema di Dirac, teorema di Ore) con una ricerca con backtracking ottimizzata dall'euristica di Warnsdorff, e visualizza il percorso trovato con un'animazione passo-passo.

Cos'è un cammino hamiltoniano?

Dato un grafo G = (V, E) con n vertici, un cammino hamiltoniano è una sequenza ordinata v1, v2, …, vn di tutti i vertici tale che ogni coppia consecutiva (vi, vi+1) è un arco di G, e ogni vertice appare esattamente una volta. Se inoltre (vn, v1) è un arco, la sequenza è un ciclo hamiltoniano.

Cammino hamiltoniano: v1 — v2 — v3 — … — vn (tutti distinti, ogni coppia è un arco) Ciclo hamiltoniano: v1 — v2 — v3 — … — vn — v1 (si chiude tornando all'inizio)

Il problema deve il suo nome a William Rowan Hamilton, che nel 1857 inventò il gioco icosiano — un rompicapo che chiedeva di trovare un ciclo che visitasse ogni vertice di un dodecaedro regolare esattamente una volta.

Perché è difficile: NP-completezza

Sia il problema di decisione del cammino hamiltoniano che quello del ciclo hamiltoniano sono NP-completi (Karp, 1972). A meno che P = NP, non esiste alcun algoritmo in tempo polinomiale che risolva ogni istanza. Nel peggiore dei casi, il backtracking esplora un albero di ricerca di dimensioni fino a (n−1)! per un ciclo. Questo è il motivo per cui il calcolatore limita l'input a 20 vertici — un piccolo aumento polinomiale di n produce un aumento esplosivo del tempo di esecuzione.

In pratica, l'euristica di Warnsdorff (originariamente ideata da Heinrich Warnsdorff nel 1823 per il problema del giro del cavallo) rende la ricerca drasticamente più veloce su grafi strutturati: ad ogni passo, l'algoritmo estende il cammino corrente verso il vicino non visitato con il minor numero di vicini non visitati rimanenti. Questa regola "greedy" evita che la ricerca finisca in un vicolo cieco e spesso trova un percorso hamiltoniano senza alcun backtracking su grafi regolari.

Condizioni Necessarie — Rifiuto Rapido

Prima di eseguire una ricerca costosa, il calcolatore scarta i grafi che non possono assolutamente contenere un cammino hamiltoniano:

Queste regole scartano molti input impossibili in tempo lineare, evitando sforzi inutili di backtracking.

Condizioni Sufficienti — Teoremi Classici

Diversi teoremi classici forniscono condizioni sufficienti (ma non necessarie) che garantiscono un ciclo hamiltoniano in grafi semplici non orientati. Se una di queste si applica, il calcolatore contrassegna il risultato come "GARANTITO" senza nemmeno eseguire la ricerca (sebbene mostri comunque un ciclo di riscontro).

Teorema di Dirac (1952)

Se G è un grafo semplice non orientato con n ≥ 3 vertici e ogni vertice ha un grado almeno pari a n / 2, allora G possiede un ciclo hamiltoniano.

δ(G) ≥ n / 2 ⟹ G è hamiltoniano

Teorema di Ore (1960)

Se per ogni coppia di vertici non adiacenti u e v abbiamo deg(u) + deg(v) ≥ n, allora G possiede un ciclo hamiltoniano. La condizione di Ore è strettamente più debole di quella di Dirac, quindi Ore implica Dirac.

∀ u, v non adiacenti: deg(u) + deg(v) ≥ n ⟹ G è hamiltoniano

Il fallimento della condizione di Dirac o di Ore non significa che il grafo sia privo di un ciclo hamiltoniano — molti grafi non soddisfano nessuna delle due ma ne contengono comunque uno (ad esempio, un semplice n-ciclo ha grado minimo 2, molto al di sotto di n/2 per grandi n).

L'Algoritmo di Ricerca Interno

Quando i controlli preliminari non risolvono la questione, il calcolatore esegue una ricerca con backtracking sulla rappresentazione di adiacenza del grafo. Tattiche chiave:

  1. Bitmask del set visitato. I vertici visitati sono memorizzati come una bitmask (test di appartenenza veloce O(1) fino a 20 vertici).
  2. Euristica di Warnsdorff. In ogni estensione, i vicini vengono provati in ordine di grado non visitato residuo (il più piccolo per primo).
  3. Selezione della radice. Per il ciclo hamiltoniano, è necessario un solo vertice di partenza (i cicli sono invarianti per rotazione). Per il cammino hamiltoniano, le partenze vengono provate in ordine crescente di grado in uscita — le posizioni più rare per prime.
  4. Budget di passi. Un limite rigido impedisce alle istanze patologiche di girare all'infinito; l'interfaccia segnala il verdetto come "scaduto" (timed out) se il budget viene esaurito.

Hamiltoniano vs Euleriano

È facile confondere i problemi hamiltoniani ed euleriani — sembrano simili ma sono fondamentalmente diversi:

Proprietà Cammino / Ciclo Hamiltoniano Percorso / Circuito Euleriano
Visita ogni... Vertice esattamente una volta Arco esattamente una volta
Complessità NP-completo Polinomiale (O(n+m))
Condizione Nessuna caratterizzazione semplice Connesso + tutti i gradi pari (per il circuito)
Nome da W. R. Hamilton (1857) L. Euler (1736, ponti di Königsberg)
Esempio classico Commesso viaggiatore, gioco icosiano Ispezione stradale, problema del postino

Formati di Input Supportati

Lista di archi

Un arco per riga, o separati da virgole. Separatori supportati: A-B, A B, A,B, A--B, A->B, A<-B. Usa -> per forzare l'orientamento.

A-B, B-C, C-D, D-A, A-C (grafo non orientato con 5 archi) A->B, B->C, C->D, D->A (ciclo orientato a 4 nodi)

Matrice di adiacenza

Matrice quadrata di valori 0/1, una riga per riga, separati da spazio o virgola. Inserisci le etichette opzionali nel campo Etichette matrice; altrimenti verranno usate automaticamente A, B, C...

0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0

Come usare questo verificatore

  1. Scegli un formato di input — Lista di archi per piccoli grafi scritti a mano, Matrice di adiacenza per incollare dati da codice o libri di testo.
  2. Incolla il tuo grafo nell'area di testo. Per l'input a matrice, fornisci opzionalmente le etichette dei vertici.
  3. Scegli cosa verificare: Solo cammino, solo ciclo, o entrambi in una volta.
  4. Seleziona il tipo di grafo — Il rilevamento automatico deduce l'orientamento dallo stile delle frecce (->) o dalla simmetria della matrice.
  5. Clicca su Verifica Hamiltoniano. La pagina dei risultati mostra il verdetto, il controllo delle condizioni necessarie, i test di Dirac / Ore, il cammino di riscontro (se esistente) e una visualizzazione interattiva.
  6. Riproduci il riscontro usando i controlli Play / Step. Osserva il percorso che si illumina arco dopo arco sul grafo.

Esempio Pratico — Il Grafo di Petersen

Il famoso grafo di Petersen (10 vertici, 15 archi, 3-regolare) è un esempio classico di grafo con un cammino hamiltoniano ma nessun ciclo hamiltoniano. Incolla questo nella lista di archi e clicca su Verifica:

1-2, 2-3, 3-4, 4-5, 5-1, 6-8, 8-10, 10-7, 7-9, 9-6, 1-6, 2-7, 3-8, 4-9, 5-10

Il verificatore conferma: cammino hamiltoniano trovato (es. 1 — 2 — 7 — 10 — 5 — 4 — 9 — 6 — 8 — 3), ma la ricerca esaustiva non trova alcun modo per chiudere il loop — un risultato dimostrato per la prima volta nel 1890.

Applicazioni Comuni

Domande Frequenti

Cos'è un cammino hamiltoniano?

Un cammino hamiltoniano è un percorso in un grafo che visita ogni vertice esattamente una volta. Prende il nome da William Rowan Hamilton, che studiò il problema sul grafo del dodecaedro nel 1857. Decidere se tale cammino esista è un problema NP-completo, quindi non si conoscono algoritmi in tempo polinomiale validi per tutti i grafi.

In cosa differisce un ciclo hamiltoniano da un cammino hamiltoniano?

Un ciclo hamiltoniano è un cammino hamiltoniano che ritorna al suo vertice di partenza, formando un loop chiuso che visita ogni vertice esattamente una volta. Ogni ciclo hamiltoniano contiene un cammino hamiltoniano (basta togliere l'ultimo arco di chiusura), ma il contrario non è vero: molti grafi hanno un cammino hamiltoniano ma nessun ciclo hamiltoniano.

Cosa dice il teorema di Dirac?

Il teorema di Dirac (1952) afferma che ogni grafo semplice non orientato su n ≥ 3 vertici in cui ogni vertice ha grado almeno n/2 contiene un ciclo hamiltoniano. È una condizione sufficiente ma non necessaria.

Cosa dice il teorema di Ore?

Il teorema di Ore (1960) afferma che se, per ogni coppia di vertici non adiacenti u e v in un grafo semplice su n ≥ 3 vertici, la somma dei loro gradi è almeno n, allora il grafo ha un ciclo hamiltoniano. La condizione di Ore è più debole di quella di Dirac.

Perché la ricerca è limitata a 20 vertici?

I problemi del cammino e del ciclo hamiltoniano sono NP-completi. Il tempo di esecuzione nel caso peggiore cresce esponenzialmente. Con l'euristica di Warnsdorff il calcolatore gestisce velocemente molti grafi fino a 20 vertici, ma istanze più complesse potrebbero andare in timeout.

Cos'è l'euristica di Warnsdorff?

La regola di Warnsdorff, proposta nel 1823 per il problema del cavallo, dice che ad ogni passo dovresti visitare il vertice successivo che ha il minor numero di vicini non visitati rimanenti. Questa regola riduce enormemente l'albero di ricerca e spesso trova soluzioni senza alcun backtracking.

Questo strumento trova tutti i cammini hamiltoniani?

No — trova un singolo cammino o ciclo di riscontro quando ne esiste uno. Contare il numero totale di cammini hamiltoniani è un problema #P-completo, molto più difficile del problema di decisione.

Ulteriori Letture

Cita questo contenuto, pagina o strumento come:

"Verificatore di Cammino Hamiltoniano" su https://MiniWebtool.com/it/verificatore-di-cammino-hamiltoniano/ di MiniWebtool, https://MiniWebtool.com/

dal team miniwebtool. Aggiornato: 21 apr 2026

Puoi anche provare il nostro Risolutore di Matematica AI GPT per risolvere i tuoi problemi matematici attraverso domande e risposte in linguaggio naturale.

Operazioni matematiche avanzate:

Strumenti popolari e aggiornati:

Verificatore di Numero di FibonacciVerificatore di Numeri AmicabiliVerificatore di Funzione Pari Dispari o NessunaVedi tutti →
Pagina Iniziale > Matematica > Operazioni matematiche avanzate > Verificatore di Cammino Hamiltoniano