Ok, prima di tutto so che Dijkstra non funziona con pesi negativi e possiamo usare Bellman-ford invece di farlo. Ma in un problema mi è stato dato afferma che tutti i bordi hanno pesi da 0 a 1 (0 e 1 non sono inclusi). E il costo del percorso è in realtà il prodotto.Algoritmo di Dijkstra per pesi negativi
Quindi quello che stavo pensando è solo prendere il registro. Ora tutti i bordi sono negativi. Ora so che Dijkstra non funzionerà con pesi negativi, ma in questo caso tutti i bordi sono negativi, quindi non possiamo fare qualcosa in modo che Dijkstra funzioni.
Mi sembra di moltiplicare tutti i pesi di -1 ma poi il percorso più breve diventa il percorso più lungo.
Quindi è comunque possibile evitare l'algoritmo Bellman-Ford in questo caso.
La domanda esatta è: "Supponiamo che per alcune applicazioni il costo di un percorso sia uguale al prodotto di tutti i pesi dei bordi del percorso. Come utilizzeresti l'algoritmo di Dijkstra in questo caso? Tutti i pesi del i bordi sono da 0 a 1 (0 e 1 non sono inclusi). "
In primo luogo, presumo che il grafico sia diretto. Ora se i pesi sono compresi tra 0 e 1 e il costo è misurato dal prodotto dei pesi, allora in effetti stai cercando il percorso più lungo. Se c'è un ciclo nel grafico, allora è equivalente a un ciclo di costi negativo. –
Quindi Dijkstra avrebbe funzionato. Ho solo bisogno di trovare il percorso più lungo. Inoltre non è richiesto alcun requisito aggiuntivo, quindi questa è la ragione per cui ero confuso. –
Sei sicuro di non volere il percorso più probabile? –