Vous êtes sur la page 1sur 18

OPTIMISATION DANS LES GRAPHES

ISIMS - Université de Sfax

Mohamed-Badrane MAHJOUB

Novembre 2022

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 1 / 18


PRÉAMBULES - LES GRAPHES VALUÉS

Définition : Un graphe valué ou pondéré est un graphe dans lequel


chacune des arêtes présente une valeur ou poids. Cette valeur peut
représenter une distance, un temps, un montant d’argent, ou une
capacité... Un graphe valué peut être orienté ou non. La distance
entre deux sommets d’un graphe valué est la valeur de la chaîne ayant
la plus petite somme.
Propriétés :
1. Le plus court chemin entre deux sommets s et y est élémentaire.
2. Le plus court chemin entre s et y vérifie les deux conditions :
I D(y) = 0 si y = s
I D(y) = min{D(x) + c(x, y) | x voisin de y} sinon
Algorithmes Classiques :
Dijkstra et Bellman.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 2 / 18


APPLICATION 1
LE PLUS COURT CHEMIN

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 3 / 18


ALGORITHME DE DIJKSTRA (1930-2002)

Cet algorithme qui permet de calculer le plus court chemin entre un


sommet particulier et tous les autres. Le résultat est une
arborescence.
I Numérotons les sommets du graphe G = (V, E) de 1 à n. On
s’intéresse aux chemins partant du sommet 1.
I On construit le vecteur λ = (λ(1), λ(2), ..., λ(n)) ayant n
composantes tel λ(j) soit égale à la longueur du plus court
chemin de 1 à j.
I On initialise ce vecteur à c1j défini comme suit :

0
 si i = j
cij = ∞ si i =6 j et (i, j) 6∈ E

δ(i, j) si i 6= j et (i, j) ∈ E

où δ(i, j) > 0 est le poids de l’arc (i, j).

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 4 / 18


ALGORITHME DE DIJKSTRA (2)

I On construit un autre vecteur p pour mémoriser le chemin pour


aller du sommet 1 au sommet voulu. La valeur p(i) donne le
sommet qui précède i dans le chemin.
I On considère ensuite deux ensembles de sommets, S initialisé à
{1} et T initialisé à {2, 3, ..., n}. à chaque pas de l’algorithme, on
ajoute à S un sommet jusqu’à ce que S = V , de telle sorte que le
vecteur λ donne à chaque étape la longueur minimale des
chemins de 1 aux sommets de S.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 5 / 18


ALOGORITHME DE DIJKSTRA (3)

L’algorithme :
On suppose que le sommet de départ (qui sera la racine de
l’arborescence) est le sommet numéroté 1.
Initialisations
λ(j) = c1j et p(j) = 0, pour 1 ≤ j ≤ n
Pour 2 ≤ j ≤ n faire
Si c1j < ∞ alors p(j) = 1
S = 1 ; T = {2, 3, ..., n}.
Itérations
Tant que T n’est pas vide faire
Choisir i dans T tel que λ(i) est minimum
Retirer i de T et l’ajouter à S
Pour chaque successeur j de i, avec j dans T , faire
Si λ(j) > λ(i) + δ(i, j) alors
λ(j) = λ(i) + δ(i, j) et p(j) = i
Fin.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 6 / 18


λ ( j) = λ (i) + δ (i, j)
ALOGORITHME DE DISJKSTRA - EXEMPLE
p( j) = i

Exemple
1 4 5

10 5
15 4 7

3 2
2 3 3

Initialisations
Initialisations
S = {1} ; T = {2, 3, 4, 5} ; λ = (0, 15, ∞, ∞, 4) ; p = (NIL, 1, NIL, NIL, 1)
S = {1} ; T = {2, 3, 4, 5} ; λ = (0, 15, ∞, ∞, 4) ;
p1ère (N IL, 1, N IL, N IL, 1)
= itération
i = 5 car λ (5) = min(15, ∞, ∞, 4) = 4
1ère
S = {1,Itération
5} ; T = {2, 3, 4}
iles=successeurs
5 car λ(5) T sont ∞,
min(15,
de 5=dans 3 et 4∞, 4) = 4 ; S = {1, 5} ; T = {2, 3, 4}
λ (3)successeurs
les prend la nouvelle
de valeur
5 dansmin(∞;
T sontλ (5)3+ et
δ (5;43)) = min(λ ; 4 + 7) = 11 ; p(3) = 5
λ (4) prend la nouvelle valeur min(∞; λ (5) + δ (5; 4)) = 9 ; p(4) = 5
λ(3) prend la nouvelle valeur min(∞, λ(5) + δ(5, 3)) = 11 ; p(3) = 5
d’où les nouveaux vecteurs λ = (0, 15, 11, 9, 4) et p = (NIL, 1, 5, 5, 1)
λ(4) prend la nouvelle valeur min(∞, λ(5) + δ(5, 4)) = 9 ; p(4) = 5
d’où les nouveaux vecteurs λ = (0, 15, 11, 9, 4) et p = (N IL, 1, 5, 5, 1)

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 7 / 18


ALOGORITHME DE DISJKSTRA - EXEMPLE
(Suite)
2ème Itération
i = 4 car λ(4) = 9, S = {1, 5, 4} ; T = {2, 3}
le successeurs de 4 dans T est 2
λ(2) prend la nouvelle valeur min(15, λ(4) + δ(4, 2)) = 12 ; p(2) = 4
d’où les nouveaux vecteurs λ = (0, 12, 11, 9, 4) et p = (N IL, 4, 5, 5, 1)
3ème Itération
i = 3 car λ(3) = 11, S = {1, 5, 4, 3} ; T = {2}
le successeurs de 3 dans T est 2
λ(2) garde sa valeur car min(12, λ(3) + δ(3, 2)) = 12
d’où les vecteurs inchangés λ = (0, 12, 11, 9, 4) et p = (N IL, 4, 5, 5, 1)
4ème Itération
i = 2 car λ(2) = 12, S = {1, 5, 4, 3, 2} ; T = {}
λ = (0, 12, 11, 9, 4) ; p = (N IL, 4, 5, 5, 1)
L’algorithme se termine car T = {}.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 8 / 18


4ème itération
i = 2 ; λ (2) = 12
ALOGORITHME DE DISJKSTRA - EXEMPLE
S = {1, 5, 4, 3, 2} ; T = {}
(Suite)
λ = (0, 12, 11, 9, 4)
p = (NIL, 4, 5, 5, 1)
On peut lire les coûts des chemins les plus courts dans λ et les
L’algorithme se termine, car T = {}.
chemins eux-mêmes grâce au vecteur p.
OnPar
peutexemple, le chemin
lire les coûts minimal
des chemins les plusde 1 à dans
courts 4 estλde coût
et les λ(4) = 9.grâce
9, careux-mêmes
chemins
au vecteur p. Par exemple, le chemin minimal de 1 à 4 est de coût 9, car λ (4) = 9. C’est le
C’est le chemin 1-5-4, car p(4) = 5 et p(5) = 1.
chemin
Voici1–5–4, car p(4)
la réponse = 5forme
sous = 1.
et p(5)d’arborescence :
Voici la réponse sous forme d’arborescence :

1 4 5

5
4 7

3
2 3

Exercice 71
Entraînez-vous
Appliquez l’algorithme!de: Dijkstra
Appliquez l’algorithme
au graphe de l’exemplede Dijskstra pour
ci-dessus pour trouver
trouver tous les
plus courts
tous les chemins en partant
plus courts des sommets
chemins 2, 3, 4du
en partant et 5.
sommet 3.

Exercice 72
M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 9 / 18
ALOGORITHME DE DISJKSTRA - EXERCICE

Appliquez l’algorithme de Dijskstra pour trouver le plus court chemin


pour chaque sommet, en partant du sommet 0.

1 4 7
1 2

2 6 5 3 9 7 9

0 8 1 6 2 10
2 5 8

1 7 8 3 3 1 4

9 1
3 6 9

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 10 / 18


APPLICATION 2
L’ORDONNANCEMENT

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 11 / 18


L’ORDONNANCEMENT - MOTIVATION

MOTIVATION :
Soit un projet décomposé en n tâches élémentaires. Pour chaque
tâche, il est donné sa durée. La première question qui se pose est celle
de la durée minimale de réalisation du projet.
On s’intéresse à la planification dans le temps des différentes tâches,
ce qu’on appelle un ordonnancement. Nous allons modéliser le
problème par un graphe et appliquer une méthode classique, appelée
méthode du chemin critique.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 12 / 18


L’ORDONNANCEMENT - HYPOTHÈSES ET
PRINCIPES

I On fait correspondre à chaque tâche un arc d’un graphe orienté,


sa durée d’exécution étant égale au poids de cet arc. Le graphe
orienté reflète les précédences requises dans l’exécution du projet.
I Ainsi, la tâche correspondant à l’arc (i, j) ne peut commencer
que si toutes les tâches correspondant à des arcs (k, i) ont été
complétées.
I Le graphe orienté peut contenir des tâches fictives de durée nulle
afin de forcer certaines précédences.
I Les sommets du graphe représentent des événements de début des
activités correspondant aux arcs dont ils sont l’extrémité initiale.
I Les sommets du graphe représentent des événements de fin des
activités correspondant aux arcs dont ils sont l’extrémité finale.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 13 / 18


L’ORDONNANCEMENT - HYPOTHÈSES ET
PRINCIPES

I Les sommets sont numérotés de 1 à n de manière compatible avec


leurs rangs, c’est-à-dire que r(j) > r(i) implique j > i.
I Si le graphe possède plusieurs sommets sans prédécesseur, on
introduit un sommet 1 relié par un arc de durée nulle à chacun de
ces sommets. Ce sommet indique le début du projet.
I Si le graphe possède plusieurs sommets sans successeur, ceux-ci
seront reliés par un arc de durée nulle à un dernier sommet n qui
indique la fin du projet.
I Les arcs parallèles sont éliminés par l’introduction de tâches
fictives.
I Le fait que le graphe orienté est sans circuit garantit la faisabilité
du projet.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 14 / 18


ALGORITHME DU CHEMIN CRITIQUE
Données et Notations :
Graphe orienté G = (V,E), sans circuit, des activités avec leur durée
dik .
P (i) = {k ∈ V |(k, i) ∈ E} : Ensemble des sommets prédécesseurs de i.
S(i) = {k ∈ V |(i, k) ∈ E} : Ensemble des sommets successeurs de i.
Résultat :
I δi : début au plus tôt des activités des arcs (i, k) partant de i,
I φi : fin au plus tard des activités des arcs (k, i) arrivant à i,
I durée du chemin critique.
Début :
I Dates de début au plus tôt (récurrence en avancant dans le
projet) :
δ1 := 0
Pour k := 2 à n, faire δk := max{δj + djk |j ∈ P (k)}
I Dates de fin au plus tard (récurrence en reculant dans le projet) :
φn := δn
Pour k := n − 1 à 1, faire φk := min{φj − dkj |j ∈ S(k)}
Fin.
M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 15 / 18
L’ORDONNANCEMENT - ANALYSE DES
RÉSULTATS

I Un sommet i est critique si δi = φi .


I Un arc (i, j) est critique si ses extrémités sont des sommets
critiques et dij = δj − δi .
I Un chemin critique est un chemin de 1 à n n’utilisant que des
arcs critiques, c’est-à-dire des activités telles que tout retard dans
leur exécution provoquerait un retard de la fin du projet.
I La durée du chemin critique est donnée par δn (ou par φn , les
deux valeurs étant toujours égales). Elle correspond à la durée
minimale du projet étant données les durées des tâches le
composant et les précédences respectives.

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 16 / 18


L’ORDONNANCEMENT
Exemple - EXEMPLE
Ci-dessous le graphe des précédences obtenu avec l’algorithme du chemin critique.
Le chemin critique est en gras.

Tâches Précédences Durée (jours)


A – 3 3 16 13 24
D
B – 9 3 5
C – 5 8
D A 8 A E I
E B 4 3 4 5
F B 7 B G
G B 20 1 2 6
H C, F 6 00 9 99 20 29 29
I D, E 5 C F H
5 7 6

Conventions d’écriture : 4
Nom de la tâche 16 23
j k
Durée de la tâche
δj φj δk φk

Exercice 73
Refaites le graphe des précédences de l’exemple en utilisant l’algorithme du chemin cri-
tique.
M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 17 / 18
APPLICATION 3
INTRODUCTION AUX FLOTS DANS LES RÉSEAUX

M-B. MAHJOUB Graphes et Optimisation - D-LSI ADBD - Ch.III Novembre 2022 18 / 18

Vous aimerez peut-être aussi