Graphes — 06 — Dijkstra : le plus court chemin pondéré
L'algorithme de Dijkstra : trouver le plus court chemin dans un graphe à poids positifs avec une file de priorité. Principe, code, complexité et limite des poids négatifs.
9 articles sur le thème "graphes".
L'algorithme de Dijkstra : trouver le plus court chemin dans un graphe à poids positifs avec une file de priorité. Principe, code, complexité et limite des poids négatifs.
Les deux façons de stocker un graphe en mémoire : liste d'adjacence et matrice d'adjacence. Leurs coûts en temps et en mémoire, et comment choisir selon la densité.
Deux variantes du plus court chemin : Bellman-Ford pour les poids négatifs et la détection de cycles négatifs, et A* qui guide Dijkstra avec une heuristique.
Le parcours en profondeur (DFS) : explorer au plus loin avant de revenir, en version récursive et itérative avec pile, sa complexité et ses applications.
Introduction aux graphes : sommets et arêtes, vocabulaire (orienté, pondéré, cyclique), et pourquoi voir un problème comme un graphe ouvre des solutions toutes faites.
Synthèse de la série graphes : reconnaître un problème de graphe dans du code réel (dépendances, réseaux, recommandations) et choisir le bon algorithme.
Le tri topologique : ordonner les sommets d'un DAG pour respecter toutes les dépendances. Les deux méthodes (Kahn par degrés entrants, et DFS), et leurs usages.
Détecter un cycle avec DFS, dans un graphe orienté (coloration des sommets) et non orienté. Ce qu'est un DAG et pourquoi cette structure est si importante.
Le parcours en largeur (BFS) : explorer un graphe niveau par niveau avec une file, trouver le plus court chemin en nombre d'arêtes, et ses usages réels.