Vous êtes sur la page 1sur 4

Activité 4 : Recherche d’une plus courte chaîne

Chaque étudiant doit télécharger le « fichier_chapitre-4 »

1. Parcours autoroutier
Sur les arêtes du graphe ci-dessous représentant un réseau autoroutier, on a marqué les
distances entre deux étapes et, entre parenthèses, les prix des péages.
a. Ente D et A, trouvez la chaîne la plus courte.
b. Entre D et A, trouvez la chaîne qui minimise la somme dépensée en péage.
c.

2. Vocabulaire

 Un graphe pondéré est un graphe dont les arêtes sont affectées de coefficients
positifs.
 Le poids d’une chaîne est la somme des poids des arêtes qui la composent.
 Une plus courte chaîne entre deux sommets est, parmi les chaînes qui les relient,
une chaîne de poids minimum.

Tâche 1 (Travail individuel) :


Vous êtes invité à réfléchir sur les questions suivantes et déposer un fichier du
produit de votre réflexion dans le forum « document_activité_4»
a. Dans chaque question 1.a. et 1.b. ci-dessus, il s’agit de chercher une plus courte
chaîne entre deux sommets d’un graphe pondéré : précisez ce graphe pour chaque
question
b. Trouvez dans le graphe ci-dessus, une plus courte chaîne entre B et A.
c. Trouvez dans le graphe ci-dessus, une chaîne qui minimise la somme dépensée en
péage entre B et A.

3. Algorithme de Dijkstra

Lorsqu’un graphe pondéré comporte de nombreux sommets et de nombreuses


arêtes, la recherche d’une plus courte chaîne peut être longue, car il convient
d’examiner et de comparer un grand nombre de possibilités. L’algorithme suivant,
trouvé par Djikstra, propose une méthode commode car, en la suivant pas à pas, on
est sûr de n’oublier aucun cas possible. D’autre part, un tel algorithme peut
facilement être programmé sur ordinateur.

a. Présentation de l’algorithme
Illustrons cet algorithme sur un exemple. Le problème consiste à trouver une plus
courte chaîne entre les sommets E et S. L’algorithme que nous allons expliquez est
présenté ci-dessous

E A B C D S Sommet
sélectionn
é

0 ∞ ∞ ∞ ∞ ∞ E

0+3 0+1 ∞ ∞ ∞ B
3(E) 1(E)
1+1 1+3 1+5 ∞ A
2(B) 4(B) 6(B)
2+3 6(B) ∞ C
4(B)
5+1 4+3 D
5(C) 7(C)
5+1 S
6(D)

b. Règle de construction de cet algorithme


 Il se construit successivement de ligne en ligne, en observant le graphe.
Ligne de haut. On écrit les sommets.
1ère ligne (initialisation).
 On affecte le coefficient 0 à l’origine E, et le coefficient ∞ à tous les autres sommets.
 On sélectionne le sommet de plus petit coefficient,
C’est-à-dire, ici, le sommet E.
 Ce sommet étant sélectionné, on ray toutes les autres cases de la colonne E, en tirant
un trait vertical.
2ème ligne
 On ne s’intéresse qu’aux sommets adjacents au sommet sélectionné à l’étape
précédente,
C’est-à-dire à E (ici les deux seuls sommets adjacents à E sont A et B).
Les coefficients des sommets C, D, S non adjacents à E sont les mêmes qu’à la ligne
précédente (donc, ici, o réécrit « ∞ »).
 Calcul du coefficient affecté à A
1) On calcule le nombre suivant :
(coefficient du sommet E sélectionné précédent) + (poids de l’arête (E-A)) ici 0+3 = 3
2) n compare ce nombre au coefficient précédent de A (ici ∞) et on affecte à A le
plus petit des deux nombres 3 et ∞ ; donc, ici, 3.
Il est commode d’écrire alors 3(E) pour rappeler que le sommet précédemment
sélectionné est E.
 Calcul du coefficient affecté à B.
On procède de manière analogue et on obtient 1(E).
On sélectionne alors le sommet de plus petit coefficient, c’est-à-dire, ici, le sommet
B.
Lignes suivantes
 On remplit ainsi, de proche en proche, chacune des lignes suivantes. On arrête
lorsque tous les sommets ont été sélectionnés.

Lecture du tableau
On obtient alors aisément une plus courte chaîne entre E et S, et son poids :
 Plus courte chaîne de E à S : (E-B-C-D-S).
On l’obtient en l’écrivant de droite à gauche, de la manière suivante : dans la colonne
« S », on repère le point inscrit le plus bas, c’est-à-dire D. Puis dans la colonne « D »,
le point inscrit le plus en bas, C, etc.
 Poids de cette chaîne = 6 (coefficient de l’extrémité S).

Commentaire : Cet algorithme permet également d’obtenir une plus courte chaîne, et son
poids, entre E et chacun des autres sommets pouvant être reliés à E. Ainsi, par exemple, une
plus courte chaîne entre E et D est (E-B-C-D) ; son poids est le dernier coefficient de D, c’est-
à-dire 5.

Tâche 2 (Travail individuel)


Vous êtes invité à réfléchir sur les questions suivantes et déposer un fichier du
produit de votre réflexion dans le forum « document_activité_4»

a. Vérifiez que chacune des lignes suivantes du tableau est remplie conformément à
l’algorithme décrite ci-dessus.
b. Indiquez une plus courte chaîne entre E et C, et son poids.

Evaluation formative :
Répondez individuellement aux questions ci-dessous en vous basant sur les définitions des
concepts proposées par votre groupe et déposez le fichier de réponses dans l’espace
« evalution_formative_séquence_4 ».

On considère le graphe pondéré ci-dessous.


a. En utilisant l’algorithme de Dijkstra, trouvez une plus courte chaîne entre A et C
et précisez son poids.
b. Indiquez, à l’aide de l’algorithme de Dijkstra, une plus courte chaîne entre A et
chacun des autres sommets, et donnez le poids de chacune d’elles.

Vous aimerez peut-être aussi