/ / FIndendo il percorso più lungo che è <= x (ponderato, grafico non orientato) - algoritmo, grafico, percorso

FIndendo il percorso più lungo che è <= x (ponderato, grafico non orientato) - algoritmo, grafico, percorso

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 № 1

L'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.