Theorie des graphes
En théorie des graphes, l'algorithme de Dijkstra (prononcer [dɛjkstra]) sert à résoudre le problème du plus court chemin. Il permet, par exemple, de déterminer le plus court chemin pour se rendre d'une ville à une autre connaissant le réseau routier d'une région. Il s'applique à un graphe connexe dont le poids lié aux arêtes est positif ou nul.
L'algorithme porte le nom de son inventeur, l'informaticien néerlandais Edsger Dijkstra et a été publié en 1959[1].
En théorie de la complexité on démontre que cet algorithme est polynomial. Sommaire * 1 Applications * 2 Principe sur un exemple * 2.1 Distance entre la ville A et la ville J * 2.2 Présentation sous forme de tableau * 3 Notations * 4 Principes * 5 Algorithme * 5.1 Fonctions annexes * 5.1.1 Initialisation de l'algorithme * 5.1.2 Recherche du nœud le plus proche * 5.1.3 Mise à jour des distances * 5.2 Fonction principale * 5.3 Améliorations de l'algorithme |
Applications
L'algorithme de Dijkstra trouve son utilité dans le calcul des itinéraires routiers. Le poids des arcs pouvant être la distance (pour le trajet le plus court), le temps estimé (pour le trajet le plus rapide), le plus économique (avec la consommation de carburant et le prix des péages).
Une application des plus courantes de l'algorithme de Dijkstra est le protocole open shortest path first qui permet un routage internet très efficace des informations en cherchant le parcours le plus efficace.
Les routeurs IS-IS utilisent également l'algorithme.
Principe sur un exemple
Il s'agit de construire progressivement, à partir des données initiales, un sous-graphe dans lequel sont classés les différents sommets par ordre croissant de leur distance minimale au sommet de départ. La distance correspond à la somme des poids des arêtes empruntées.
La première étape consiste à mettre de côté le sommet de départ et à repérer la distance du sommet de départ aux autres