Vous êtes sur la page 1sur 5

CALCUL SPF AVEC DIJKSTRA

1. Topologie

Soit la topologie de la figure ci-dessus.

Il est question de calculer le meilleur chemin possible entre A et F en se basant sur les
règles de Dijkstra.

2. Règles de Dijkstra
1) S’assurer qu’il n’existe pas de branche négative. Mettre la distance du vertex
initial a « 0 » et celle des autres vertex a « ∞ ».
2) Relâcher tous les vertex adjacents au vertex courant et calculer leur distance :
Si distance actuelle + cout adjacent < distance adjacente alors corriger distance
adjacente
3) Choisir le vertex le plus proche comme vertex courant
4) Répéter les règles 2 et 3 jusqu’à la fin
3. Tableau des résultats
Etape 1
Sur la ligne de départ, le vertex initial est mis en évidence avec sa pondération initiale
(0). Tous les autres vertex sont pondérés à l’infini (∞)

Vertex
A B C D E F
courant

Départ 0A ∞ ∞ ∞ ∞ ∞

A(0) 2A 4A ∞ ∞ ∞
On créé une nouvelle ligne avec le vertex initial et sa pondération. On repère les vertex
adjacents (B et C), puis on inscrit leur distance vers le vertex initial A

Etape 2
La plus petite distance sur la nouvelle ligne provient de B (2A). On créé alors une
nouvelle ligne avec le vertex B et sa distance vers A : B(2).

Vertex
A B C D E F
courant

Départ 0A ∞ ∞ ∞ ∞ ∞

A(0) 2A 4A ∞ ∞ ∞

B(2) 3B 6B 4B ∞
On repère les vertex adjacents à B : C, D et E. il faut ensuite calculer leur distance totale
vers A. on additionne la distance courante a la distance de B vers A. pour C : 2+1=3 ;
pour D : 2+4=6 et pour E : 2+2=4. On compare ces distances aux distances de la ligne
précédente. Si les nouvelles distances sont meilleures, on les inscrit dans la nouvelle ligne
sinon on garde la distance précédente.

Etape 3
La plus petite distance sur la nouvelle ligne provient de C (3B). On créé alors une
nouvelle ligne avec le vertex C et sa distance vers B : C(3).
Vertex
A B C D E F
courant

Départ 0A ∞ ∞ ∞ ∞ ∞

A(0) 2A 4A ∞ ∞ ∞

B(2) 3B 6B 4B ∞

C(3) 6B 4B ∞
En passant par E : 3+3=6 6 est plus petit que 4 donc on conserve l’ancienne distance 4B

Etape 4
La plus petite distance sur la nouvelle ligne provient de E (4B). On créé alors une
nouvelle ligne avec le vertex E et sa distance vers B: E(4).

Vertex
A B C D E F
courant

Départ 0A ∞ ∞ ∞ ∞ ∞

A(0) 2A 4A ∞ ∞ ∞

B(2) 3B 6B 4B ∞

C(3) 6B 4B ∞

E(4) 6B 6E
Les voisins actifs de E sont D et F. pour D :4+3=7 7est plus grand que 6 donc on garde la
dernière distance. Pour F : 4+2=6 6 est plus petit que l’infini donc on inscrit la nouvelle
distance 6.

Nous avons atteint F donc plus besoin de continuer les calculs. Pour trouver le plus court
chemin, nous partons de la colonne F, elle contient 6E ; on repère la colonne E, elle
contient 4B ; on repère la colonne B. elle contient 2A ;
La colonne A étant notre point de départ, le plus court chemin est A – B – E – F pour un
cout de 6.
4. Exercice 1

Déterminez le plus court chemin entre a et z en utilisant l’algorithme de Dijkstra.


5. Exercice 2

En vous servant de l’algorithme de Dijkstra, déterminez le plus court chemin entre le


vertex de départ M le vertex d’arrivée S

Vous aimerez peut-être aussi