• Aucun résultat trouvé

TD d’algorithmique avanc´ee TD 11 : Plus courts chemins pour tout couple de sommets

N/A
N/A
Protected

Academic year: 2022

Partager "TD d’algorithmique avanc´ee TD 11 : Plus courts chemins pour tout couple de sommets"

Copied!
2
0
0

Texte intégral

(1)

TD d’algorithmique avanc´ee

TD 11 : Plus courts chemins pour tout couple de sommets

Jean-Michel Dischler et Fr´ ed´ eric Vivien

Nous nous int´eressons ici `a la recherche des plus courts chemins entre tous les couples de sommets d’un graphe (typiquement on cherche `a ´elaborer la table des distances entre tous les couples de villes d’un atlas routier). On dispose en entr´ee d’un graphe orient´e G = (S, A) et d’une fonction de pond´eration w. Nous supposons que le grapheGpeut contenir des arcs de poids n´egatifs mais pas des circuits de poids strictement n´egatifs. On note nle nombre de sommets deG(n=|S|), et on note{1,2, ..., n} lesnsommets deG.

Programmation dynamique na¨ıve

Comme nous l’avons remarqu´e en cours, tout sous-chemin d’un plus court chemin est lui-mˆeme un plus court chemin et le probl`eme des plus courts chemins v´erifie bien la propri´et´e de sous-structure optimale : nous pouvons donc essayer de le r´esoudre par programmation dynamique.

1. On note d(m)i,j le poids minimal d’un chemin d’au plus m arcs du sommet i au sommet j. D´efinissez r´ecursivement d(m)i,j (la r´ecursion portera ici sur le nombre d’arcs d’un plus court chemin).

2. Construisez, au moyen de la formule de r´ecurrence obtenue `a la question pr´ec´edente, un algorithme de calcul des longueurs des plus courts chemins pour tout couple de sommets, algorithme bas´e sur le paradigme de la programmation dynamique.

3. Quelle est la complexit´e de votre algorithme ?

4. Ex´ecutez votre algorithme sur le graphe de la figure 1.

2

3 1

4 5

3 4

-4 -5

6 7 8

2 1

Fig.1 – Exemple de graphe orient´e.

Algorithme de Floyd-Warshall

L’algorithme de Floyd-Warshall est un autre algorithme con¸cu suivant le principe de la programmation dynamique.

1. Ici la r´ecursion n’a pas lieu sur le nombre d’arcs d’un plus court chemin, mais sur les sommets in- term´ediaires de ces chemins, un sommet interm´ediaire ´etant un sommet autre que les extr´emit´es du chemin. Ici,d(k)i,j est la longueur du plus court chemin dei`ajn’utilisant comme sommets interm´ediaires que des sommets parmi {1,2, ..., k}.

D´efinissezd(k)i,j de mani`ere r´ecursive.

(2)

2. Proposez un algorithme de calcul de la longueur des plus courts chemins bas´e sur la r´ecursion pr´ec´edente et le paradigme de la programmation dynamique.

3. Quelle est la complexit´e de votre algorithme ?

4. Proposez un algorithme de construction effective des plus courts chemins `a partir de l’algorithme pr´ec´edent.

5. Ex´ecutez votre algorithme sur le graphe de la figure 1.

Références

Documents relatifs

Résumé. — L'application de concepts flous {sous-ensemble flou, fonction de variables floues, graphes flous) à des problèmes de plus courts chemins où les données ne sont connues

— L'algorithme étudié concerne le calcul des plus courts chemins dans un graphe non orienté* La méthode employée s'inspire de celle de Dantzig mais la réduction du nombre de

De même que la multiplication matricielle classique est associative, de même la multiplication matricielle définie par la procédure E XTENSION -P LUS - C OURTS -C HEMINS est

Ce graphe est représenté par une matrice N lignes-N colonnes dans laquelle la valeur 1 placée en ligne i et colonne j indique l'existence d'un arc permettant de passer du point i

Ce chapitre présente l’algorithme de Bellman-Ford, qui est lui capable de traiter les graphes possédant des poids négatifs — tant que l’on n’a pas de cycle de poids négatif

”Le chemin le plus court d’un point ` a un autre est la ligne droite,. `a condition que les deux points soient bien en face l’un

Optimisation Combinatoire 2A Plus courts chemins. Zolt´

La i -i`eme phase de fabrication peut introduire des d´efauts dans chaque objet avec la probabilit´e α i. On veut qu’` a la fin tous les objets soient