Vous êtes sur la page 1sur 20

Université d’Adrar

Faculté des sciences et technologies


Département de Mathématique et Informatique

2 eme année : Informatique

Théorie des graphes


Chapitre 05:
Problème de chemin dans un graphe

2022-2023 1
Plan

1. Introduction

2. Graphe valué

3. Longueur d’un chemin

4. Problème du plus court chemin

5. Algorithme de Dijkstra

2
Introduction

Les problèmes de cheminement dans les graphes (en particulier la


recherche d’un plus court chemin) comptent parmi les problèmes les
plus anciens de la théorie des graphes et les plus importants par
leurs applications.
De nombreux problèmes concrets se traduisent par la recherche d’un
chemin de longueur minimale :
Recherche de l’itinéraire le plus court ou le plus rapide en
voiture entre deux villes.
Routage dans des réseaux
etc.

3
Graphe valué (1)

Définition 1:
Un graphe (orienté ou non) G=(S, A) est valué s’il est muni d’une
application:
v: A →R
(x, y) → v(x, y)
v est appelée valuation des arcs.
On notera G = (S, A, v) un graphe muni d’une valuation v.

A B

Figure 1: Exemple des graphes valués. 4


Graphe valué (2)

Les graphes valués servent à résoudre de nombreux problèmes


d’optimisation:
La valuation (la longueur) d’un arc (arête) peut représenter;
une distance,
un temps,
un coût,
une capacité,
etc...
On utilise aussi les mots pondéré et pondération à la place de
valué et valuation.

5
Longueur d’un chemin

La longueur d’un chemin est la somme des valuations des


arcs qui composent ce chemin.
Définition 2:
Soit C(x, y) un chemin dans G du sommet x vers le sommet y.
La valuation ou poids du chemin C(x, y) est

La valuation d’un chemin ne comportant pas d’arc (i.e. de


longueur 0) est égale à 0.
Exemple : Dans le graphe de la figure 1.A, la valuation du
chemin ABDBEF vaut 5 + 0 + 2 + (−1) + 3 = 9. 6
Le problème du plus court chemin (1)

Le problème du plus court chemin, consiste à déterminer la


longueur minimale entre :
Un sommet de départ donné et un sommet d’arrivée donné.
Un sommet et tous les autres.
Tous les couples de sommets.
Définition 3 :
Soit G = (S, A, v) un graphe valué et x et y deux sommets de G.
On appelle distance entre x et y, et on note d(x, y), le minimum
des valuations des chemins allant de x à y :
d(x, y) = min v(C(x, y))
S’il n’existe pas de chemin de x à y, on posera d(x, y) = +∞ 7
Le problème du plus court chemin (2)

On appelle plus court chemin entre x et y, et on note


C*(x, y), un chemin qui réalise ce minimum :
v(C*(x, y)) = d(x, y)
Pour résoudre le problème du plus court chemin, on fait appel à des
algorithmes:
Dijkstra,
Bellman-Ford,
Floyd-Warshall,
Gabow,
etc…

8
Algorithme de Dijkstra(1)

Proposé en 1959 par Edgser Wybe Dijkstra (1930-2002).


Il s'applique à un graphe connexe dont le poids (valeurs) lié
aux arêtes est un réel positif.
Le résultat est une arborescence, c’est-à-dire un arbre avec
un sommet particulier appelé racine.
Les données: un graphe G, un sommet de départ s.
On associe à chaque sommet x le coût du meilleur chemin
connu appelé poids(x).
On mémorise également, pour chaque sommet, le voisin
par lequel on « arrive » pour réaliser le meilleur chemin
connu. 9
Algorithme de Dijkstra (2)

Soit S l’ensemble de tous les sommets et Π l’ensemble des


sommets optimaux.
Algorithme de Dijkstra
Initialisation
poids(s) 0
poids(x) +pour x s

début
Tant que S
choisir un sommet x de poids minimum
{x}
pour tout voisin y de x n’appartenant pas à 
si poids(x) + valeur(x y) < poids(y) alors
poids(y) poids(x) + valeur(x y)
mémoriser en y que l’on vient de x
fin si
fin pour tout
fin tant que
10
Exemple (1)

Cherchons les plus courts chemins d’origine A dans ce graphe:

11
Exemple (2)

On se place au sommet de plus petit poids , ici le sommet A.

12
Exemple (3)

On étudie chacune des arêtes partant du sommet choisi.

Dans les colonnes, on mets la distance à A, et le sommet d’où


l’on vient
13
Exemple (4)

On se place de nouveau au sommet de plus petit poids, ici E.

14
Exemple (5)

On étudie chacune des arêtes partant du sommet choisi.

15
Exemple (6)

On se place de nouveau au sommet de plus petit poids, ici D.

16
Exemple (7)

On étudie chacune des arêtes partant du sommet choisi.

17
Exemple (8)

On se place de nouveau au sommet de plus petit poids, ici B.

18
Exemple (9)

On étudie chacune des arêtes partant du sommet choisi.

19
Exemple (10)

Si l’on ne considère que les flèches soulignées, on obtient un


arbre (un graphe sans cycle).
20

Vous aimerez peut-être aussi