Découvreur ou inventeur | |
---|---|
Date de découverte | |
Problèmes liés |
Algorithme de recherche de chemin (d), algorithme de la théorie des graphes (en), algorithme glouton, algorithme |
Structure des données | |
Basé sur | |
À l'origine de |
Algorithme A*, link-state routing protocol (en), Open Shortest Path First, IS-IS |
Pire cas | Pour un graphe à sommets et arcs : pour l'implémentation avec un tas binaire, pour l'implémentation avec un tas de Fibonacci |
---|
En théorie des graphes, l'algorithme de Dijkstra (prononcé [dɛɪkstra]) sert à résoudre le problème du plus court chemin. Il permet, par exemple, de déterminer un plus court chemin pour se rendre d'une ville à une autre connaissant le réseau routier d'une région. Plus précisément, il calcule des plus courts chemins à partir d'une source vers tous les autres sommets dans un graphe orienté pondéré par des réels positifs. On peut aussi l'utiliser pour calculer un plus court chemin entre un sommet de départ et un sommet d'arrivée.
L'algorithme porte le nom de son inventeur, l'informaticien néerlandais Edsger Dijkstra, et a été publié en 1959[2].
La complexité temporelle de l'algorithme de Dijkstra dépend de la structure de données utilisée pour la file de priorité :
Ces complexités s'appliquent aux graphes avec des poids d'arêtes positifs. Pour les graphes comportant des arêtes de poids négatif, l'algorithme de Bellman-Ford est généralement préféré.