Académique Documents
Professionnel Documents
Culture Documents
Nous allons consacrer ce chapitre à l’une des thématiques les plus importantes de la théorie des
graphes, celle de la recherche d’un plus court chemin (pcc) d’un sommet à tous les autres.
1. Graphe valué
1.1. Définition
Soit 𝐺(𝑋, 𝑈, 𝜐) un graphe simple orienté valué ; tout arc (arête) xy est muni d’une évaluation
(possède une valeur numérique) 𝜐(𝑥, 𝑦) (coût, temps, distance, capacité,…) réelle quelconque.
(A,B) = (B,A )= -1. C’est un graphe non orienté, l’application valuation est symétrique.
Longueur du chemin A-C : d(A,C) = (A,B) + (B, C) = -1 + -2 = -3
d(A,C) = (A,E) + (E,D) +(D,C) = -5 + 7 + 0 = 2
(B,E) = -2
(E,B) = 4
Longueur du chemin (B,E,B,A,F) = -2 + 4 + 8 + 1=11.
1
La longueur du chemin entre B et E (graphe orienté) vaut -3, est le plus court chemin de B à E.
3. Algorithme de DIJKSTRA
C’est l’algorithme le plus utilisé car il est aisé à mettre en œuvre, efficace en temps d’exécution et
bien adapté aux situations courantes. Cet algorithme permet de trouver le pcc lorsque
𝜐 ≥ 0.
Etape 1
On initialise : on affecte la longueur 0 au sommet de départ x0
Etape 2
On affecte aux sommets adjacents à x0 la longueur des arêtes qui reliant à x0.
On garde le sommet qui a la longueur minimale soit T ce sommet
Pour tout sommet T’ adjacent à T, calculer la somme de longueur de T et de l’arête
reliant T et T’
On garde la longueur minimale de T’,…..etc
A B C D E F G étapes
0 1-A 2-A 1
1-A 3-B 4-B 2
2-A 5-C 6-C 3
3-B 5-D 6-D 6-D 4
4-B 8-F 5
5-D 10-E 6
6-D
Etape 1 :
On affecte 0 à A, il y a deux possibilités de A, on peut aller à B ou C. Le plus petit c’est 1-A (point
B).
Etape 2 :
de B on peut aller à D ou F. Le plus petit c’est 2-A (point C).
Etape 3 :
2
de C on peut aller à D ou E. Le plus petit c’est 3-B (point D).
Etape 4 :
du point D on peut aller à F ou G ou E et le plus petit 4-B (point F).
Etape 5 :
de F on peut aller à G. Le plus petit 5-D (point E)
Etape 6 :
de E on peut aller à G. le plus petit 6-D (point G). STOP.
L’algorithme est fini, maintenant on extraire la solution. La dernière case donne le nombre de
Kilomètre parcouru ici 6 Km.
Quel est ce chemin ?
On va remonter à l’envers
1-A
3-B
6-D
G
D’où le pcc A-B-D-G qui mesure 6 Km
A B C D E F Etapes
0 1-A 3-B 1
1-A 4-B 3-B 11-B 2
3-B 6-D 6-D 3
3-B 9-C 4
6-D 7-E 5
6-D
On va remonter à l’envers
1-A
3-B
6-D
F
3
D’où le pcc A-B-D-F qui mesure 6 Km
4. Algorithme de Bellman-Ford
Définition
Un circuit absorbant (cycle négatif-boucle négative) de graphe G est un circuit de longueur
négative.
Théorème
Un graphe G admet un pcc si G est sans circuit absorbant.
Exemple
G1 G2
-Le circuit CBEC est de longueur =-4+2-1=-3 négative. Donc le graphe G1 ne possède pas un pcc.
-Le graphe G2 ne possède pas un circuit absorbant donc il existe un pcc dans ce graphe.
4.1. Algorithme
d(s)=0
Pour chaque sommet S sauf s Etape d’initialisation
Faire d()
4
Alors d()=d(u)+ C(u, )
Fin
Fin
4.2. Exemples
Exemple 1
B
-1
6 -2 E
3
A 4
C 3
-2 F
5
-1
D
0
On doit examiner toutes les arêtes : AB, AC, AD, DC, CB, BE, CE, DF, EF
On applique la règle : si d(u)+ (x, y) d(x) alors d(x) = d(u)+ (x, y)
5 sommets, il ya 4 itérations.
1ère itération
5
61
0
0
43
43
5
2ème itération
61
00
0
43
43
55
itération A B C D E F Sommet
Initialisation 0
1 0 6-A 4-A 5-A 0-B 4-E A
2 0 1-C 3-D 5-A 0-B 3-E D
3 0 1-C 3-D 5-A 0-B 3-E C
4 0 1-C 3-D 5-A 0-B 3-E B
5 0 1-C 3-D 5-A 0-B 3-E E
Contrôle 0 1 3 5 0 3 F
Nous sélections donc l’itération 5 et la colonne F (notre point d’arrivée), nous arrivons sur
l’intersection avec le point E.
Nous remontons le tableau avec l’itération 4 et la colonne E, nous arrivons donc sur l’intersection
avec le point B.
6
Nous remontons le tableau sur l’intersection de l’itération 3 et la colonne B, donne le point C.
L’intersection de l’itération 2 et la colonne C donne le point D.
L’intersection de l’itération 1 et la colonne D donne le point A.
AF : ADCBEF (longueur =3)
AE : ADCBE (longueur =0)
AC : ADC (longueur =3)
AD : AD (longueur =5)
AB : ADCB (longueur =1)
Exemple 2
10 arcs : AB, AC, BC, BD, DB, BE, CD, ED, DF, EF
6 sommets 5 itérations
Tableau de synthèse
itération A B C D E F Sommet
Initialisation 0
1 0 3-A 4-A 5-B 5-B 2-D A
2 0 -3-D 4-D -1-C -1-B 0-E C
3 0 -3-D 4-D -1-C -1-B 0-E D
4 0 -3-D 4-D -1-C -1-B 0-E B
5 0 -3-D 4-D -1-C -1-B 0-E E
Contrôle 0 -3 4 -1 -1 0 F
Exemple 3
7
Boucle infinie pas de pcc