Algorithme de DIJKSTRA Recherche d’un chemin minimal
On se donne un graphe orienté où chaque arrête est affectée d’un poids. L’objectif est de trouver un chemin de poids minimum entre deux sommets choisis.
Exemple 1 : quel est le chemin minimal entre A et H ? A C E H G B F D
A C E H G B F D ABCDEFGH Définitif
A C E H G B F D ABCDEFGH (4,A)(3,A)(5,A) A
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C)C3C3
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C)C3C3 (5,B)(7,B)B4B4
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C)C3C3 (5,B)(7,B)B4B4 -(9,D)D5D5
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C)C3C3 (5,B)(7,B)B4B4 -(9,D)D5D5 -(8,E)E5E5
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C) C3C3 (5,B)(7,B) B4B4 -(9,D) D5D5 -(8,E) E5E5 -(13,F) F7F7
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C) C3C3 (5,B)(7,B) B4B4 -(9,D) D5D5 -(8,E) E5E5 -(13,F) F7F7 (12,G) G8G8
A C E H G B F D ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C) C3C3 (5,B)(7,B) B4B4 -(9,D) D5D5 -(8,E) E5E5 -(13,F) F7F7 (12,G) G8G8 H 12
ABCDEFGH Définitif (4,A)(3,A)(5,A) A (6,C) C3C3 (5,B)(7,B) B4B4 -(9,D) D5D5 -(8,E) E5E5 -(13,F) F7F7 (12,G) G8G8 H 12 Conclusion : le plus court chemin pour aller de A à H est 12 et il provient de G, lui-même distant de 8 et provenant de E, lui-même distant de 5 et provenant de B, lui-même distant de 4 et provenant de A. Un chemin minimal est donc de poids 12 : A B E G H
Un chemin minimal est donc de poids 12 : A-B-E-G-H A C E H G B F D
Exemple 2 : quel est le chemin minimal entre A et G ? A C E G B F D
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4 (6,D)(7,D)(9,D)D5D5
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4 (6,D)(7,D)(9,D)D5D5 -(8,E)E6E6
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4 (6,D)(7,D)(9,D)D5D5 -(8,E)E6E6 -F7F7
A C E G B F D ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4 (6,D)(7,D)(9,D)D5D5 -(8,E)E6E6 -F7F7 G8G8
ABCDEFG Définitif (4,A)(3,A)(5,A)A (5,C)(8,C)C3C3 -(8,B) B4B4 (6,D)(7,D)(9,D)D5D5 -(8,E)E6E6 -F7F7 G8G8 Conclusion : le plus court chemin pour aller de A à G est 8 et il provient de E, lui-même distant de 6 et provenant de D, lui-même distant de 5 et provenant de A ou C, C lui-même distant de 3 et provenant de A. Un chemin minimal est donc de poids 8 : A C D E G ou A D E G
Exemple 3 : quel est le chemin minimal entre A et I ? A C E G B F D H I
Solution…
ABCDEFGHI Définitif (4,A)(6,A)(5,A)A -(8,B) B4B4 (6,D)(8,D)(11,D)D5D5 --C6C6 -(8,E)E6E6 -(12,F) F8F8 (12,G)G8G8 -H 12 Conclusion : le plus court chemin pour aller de A à I est de poids 12.
ABCDEFGHI Définitif (4,A)(6,A)(5,A)A -(8,B) B4B4 (6,D)(8,D)(11,D)D5D5 --C6C6 -(8,E)E6E6 -(12,F) F8F8 (12,G)G8G8 -H 12 Conclusion : le plus court chemin pour aller de A à I est de poids 12. Un chemin minimal est donc : ADEGI ou ABFI ou ADFI.
ABCDEFGHI Définitif (4,A)(6,A)(5,A)A -(8,B) B4B4 (6,D)(8,D)(11,D)D5D5 --C6C6 -(8,E)E6E6 -(12,F) F8F8 (12,G)G8G8 -H 12 Conclusion : le plus court chemin pour aller de A à I est de poids 12. Un chemin minimal est donc : ADEGI ou ABFI ou ADFI.
ABCDEFGHI Définitif (4,A)(6,A)(5,A)A -(8,B) B4B4 (6,D)(8,D)(11,D)D5D5 --C6C6 -(8,E)E6E6 -(12,F) F8F8 (12,G)G8G8 -H 12 Conclusion : le plus court chemin pour aller de A à I est de poids 12. Un chemin minimal est donc : ADEGI ou ABFI ou ADFI.