|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 1661
|
[C] stampa a video di un percorso minimo tramite Dijkstra
ciao !
ho implementato l'algoritmo dei cammini minimi di dijkstra. Ho quindi un vettore contenente tutte le distanze aggiornate dal nodo di partenze. Come posso ora stampare il percorso minimo da un vertice ad un altro ? Ho anche un vettore con le rispettive posizioni delle citta'. esempio : distanze 0 9 14 15 32 34 45 50 posizioni 0 1 5 6 2 4 3 7 Se voglio ad esempio arrivare all'ultimo vertice partendo dal primo come la eseguo la stampa a video ? grazie mille ! ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
di per se' quelle informazioni non bastano, a meno che non metti in atto un ulteriore algoritmo per trovare i nodi del cammino.
Dijkstra oltre alle distanze trova anche il cosiddetto vettore dei padri, che è quello che serve a te. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 1661
|
scusa..come si ricava il vettore dei padri ? sarebbe dei precedenti ? ...
__________________
![]() |
![]() |
![]() |
![]() |
#4 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() mi pare che ogni volta che fai un rilassamento, e decidi quindi che la distanza dalla sorgente s a un certo nodo v viene minimizzata passando per un certo nodo u, u diventa il padre (o predecessore) di v. non sono molto sicuro che Dijkstra funzionasse esattamente così, vado a memoria. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 1661
|
buongiorno !
![]() ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#6 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Sep 2001
Città: pisa
Messaggi: 70
|
Devi memorizzare il vettore dei padri, o dei successori, vedi tu.
Ogni volta che l'algoritmo scopre un percorso migliore viene aggiornato il successore ( o padre). In questo modo ogni nodo conosce il successivo. |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
al contrario il vettore (anzi, la matrice) dei successori ha senso per esempio in Floyd-Warshal, dove viene preso di volta in volta un cammino da a a b contenente da qualche parte un nodo v; quando Floyd-Warshal fa un rilassamento, cioè determina che per andare da a a b bisogna passare per v, ha senso dire che v è il successore di a per arrivare a b. |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Apr 2006
Messaggi: 103
|
Salve ragazzi,sapete dove posso trovare il codice in c dell algoritmo di dijkstra?sapete dove posso trovare qullo di bellman-ford e di floyd warshall???
PLEASE HELP ME!!!!!!!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Ultima modifica di mamodjembe : 19-12-2007 alle 11:40. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 499
|
Quote:
![]()
__________________
![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:24.