Calculateur de plus court chemin de Dijkstra
Trouvez le plus court chemin entre les nœuds d'un graphe pondéré à l'aide de l'algorithme de Dijkstra. Comprend une visualisation interactive du graphe, un suivi étape par étape de la file de priorité et l'affichage de l'arborescence des plus courts chemins.
Votre bloqueur de pubs nous empêche d’afficher des annonces
MiniWebtool est gratuit grâce aux annonces. Si cet outil vous a aidé, soutenez-nous avec Premium (sans pubs + outils plus rapides) ou ajoutez MiniWebtool.com à la liste blanche puis rechargez la page.
- Ou passez à Premium (sans pubs)
- Autorisez les pubs pour MiniWebtool.com, puis rechargez
Calculateur de plus court chemin de Dijkstra
Bienvenue sur le Calculateur de plus court chemin de Dijkstra, un outil interactif pour trouver les chemins les plus courts dans des graphes pondérés en utilisant l'algorithme de Dijkstra. Que vous soyez un étudiant en informatique apprenant la théorie des graphes, un professionnel des réseaux analysant les protocoles de routage ou un développeur implémentant la recherche de chemin, ce calculateur offre une exploration visuelle et étape par étape de l'un des algorithmes les plus fondamentaux de l'informatique.
Qu'est-ce que l'algorithme de Dijkstra ?
L'algorithme de Dijkstra, inventé par l'informaticien néerlandais Edsger W. Dijkstra en 1956, est un algorithme de recherche de graphe qui résout le problème du plus court chemin à source unique pour un graphe pondéré avec des poids d'arête non négatifs. À partir d'un nœud source, il trouve le chemin le plus court entre ce nœud et tous les autres nœuds du graphe.
L'algorithme fonctionne en maintenant un ensemble de nœuds non visités et en sélectionnant de manière répétée le nœud non visité ayant la plus petite distance provisoire (une stratégie gloutonne). C'est ce qui le rend à la fois élégant et efficace — une fois qu'un nœud est "visité", sa distance la plus courte est garantie comme étant finale.
Pseudocode de l'algorithme
pour chaque nœud v dans Graphe:
dist[v] ← ∞
prev[v] ← indéfini
dist[source] ← 0
Q ← file de priorité de tous les nœuds
tant que Q n'est pas vide:
u ← nœud dans Q avec dist[u] minimale
retirer u de Q
pour chaque voisin v de u encore dans Q:
alt ← dist[u] + poids(u, v)
si alt < dist[v]:
dist[v] ← alt // relâchement
prev[v] ← u
retourner dist[], prev[]
Formule centrale
Où :
- d[u] = distance actuelle la plus courte connue de la source au nœud u
- w(u, v) = poids de l'arête de u vers v
- d[v] = distance actuelle la plus courte connue de la source au nœud v
Comment utiliser ce calculateur
- Définissez les arêtes de votre graphe : Saisissez les arêtes au format
source, destination, poids, une par ligne. Chaque ligne représente une connexion entre deux nœuds. - Choisissez le type de graphe : Sélectionnez "Non orienté" pour les arêtes à double sens (comme les routes) ou "Orienté" pour les arêtes à sens unique (comme les routes aériennes ou les liens web).
- Définissez le nœud source : Entrez le nœud de départ à partir duquel tous les chemins les plus courts seront calculés.
- Trouvez les plus courts chemins : Cliquez sur le bouton pour exécuter l'algorithme de Dijkstra. Explorez la visualisation interactive du graphe, le tableau des distances et la trace étape par étape.
- Parcourez les étapes : Utilisez les boutons Suivant/Précédent pour voir l'algorithme s'exécuter une étape à la fois, avec le graphe mettant en évidence les nœuds et les arêtes mis à jour en temps réel.
Comprendre les résultats
Tableau des distances
Affiche la distance la plus courte de la source à chaque nœud, ainsi que le chemin complet. Les nœuds marqués ∞ sont inaccessibles depuis la source.
Visualisation du graphe
Le canvas interactif affiche votre graphe avec des nœuds et des arêtes code-couleur :
- Nœud bleu = Nœud source
- Nœuds verts = Visités (distance finalisée)
- Nœud orange = En cours de traitement
- Nœuds gris = Pas encore visités
- Arêtes vertes = Arbre des plus courts chemins
Trace étape par étape
Affiche l'exécution de l'algorithme, y compris les extractions de la file de priorité, les relâchements d'arêtes et les mises à jour de distance à chaque étape. C'est inestimable pour apprendre le fonctionnement de l'algorithme.
Complexité temporelle
L'efficacité de l'algorithme de Dijkstra dépend de la structure de données utilisée pour la file de priorité :
| File de priorité | Complexité temporelle | Idéal pour |
|---|---|---|
| Tas binaire | \( O((V + E) \log V) \) | Usage général, graphes creux |
| Tas de Fibonacci | \( O(V \log V + E) \) | Graphes denses (théorique) |
| Tableau (sans tas) | \( O(V^2) \) | Graphes très denses, petit V |
Où V est le nombre de sommets (nœuds) et E est le nombre d'arêtes. Ce calculateur utilise une implémentation par tas binaire.
Graphes orientés vs non orientés
- Graphe non orienté : Une arête entre A et B signifie que vous pouvez voyager à la fois A→B et B→A. Exemples : réseaux routiers, réseaux d'amitié, circuits électriques.
- Graphe orienté : Une arête de A vers B permet uniquement le trajet A→B, pas nécessairement B→A. Exemples : hyperliens web, abonnés Twitter, routes aériennes, flux de rivières.
Limitations de l'algorithme de Dijkstra
- Pas de poids négatifs : L'algorithme de Dijkstra produit des résultats incorrects avec des poids d'arête négatifs. Utilisez Bellman-Ford pour les graphes avec des poids négatifs (mais sans cycles négatifs).
- Source unique : Il trouve les chemins les plus courts à partir d'une seule source. Pour les chemins les plus courts entre toutes les paires, utilisez Floyd-Warshall ou exécutez Dijkstra à partir de chaque nœud.
- Pas de cycles négatifs : Les cycles négatifs rendent les chemins les plus courts indéfinis (on peut toujours faire le tour du cycle pour réduire la distance indéfiniment).
Applications réelles
Navigation GPS
Les services de cartographie utilisent des variantes de l'algorithme de Dijkstra (souvent avec des heuristiques A*) pour trouver l'itinéraire le plus rapide entre deux lieux. Les intersections routières sont des nœuds, et les segments de route sont des arêtes pondérées (par temps ou distance).
Routage réseau
Les protocoles de routage Internet comme OSPF (Open Shortest Path First) et IS-IS utilisent l'algorithme de Dijkstra pour calculer les chemins les plus courts à travers les topologies de réseau. Chaque routeur construit un arbre de plus courts chemins pour déterminer la transmission des paquets.
Analyse des réseaux sociaux
Trouver le chemin de connexion le plus court entre les utilisateurs (degrés de séparation), calculer des mesures de centralité et identifier les nœuds influents dans un réseau.
Développement de jeux
La recherche de chemin des PNJ dans les jeux vidéo utilise l'algorithme de Dijkstra ou A* (qui étend Dijkstra avec des heuristiques) pour naviguer sur les cartes de jeu et trouver des chemins de mouvement optimaux.
Chaîne d'approvisionnement et logistique
Optimisation des itinéraires de livraison, des chemins entre l'entrepôt et le magasin et des réseaux de transport multimodal où différentes méthodes de transport ont des coûts différents.
Foire aux questions
Qu'est-ce que l'algorithme de Dijkstra ?
L'algorithme de Dijkstra est un algorithme de recherche de graphe qui trouve le plus court chemin entre un nœud source et tous les autres nœuds dans un graphe pondéré avec des poids d'arête non négatifs. Il utilise une stratégie gloutonne avec une file de priorité (min-heap), traitant toujours le nœud non visité ayant la plus petite distance connue. La complexité temporelle est O((V + E) log V) avec un tas binaire.
L'algorithme de Dijkstra peut-il gérer des poids d'arête négatifs ?
Non, l'algorithme de Dijkstra exige que tous les poids d'arête soient non négatifs. Les poids négatifs peuvent amener l'algorithme à produire des résultats incorrects car une fois qu'un nœud est marqué comme visité, sa distance est considérée comme finale. Pour les graphes avec des poids négatifs (mais sans cycles négatifs), utilisez plutôt l'algorithme de Bellman-Ford.
Quelle est la différence entre les graphes orientés et non orientés ?
Dans un graphe orienté, les arêtes ont une direction — une arête de A vers B n'implique pas une arête de B vers A. Dans un graphe non orienté, les arêtes fonctionnent dans les deux sens — s'il y a une connexion entre A et B, vous pouvez voyager dans n'importe quelle direction. Les réseaux routiers sont généralement modélisés comme des graphes non orientés, tandis que les liens web et les routes aériennes sont orientés.
Qu'est-ce que le relâchement d'arête dans l'algorithme de Dijkstra ?
Le relâchement d'arête est l'opération centrale de l'algorithme de Dijkstra. Lors de la visite d'un nœud u, pour chaque voisin v, l'algorithme vérifie si le chemin passant par u (dist[u] + poids(u,v)) est plus court que la distance actuelle connue vers v (dist[v]). S'il est plus court, la distance est mise à jour (relâchée) et v est ajouté à la file de priorité avec la nouvelle distance.
Qu'est-ce qu'un arbre des plus courts chemins ?
Un arbre des plus courts chemins (SPT) est un sous-graphe enraciné au nœud source qui contient les chemins les plus courts de la source vers tous les nœuds accessibles. Chaque nœud (sauf la source) ha exactement un parent — le prédécesseur sur son chemin le plus court. Le SPT est un sous-produit de l'algorithme de Dijkstra et est utile pour le routage et la conception de réseaux.
Quelles sont les applications réelles de l'algorithme de Dijkstra ?
L'algorithme de Dijkstra est utilisé dans les systèmes de navigation GPS, les protocoles de routage réseau (OSPF, IS-IS), l'analyse des réseaux sociaux, l'optimisation des routes aériennes, la planification de trajectoire de robots, la recherche de chemin dans l'IA des jeux, la logistique de la chaîne d'approvisionnement et la conception de réseaux de télécommunications. Tout problème pouvant être modélisé comme la recherche du chemin le plus court ou le moins coûteux dans un graphe bénéficie de cet algorithme.
Ressources supplémentaires
Citez ce contenu, cette page ou cet outil comme suit :
"Calculateur de plus court chemin de Dijkstra" sur https://MiniWebtool.com/fr// de MiniWebtool, https://MiniWebtool.com/
par l'équipe miniwebtool. Mis à jour : 19 fév. 2026
Vous pouvez également essayer notre Résolveur Mathématique IA GPT pour résoudre vos problèmes mathématiques grâce à des questions-réponses en langage naturel.