|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2002
Messaggi: 56
|
Algoritmo Dijkstra
Ciao a tutti, sto cercando di implementare l'algoritmo di dijkstra per la ricarca del percorso minimo di un grafo da un nodo A ad uno B.
Prima cosa eseguo l'algorimo di dijkstra che trova la distanza dal nodo A a tutti i nodi del grafo (http://it.wikipedia.org/wiki/Algoritmo_di_Dijkstra). A questo punto per trovare il percorso minore dal nodo A a quello B risalgo il grafo al contrario ovvero dal nodo B all'A ma non riesco a trovare la tecnica giusta. Da come mi sembra di capire dai vari esempi che ho trovato, per risalire passo al nodo con potenziale tra i vari nodi che ho più alto. ESEMPIO dal nodo D(potenziale 13) che ha come adiacenti i nodi E e F, passo al nodo E(potenziale 9) anzichè al nodo F(potenziale 8). Spero di essermi spiegato, se qualcuno ha già utilizzato questo algoritmo di potesse spiegare cosa sbaglio sarei contento ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2006
Città: Bergamo
Messaggi: 440
|
l'unica cosa che posso è dirti è di provare a guardare qui per vedere se capisci meglio
__________________
Guitar Pub, il sito dedicato al mondo della chitarra e dei chitarristi... e il mio Spazio ------------------------------------ Ho trattato positivamente con: teosc |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2002
Messaggi: 56
|
Grazie nucce per l'informazione, il problema è che tutte le teorie che trovo su l'algoritmo di dijkstra, compresa la tua segnalazione, non mi spiega come trovare il percorso minimo tra due punti.
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2005
Città: sassuolo
Messaggi: 104
|
Allora, il nodo successivo della sequenza è sempre quello che:
1) è adiacente ad uno dei nodi già "attivi", cioè per cui ho già calcolato il potenziale 2) ha la somma del potenziale del nodo adiacente e del percorso minima. da come ti sei spiegato sembra tu abbia capito esattamente il contrario di come funziona il tutto, se hai un nodo D con potenziale 13 e due nodi E e f con percorsi rispettivamente di 8 e 9 scegli quello a percorso minore ( cieè cerchi il cammino minimo !) p.s quando, ad ogni iterazione, aggiorno le etichette con i potenziali e scelgo quello minore adiacente mi segno anche a che nodo appartiene. Questo vale anche per il nodo finale e quindi alla fine, partendo dal nodo finale, sò esattamente passo passo all'indietro come muovermi
__________________
Che il besmer sia con voi ![]() Faithless is he that says farewell when the road darkens Ultima modifica di funky80 : 10-07-2007 alle 14:33. |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jun 2002
Messaggi: 56
|
Grazie delle risposte, sono riuscito a far funzionare mantenendomi memorizzato il predecessore di ogni nodo durante l'esecuzione dell'algoritmo. Così facendo ho semplicemente risalito i predecessori dal nodo di arrivo.
Quote:
![]() Grazie dell'aiuto |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:38.