Aller au contenu principal

Problème du plus court chemin

Objectifs

  • Définir le problème du plus court chemin
  • Appliquer l'algorithme de Dijkstra

Cours

Problème du plus court chemin

Graphes

Problème du plus court chemin

Trouver le chemin le plus court entre deux sommets dans un graphe pondéré.

Algorithme de Dijkstra

Trouver le plus court chemin entre un sommet et tous les autres sommets du graphe.

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Quel est le plus court chemin de M à S ?

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-26fc789a.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Initialiser les distances : infini sauf pour le départ M (0).

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-52d380dd.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

M est visité (plus court chemin trouvé).

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-0a48c26a.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Découverte des voisins de M.

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-8cfcda55.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Visite du sommet le plus proche de M : N

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-09b2ed0d.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Découverte des voisins de N et mise à jour des distances.

L : 4 + 2 = 6 < 7 ; S : 4 + 8 = 12 < ∞

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-9922ac91.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Visite du sommet le plus proche de M : L

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-f6eebabf.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Découverte des voisins de L et mise à jour des distances.

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-1bb83686.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Visite du sommet le plus proche de M : E

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-c4ad6ef0.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Découverte des voisins de E.

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-2391ee5c.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-3ea047a0.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Visite du sommet le plus proche de M : S

Fin car le sommet de destination est visité.

Algorithme de Dijkstra

https://www.maths-cours.fr/assets/psimg/ps-methode_algorithme-de-dijkstra-etape-par-etape-3ea047a0.svg

https://www.maths-cours.fr/methode/algorithme-de-dijkstra-etape-par-etape

Chemin minimal de M :

  • à N : M → N (4)

  • à L : M → N → L (6)

  • à E : M → E (10)

  • à S : M → N → L → S (11)

  • à T : faire une itération de plus.

Algorithme de Dijkstra

  • Initialisation

    • Distance infini pour tous les sommets sauf le sommet de départ (0).

  • Itérations

    • Trouver le sommet non visité avec la distance la plus petite.

    • Mettre à jour les distances des voisins du sommet choisi.

    • Marquer le sommet choisi comme visité.

Exercice

Quel est le plus court chemin E → B et sa distance ?

Solution

 

A

B

C

D

E

F

 

0

E

14

9

-

7

F

14

9

22

-

-

C

11

-

20

-

-

A

-

20

-

20

-

-

Chemin : E → C → A → B avec une distance de 20.

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Exercices

Dijkstra

Appliquer l'algorithme de Dijkstra sur les graphes suivants :

graphviz

Chemin : A → G

Solution
 ABCDEFG
0
A-62
C-6-7
B---7
D----1722
E-----2219

Chemin : A → C → D → E → G avec une distance de 19

graphviz

graphviz

Chemin : A → F

Solution
 ABCDEF
0
A-44
B--4
C---7510
E---7-8
F-----8

ou

 ABCDEF
0
A-44
C-4-7510
B---7510
E---7-8
F-----8

Chemin : A → C → E → F avec une distance de 8

graphviz

graphviz

Chemin : D → I

Solution
 ABCDEFGHI
0
D3-75
A-10-45
E-6--557
F-68---577
G-68----77
B--7----77
C-------77
H--------7

Chemin : D → A → E → F → I avec une distance de 7

graphviz

Chemin : A → J

Solution
 ABCDEFGHIJ
0
A-85217173
B--217173165
F--217173-415
E--217--415675
C-----403320415675
H---503--403-415487
G---503----415487
I---503-----487

Chemin : A → C → H → J avec une distance de 487 km

Références