Vous êtes sur la page 1sur 4

Chapitre 2 : CHEMINS OPTIMAUX

Dans les graphes utilisés dans la pratique, les arcs sont affectés des valeurs numériques
traduisant un coût de parcours. Il peut s’agit d’une distance (réseau routier) d’un coût
financier, d’une durée, d’un débit (routage en télécom), etc…
Les graphes considérés désormais possèdent une entrée et une sortie unique, qui
correspondent respectivement au début et à la fin du parcours décrit par le graphe. Le
problème se pose alors de déterminer le chemin optimal pour aller de l’entrée du graphe vers
sa sortie. Les coûts de parcours reflétant les différentes contraintes du problème à traiter.
L’optimisation peut se faire dans le sens d’un coût maximum ‘par exemple recherche des
délais maximum dans un ensemble de tâches) ou d’un coût minimum (par exemple le plus
court trajet entre 2 localités). Il peut y avoir d’autres contraintes du type ‘’passer par tous les
sommets du graphe’’ (chemins hamiltoniens).

II. La recherche des niveaux dans un graphe algorithme

- Présenter le dictionnaire des précédents


- Le niveau 0 est attribué au sommet sans précédents
- Barrer dans la colonne des précédents les sommets ayant récu le niveau 0
- Le niveau 1 est attribué aux nouveaux sommets sans précédents
- Reprendre l’étape 3 en augmentant la valeur du niveau 1 jusqu’à ce que tous les sommets
soient barrés ;

Application :
On donne le graphe suivant :
- Donner le dictionnaire des précédents du graphe
- Déterminer les niveaux
- Faire le graphe ordonné par niveau

III Recherche du plus court chemin dans un graphe : Algorithme de DIJKSTRA

L’algorithme de DIJKSTRA est un algorithme de recherche de distance et de plus court


chemin mas ne fonctionne que dans le cas où toutes les valeurs des arcs sont positives.

Principe

 Construire petit à petit à partir du sommet ‘’ sommet source au sommet d’entrée, un


ensemble M de sommets marqués. Pour tout sommet marqué L’estimation d(s) est
égale à la distance de x0 à S à s d ( x0 , s).

 A chaque étape, on sélectionne le (1) sommet non marqué x dont la distance d(x) est la
plus petite parmis tous les sommets non marqués.
 On marque alors x (on ajoute x à M), puis on met à jour à partir de x les distances
estimées de successeurs non marqués de x.
 On recommence jusqu’à épuisement des sommets non marqués

Exemple :

Exercice1 :
A fin d’expédier les marchandises de Yaoundé à Bamenda, une entreprise doit recourir à
plusieurs transporteurs qui desservent les liaisons entre les villes par coûts indiqués dans la
matrice ci-dessous.

A B C D E F G H I J
A 18000 5000 16000
B 12000 29000
C 6000 15000
D 13000
E 2000 14000
F 30000
G 4000
H 17000 25000
I 5000
J
Travail à faire :
1) Etablir le dictionnaire des précédents
2) Représenter ce problème sous forme d’un graphe ordonné par niveau
3) Evaluer le graphe (donner les valeurs aux arcs)
4) Utiliser l’algorithme de DIJKSTRA pour trouver la solution la plus économque pour relier ces
2 villes.

Exercice 2 :
Utiliser l’algorithme de DIJKSTRA pour le graphe ci-dessous avec C comme source

Vous aimerez peut-être aussi