Nous allons implémenter une version du calcul du plus court chemin basée sur l'algorithme de Floyd-Warshall. Ce calcul sera de type all-pairs c'est à dire que le résultat final donnera le plus court chemin (en nombre de sauts) entre n'importe quelle pair de points.
Le principe de l'algorithme est le suivant :
Le fonctionnement de l'algorithme est :
Exemple : À partir du graph représenté ci-dessous
* graph.jpg:
on construit la matrix A suivante
0 1 2 0 0 0 0 1 0 3 0 6 0 0 0 0
puis la matrice W
0 1 2 +inf +inf 0 +inf 1 +inf 3 0 6 +inf +inf +inf 0
et donc W^2 (et au final W^4)
0 1 2 2 +inf 0 +inf 1 +inf 3 0 4 +inf +inf +inf 0
Grâce à cette matrice, on peut voir que le coût depuis D vers n'importe quel autre sommet est infini car il n'y pas de chemin. Pour aller de A vers D, le coût sera de 2 (A->B->D).
Le projet est à déposer sur J@lon. Les contraintes suivantes sont à respecter
La note sera fonction des fonctionnalités implémentées dans la liste ci-dessous. Les points sont indiqués à titre indicatif