Il problema del percorso più lungo è NP-difficile. La dimostrazione (tipica?) Si basa su una riduzione del problema del percorso hamiltoniano (che è NP-completo). Nota che qui il percorso è considerato (nodo-) semplice. Cioè, nessun vertice può verificarsi più di una volta nel percorso. Ovviamente è quindi anche edge-simple (nessun bordo si verificherà più di una volta nel percorso).
Quindi cosa succederebbe se eliminassimo la necessità di trovare un percorso (nodo-) semplice e ci attenessimo alla ricerca di un percorso semplice (sentiero). A prima vista, poiché trovare un sentiero euleriano è molto più facile che trovare un sentiero hamiltoniano, si potrebbe sperare che trovare il sentiero più lungo sia più facile che trovare il sentiero più lungo. Tuttavia, non riesco a trovare alcun riferimento a dimostrazione di ciò, figuriamoci uno che fornisce un algoritmo.
Si noti che sono a conoscenza dell'argomento presentato qui: /programming/8368547/how-to-find-the-longest-heaviest-trail-in-an-undirected-weighted-graph Tuttavia, l'argomento sembra imperfetto nella sua forma attuale, in quanto mostra fondamentalmente che potresti risolvere il caso semplice del limite risolvendo il caso semplice del nodo su un grafico diverso (quindi la riduzione è sbagliata). Non è chiaro che la riduzione potrebbe essere facilmente modificata per funzionare anche nell'altro modo. (Tuttavia, mostra che almeno il problema dei percorsi più lunghi non è più difficile del problema dei percorsi più lunghi.)
Quindi ci sono risultati noti per trovare percorsi più lunghi (percorsi semplici)? Complessità (classe)? Algoritmo (efficiente)?