Dr C. Bachtarzi Filière : L2 Socle commun informatique
17
Chapitre 3 Problème du plus court chemin
1. Introduction
Les problèmes de cheminement dans les graphes comptent parmi les plus anciens
problèmes de la théorie des graphes. Il existe de nombreux problèmes spécifiques aux
chemins. On en cite quelques uns :
1) Soient i et j X :
- Existe-t-il au moins un chemin de i à j ?
- Existe-t-il au moins un chemin de longueur p entre i et j ?
- Quel est le nombre de chemins de longueur inférieure ou égale à p entre i
et j ?
2) Trouver le ou les chemins qui relient le sommet s à tous les autres sommets et
qui satisfont une propriété P.
3) Trouver les chemins qui relient tout couple de sommets et qui satisfont une
propriété P.
2. Introduction au problème du plus court chemin
Etant donné un graphe G=(X,A) orienté tel que chaque arc (i,j) possède un nombre
(i,j) appelé longueur de l’arc (i,j). Le problème du plus court chemin (PCC) consiste à
déterminer un chemin élémentaire C
h
joignant les sommets i et j et qui soit de longueur
extrémale (minimale ou maximale selon l’objectif). La longueur du chemin optimal est
égale à la somme des longueurs des arcs du chemin.
On considère d’une manière plus générale deux types de problèmes :
- Problème P1 : Il s’agit de trouver le plus court chemin reliant un sommet à tous
les autres.
- Problème P2 : il s’agit de trouver tous les plus courts chemins entre tous les
couples de sommets.
4. Algorithmes proposés pour trouver le PCC
Pour la résolution du problème du plus court chemin, divers algorithmes de
complexité en temps polynomial ont été proposés. Leur application dépend souvent de la
nature du graphe.
Dr C. Bachtarzi Filière : L2 Socle commun informatique
18
Si l’on considère un problème de type P1, on a le choix entre Les algorithmes de
Dijkstra et de Bellman–Ford. Lorsque le graphe ne comporte pas de cycle, on utilise
généralement l’algorithme de Bellman–Ford. Lorsque les longueurs des arcs sont toutes
positives, on utilise l’algorithme de Djikstra.
Pour les problèmes de type P2, on a également le choix entre deux algorithmes :
l’algorithme de Dantzig et celui de Floyd-Warshall qui sont des algorithmes matriciels
applicables quelque soient les longueurs des arcs.
4.1 Résolution de problèmes de type P1
Dans cette section sont présentés les algorithmes suivants : l’algorithme de Djikstra
et l’algorithme de Bellman-Ford.
4.1.1 Algorithme de Djikstra
Comme l’algorithme de Bellman-Ford, il utilise le principe de la programmation
dynamique. Mais contrairement à ce dernier, l'algorithme de Djikstra ne permet pas de
considérer les arcs négatifs, car une fois qu’un sommet est marqué on ne peut changer ce
marquage lors des itérations suivantes.



  !

"
#$ #%%% %&& '#'(!
)
*
+
"
),+
($ -%!
./ 01 234"
#5
6
+
)
*+

($ & %788
9:
:-%8 
;<
#)=>#
./  01
8# %$
-%!
)
?
2#4+-%#
)
?
2 ##4+-%(& @& %
7%%A
B#A
C

<
"
A5=
"
A>#D #A+
<%
<-%
EF!%
&& %788
"
#%% %788
<
Dr C. Bachtarzi Filière : L2 Socle commun informatique
19
4.1.2 Algorithme de Bellman-Ford
L’algorithme de Bellman-Ford utilise le principe de la programmation dynamique
pour déterminer le plus court chemin dans un graphe orienté pondéré. Il est applicable
même dans le cas où certains arcs ont une longueur négative.la seule contrainte est que le
graphe ne doit pas comporter de circuits.
GH< 


  !

"
#%% %&& '#
)24+
($ -%!
"
),+
)
*+

($ & %788
9:
:-%8 
;<

I
A
H
 A
J


)
?
2A4+-%A
"
A)
KLM
NOPQRS
"T D UT V
+
)
?
2WA4+-%(& %
<
<-%
EF!%
&& %788
"
#%% %788
<
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !