Exercice suivant

Le chemin le plus court

Question posée à l'examen écrit du 11 octobre 1999

Soit un graphe avec 4 noeuds (1,2,3,4), avec des arcs pondérés: Les arcs sont:
Départ Arrivée Distance
1 2 1
2 3 1
3 4 1
1 3 10
2 4 100
4 3 1000

Pour trouver les "distances" correspondant aux chemins les plus courts entre le noeud 1 et tous les autres noeuds, exécutez l'algorithme suivant:

  1. Soit une liste L et une liste A, toutes deux initialement vides.
  2. Ajoutez à la liste L la paire (1;0) pour le noeud 1 et la "distance" 0.
    Ajoutez pour chaque arc qui lie les noeuds x et y avec une "distance" z le triplet (x;y;z) à la liste A.
  3. Retirez la paire (x;y) avec le deuxième élément (y) le plus petit de la liste L.
  4. Pour chaque paire (x;y) avec le deuxième élément (y) le plus petit de la liste L, retiré à l'étape 3, faites ce qui suit:
  5. Pour chaque paire (x;y) dans L: S'il existe une paire (x;z) dans L avec z plus petit ou égal à y effacez (x;y) de L.
  6. Continuez en 3 tant qu'il y a encore des éléments dans A

Donnez le contenu de A et de L après chaque pas.

Exercice suivant

Site Hosting: Bronco