Vous êtes sur la page 1sur 56

L’ALGORITHME DE DIJKSTRA

Edsger Dijkstra (1930 - 2002) fut l’un des


pionniers de l’informatique

A inventé la solution au
problème de Prince PETIT

Anecdote : Dijkstra avait une écriture manuscrite très


lisible et a toujours refusé d'utiliser un traitement de texte,
malgré son domaine d'activité, préférant la lettre
manuscrite photocopiée.
L’ALGORITHME DE DIJKSTRA
Principe : On bouge de sommet en sommet. Au cours de
chaque itération, on choisit en dehors du sommet actuel
et des sommets parcourus un sommet de distance
minimale.

La mise à jour s'opère comme suit : la nouvelle distance


du sommet voisin est le minimum entre la distance
existante et celle obtenue en ajoutant le poids de l'arc
entre sommet voisin et sommet ajouté à la distance du
sommet ajouté.

On continue ainsi jusqu'à jusqu'à sélection du sommet


d'arrivée.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
3
1
B F 4
3
2
3
A D G
2
2 3 5
C E
4
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?

1 pour aller en B
2 pour aller en C

Ces valeurs sont inférieures à celles qu’on a déjà (∞).


Elles deviennent donc les valeurs effectives et on
sélectionne les chemins de A vers B et de A vers C
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
2 ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?

1 pour aller en B
On choisit maintenant le nœud 2 pour aller en C
« le plus proche » de A : B
Ces valeurs sont inférieures à celles qu’on a déjà (∞).
Elles deviennent donc les valeurs effectives et on
sélectionne les chemins de A vers B et de A vers C
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3

3
B F 1
B F 4
1 3 4 3
2 2
0
3
A D G
0
3
A ∞ D G ∞ ∞ 2

2 2 3
2 3 5 5
C E C 4
E

2
4
∞ 2 ∞

On se place en B et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Est-ce que ces distances sont inférieures à celles qu’on a


déjà ?

Pour aller en D : 1 + 2 = 3
Pour aller en F : 1 + 3 = 4
Les deux valeurs sont inférieures à l’infini
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3
4
3
B F 1
B F 4
1 3 4 3
2 2
0
3
A D G
0 3
3
A ∞ D G ∞ 2

2 2 3
2 3 5 5
C E C 4
E

2
4
∞ 2 ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3
4
3
B F 1
B F 4
1 4 3
2
3 2 On choisit maintenant le nœud
0
3
A D G
0 3
3
A ∞ D G ∞ ∞
2 3
2 2 3
2
5
« le plus proche » de A : C
5
C E C 4
E

2
4
∞ 2 ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 ∞

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 ∞

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0
3
A D G
3 2
∞ « le plus proche » de A : D
2 3 5
C E
4
2 6
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0
3
A D G
3 2
∞ « le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 6 nous avons (4). On invalide la route qui mène de D vers F.
Pour aller en E : 3 + 2 = 5, c’est inférieur
à la valeur que nous avons (6). On Pour aller en G : 3 + 3 = 6, c’est inférieur
prend la route qui va de D à E et on à la valeur que nous avons (∞). On
invalide celle qui mène de C vers E. prend la route qui va de D à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0 6
3
A D G
3 2
« le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 5 nous avons (4). On invalide la route qui mène de D vers F.
Pour aller en E : 3 + 2 = 5, c’est inférieur
à la valeur que nous avons (6). On Pour aller en G : 3 + 3 = 6, c’est inférieur
prend la route qui va de D à E et on à la valeur que nous avons (∞). On
invalide celle qui mène de C vers E. prend la route qui va de D à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0 6
3
A D G
3 2
« le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 5 nous avons (4). On invalide la route qui mène de D vers F.

Pour aller en E : 3 + 2 = 5, c’est inférieur à la valeur que nous


avons (6). On prend la route qui va de D à E et on invalide
celle qui mène de C vers E.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
1
B F 4
3
2
0 6
3
A D G
3 2
2 3 5
C E
4
2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
1
B F 4
3
2
On choisit maintenant le nœud
0 6
3
A D G
3
2 3
2
5
« le plus proche » de A : F
C E
4
2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4 Pour aller en G : 4 + 4 = 8,
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 c’est supérieur à la valeur
2 2
2 3 5 2 3 5 que nous avons (6). On
C E C E
4 4
invalide la route qui va de F
2 5 2 5
à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4 Pour aller en G : 4 + 4 = 8,
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 c’est supérieur à la valeur
2 2
2 3 5 2 3 5 que nous avons (6). On
C E C E
4 4
invalide la route qui va de F
2 5 2 5
à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
On regarde le nœud fils de E : G
Il est situé à 5 + 5 = 10
C’est supérieur à la valeur que nous avons, on invalide la route qui va de E à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
On regarde le nœud fils de E : G
Il est situé à 5 + 5 = 10
C’est supérieur à la valeur que nous avons, on invalide la route qui va de E à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 On choisit maintenant le nœud
2 2
2 3 5 2 3 5 « le plus proche » de A : G, qui
C E C E
4 4 est accessoirement le seul qui
2 5 2 5
reste et le nœud de
destination :)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 On choisit maintenant le nœud
2 2
2 3 5 2 3 5 « le plus proche » de A : G, qui
C E C E
4 4 est accessoirement le seul qui
2 5 2 5
reste et le nœud de
destination :)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 6 0 6
3 3
A D G A D G
3 2
3 2 On retrouve le chemin de
2 3 5 2 3 5
C E C E longueur 6 qui nous a mené à G :
4 4
2 5 2 5 ABDG
Il s’agit du chemin le plus court
L’ALGORITHME DE DIJKSTRA

Edsger Dijkstra (1930 - 2002) fut l’un des


pionniers de l’informatique

A inventé la solution au
problème de Prince PETIT

Anecdote : Dijkstra avait une écriture manuscrite très


lisible et a toujours refusé d'utiliser un traitement de texte,
malgré son domaine d'activité, préférant la lettre
manuscrite photocopiée.
L’ALGORITHME DE DIJKSTRA
Principe : On bouge de sommet en sommet. Au cours de
chaque itération, on choisit en dehors du sommet actuel
et des sommets parcourus un sommet de distance
minimale.

La mise à jour s'opère comme suit : la nouvelle distance


du sommet voisin est le minimum entre la distance
existante et celle obtenue en ajoutant le poids de l'arc
entre sommet voisin et sommet ajouté à la distance du
sommet ajouté.

On continue ainsi jusqu'à jusqu'à sélection du sommet


d'arrivée.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
3
1
B F 4
3
2
3
A D G
2
2 3 5
C E
4
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
∞ 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
∞ ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?

1 pour aller en B
2 pour aller en C

Ces valeurs sont inférieures à celles qu’on a déjà (∞).


Elles deviennent donc les valeurs effectives et on
sélectionne les chemins de A vers B et de A vers C
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 3

1
B F 4 Initialisation : on se trouve en A, on ne sait pas à combien
3
2
0
3
A ∞ D G ∞ sont les autres nœuds. On leur attribue donc la valeur
2
2
C
3
E
5 infinie.
4
2 ∞
On se place en A et on regarde les nœuds fils : combien de
distance au total doit-on parcourir pour les atteindre ?

1 pour aller en B
On choisit maintenant le nœud 2 pour aller en C
« le plus proche » de A : B
Ces valeurs sont inférieures à celles qu’on a déjà (∞).
Elles deviennent donc les valeurs effectives et on
sélectionne les chemins de A vers B et de A vers C
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3

3
B F 1
B F 4
1 3 4 3
2 2
0
3
A D G
0
3
A ∞ D G ∞ ∞ 2

2 2 3
2 3 5 5
C E C 4
E

2
4
∞ 2 ∞

On se place en B et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Est-ce que ces distances sont inférieures à celles qu’on a


déjà ?

Pour aller en D : 1 + 2 = 3
Pour aller en F : 1 + 3 = 4
Les deux valeurs sont inférieures à l’infini
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3
4
3
B F 1
B F 4
1 3 4 3
2 2
0
3
A D G
0 3
3
A ∞ D G ∞ 2

2 2 3
2 3 5 5
C E C 4
E

2
4
∞ 2 ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 3
4
3
B F 1
B F 4
1 4 3
2
3 2 On choisit maintenant le nœud
0
3
A D G
0 3
3
A ∞ D G ∞ ∞
2 3
2 2 3
2
5
« le plus proche » de A : C
5
C E C 4
E

2
4
∞ 2 ∞
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 ∞

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 ∞

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6

On se place en C et on regarde les nœuds fils : combien de


distance au total doit-on parcourir pour les atteindre ?

Pour aller en D : 2 + 3 = 5, c’est supérieur à la valeur que


nous avons (3). On invalide la route qui mène de C vers D.

Pour aller en E : 2 + 4 = 6, c’est inférieur à la valeur que nous


avons (∞)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0
3
A D G
3 2
∞ « le plus proche » de A : D
2 3 5
C E
4
2 6
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0
3
A D G
3 2
∞ « le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 6 nous avons (4). On invalide la route qui mène de D vers F.
Pour aller en E : 3 + 2 = 5, c’est inférieur
à la valeur que nous avons (6). On Pour aller en G : 3 + 3 = 6, c’est inférieur
prend la route qui va de D à E et on à la valeur que nous avons (∞). On
invalide celle qui mène de C vers E. prend la route qui va de D à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0 6
3
A D G
3 2
« le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 5 nous avons (4). On invalide la route qui mène de D vers F.
Pour aller en E : 3 + 2 = 5, c’est inférieur
à la valeur que nous avons (6). On Pour aller en G : 3 + 3 = 6, c’est inférieur
prend la route qui va de D à E et on à la valeur que nous avons (∞). On
invalide celle qui mène de C vers E. prend la route qui va de D à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
B F
1
2
3 4 On choisit maintenant le nœud
0 6
3
A D G
3 2
« le plus proche » de A : D
2 3 5
C E Pour aller en F : 3 + 3 = 6, c’est supérieur à la valeur que
4
2 5 nous avons (4). On invalide la route qui mène de D vers F.

Pour aller en E : 3 + 2 = 5, c’est inférieur à la valeur que nous


avons (6). On prend la route qui va de D à E et on invalide
celle qui mène de C vers E.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
1
B F 4
3
2
0 6
3
A D G
3 2
2 3 5
C E
4
2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4
1
B F 4
3
2
On choisit maintenant le nœud
0 6
3
A D G
3
2 3
2
5
« le plus proche » de A : F
C E
4
2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4 Pour aller en G : 4 + 4 = 8,
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 c’est supérieur à la valeur
2 2
2 3 5 2 3 5 que nous avons (6). On
C E C E
4 4
invalide la route qui va de F
2 5 2 5
à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4 Pour aller en G : 4 + 4 = 8,
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 c’est supérieur à la valeur
2 2
2 3 5 2 3 5 que nous avons (6). On
C E C E
4 4
invalide la route qui va de F
2 5 2 5
à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
On regarde le nœud fils de E : G
Il est situé à 5 + 5 = 10
C’est supérieur à la valeur que nous avons, on invalide la route qui va de E à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
On choisit maintenant le nœud
0 6 0 6
3 3
A D G A D G
3 3
2 3
2
5 2 3
2
5
« le plus proche » de A : E
C E C E
4 4
2 5 2 5
On regarde le nœud fils de E : G
Il est situé à 5 + 5 = 10
C’est supérieur à la valeur que nous avons, on invalide la route qui va de E à G.
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 On choisit maintenant le nœud
2 2
2 3 5 2 3 5 « le plus proche » de A : G, qui
C E C E
4 4 est accessoirement le seul qui
2 5 2 5
reste et le nœud de
destination :)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 A
3 D 3
G 6 0 A
3 D 3
G 6 On choisit maintenant le nœud
2 2
2 3 5 2 3 5 « le plus proche » de A : G, qui
C E C E
4 4 est accessoirement le seul qui
2 5 2 5
reste et le nœud de
destination :)
L’ALGORITHME DE DIJKSTRA
On cherche le plus court chemin pour aller de A à G
1 ∞ 1 4 1 3
4
3 3
B F B F 1
B F 4
1 4 1 3 4 3
3 2 2
0
2 3
A D G
0 3
3
0 A ∞ D 3
G ∞ A
3 D G ∞ 2

2 2 2 3
2 3 2 3 5 5
5
C E C E C E
4 4

2
4
∞ 2 ∞ 2 6
1 3
4 1 3
4
1
B F 4 1
B F 4
3 3
2 2
0 6 0 6
3 3
A D G A D G
3 2
3 2 On retrouve le chemin de
2 3 5 2 3 5
C E C E longueur 6 qui nous a mené à G :
4 4
2 5 2 5 ABDG
Il s’agit du chemin le plus court

Vous aimerez peut-être aussi