Professional Documents
Culture Documents
Chapitre 6
1. Introduction
Le problme de recherche de plus court chemin constitue lun des problmes les plus anciens
de la thorie des graphes tant donn le champ large de ses applications.
Soit G=(X,U) ; on associe chaque arc u=(i,j)U un nombre rel quon note l(u) ou lij appel
longueur de larc u. On dit alors que le graphe G est valu par les longueurs l(u). La longueur
dun chemin joignant le sommet i au sommet j est donne par : l()= l(u) .
u
Le problme de plus court chemin entre deux sommets i et j consiste dterminer un chemin
de i j, (i,j), de longueur minimale.
Les longueurs des arcs peuvent tre de signes quelconques. De ce fait, le problme de
recherche de plus long chemin peut se ramener un problme de recherche de plus court
chemin en remplaant les longueurs par leurs opposs.
La longueur dun chemin comprenant un circuit de longueur strictement ngative est non
borne ; car il suffit demprunter ce circuit une infinit de fois. Ce type de circuit est appel
circuit absorbant. Labsence dun circuit absorbant constitue alors une condition ncessaire
lexistence dun chemin de longueur minimale.
Exemple :
On considre une carte routire et on veut chercher la route la plus courte reliant une ville
une autre. Ce problme revient un problme de recherche du plus court chemin. Les
sommets du graphes sont les villes ; les arcs sont les routes reliant les diffrentes villes ; les
longueurs des arcs correspondent aux distances physiques entres les villes. Trouver la route la
plus courte entre deux villes revient trouver le plus court chemin entre deux sommets du
graphe ainsi dfini.
ENIT 2005/2006 8
Chapitre 6 Recherche Oprationnelle
Thorme
Dmonstration
tant un chemin entre i et j de longueur minimale. On suppose quil existe une partie 1 de
joignant h l qui nest pas de longueur minimale. Il existe alors un chemin 2 de h l tel
que l(1 )l(2 ). Le graphe identique sauf pour la partie 1 qui est remplace par 2, est
alors de longueur infrieure celle de ; ce qui contredit lhypothse de dpart.
Dans beaucoup de situations, les longueurs des arcs sont non ngatives (par exemple carte
routire). Dans ce cas, pour la recherche du plus court chemin partant dun sommet (not 1)
tous les autres, on utilise lalgorithme de Dijkstra-Moore. Cet algorithme permet de rsoudre
le problme en question en n-1 itrations (n tant lordre du graphe G=(X,U)). Au dbut de
chacune des itrations lensemble des sommets est partitionn en deux sous-ensembles : P et
T = X-P, avec 1P. Lalgorithme de Dijkstra-Moore est bas sur le calcul des plus courtes
distances de proche en proche par ajustements successifs.
- Etape 1 : Initialisation
(1)=0
i T, (i)=l1i si (1,i) U
= sinon
P={1}
T={2, , N}
ENIT 2005/2006 9
Chapitre 6 Recherche Oprationnelle
- Etape 2 :
- Etape 3 :
Une entreprise doit livrer la commande dun client. Lentreprise est situe au nud 1 ;
lentrept du client livrer est situ au nud 6. Pour aller chez ce client, il y a diffrents
itinraires possibles en passant par les villes reprsents par les nuds 2, 3, 4 et 5. Les sens de
circulation et les distances physiques sont donns dans le graphe suivant :
4
40 50
20
2 5
70 10
1 50 30
20
10
3 6
40
Etape 1 :
(1)=0, (2)=70, (3)=10, (4)= (5)= (6)=
P={1}, T={2, 3, 4, 5, 6}
Etape 2 :
j=3
P={1, 3}, T={2, 4, 5, 6}
Etape 3 :
(2)=min{70, 10+50}
(5)=min{, 10+20}
(6)=min{, 10+40}
Etape 2 :
j=5
P={1, 3,5}, T={2, 4, 6}
ENIT 2005/2006 10
Chapitre 6 Recherche Oprationnelle
Etape 3 :
(2)=min{70, 30+20}
(4)=min{, 30+50}
(6)=min{50, 30+30}
Etape 2 :
j=6
P={1, 3,5,6}, T={2, 4}
Etape 2 :
j=2
P={1, 3,5,6,2}, T={4}
Etape 3 :
(4)=min{30+50,70+40}
Etape 2 :
j=4
P={1, 3,5,6,2,4}, T=
Fin de lalgorithme
3.2. Cas dun graphe valu par des longueurs de signes quelconques
- Etape 1 : Initialisation
0 (1)=0
0 (i)= pour tous les autres sommets i
k=1
- Etape 2 :
- Etape 3 :
ENIT 2005/2006 11
Chapitre 6 Recherche Oprationnelle
Remarque : Une amlioration de cet algorithme peut se faire en utilisant les rsultats de
litration en cours, la formule de ltape 2 devient alors :
(k ( j) +l ji), min (k 1( j) +l ji)
( i) =min j pmin
k
i, (j ,i )U j i, (j ,i )U
Un agent commercial se trouvant la ville S dcide de participer une foire la ville T. Pour
cela, il doit emprunter le rseau routier donn par la figure 2. Lagent commercial a estim le
cot de son transport ainsi que les bnfices rapportes par la vente de produits aux
diffrentes villes intermdiaires. Sur le graphe de la figure 2, les dpenses ont t reprsentes
par des longueurs positives ; les bnfices effectues ont t reprsentes par des longueurs
ngatives. Lobjectif de lagent commercial consiste donc trouver le chemin de plus court
chemin de S T, ce qui revient trouver le chemin qui minimise les cots.
7
A D
2 -8 4 5
-5
S B -1 T
4 1 3
7
C E
4
Soit G=(X, U) un graphe dordre n, sans circuit et valu par les longueurs l.
Dans un graphe sans circuit, il existe au moins un sommet ne possdant aucun prcdent,
sinon G possderait un circuit. Soit 1 ce sommet.
Tout chemin allant de 1 un sommet quelconque i dun graphe sans circuit, possde un
nombre fini darcs.
Dfinition
ENIT 2005/2006 12
Chapitre 6 Recherche Oprationnelle
Dans la suite, on donne un algorithme de recherche du plus court chemin du sommet 1 tous
les autres sommets dans un graphe sans circuit.
Algorithme
- Etape 1 : Initialisation
On pose (1)=0, k=1 et S=X-{iX / rg(i)=0}
- Etape 2 :
Sk ={ iX / rg(i)=k}
Pour tout i Sk faire
( i) =min ( (j )+lji)
(j, i)U
- Etape 3 :
Faire S=S- Sk
Si S= fin
Sinon faire k=k+1, retour ltape 2
Exemple
1
2 4
3 10
1 2 5 6
4 2
3 5
7
(1)=0, (3)=4, (2)=min (4+2, 3) =3, (5)=min (4+7)=11, (4)=min (3+1, 11+5)=4,
(6)=min (4+10, 11+2)=13.
ENIT 2005/2006 13