I.2.7. Graphe pondéré - Réseau -
Réseau de transport
a. Graphe pondéré
Soit G = (X, U) :
· On dit que G est pondéré à tout
arc (xi, xj) U, si on associe le nombre cij R ;
· La matrice C=(cij) (i, j) U est appelé matrice de pondération.
· On note alors le triplet G=(X, U, C) le graphe
pondéré.
A savoir que la pondération ou la valeur c
(xi, xj) est une valeur résultant d'une mesure.
Cette mesure peut être :
· Une distance du sommet xi au sommet
xj ;
· Un coût sur l'arc (xi,
xj) ;
· Une pénalité, par exemple : Paiement
associé à l'arc (xi, xj) ;
· Une probabilité de transition du sommet
xi au sommet xj ;
· Une durée (temps) entre xi et
xj ;
· Une consommation (de carburant, etc.) à
effectuer du xi au sommet xj ;
· Etc.
Exemple 1.14 : Soit le graphe G=(X, U,
C).
Le graphe ci-contre est pondéré dans la mesure
où, de chaque, on a associé une valeur numérique
quelconque.
a
-5
c
5
19
e
13
d
2
3
b
1
1
g
-2
3
f
9
2
Figure 1.14 : Illustration d'un graphe
pondéré
b. Réseau
Un réseau est un graphe pondéré sans boucle.
Pour ce faire, on note
R=(X, U,?) un graphe pondéré sans boucle ni circuit
à valeur négative.
c. Réseau de transport
(i) R=(X, U,?) est un réseau de transport si et seulement
si c'est un graphe pondéré sans boucle ni circuit à valeur
négative et c (xi,xj) = 0, (xi,xj) U.
(ii) R=(X, U,?) est un réseau de transport si et seulement
si c'est un graphe pondéré sans boucle ni circuit à valeur
négative et c (xi,xj) = 0, xi,xj X.
NOTA : La définition (i) et
(ii) sont équivalentes ;
I.2.8. Problème de Cheminement optimale
a. Valeur d'un chemin
Soit G=(X,U) un graphe. Si à chaque arc
(xi,xj) U, on associe le nombre le nombre cij R*, tel que cij = valeur (xi,xj) = c
(xi,xj).
Considérons la loi de composition interne binaire +
dans R*. On appelle valeur d'un chemin (xi1,
xi2, ..., xik), le nombre noté
« l », tel que :
l = ci1, ci2 + ci2,
ci3 + ... + cik - 1, cik
Exemple 1.15 : Considérons le
graphe suivant :
b
a
c
e
f
d
z
5
2
10
30
40
90
100
6
11
8
7
11
Figure 1.15 : Graphe pondéré
On a : cab=c(a,b)=5 ;
cbd=c(b,d)=8 ; cdc=c(d,c)=4 ;
cce=c(c,e)=3
l (a, b, d, c, e) = 20
Remarque
S'il existe un chemin qui correspond à la plus grande (ou
petite) valeur de l, on l'appelle « plus long (ou court)
chemin » du graphe.
b. Types d'algorithmes de cheminement optimal
Il existe deux types de cheminement optimal, se basant toutes sur
le principe d'optimalité de Richards Bellman. On cite :
· Les algorithmes constructeurs d'arbre (Tree
builder) qui consistent à construire l'arbre à
valeur optimale entre la racine (source) et les autres noeuds du
réseau ;
· Les algorithmes matriciels qui
consistent à trouver le chemin à valeur optimale entre tous les
couples de sommet (xi,xj) U.
Dans ce travail, on s'intéressera qu'à un
algorithme Tree builder de plus court chemin, appelé Algorithme de
Dijkstra, car c'est cet algorithme qui est utilisé dans
l'implémentation des bases de données orientées-graphe.
c. Algorithme de Dijkstra (pour le plus court
chemin)
c.1. Origine
Cet algorithme est dû aux recherches de l'Informaticien
et Mathématicien néerlandais (alors qu'il était
diplômé en Physique théorique, mais trop
intéressé à l'Informatique notamment le Système
d'exploitation et les principes de programmation) appelé Edsger
Dijkstra. Cet algorithme fut publié en 1959.
Cet algorithme est plus utilisé dans le calcul des
itinéraires routiers. Une autre application les plus courantes de cet
algorithme est le protocole Open Shortest Path Fist (OSPF) qui est
utilisé pour le routage internet ; il permet des informations. Les
routeurs tels que IS-IS sont implémentés en algorithme de
Dijkstra. [Wiki1]
c.2. Principe
L'algorithme de Dijkstra s'appuie directement sur le
principe d'optimalité de Richards Bellman selon
lequel : « dans un graphe, tout chemin optimal comprenant au
plus r arcs est formé des sous-chemins contenant au plus k arcs (k=r) et
qui sont eux aussi optimaux entre leurs sommets
extrémités ».
Algorithme 1.1
1. (Numérotation)
Numéroter les sommets du graphe dans un ordre
quelconque, en observant toutefois que le sommet de départ doit
être marqué x0 et celui d'arrivé xn-1
si n est le nombre total de sommets du graphe.
2. (Initialisation)
Pour tout sommet xi (i?0)
On affecte provisoirement à tous les xi une
étiquette de poids (xi)
une valeur 8, c'est-à-dire :
poids (xi) 8
Fin pour
3. poids (x0) 0
4. S X
5. Tant que ð?S
Choisir un sommet xj ð / poids (xj) = poids (xj)
ð ð { xj }
Pour tout voisin xj de
xi de ð
Sipoids (xj) + v
(xi,xj) < poids (xj) Alors
Mémoriser en xj que l'on vient de
xi
Fin si
Fin pour
Fin tant que
6. Fin
|