Vous êtes sur la page 1sur 20

Département d'Informatique

Module:
Théorie des graphes
CHAPITRE III

Responsable du module: Dr. Salim BOUAMAMA

1
PROBLÈME DE PLUS COURT CHEMIN
Les problèmes de cheminement dans les graphes sont parmi
les problèmes les plus anciens de la théorie des graphes.
Le problème du plus court chemin (PCC) est, parmi ces
problèmes
Il se rencontre soit directement, soit comme sous-problème dans
de nombreuses applications:
les problèmes de tournées
certains problèmes d'investissements et de gestion de
stocks
les problèmes d'optimisation de réseaux : réseaux routiers
et réseaux de télécommunications ;
certains problèmes d'intelligence artificielle et de
reconnaissance des formes;
certaines méthodes de traitement numérique du signal, de
codage et de décodage de l'information.
2
DEFINITIONS
La distance entre deux sommets, notée d, est la longueur de
le plus court chemin (chaine) les reliant.
Le diamètre d'un graphe est la plus longue des distances
entre deux sommets.
Exemple :

d(e,d)= 2 d(e,d)= 3

3
GRAPHE VALUÉ (PONDÉRÉ)
Un graphe valué (pondéré) est note G= (X, U, ℓ) où :
G= (X, U) est un graphe orienté (ou non)
ℓ : U → R est une fonction de poids (on dit aussi un
étiquetage, un coût, une valuation des arcs) qui a tout arc
u=(x,y) associe une valeur réel ℓ(u) désignant la longueur de
l’are u.
La distance entre deux sommets x et y est égale au poids
minimal des chemins joignant x et y, i.e.
Rappel, en math. une distance vérifie
1. d(x, y) ≥ 0,
2. d(x, y) = 0 si et seulement si x = y,
3. * d(x, y) = d(y, x),
4. d(x, z) ≤ d(x, y) + d(y, z) (inégalité
triangulaire),
Le problème du plus court chemin (PCC) entre deux sommets x
et y sera de trouver un chemin entre x et y dont la longueur
total est d(x,y). 4
ALGORITHMES DE RÉSOLUTION
Les algorithmes de résolution seront différents suivant:
a) les propriétés du graphe :
• ℓ(u) ≥ 0, ∀ u∈ U ;
• ℓ(u) = 1, ∀ u∈ U ;
• ℓ(u) quelconques ;
• G sans circuit.
b) le probl
problème
me consid
considéré
r :
1) recherche du plus court chemin d'un sommet à un autre (PCC1) ;
2) recherche du plus court chemin d'un sommet à tous les autres
(PCC2) ;
3) recherche du plus court chemin entre tous les couples de
sommets (PCC3).
L'efficacité des algorithmes dépendra souvent de la représentation
en machine du graphe.
les algorithmes de recherche du plus court chemin d'un sommet à
un autre ou d'un sommet à tous les autres sont identiques. 5
PROBLÈME DE PLUS COURT CHEMIN

Pour résoudre PCC2, on fait appel aux algorithmes


suivants.
a) Algorithme de Dijkstra (le cas particulier ou les
évaluations de tous les arcs sont positives).
b) Algorithme de Bellman (le cas d’un graphe sans circuit).
c) algorithme de Bellman-Ford (Graphe quelconque).

Remarque : il existe d'autres algorithmes pour résoudre le


problème de PCC3, sont des algorithmes de type matriciel
comme l’Algorithme de Dantzig et l’Algorithme de Floyd-
Warshall qui permettent d'obtenir les plus courts chemins
entre n'importe quel couple de sommets.

6
ALGORITHME DE DIJKSTRA
Cet algorithme repose sur l’hypothese suivante :
La valuation de chaque arc est positive, i.e., ℓ(u) ≥ 0, ∀ u∈ U ;
L’absence d’arc entre deux sommets se traduit par une
valuation infinie.
Le problème traité est PCC2.
Cet algorithme construit une arborescence de racine s qui
couvre G. Si G n'est pas connexe alors la composante connexe
de G contenant s sera couvrée par cette arborescence.

Exemple :

7
8
ALGORITHME DE DIJKSTRA
Exemple : Déterminons un parcours de distance minimale joignant
le sommet B au sommet A à l'aide de l'algorithme de Dijkstra.

9
ALGORITHME DE DIJKSTRA

Initialisation : on attribue un poids nul au sommet B et ∞ aux autres sommets

10
ALGORITHME DE DIJKSTRA
B de poids minimal est marqué,
on met à jour le poids des
sommets G et L adjacents et non
marqués

11
ALGORITHME DE DIJKSTRA
L de poids minimal est marqué,
on met à jour le poids des
sommets C, E, G et V adjacents
et non marqués.

12
ALGORITHME DE DIJKSTRA

E de poids minimal est marqué,


on met à jour le poids des
sommets C, P et V adjacents et
non marqués

13
ALGORITHME DE DIJKSTRA
Sommet final A marqué : le
chemin le plus court s'obtient
en remontant la chaîne des
prédécesseurs

Le sommet A étant marqué, pour lire


la chaîne de poids minimal, on part
de A et on "remonte" la chaîne en
suivant les prédécesseurs :
B←L←E←P←A.
14
ALGORITHME DE DIJKSTRA

15
Exercice
Une association organise un rallye sportif en VTT : six zones de
regroupement sont déterminées et sont reliées par des chemins.
Ce parcours est modélisé par le graphe ci-dessous, où les
sommets de A à F représentent les zones de regroupement, et
les arêtes les chemins. Les arêtes sont pondérées par les
distances, exprimées en kilomètres, nécessaires pour parcourir
ces chemins.
Les candidats sont positionnés initialement sur la zone A et
doivent, après avoir parcouru tous les chemins, revenir à la zone
initiale. Chaque fois qu'un candidat emprunte pour la
première fois un chemin il doit déposer, à un endroit précis,
un jeton personnalisé, attestant son passage.

16
1. Quel nombre minimal de jetons est-il nécessaire de donner à chaque
candidat ?
2. Un candidat souhaite faire le parcours, en empruntant tous les chemins
une fois et une seule. Est-ce possible ? Justifier la réponse.
3. Soit M la matrice associée au graphe G ( on ordonne les sommets dans
l’ordre alphabétique).
a) Écrire la matrice M.
b) On donne les matrices M2 et M3. Un candidat est actuellement au
point de rendez-vous D et on lui signale qu’il a oublié son dossard au
point B. Devant le récupérer, il souhaite emprunter au maximum trois
chemins. Combien a-t-il de possibilités ?
c) Donner, le trajet correspondant à la distance la plus courte lui
permettant d’aller récupérer son dossard. 17
18
19
20

Vous aimerez peut-être aussi