0% ont trouvé ce document utile (0 vote)
102 vues14 pages

Algorithme de Dijkstra simplifié

Transféré par

ESTB Learn
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
102 vues14 pages

Algorithme de Dijkstra simplifié

Transféré par

ESTB Learn
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ALGORITHME DE DIJKSTRA

Prof: Ahmed EL HAMMOUDI

Chapitre : Les graphes


Les structures dont on aura besoin
 P = le graphe couvert = liste des sommets déjà visités.
 Q = le graphe restant = liste des sommets à visiter.

 d = Liste des distances de chaque sommet t.q d[i]=la distance


entre le sommet de départ et le sommet i.
 pred = Liste des prédesseurs des sommets : pred[i]=j signifie
que dans le chemin optimal entre le sommet de départ et i,
j est le sommet qui préceède i.
Étape initiale
A(0)

P=[ ] B(00) C(00)

Q=[A] E(00)

d= 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
A B C D E F G H I J

pred=
A B C D E F G H I J
Étape 1

P=[A]
Q=[B,C,E]
d= 0 85 217 ∞ 173 ∞ ∞ ∞ ∞ ∞
A B C D E F G H I J

pred= A A A
A B C D E F G H I J
Étape 2

P=[A,B]
Q=[C,E,F]
d= 0 85 217 ∞ 173 165 ∞ ∞ ∞ ∞
A B C D E F G H I J

pred= A A A B
A B C D E F G H I J
Étape 3

P=[A,B,F]
Q=[C,E,I]
d= 0 85 217 ∞ 173 165 ∞ ∞ 415 ∞
A B C D E F G H I J

pred= A A A B F
A B C D E F G H I J
Étape 4

P=[A,B,F,E]
Q=[C,I,J]
d= 0 85 217 ∞ 173 165 ∞ ∞ 415 675

A B C D E F G H I J

pred= A A A B F E
A B C D E F G H I J
Étape 5

P=[A,B,F,E,C]
Q=[I,J,G,H]
d= 0 85 217 ∞ 173 165 403 320 415 675

A B C D E F G H I J

pred= A A A B C C F E
A B C D E F G H I J
Étape 6

P=[A,B,F,E,C,H]
Q=[I,J,G,D] 675

d= 0 85 217 503 173 165 403 320 415 487

A B C D E F G H I J

pred= A A H A B C C F H E
A B C D E F G H I J
Étape 7

P=[A,B,F,E,C,H,G]
Q=[I,J,D]
d= 0 85 217 503 173 165 403 320 415 487

A B C D E F G H I J

pred= A A H A B C C F H
A B C D E F G H I J
Étape 8

P=[A,B,F,E,C,H,G,I] Ne change pas


415+84>487
Q=[J,D]
d= 0 85 217 503 173 165 403 320 415 487

A B C D E F G H I J

pred= A A H A B C C F H
A B C D E F G H I J
Étape 9

P=[A,B,F,E,C,H,G,I,J] Fin de la
recherche
Q=[D]
d= 0 85 217 503 173 165 403 320 415 487

A B C D E F G H I J

pred= A A H A B C C F H
A B C D E F G H I J

Chemin=[A,C,H,J]
Les fonctions à définir (G=(S,A))
 voisins(G, poids,i) qui renvoie la liste d’adjacence
du sommet i sous la forme de :
[(j,p)/ j voisin de i et p = le poids du lien (i,j)].
 trouveMin(Q, d) qui renvoie et retire de Q (la file de
sommets) le sommet i appartenant à Q qui a la plus
petite distance ; Càd d[i]=min([d[j]/j c Q]).
 dijkstra(G, poids, Sdeb, Sfin) qui renvoie le chemin
le plus cours du sommet Sdeb vers le sommet Sfin.
Les fonctions à définir (M = Matrice d'adjacence)
 voisins(i,M) qui renvoie la liste d’adjacence du
sommet i sous la forme de :
[(j,p)/ j voisin de i et p = le poids du lien (i,j)].
 trouveMin(Q, d) qui renvoie et retire de Q (file de
sommets) le sommet i appartenant à Q qui a la plus
petite distance ; Càd d[i]=min([d[j]/j c Q]).
 dijkstra(M, Sdeb, Sfin) qui renvoie le chemin le plus
cours entre du sommet Sdeb vers le sommet Sfin.

Vous aimerez peut-être aussi