0% ont trouvé ce document utile (0 vote)
73 vues17 pages

Comprendre l'algorithme de Dijkstra

Transféré par

Ismaël Talèb Sanogo
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)
73 vues17 pages

Comprendre l'algorithme de Dijkstra

Transféré par

Ismaël Talèb Sanogo
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

Exemple tiré de l'activité proposée par Alexandre Tartarin,


document d'accompagnement SNT, académie de Rouen

M. GEORGES-SAINT-MARC, A. MEUDEC – Lycée PMF Rennes, 2020


Edsger Dijkstra (1930 – 2002)

•Mathématicien et informaticien
néerlandais
•Débute dans l'informatique après
ses études de physique en 1955
• Connu principalement pour
l'algorithme portant son nom
•Recherches importantes allant
bien au delà de cet algorithme
•Reçoit notamment le prix Turing
en 1972

Edsger Dijkstra à l'ETH de Zurich en 1994


(Photo : Andreas F. Borchert, CC BY-SA 4.0)

2 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Algorithme de Dijkstra (1959)

→ Permet de déterminer le chemin le


plus court sur un graphe entre deux
sommets.
B 2 D
3 3
Rappels :
• Graphe : ensemble de sommets A 2 3 1 F
reliés par des arêtes
• Poids des arêtes : valeur 1 1
numérique associée à une arête. C E
→ Peut notamment représenter une 5
distance, un temps ou un coût de
déplacement entre deux endroits.

3 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Algorithme de Dijkstra (1959)

Problème à résoudre
Quel est le trajet le plus court entre les
→ Permet de déterminer le chemin le sommets A et F ?
plus court sur un graphe entre deux
sommets.
B 2 D
3 3
Rappels :
• Graphe : ensemble de sommets A 2 3 1 F
reliés par des arêtes
• Poids des arêtes : valeur 1 1
numérique associée à une arête. C E
→ Peut notamment représenter une 5
distance, un temps ou un coût de
déplacement entre deux endroits.

4 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Algorithme de Dijkstra (1959)

→ Exemple à traiter simple, mais


algorithme intéressant pour des
graphes plus complexes, comme :

5 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

∞ ∞
Initialisation : étiquette 2
B D
● On se place sur le sommet A, et on «
oublie » toutes les arêtes. 3 3
0 ∞
● Chaque sommet est étiqueté par la
A 2 3 1 F
distance la plus courte le reliant à A :

→ la distance entre A et A est 0.


1 1
→ la distance entre A et tout autre
sommet est infinie.
C E
5
∞ ∞

6 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

3 ∞
Premier sommet : A
B 2 D
● Les arêtes issues de A sont tracées.
3 3
● Les distances de A aux sommets B et C 0 ∞
sont désormais connues :
A 2 3 1 F
→ distance A – B : 3
→ distance A – C : 1 1 1
→ les autres distances ne changent C E
pas. 5
1 ∞

7 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?
Sommet suivant : C

● On se place sur le sommet pas encore traité dont


l'étiquette est la plus faible valeur : C
3 4
●On considère les arêtes issues de C, et on actualise les 2
distances entre A et chacun des sommets : B D
3 3
→ chemin A-C-A : longueur 2. 0 ∞
C'est plus long que l’étiquette actuelle de A : 0 .
On ne change rien. A 2 3 1 F
→ chemin A-C-B : longueur 3.
C'est identique à l’étiquette de B : 3 .
On ne change rien. 1 1
→ chemin A-C-D : longueur 4.
C'est mieux que ∞ : on change la valeur. C E
→ chemin A-C-E : longueur 6.
5
C'est mieux que ∞ : on change la valeur. 1 6

● Les chemins les plus courts depuis A sont mémorisés


(arêtes en bleu).

8 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

Sommet suivant : B 3 4
B 2 D
B est le sommet non encore traité portant la plus petite
étiquette. On considère les arêtes issues de B, et on
3 3
actualise les distances entre A et chacun des sommets : 0 ∞
→ chemin A-B-A : longueur 3 + 3 = 6 > 0. Trop long A 2 3 1 F
→ chemin A-B-C : longueur 3 + 2 = 5 > 1. Trop long
1 1
→ chemin A-B-D : longueur 3 + 2 = 5 > 4. Trop long
C E
5
1 6

9 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

Sommet suivant : D

Même raisonnement que précédemment. Le plus court


chemin pour se rendre à D est A-C-D : longueur 4.
Partant de D : 3 4
B 2 D
→ chemin A-C-D-B : longueur 4 + 2 = 6 > 3. Trop long
3 3
→ chemin A-C-D-C : longueur 4 + 3 = 7 > 1. Trop long 0 7
→ chemin A-C-D-E : longueur 4 + 1 = 5 < 6 : mieux. A 2 3 1 F
→ chemin A-C-D-E : longueur 4 + 3 = 7.
1 1
C E
5
1 6 5

10 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

3 4
Sommet suivant : E
B 2 D
Même raisonnement que précédemment. Le plus court
chemin pour se rendre à E est A-C-D-E : longueur 5. 3 3
Partant de D : 0 7 6
A 2 3 1 F
→ chemin A-C-D-E-C : longueur 5 + 5 = 10 > 1. Trop long

→ chemin A-C-D-E-D : longueur 5 + 1 = 6 > 4. Trop long 1 1


→ chemin A-C-D-E-F : longueur 5 + 1 = 6 < 7 : mieux. C E
5
1 5

11 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Fonctionnement de l'algorithme
Quel est le trajet le plus court entre les sommets A et F ?

3 4
B 2 D
Sommet final : F 3 3
0 6
Tous les sommets menant à F ont été examinés. A 2 3 1 F
Le chemin le plus court est donc indiqué : il s'agit de
A–C–D–E-F
1 1
C E
5
1 5

12 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Applications

13 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Applications

14 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Applications

15 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Applications

16 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes


Limites

L'algorithme de Dijkstra est efficace mais


nécessite de parcourir un grand nombre de
sommets du graphe avant de répondre au
problème donné.

→ Cela pose peu de problème dans les


exemples vus jusqu'ici.

→ Cela en pose plus pour des graphes


contenant des milliards de sommets et d'arêtes Comparatif Dijkstra / A*
(le réseau routier d'un pays, par exemple).
Pour cela, des améliorations ont été apportées
à l'algorithme de Dijkstra, en réduisant par
exemple les recherche dans un « rayon »
donné dans le graphe.

→ La plus célèbre amélioration s'appelle


l'algorithme A*.

17 Algorithme de Dijkstra - M. GEORGES-SAINT-MARC, A. MEUDEC (2020) Lycée PMF, Rennes

Vous aimerez peut-être aussi