Sto cercando di trovare il percorso più breve possibile che visita ogni nodo attraverso un grafico (un nodo può essere visitato più volte, la soluzione può selezionare qualsiasi nodo come nodo di partenza). Il grafico è diretto, il che significa che essere in grado di viaggiare dal nodo A al nodo B non significa che si possa viaggiare dal nodo B al nodo A. Tutte le distanze tra i nodi sono uguali. Sono stato in grado di codificare una ricerca di forza bruta che ha trovato un percorso di soli 27 nodi quando avevo 27 nodi e ogni nodo aveva una connessione a 2 o 1 altro nodo. Tuttavia, il vero problema che sto cercando di risolvere è costituito da 256 nodi, con ogni nodo che si connette a 4 o 3 altri nodi. L'algoritmo a forza bruta che ha risolto il grafico a 27 nodi può produrre una soluzione a 415 nodi (non ottimale) in pochi secondi, ma l'utilizzo della potenza di elaborazione che ho a disposizione impiega circa 6 ore per arrivare a una soluzione a 402 nodi.
Quale approccio dovrei utilizzare per arrivare a una soluzione che posso essere certa è quella ottimale? Ad esempio, utilizzare un algoritmo di ottimizzazione per abbreviare una soluzione non ottimale? O in qualche modo adottare una ricerca di forza bruta che scarta percorsi non ottimali?
EDIT: (Copia un commento per una risposta qui per chiarire meglio la domanda) Per chiarire, non sto dicendo che esiste un percorso hamiltoniano e ho bisogno di trovarlo, sto cercando di trovare il percorso più breve nel 256 grafico del nodo che visita ogni nodo almeno una volta. Con il 27 nodo eseguito, sono stato in grado di trovare un percorso hamiltoniano, il che mi ha assicurato che si trattava di una soluzione ottimale. Voglio trovare una soluzione per il grafico a 256 nodi che è il più breve.