Non riesco a pensare ad alcun algoritmo che possa trovareil percorso più lungo, che è minore o uguale a qualche variabile x. Con l'algoritmo di Dijkstra posso facilmente ottenere il percorso più lungo, tuttavia non sono sicuro di poterlo usare nel mio problema.
risposte:
2 per risposta № 1L'algoritmo di Dijkstra ti darà il percorso più breve, non il più lungo.
Trovare il percorso più lungo (semplice) è NP-Hard. Poiché il tuo problema può essere degenerato nel problema del percorso più lungo (prendi x uguale alla somma di tutti i pesi del bordo, che è un limite superiore sulla lunghezza del percorso più lungo), è anche NP-Hard.
Puoi ancora utilizzare una ricerca ad albero, ma non è probabile che sia trattabile.
Se stai considerando percorsi non semplici (i nodi possono essere attraversati più volte), allora è un problema diverso. Un caso degenerato è il problema dello zaino, che è anche NP-Hard.
0 per risposta № 2
È possibile utilizzare l'algoritmo DFS per trovare il percorso più lungo. Se cerchi, puoi trovare alcuni articoli utili, come Profondità prima ricerca e grafici aciclici diretti.