Retour au cours

Leçon 45 : Plus Court Chemin entre Toutes Paires : Introduction à Floyd-Warshall

Algorithmes : De Zéro à Héro (Un Guide pour Débutants)

45. Plus Court Chemin entre Toutes Paires : Introduction à Floyd-Warshall

Parfois, nous n'avons pas seulement besoin du plus court chemin à partir d'une source, mais du plus court chemin entre chaque paire de sommets. C'est le problème du Plus Court Chemin entre Toutes Paires (All-Pairs Shortest Path).

Algorithme de Floyd-Warshall

Floyd-Warshall est un algorithme classique qui utilise la Dynamic Programming (couverte bientôt) pour résoudre ce problème efficacement.

Concept

Il considère chaque sommet possible k comme un nœud intermédiaire pour les chemins entre deux autres nœuds i et j.

Pour chaque paire de sommets (i, j), il vérifie si passer par un sommet intermédiaire k est plus court que le chemin le plus court connu actuellement.

python for k in range(V): for i in range(V): for j in range(V): dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])

  • Complexité Temporelle : O(V³). Il est efficace lorsque V est relativement petit (des centaines), mais moins pour les graphes massifs.