Devo trovare un ciclo negativo in un grafico ponderato diretto. So come funziona l'algoritmo Bellman Ford e che mi dice se esiste un ciclo negativo raggiungibile. Ma non lo nomina esplicitamente.
Come posso ottenere il percorso effettivo del ciclo?
Dopo aver applicato l'algoritmo standard abbiamo già eseguito iterazioni e non dovrebbero essere possibili ulteriori miglioramenti. Se possiamo ancora ridurre la distanza da un nodo, esiste un ciclo negativo.
La mia idea è: poiché conosciamo il bordo che può ancora migliorare il percorso e conosciamo il predecessore di ciascun nodo, possiamo risalire da quel bordo fino a quando non lo incontriamo di nuovo. Ora dovremmo avere il nostro ciclo.
Purtroppo, non ho trovato alcun documento che mi dica se questo è corretto. Quindi funziona davvero così?
Modifica: questo esempio dimostra che la mia idea è sbagliata. Dato il seguente grafico, eseguiamo Bellman-Ford dal nodo .
Elaboriamo i bordi nell'ordine . Dopo n - 1 iterazioni otteniamo le distanze dei nodi: 1 : - 5 2 : - 30 3 : - 15
e tabella padre:
ha padre 3 2 ha padre 3 3 ha padre 2
come possiamo risolvere questo problema?