Vous êtes sur la page 1sur 104

Graphes et Applications

Dr. Rami Harrathi


Maître assistant en Informatique
{ rami.harrathi@gmail.com }

AU 2023-2024

Syllabus du cours

Objectif
Montrer la richesse des concepts fondamentaux de la théorie des
graphes pour la modélisation et la résolution de nombreux
problèmes d’optimisation discrète. .
Pré-requis
Cours d'algorithmique et quelques notions de programmation.
Organisation
Cours : 2h/semaine ; TD : 1h/semaine
Bibliographie
D Maquin (2010).,«Eléments de Théorie des Graphes et
Programmation Linéaire».,http://cours.ensem.inpl-
nancy.fr/cours-dm/graphes/Graphesnew. pdf
Roseaux (2005 )., Roseaux., «Exercices et problèmes résolus de
recherche opérationnelle,Dunod, 2005.
R.Harrathi Théorie des Graphes et Optimisation 2
.

1
Plan du cours
 Concepts fondamentaux de la théorie des graphes

 La connexité dans un graphe

 Problème de l’arbre couvrant de coût minimum

 Problème du plus court chemin

Problème d’ordonnancement

 Problème du flot maximum


Notions de théorie des langages
 Alphabets, langages et grammaires formelles
 Langages réguliers et automates Finis

R.Harrathi Théorie des Graphes et Optimisation 3

CHAPITRE 1
CONCEPTS FONDAMENTAUX DE LA
THÉORIE DES GRAPHES

R.Harrathi Théorie des Graphes et Optimisation 4

2
Concepts fondamentaux de la théorie des graphes I. Introduction

L’optimisation

Problème d'optimisation consiste à chercher le minimum (S* )


d'une application f, le plus souvent à valeurs entières ou réelles,
sur un ensemble fini S.

Formulation d’un problème d’optimisation


Données
un ensemble fini d'éléments ou configuration
une fonction de coût ou poids sur ces éléments
Question : Déterminer un élément de coût minimum ou de poids
maximum

R.Harrathi Théorie des Graphes et Optimisation 5

Concepts fondamentaux de la théorie des graphes I. Introduction

L’optimisation

Exemple:
Données : Un réseau routier

Graphe
sommets ↔ villes
arcs ↔ routes
 poids sur les arcs :distance entre les villes

Question: Trouver le plus court chemin de Gafsa à Tunis ?


Solution : algorithme de Dijkstra, Bellman-Ford.
R.Harrathi Théorie des Graphes et Optimisation 6

3
Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Historique :problème des 7 ponts de Königsberg


La ville de Königsberg (Kaliningrad), traversée par la rivière
Prégolya, possède 2 îles et 7 ponts.

Est-il possible de visiter tous les quartiers de la ville en


traversant chaque pont qu’une seule fois et de revenir au point
de départ .

R.Harrathi Théorie des Graphes et Optimisation 7

Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Résolution par Euler(1736)


Modélisation de Königsberg par un graphe

sommets=villes
arcs=ponts

Recherche d’un cycle eulérien (une chaîne qui passe une fois et
une seule par chaque arête du graphe )
Théorème d’Euler :un graphe admet un cycle eulérien si et
seulement si le nombre d’arêtes reliées à chaque sommet est pair.

R.Harrathi Théorie des Graphes et Optimisation 8

4
Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Un graphe G = <S,A> est la donnée :


Un ensemble S dont les éléments sont les sommets du graphe
Un ensemble A dont les éléments, des arêtes (ou des arcs) qui
relient les éléments de S.
1 •Sommet

•arc
2 3

Ordre d’un graphe est le nombre de sommets du graphe


(=|S|).

R.Harrathi Théorie des Graphes et Optimisation 9

Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Type de graphe
Orienté : chaque arc à un sens

1 Sommet

arc
2 3

non orienté : les arêtes n’ont pas de sens particuliers


1 Sommet

arête
2 3

R.Harrathi Théorie des Graphes et Optimisation 10

5
Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Modélisation par des graphes


Circulation dans une ville :
sommets ↔ carrefours
arcs ↔ rues

Trafic aérien :
sommets ↔ aéroports,
arêtes ↔ vols existants

Réseau informatique :
sommets ↔ ordinateurs
arêtes ↔connexions physiques

R.Harrathi Théorie des Graphes et Optimisation 11

Concepts fondamentaux de la théorie des graphes I. Introduction

La théorie des graphes

Applications de la théorie des graphes


Recherche Opérationnelle
Problèmes d’ordonnancement, Problèmes de flot…
Réseaux de communication
Diffusion de message , Routage de messages…
Chimie-Biologie
Modélisation de molécules, Décodage de chaînes d’ADN
Sociologie
Modélisation des relations
WEB
Graphe des liens, Calcul de pertinence

R.Harrathi Théorie des Graphes et Optimisation 12

6
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Graphe orienté G = <S, A>


S ensemble fini des sommets
A  S x S ensemble des arcs (a1=(x,y)≠ a2=(y,x) )
Exemple
S = { 1, 2, 3, 4, 5 }
A = {(5, 5), (1, 5) , (5, 4), (4, 2), (2, 1), (3, 1), 3, 2) }

4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 13

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Terminologie : pour un arc a = (x, y)


x est l'extrémité initiale et y est l'extrémité finale
y est successeur de x et y est prédécesseur de x
Un arc (t, t) est appelé une boucle
Exemple
arc a= (1, 5) Boucle l'extrémité finale

Boucle (5,5)
5 l'extrémité initiale

4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 14

7
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Application multivoque d'un graphe Γ


L'application Γ qui, à tout sommet x de A, fait correspondre une
partie de A représentant ses successeurs Γ(x).
L'ensemble des prédécesseurs d'un sommet x est noté Γ-1(x) où
Γ-1 est l'application multivoque réciproque de G.
Exemple
G = <S, A> 5

4 1

2 3
S = { 1, 2, 3, 4, 5 }
Γ(1)={5}, Γ(2)={1}, Γ(3)={1,2}, Γ(4)={2}, Γ(5)={4,5}
R.Harrathi Théorie des Graphes et Optimisation 15

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Chemins
Chemin : c = ( s0, s1,s2, …, sk-1,sk ) où les (si-1,si)  A
origine = s0
extrémité = sk
longueur = k (=le nombre d'arcs qui composent le chemin )
Exemple
c= ( 3, 1, 5, 4 ) est un chemin de longueur 3

4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 16

8
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Chemins
Chemin simple: si il ne passe pas deux fois par le même arc
Chemin élémentaire: si il ne passe pas deux fois par le même
sommet
Circuit: un chemin de longueur non nulle et dont l'origine et
l'extrémité sont identiques.
Exemple
c= ( 3, 1, 5, 4 ) est un chemin simple 5
c= (1,5 ,4 ,2,1 ) est un circuit
4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 17

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Degrés d'un sommet


degré sortant d+(x) (demi-degré extérieur ) d'un sommet
x, le nombre d'arcs dont l'extrémité initiale est x.
degré entrant d-(x) (demi-degré intérieur ) d'un sommet x,
le nombre d'arcs dont l'extrémité finale est x.
degré total d(x) d'un sommet x, le nombre d'arcs ayant une
extrémité en ce sommet.
Exemple 5
d+(1) =1
4 1
d-(1)=2
d(1)=1+2=3
2 3

R.Harrathi Théorie des Graphes et Optimisation 18

9
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes orientés

Propriétés : Si G = <S,A> est un graphe orienté alors

Exemple
1 x d+(x) d-(x)
1 0 2
2 1 1
2 3
3 2 0
∑ 3 3

R.Harrathi Théorie des Graphes et Optimisation 19

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes non orientés

Graphe non orienté G = <S, A>


S ensemble fini des sommets
A  S x S ensemble des arêtes (a1=(x,y) =a2=(y,x) )
Exemple
S = { 1, 2, 3, 4, 5 }
A = {(5, 5), (1, 5) , (5, 4), (4, 2), (2, 1), (3, 1), 3, 2) }

4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 20

10
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes non orientés

Terminologie : pour une arête a = (x, y)


x , y sont les deux extrémités de a
x et y sont adjacents (ou voisins)
Exemple
arête a= (1, 5) = (5, 1)
extrémité
5

4 1 extrémité

2 3

R.Harrathi Théorie des Graphes et Optimisation 21

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes non orientés

Chaîne
Chaîne : c = ( s0, s1,s2, …, sk-1,sk ) où les (si-1,si)  A
Longueur = k (=le nombre d'arêtes qui composent la chaîne )
Cycle: chaîne de longueur non nulle et dont l'origine et
l'extrémité sont identiques.
Exemple
5
c= ( 3, 1, 5, 4 ) est une chaîne de longueur 3
c= (1,5 ,4 ,2,1 ) est un cycle 4 1

2 3

R.Harrathi Théorie des Graphes et Optimisation 22

11
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes non orientés

Terminologie orienté VS non orienté

Orienté non orienté


arc ↔ arête
chemin ↔ chaîne
circuit ↔ cycle

R.Harrathi Théorie des Graphes et Optimisation 23

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Graphes non orientés

Degrés d'un sommet


degré d(x) d'un sommet x est comme le nombre d'arêtes ayant x
pour extrémité.
Propriétés : Si G = <S,A> est un graphe non orienté alors

Exemple
x d(x)
1
1 2
2 1
2 3 3 1
∑ 4

R.Harrathi Théorie des Graphes et Optimisation 24

12
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

P-Graphe
Graphe dans lequel il n’existe jamais plus de p arcs entre deux
sommets quelconques
Exemple :2 -Graphe

1
4

2 3

R.Harrathi Théorie des Graphes et Optimisation 25

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Graphe simple
Un graphe est dit simple si et seulement si il ne comporte pas de
boucle et s'il n'y à pas plus d'une arête (ou arc) entre deux
sommets quelconques.
Exemple
Graphe simple Graphe non simple

1
1

2 3
2 3

R.Harrathi Théorie des Graphes et Optimisation 26

13
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Graphe partiel
Soit G = <S,A> un graphe (orienté ou non). Un graphe partiel de
G est un graphe G' = <S,A’> tel que A  A’.
Exemple
5
5

4 1
4 1

2 3
2 3

R.Harrathi Théorie des Graphes et Optimisation 27

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Sous graphe
Soit G = <S,A> un graphe (orienté ou non). Un sous-graphe de G
est un graphe G' = <S’,A’> tel que A  A’ et S  S’
Exemple
5
1

4 1
2 3
2 3

R.Harrathi Théorie des Graphes et Optimisation 28

14
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Sous graphe couvrant


Un sous-graphe G’ = (S’,A’) d’un graphe G = (S,A) est couvrant
s’il contient tous les sommets de G : S’ = S.

Exemple
5 5

4 1 4 1

2 3 2 3

R.Harrathi Théorie des Graphes et Optimisation 29

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Graphe valué
Un graphe dans lequel chacune des arêtes (ou arcs), a, est associée
à une valeur, appelée poids, p(a).

Exemple
5

8 7

1
4 2 -13

1
2 3
11

R.Harrathi Théorie des Graphes et Optimisation 30

15
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Fermeture transitive d’un graphe


La fermeture transitive d'un graphe G = <S,A> est un graphe
Ĝ=<S, Â >, où Â est défini par la relation suivante :
(x, y)Â  il existe dans G un chemin de x vers y.
Exemple

a
a
b
Fermeture transitive b

c
c
d
d

R.Harrathi Théorie des Graphes et Optimisation 31

Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Graphe symétrique :
(x,y)  A ⇒ (y, x)  A
Graphe anti-symétrique :
(x,y)  A ⇒ (y, x)  A
Graphe réflexif :
(x,x)  A, ∀ x ∈ A
Graphe transitif :
(x,y)  A, (y,z)  A ⇒ (x,z)  A.
Graphe complet
(x,y)A ⇒ (y,x)  A

R.Harrathi Théorie des Graphes et Optimisation 32

16
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes

Définitions

Exemple
Graphe réflexif, anti symétrique, transitif et complet

1 2

3 4

R.Harrathi Théorie des Graphes et Optimisation 33

Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe eulérien

Un chemin Eulérien(chaîne) est un chemin (une chaîne) passant


une et une seule fois par chaque arc( arête) du graphe.
Chaîne hamiltonien= (A,F,E,D,C,E,B,F,C,B)
A

F
B

E
C

R.Harrathi Théorie des Graphes et Optimisation 34

17
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe eulérien

Un graphe non oriente (respectivement orienté) est dit un graphe


Eulérien s’il ait un cycle (resp. circuit) Eulerien.
graphe eulérien graphe non eulérien
.
A
A

F
B F
B

E
C E
C

R.Harrathi Théorie des Graphes et Optimisation 35

Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe eulérien

Théorème d'Euler 1: Un graphe non orienté est eulérien si et


seulement si et seulement s’il soit connexe et tous les sommets
sont de degré pair.
A A

F F
B B

E E
C C
D

Théorème d'Euler 2: Un graphe orienté est eulérien si et


seulement si et seulement :
G est fortement connexe
d+(x) =d-(x) xS

R.Harrathi Théorie des Graphes et Optimisation 36

18
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe hamiltonien

Un chemin Hamiltonien (chaîne) dans un graphe G est un


chemin (une chaîne) passant une et une seule fois, par chaque
sommets de G.
Exemple
Chaîne hamiltonien= (1,2,5,4,3)
2

5 3
1

R.Harrathi Théorie des Graphes et Optimisation 37

Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe hamiltonien

Un graphe G est Hamiltonien s’il contient un cycle


Hamiltonien (cas non-orienté) ou un circuit Hamiltonien (cas
orienté).
Exemple
Cycle hamiltonien= (1,2,5,3,4,1)
2

1 5 3

4
R.Harrathi Théorie des Graphes et Optimisation 38

19
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers

Graphe hamiltonien

Théorème : Soit G un graphe simple, non-orienté, ayant n


sommets, n ≥ 3. Si , pour tout paire(x,y) de sommets non
adjacents, on a :
d(x) + d(y) ≥ n
Alors, G est Hamiltonien.
Corollaire: Soit G un graphe simple, non orienté ayant n
sommets, n ≥ 3. Si tous les sommets sont à degré ≥ n/2, alors G
est Haniltonien.

R.Harrathi Théorie des Graphes et Optimisation 39

Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Matrice d’adjacence

Soit G = <S,A> un 1-graphe la matrice d'adjacence de G est la


matrice carrée M de taille n x n, définie par :
M [ i, j ] = 1 s’il existe un arc (i, j) sinon 0


1 1 2 3

2 3
1
2
3
 1
1
0
1
0
1
1
0
0

R.Harrathi Théorie des Graphes et Optimisation 40

20
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Matrice d’adjacence

Soit G = <S,A> un 1-graphe valué, la matrice d’adjacence de


G est la matrice carrée M de taille n x n, définie par :
M [ i, j ] = p(i,j) s’il existe un arc (i, j) sinon ∞


1 2 3


1
8 1 2 8 5
5
3 2 3 ∞ ∞
2 3 3 ∞ 9 ∞
9

R.Harrathi Théorie des Graphes et Optimisation 41

Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Matrice d’incidence

Soit G = <S,A> un graphe orienté sans boucle , la matrice


d‘incidence sommet-arcs de G est la matrice M, définie par :
Si a = (i,j)  A, alors M[i,a] = 1 : M[j,a] = -1 ; sinon 0


1 a1 a2 a3 a4


a1 a3
a2
1 1 -1 1 0
2 3
2 -1 1 0 -1
a4 3 0 0 -1 1

R.Harrathi Théorie des Graphes et Optimisation 42

21
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Matrice d’incidence

Soit G = <S,A> un graphe non orienté, la matrice d’incidence


sommet-arcs de G est la matrice M, définie par :
Si a = (i,j)  A, alors M[i,a] = 1 : M[j,a] = 1 ; sinon 0


1 a1 a2 a3 a4


a1 a3
a2
1 1 1 1 0
2 3
2 1 1 0 1
a4 3 0 0 1 1

R.Harrathi Théorie des Graphes et Optimisation 43

Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Liste de successeurs

Associer à chaque sommet la liste de ses successeurs. Ces


listes sont accessibles à partir d'un tableau S, qui contient
pour chaque sommet, un pointeur vers le début de sa liste.

1 1 1 2
2 1
2 3 3 2

2
1 1 2 2 8
8 1
5
3 2 1 3
2 3 3
9 2 2

R.Harrathi Théorie des Graphes et Optimisation 44

22
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes

Comparaison des tailles

Graphe à n sommets et m arcs.


Matrice d'adjacence : n2
Matrice d'incidence : n.m
Liste de successeurs : n + m

R.Harrathi Théorie des Graphes et Optimisation 45

Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe

Parcours en profondeur

Principe: pour chaque sommet, on prend le premier


sommet voisin jusqu’à ce qu’un sommet n’ait plus de voisins
(ou que tous ses voisins soient marqués), et revient alors au
sommet père.
Exemple:
Ordre préfixe du parcours : a, b, f, g, e, c, d
1 a

c d 7 e 5
6
3 f g 4

2
b

R.Harrathi Théorie des Graphes et Optimisation 46

23
Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe

Parcours en profondeur

Exemple:
Ordre suffixe du parcours : e, g, f, b, c, d, a

7 a

c d 6 e 1
5
3 f g 2
4
b

R.Harrathi Théorie des Graphes et Optimisation 47

Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe

Parcours en profondeur

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 48

24
Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe

Parcours en largeur

Principe: à partir d'un sommet S, on liste d'abord les voisins


de S pour ensuite les explorer un par un.
Exemple:
Ordre du parcours : a b c d e f g

1 a

3 c 4 d e 5

6 f g
7
b
2

R.Harrathi Théorie des Graphes et Optimisation 49

Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe

Parcours en largeur

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 50

25
CHAPITRE 2
LA CONNEXITÉ DANS UN GRAPHE

R.Harrathi Théorie des Graphes et Optimisation 51

La connexité dans un graphe I. Introduction

Connexité par l’exemple

Plan de circulation dans une ville des rues à double sens


Graphe non orienté : la circulation est autorisée de n'importe
quel point de la ville vers un autre
1 2

3 4 5 6

7 8 9 10

11 12

Il existe une chaîne entre tout couple de sommets.


Graphe connexe

R.Harrathi Théorie des Graphes et Optimisation 52

26
La connexité dans un graphe I. Introduction

Connexité par l’exemple

Plan de circulation dans une ville des rues avec des sens interdits,
Graphe orienté : la circulation est autorisée de n'importe quel
point de la ville vers un autre
1 2

3 4 5 6

7 8 9 10

11 12

Il existe un chemin entre tout couple de sommets.


Graphe fortement connexe

R.Harrathi Théorie des Graphes et Optimisation 53

La connexité dans un graphe II. Connexité

Graphe connexe

Un graphe non orienté G = <S,A> est connexe si ∀ x,y ∈ S ,


il existe une chaîne reliant x à y
Exemple

Graphe connexe Graphe non connexe

E D E D

C F C F

A B A B

R.Harrathi Théorie des Graphes et Optimisation 54

27
La connexité dans un graphe II. Connexité

Graphe connexe

Une composante connexe d'un graphe G=<S,A> est un sous-


graphe G'=<S',A‘> connexe maximal.
∀ x, ∈ S \A’, y ∈ A’, il n'existe pas une chaîne reliant x et y
Les composantes connexes de G définissent une partition de S.
Exemple
.
{ E,A,C,B } D { D,F }
E

F
C

A B

R.Harrathi Théorie des Graphes et Optimisation 55

La connexité dans un graphe II. Connexité

Graphe fortement connexe

Un graphe orienté G = <S,A> est fortement connexe si ∀ x,y


∈ S , il existe un chemin reliant x et y
Exemple

Graphe fortement connexe Graphe non connexe


a a
g g
c c

d d
e e

b b
f f

R.Harrathi Théorie des Graphes et Optimisation 56

28
La connexité dans un graphe II. Connexité

Graphe fortement connexe

Une composante connexe d'un graphe orienté G=<S,A> est un


sous-graphe G'=<S’,A‘> fortement connexe maximal.
∀ x, ∈ S \A’, y ∈ A’, il n'existe pas un chemin reliant x et y
Les composantes connexes de G définissent une partition de S.
Exemple
a
{a,c,g}
g
c

d
e {f,d,e,b}

b
f

R.Harrathi Théorie des Graphes et Optimisation 57

La connexité dans un graphe II. Connexité

Graphe fortement connexe

Graphe réduit d'un graphe orienté admettant p composantes


fortement connexes{C1, C2, …, Cp} est défini par Gr=< Sr, Ar >
Sr={C1, C2, …, Cp}
Ar={(xi, xj) | xi ∈ Ci , xj ∈ Cj tel que (xi, xj) ∈A}
Exemple

a C1
g
c
Graphe réduit

d
e

b C2
f

R.Harrathi Théorie des Graphes et Optimisation 58

29
La connexité dans un graphe III. Recherche des composantes connexes

Cas non orienté

Appliquer l’algorithme de parcours du graphe en profondeur (ou


en largeur)
Chaque arbre de la forêt obtenue couvre des sommets appartenant
à une même composante connexe.
Exemple Forêt de l'exploration en profondeur
S={A, B, C, D, E, F} les dates du début et la fin de parcours de G
0
E
D
A D
C B F
F
C
A B
E

R.Harrathi Théorie des Graphes et Optimisation 59

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Algorithme de Kosaraju-Shamir

Algorithme de Kosaraju-Shamir
1. Appliquer un parcours en profondeur de G en numérotant les
sommets dans l’ordre suffixe
2. Construire le graphe transposé GT obtenu en inversant le sens des
arcs de G.
3. Appliquer un parcours en profondeur de GT en démarrant par le
sommet de plus grand numéro suffixe
Chaque arborescence de la forêt obtenue à l’étape précédente est une
composante fortement connexe.

R.Harrathi Théorie des Graphes et Optimisation 60

30
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Algorithme de Kosaraju-Shamir

Exemple:
Parcours suffixe : e, d ,f, b, g, c, a

7
a
6 g 5
c

2 d 1
e

b 4
3 f

R.Harrathi Théorie des Graphes et Optimisation 61

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Algorithme de Kosaraju-Shamir

Construction du graphe transposé ( GT )

G GT :
7
a 7
6 g 5
a
6
c c
g
5

2 d 1 d
e
2 e 1
b 4 b 4
3 f
3
f

R.Harrathi Théorie des Graphes et Optimisation 62

31
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Algorithme de Kosaraju-Shamir

Parcours préfixe en profondeur du graphe transposé ( GT )

7 a
6 Forêt de l'exploration en profondeur
c
g
5
0

2 d 1 a b
e
g e
f
b 4
3 c d

f
composante fortement connexe

R.Harrathi Théorie des Graphes et Optimisation 63

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Principe :
Calculer la matrice de la fermeture transitive d'un graphe

a a

b Fermeture transitive ? b

c c

a b c a b c
a 0 1 0 Matrice d’adjacence?
a 1 1 1
b 1 0 1 b 1 1 1
c 0 0 0 c 0 0 0

R.Harrathi Théorie des Graphes et Optimisation 64

32
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Principe :
Calculer la matrice de la fermeture réflexive transitive d'un
graphe
a a

b Fermeture réflexive transitive ? b

c c

Matrice d’adjacence? 1 1 1
0 1 0 1 1 1
1 0 1
0 0 1
0 0 0

composante fortement connexe

R.Harrathi Théorie des Graphes et Optimisation 65

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par la puissance matricielle


les opérations booléennes sur les matrices

A B A+B A × B
1 1 1 1
1 0 1 0
0 1 1 0
0 0 0 0

R.Harrathi Théorie des Graphes et Optimisation 66

33
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par la puissance matricielle


M a b c
a a 0 1 0

b × b 1 0 1
c 0 0 0

c M a b c M2 a b c

a 0 1 0 a 1 0 1
b 1 0 1 b 0 1 0
c 0 0 0 c 0 0 0
Exemple de calcul
M2[a,a]=M[a,a]×M[a,a] + M[a,b] × M[b,a] + M[a,c]× M[c,a]
M2[a,c]=M[a,a]×M[a,c] + M[a,b] x M[c,b] + M[a,c] × M[c,c]

R.Harrathi Théorie des Graphes et Optimisation 67

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par la puissance matricielle


Chemins de longueur 2 = Calculer M2 (le produit booléen)
a
M a b c M2 a b c
b a 0 1 0 a 1 0 1
b 1 0 1 b 0 1 0
c 0 0 0 c 0 0 0
c

Exemple de calcul
M2[a,a]=M[a,a]×M[a,a] + M[a,b] × M[b,a] + M[a,c]× M[c,a]
M2[a,a]= 1 car M[a,b] = 1 et M[b,a] =1
Il existe un chemin du sommet a au sommet a
Chemin=(a,b,a)
R.Harrathi Théorie des Graphes et Optimisation 68

34
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par la puissance matricielle


M2[i,j] = ∑ M[i,k] × M [K,j] (∑ somme booléenne)

Pour que M2[i,j]= 1, il faut qu’il existe au moins un indice k tel


que simultanément les éléments M[i,k] et M[k,j] égaux à1.

M[i,k]=1 et M[k,j] =1  il existe un chemin de longueur


de 2 du sommet i au sommet j.

R.Harrathi Théorie des Graphes et Optimisation 69

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Recherche de l’existence des chemins de longueur p


Calculer M[p]
Preuve : par récurrence
Notation : On note les matrices obtenues à partir des lois de
composition booléennes par M[p] pour les différencier des matrices
calculées à partir des lois de composition usuelles.

Recherche du nombre des chemins de longueur p


Calculer MP
Preuve : par récurrence

R.Harrathi Théorie des Graphes et Optimisation 70

35
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Matrice de la fermeture transitive (MF) d’un graphe de n


sommets
MF= M[1] + M[2] + M[3] +….+ M[n-1]

Remarque: dans un graphe de n sommets il ne peut y avoir de


chemin simple ayant plus de n-1.
Complexité = O(n4)

R.Harrathi Théorie des Graphes et Optimisation 71

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Exemple : Calcul de la fermeture transitive

a M[1] M[2]
a b c a b c
b
a 0 1 0 a 1 0 1
b 1 0 1 b 0 1 0
c c 0 0 0 c 0 0 0

a MF= M[1] + M[2]


a b c
b a 1 1 1
b 1 1 1
c 0 0 0
c

R.Harrathi Théorie des Graphes et Optimisation 72

36
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Matrice de la fermeture réflexive transitive (MF*) d’un graphe


de n sommets :
On ajoute I : matrice identité à MT

MF*= I+ M[1] + M[2] + M[3] +….+ M[n-1] = (I+M )[n-1]


Complexité = O(n4)

R.Harrathi Théorie des Graphes et Optimisation 73

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Exemple : Calcul de la fermeture réflexive transitive

a I :matrice identité M[1] M[2]


a b c a b c a b c
b a 0 1 0 a 1 0 1
a 1 0 0
b 0 1 0 b 1 0 1 b 0 1 0
c 0 0 1 c 0 0 0 c 0 0 0
c

a MF*=I+ M[1] + M[2]


a b c
b a 1 1 1
b 1 1 1
c 0 0 1
c

R.Harrathi Théorie des Graphes et Optimisation 74

37
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul des composantes fortement connexes


Isoler les sous matrices carrées maximales de la fermeture
réflexive transitive qui ne contenant que des 1 et situées sur la
diagonale
MF*
a
a b c
b a 1 1 1
b 1 1 1
c 0 0 1
c
cfc2={c}
cfc1={a, b}
Permuter les ligne et les colonnes de façon d'obtenir des sous
matrices carrées maximales pleins de 1

R.Harrathi Théorie des Graphes et Optimisation 75

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par l’algorithme de Warshall


G =<S, A> avec S = {0, 1, ..., n-1}
Chemin de longueur k : i  s1  s2 ………………. sk-1  j
Sommets intermédiaires : s1, s2 , ... , sk-1

1
Chemin de 1 à 4: 1  3 4  2
3
Sommets intermédiaires : 3, 4
2
4

R.Harrathi Théorie des Graphes et Optimisation 76

38
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par l’algorithme de Warshall


Notation: Mk =matrice des chemins dont les sommets
intermédiaires sont tous ≤ k (de longueur ≤ k dans G)
Chemin simple
i k j

pas de k pas de k

Mk [i,j] = 1 ssi Mk-1 [i,j] = 1 ou (Mk-1[i,k] =1 et Mk -1 [k,j] =1 )


Calcul par récurrence de Mk à partir de Mk-1
Complexité = O(n3)

R.Harrathi Théorie des Graphes et Optimisation 77

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Algorithme de Warshall : Soit φk(G) le graphe obtenu a partir du


graphe G et du sommet k de la manière suivante :
1. φk(G) a les mêmes sommets que G. Il possède un arc du sommet
i vers le sommet j dans les deux cas suivants :
i. il y a un arc dans G de i vers j
ii. il y a un arc dans G de i vers k et un arc dans G de k vers j

2. pour un graphe contenant n sommets calculer φ1(G), puis


φ2(φ1(G)) puis φ3(φ2(φ1(G))), jusqu'à φn(…(φ2(φ1(G))) …)).

3. Le graphe ainsi obtenu est la fermeture transitive du graphe G

R.Harrathi Théorie des Graphes et Optimisation 78

39
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par l’algorithme de Warshall


1
0 0 1 0
3 0 0 0 1
1 0 0 1
2 4 0 1 0 0

Itération 1 : utiliser le sommet 1 φ1(G) Itération 2 : utiliser le sommet 2 φ2(φ1(G)

1 0 0 1 0
1 0 0 1 0
3 0 0 0 1
3 0 0 0 1
1 0 1 1
1 0 1 1
0 1 0 1
0 1 0 0 2 4
2 4

R.Harrathi Théorie des Graphes et Optimisation 79

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par l’algorithme de Warshall

Itération 3: utiliser le sommet 3 φ3 (φ2(φ1(G) Itération 4: utiliser le sommet 4 φ4(φ3(φ2(φ1(G))

1 1
1 0 1 1 1 1 1 1
3 0 0 0 1 3 0 1 0 1
1 0 1 1 1 1 1 1
2 4 0 1 0 1
2 4 0 1 0 1

R.Harrathi Théorie des Graphes et Optimisation 80

40
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul des composantes fortement connexe

1 1 2 3 4 1 3 2 4
1 1 1 1 1 1 1 1 1 1
3 2 0 1 0 1 3 1 1 1 1
3 1 1 1 1 2 0 0 1 1
2 4 4 0 1 0 1 4 0 0 1 1

cfc1={1, 3} Cfc1={2,4}
Remarque
Dans cet exemple la fermeture transitive est réflexive

R.Harrathi Théorie des Graphes et Optimisation 81

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture transitive par l’algorithme de Warshall

R.Harrathi Théorie des Graphes et Optimisation 82

41
La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture réflexive transitive par l’algorithme de


Warshall

1
rendre le graphe
2 réflexive 1
2
3
3
M
I+M
0 1 0
1 0 1 1 1 0

0 0 0 1 1 1
0 0 1

R.Harrathi Théorie des Graphes et Optimisation 83

La connexité dans un graphe III. Recherche des composantes connexes

Cas orienté : Méthode matricielle

Calcul de fermeture réflexive transitive par l’algorithme de


Warshall
Itération 1 : utiliser le sommet 1 Itération 2 : utiliser le sommet 2

1
1 1 0
1
1 1 1
2 1 1 1 2 1 1 1
0 0 1
0 0 1
3
3

Itération 3 : utiliser le sommet 3

1
1 1 1
2 1 1 1
0 0 1
3

R.Harrathi Théorie des Graphes et Optimisation 84

42
CHAPITRE 3
PROBLÈME DE L’ARBRE COUVRANT DE
COÛT MINIMUM

R.Harrathi Théorie des Graphes et Optimisation 85

Problème de l’arbre couvrant de coût minimum I. Introduction

Problème de l’Arbre Couvrant de Coût minimum

Réalisation d’un réseau électrique


Modélisation par un graphe non orienté valué
Poids d'une arête : le coût (longueur de câble) de construction de la
portion du réseau reliant deux points
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4

Quelles sont les liaisons à réaliser pour connecter toutes les villes
au moindre coût ?

R.Harrathi Théorie des Graphes et Optimisation 86

43
Problème de l’arbre couvrant de coût minimum I. Introduction

Problème de l’Arbre Couvrant de Coût minimum

Contraintes d'optimisation de réalisation d’un réseau électrique


Deux villes quelconques doivent être reliés entre eux
(connexité)
Graphe partiel connexe
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4

Chaque ville doit être relié un seul fois au réseau


graphe partiel couvrant tous les points du réseau
graphe partiel connexe sans cycle

R.Harrathi Théorie des Graphes et Optimisation 87

Problème de l’arbre couvrant de coût minimum I. Introduction

Problème de l’Arbre Couvrant de Coût minimum

Contraintes d'optimisation de réalisation d’un réseau électrique


Minimiser le coût du réseau représenté par un graphe partiel
connexe sans cycle (Arbre) couvrant
Coût= longueur totale du câble utilisé pour

coût =10 coût =18


5 5
A B A B
4 6 2 4 6 2

C 2 D 3 C 2 D 3

3 1 2 3 1 2
E F E F
4 4

Déterminer l’Arbre Couvrant de Coût Minimum (ACCM)

R.Harrathi Théorie des Graphes et Optimisation 88

44
Problème de l’arbre couvrant de coût minimum II. Définitions

Arbre

Un arbre est un graphe non orienté, connexe, sans cycle.

A B

C D

E F

R.Harrathi Théorie des Graphes et Optimisation 89

Problème de l’arbre couvrant de coût minimum II. Définitions

Arbre

Caractérisations d'un Arbre : Pour un arbre T d'ordre n, il y a


équivalence entre les propriétés :
1. T est un arbre

2. T est un graphe connexe à n-1 arêtes

3. T est connexe, et la suppression de toute arête le déconnecte

4. T est acyclique à n-1 arêtes

5. T est acyclique et l'ajout de toute arête le rend cyclique.

R.Harrathi Théorie des Graphes et Optimisation 90

45
Problème de l’arbre couvrant de coût minimum II. Définitions

Arbre couvrant

Soit G un graphe valué non orienté connexe. Un arbre


couvrant est un sous-graphe de G couvrant (i.e. contenant
tous les sommets), connexe et sans cycle. Son coût est la somme
des valuations de ses arêtes.

Arbre couvrant T1: Coût(T1) =18 Arbre non couvrant T2: Coût(T2) =13
5
A B 5
4 A B
6 2 4 6 2
C 2 D 3
C 2 D 3
3 1 2
E F 3 1 2
4 E F
4

R.Harrathi Théorie des Graphes et Optimisation 91

Problème de l’arbre couvrant de coût minimum II. Définitions

Arbre couvrant de coût minimum

Un Arbre Couvrant de Coût Minimum (AACM) est un arbre


couvrant dont le coût est le plus petit possible parmi les arbres
couvrants de G.

Arbre couvrant de coût minimum T*: Coût(T*) =10

5
A B
4 6 2

C 2 D 3

3 1 2
E F
4

R.Harrathi Théorie des Graphes et Optimisation 92

46
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Principe:
1. Trier toutes les arêtes et les placer en ordre croissant de coût
(arbre de valeurs minimales).

2. Choisir l’arête ayant le plus petit coût .

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient reliés en


évitant celles qui formeraient un cycle

R.Harrathi Théorie des Graphes et Optimisation 93

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Trier les arêtes par ordre croissant de coût
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 94

47
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 1 : choisir l’arête (E,D)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 95

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F

 Itération 3 : Choisir l’arête (D,B)


1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 96

48
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 4 : Choisir l’arête (E,A)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 97

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F

 Itération 5 : Choisir l’arête (D,F)


1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 98

49
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

2 D 3 cycle!!
C

3 1 2
E F
4
 Itération 6 : Éliminer l’arête (B,F)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 99

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 7 : Choisir l’arête (C,E)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6

R.Harrathi Théorie des Graphes et Optimisation 100

50
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Exemple
A B
2

C 2 D

3 1 2
E F

 Algorithme est fini : nombre d’arêtes =nombre de sommets -1


1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
inutiles

R.Harrathi Théorie des Graphes et Optimisation 101

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Kruskal

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 102

51
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Principe:
1. Initialiser les sommets d’un sous arbre T à un sommet quelconque

2. Ajouter au sous-arbre T l’arête coût minimal connectant un


sommet de T à un sommet qui n’est pas dans T.

3. Répéter l’étape 2 jusqu’à ce que tous les sommets sont dans T

R.Harrathi Théorie des Graphes et Optimisation 103

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F

 Initialiser un sous arbre T au sommet A

R.Harrathi Théorie des Graphes et Optimisation 104

52
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 1 : choisir l’arête du coût minimal (A,E)

R.Harrathi Théorie des Graphes et Optimisation 105

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 2 : choisir l’arête (E,D)

R.Harrathi Théorie des Graphes et Optimisation 106

53
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple Arête connectant deux sommets


de l’arbre est élimée
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 3 : choisir l’arête (D,F)

R.Harrathi Théorie des Graphes et Optimisation 107

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 4 : choisir l’arête (D,B)

R.Harrathi Théorie des Graphes et Optimisation 108

54
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
5
A B
4 6 2

C 2 D 3

3 1 2
E F
4
 Itération 5 : choisir l’arête (E,C)

R.Harrathi Théorie des Graphes et Optimisation 109

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Exemple
A B
2

C 2 D

3 1 2
E F

 Algorithme est fini : nombre d’arêtes =nombre de sommets -1

R.Harrathi Théorie des Graphes et Optimisation 110

55
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Algorithme de Prim

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 111

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Application

Déterminer l’arbre de coût minimum


4
A B C

2 6 3 3 8

D 1 E 6 F 4

5 5 4 5 2

G 10 H I

MÉTHODE : Algorithme de Kruskal

1 – 2 – 2 – 3 – 3 – 4 – 4 – 4 – 5 – 5 – 5 – 6 – 6 – 8 – 10

inutiles
Poids de l’arbre : 1 + 2 + 2 + 3 + 3 + 4 + 5 = 20

R.Harrathi Théorie des Graphes et Optimisation 112

56
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Application

Déterminer l’arbre de coût maximum


4
A B C

2 6 3 3 8

D 1 E 6 F 4

5 5 4 5 2

G H I
10

MÉTHODE : Algorithme de Kruskal

10 – 8 – 6 – 6 – 5 – 5 – 5 – 4 – 4 – 4 – 3 – 3 – 2 – 2 – 1

inutiles
Coût de l’arbre : 10 + 8 + 6 + 6 + 5 + 5 + 4 + 4 = 48
113
R.Harrathi Théorie des Graphes et Optimisation

Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum

Application

Déterminer l’arbre de coût minimum


4
A B C

2 6 3 3 8

D 1 E 6 F 4

5 5 4 5 2

G 10 H I

MÉTHODE : Algorithme de Prim

Coût de l’arbre : 2 + 4 + 1 + 3 + 3 + 5 + 2 + 5 = 20

R.Harrathi Théorie des Graphes et Optimisation 114

57
CHAPITRE 4
PROBLÈME DU PLUS COURT CHEMIN

R.Harrathi Théorie des Graphes et Optimisation 115

Problème du plus court chemin I. Introduction

Graphe valué

Un graphe G =<S,A> est valué si il est muni d’une application


v qui associe à chaque arc une valuation :
V: S x S R , (x,y)  V (x,y) si (x,y) A sinon +∞

Exemple B
8
V(A,B)=8
5
2
V(B,A)=+∞ A D 3
1
6
C

R.Harrathi Théorie des Graphes et Optimisation 116

58
Problème du plus court chemin I. Introduction

Longueur d’un chemin

Soit G =<S,A> un graphe valué. La longueur d’un chemin


C=(x1, x2,…, xk) est définie comme suit:
L(C) = ∑ i=1..k-1 V(xi, xi+1)
Exemple
C1= (A,D,B)  L(C1) =2+5=7 B
8
5
2
A D 3
1
6

Interprétation C

Coût de transport, Dépense de construction, Temps nécessaire de


parcours
R.Harrathi Théorie des Graphes et Optimisation 117

Problème du plus court chemin I. Introduction

Distance et plus court chemin

On appelle distance de s à t le minimum des longueurs des


chemins allant de s à t.
δ(s,t)=min { L(c) , c chemin de s à t },
δ(s,t)= + : s’il n’existe pas de chemin de s à t
On appelle plus court chemin de s à t tout chemin dont la
longueur est égale à δ(s, t).
B
Exemple
8
Les chemins de A à C possibles sont : 5
2
C1=(A,C) L(C1) =6 A D 3
C2=(A, D, C) L(C2) =3 1
δ(A,C)=3  plus court chemin= (A,D,C) 6
C

R.Harrathi Théorie des Graphes et Optimisation 118

59
Problème du plus court chemin I. Introduction

Circuit et plus court chemin

Si un graphe possède un circuit absorbant (un circuit dont la


longueur est négatif) , alors il n’existe pas de plus courts chemins
entre certains de ces sommets
B
2 -8

5 Circuit
3
s A C t
L≤0

4 1
D

Exemple: plus court chemin s à t


(s, A, B, C, t)L= 2
(s, A, B, C, D, A, B, C, t)L= -1
(s, A, B, C, D, A, B, C, D, A, B, C, t)L= -4
 Infinité de chemins
R.Harrathi Théorie des Graphes et Optimisation 119

Problème du plus court chemin I. Introduction

Circuit et plus court chemin

Un plus court chemins de s à t ne contient pas un circuit de


longueur positif
Preuve : Par contradiction
On suppose qu’il existe un plus court chemins de s à t qui contient
un circuit de longueur positif : sx y x t
y

Circuit
L≥ 0

S x t

Contradiction : Il existe un chemin plus court sx t

R.Harrathi Théorie des Graphes et Optimisation 120

60
Problème du plus court chemin I. Introduction

Recherche de plus courts chemins

On étudiera principalement les algorithmes de recherche de plus


courts chemins dans un graphe valué et sans circuit absorbant

Recherche de plus courts chemins d’un sommet à tous les autres


Algorithme de Bellman-Ford
Algorithme de Dijkstra

Recherche de plus courts chemins pour tous couples de sommets


Algorithme de Floyd-Warshall

R.Harrathi Théorie des Graphes et Optimisation 121

Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Un chemin minimal est formé de sous-chemins minimaux.

Sous-chemin minimal de x à y

S x y t

Preuve : Par contradiction


δ(Cst) = L(Csx) + L(Cxy) + L(Cyt)
Supposons qu'il existe C’xy tel que L(C’xy ) < L(Cxy) alors
L(Cxt) + L(C’xy) + L(Cyt) < δ(Cst)
en contradiction avec le fait que le chemin de s à t est un chemin
minimal

R.Harrathi Théorie des Graphes et Optimisation 122

61
Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Exemple

1 2 4
s x y t

4 z 5

C= (s, x, y, t) est un chemin minimal alors


C1= (s, x, y) est un chemin minimal
C2= (s, x, ) est un chemin minimal
C3= (x, y, t) est un chemin minimal
C4= (x, y) est un chemin minimal
C5= (y, t) est un chemin minimal

R.Harrathi Théorie des Graphes et Optimisation 123

Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Soit un chemin C minimal de s à t dont l’avant-dernier sommet


est x (prédécesseur de t)

S x t

1. Si C est minimal alors δ(s, t) = δ(s, x) + V(x, t)


2. Si C est non minimal alors δ(s, t) ≤ δ(s, x) + V(x, t)

R.Harrathi Théorie des Graphes et Optimisation 124

62
Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Exemple
δ(s, t) = δ(s, y) + v(y, t)
δ(s, y) =3 δ(s, t) ≤ δ(s, z) + v(z, t)

1 2 4
s x y t δ(s, t) =7

4 z 5

δ(s, z) =4

Condition d’optimalité : Si ces deux conditions sont vérifiées


1. Pour un graphe G=<S,A> : δy  δx+ V(x , y)  (x ,y)  A
2. Pour un chemin C de s à t : δy= δx+V(x,y) (x ,y) C
Alors C est un chemin minimal de s à t .

R.Harrathi Théorie des Graphes et Optimisation 125

Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Preuve
C est composé de p arcs :
s  x1  x2 ………………. xk  t
Comme V(xi, xj )= δxj- δxi (xi, xj )  C, on a

 L(C) = V(xp, t) +……………. + V(x1, x2)+ V(s, x1)


 L(C) = (δt–δxP) +……………. + (δx2- δx1) + (δx1- δs)= δt –δs

Montrons que C est un chemin minimal

R.Harrathi Théorie des Graphes et Optimisation 126

63
Problème du plus court chemin II. Principe d’optimalité

Principe d’optimalité

Preuve (suite)
Soit Q un chemin quelconque de s à t. Q est composé de k arcs
s  y1  y2 ………………. yk  t

Comme V(yi, yj )  δyj- δyi(i,j)  C, on a


 L(Q)= V(yp, t) +……………. + V(y1, y2)+ V(s, y1)
 L(Q)  (δt–δym) +……………+(δy2- δy1)+(δy1- δs)= δt –δs
=L(C)

Donc L(C) est minimale

R.Harrathi Théorie des Graphes et Optimisation 127

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Principe de recherche

On sélectionne un arc (q, r) qui viole les conditions d’optimalité,


c.-à-d. tel que d(r) >d(q) + l(q, r) On met à jour distance de r
d(q)=1 d(q)=1
(q)  s (q)  s
q q
1 2 Si d(r) > d(q) + v(q, r) 1 2
4 4
s r s r
d(s)=0 d(r)=4 d(s)=0 d(r)=3
(r)  Nul (r)  s (r)  Nul (r)  q

Relaxation d’un arc (q, r) :


Déterminer s’il est possible, en passant par l’arc (q, r) ,
d’améliorer le plus court chemin jusqu’à r

R.Harrathi Théorie des Graphes et Optimisation 128

64
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme générique

Calcul de (s, r) par approximations successives:


d(r)= estimation de (s, r)
(r)=prédécesseur de r sur le chemin de s à r
Algorithme générique

Répéter
Pour chaque arc (q,r) :
si d(q) + v(q, r) < d(r) alors
{
d(r)  d(q) + v(q, r) ;
(r)  q ;
}

Jusqu’à ce qu’aucun arc ne permette plus de diminuer d(r).

R.Harrathi Théorie des Graphes et Optimisation 129

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme générique

Recherche les chemins minimaux depuis s


Initialisation:

(d(i),(i))
(0, -) (, -) (, -)
1 2
s x t

-3
5 4
y
(, -)

R.Harrathi Théorie des Graphes et Optimisation 130

65
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme générique

Relaxations de tous les arcs dans l’ordre :


(s,x), (s,y), (x,y) , (x,t), (y,t) Itération 1

(0, -) 1 (, -) (, -) (0, -) (1, s) (3, x) (2, y)


2 1 2
s x t s x t
-3 -3
5 4 5 4
y y
(, -) (5, s) (-2, x)

Itération 2
(0, -) 1 (1, s) (2, y)
2
s x t Nombre d’itérations ?
-3
5 4
y
(-2, x)

R.Harrathi Théorie des Graphes et Optimisation 131

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Principe: Application de la principe d’optimalité


Recherche d’ un chemin minimal (Cz ) de s à t et passant par z.

Cz

z
s t

Formule récursive de recherche

δ(s, t) =Min(δ(s, z) +L(z, t))

R.Harrathi Théorie des Graphes et Optimisation 132

66
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Recherche d’un chemin minimal de s à t de longueur k

(1) (2) ( k-1 ) (k)

z1 z1 z1

s z z z t

zm zm zm

δk(s, t) =Min(δ(k-1)(s, z) +V(z, t))

R.Harrathi Théorie des Graphes et Optimisation 133

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Étape 1 : Initialisation
(, -)
Pour chaque sommet i de S
d(i)  + (d(i),(i)) B
8
5
(i)  nul (0, -)
2
Source du graphe A A D (, -) 3
d(A)  0
1
(A)  nul 6 (, -)
C

Étape 2 :
Chercher tous les chemins de longueur 1, 2, …(n-1)

R.Harrathi Théorie des Graphes et Optimisation 134

67
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Itération 1:
B (8, A) B (8, A)
8 8
5 5
(0, -) (0, -)
2 2
A D (, -) 3 A D (, -) 3

6 1 (, -) 1
6 (6, A)
C C

B (8, A)
8
5
(0, -)
2
A D (2, A) 3

6 1
(6, A)
C

R.Harrathi Théorie des Graphes et Optimisation 135

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Itération 2:
B (7, D) B (7, D)
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3

6 1 (6, A) 1
6 (3, D)
C C

B (7, D)
8
5
(0, -)
2
A D (2, A) 3

6 1
3, D)
C

R.Harrathi Théorie des Graphes et Optimisation 136

68
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Itération 3:
B (6, C) B (6, C)
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3

6 1 (3, D) 1
6 (3, D)
C C

B (6, C)
8
5
(0, -)
2
A D (2, A) 3

6 1
3, D)
C

R.Harrathi Théorie des Graphes et Optimisation 137

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Arbres de plus courts chemins :Arbres de racine A dont les


branches sont des chemins de coût minimal
d[i] : valeur du chemin de longueur minimale de A à i
[i] : le prédécesseur pour venir de l’origine A.
(6, C)
B B B
8
5
(0, -)
2 2 2
A D (2, A) 3 A D 3 A D 3
1 1
6 1
C C C
(3, D)

R.Harrathi Théorie des Graphes et Optimisation 138

69
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 139

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Bellman-Ford

Preuve : par récurrence


À la fin de la i-itération les plus courts chemins contenant au plus i arcs
sont connus
la propriété est vraie pour i= 0 arcs =0 d(s) =0 (phase
d’initialisation)
On suppose que la propriété est vraie pour k, on veut montrer que
la propriété est vraie pour k+1
s

v(xk , xk+1)
xk xk+1

x'k v(x’k ,xk+1)

δ (s, xk+1) = Min(δ (s, xk) + v(xk , xk+1))

R.Harrathi Théorie des Graphes et Optimisation 140

70
Problème du plus court chemin III. Plus courts chemins à origine unique

Algorithme de Bellman-Ford

Bellman-Ford et les valuations négatives


(2, s) (2, s)
Itération 1: Itération 2:
u u
2 3 2
(0, -) (5, u) (0, -) 3 (5, u)
s v s v
1 1
-6 -6
t t
(1, s) (-1, v) (2, s)
Itération 3: (-1, v)
u
2 3
(0, -) (5, u)
s v
1
-6
t
(-1,v)
R.Harrathi Théorie des Graphes et Optimisation 141

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Principe:
Hypothèse : si un chemin minimal (Cx) de s à t passant par (x, y )
et les valuations des arcs sont positives alors δ(s, y)≥ δ(s, x)
Chemins minimaux
Cx

T y1

x
s y
t

y2

δ(s, y)= Min {δ(s, x) +V(x, y) x T et


yS\T}
R.Harrathi Théorie des Graphes et Optimisation 142

71
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Étape 1 : Initialisation
(, -)
Pour chaque sommet i de S
(d(i),(i)) B
d(i)   8
5
(i)  nul (0, -)
2
Source du graphe A A D (, -) 3
d(A)  0
1
(A)  nul 6 (, -)
L’ensemble des sommets non traités : T  Ø C

Étape 2 :
On ajoute un sommet non-traité de distance minimale à T
Relaxer des arcs sortant du sommet de distance minimale
Répéter l’étape 2 jusqu'a ’a que T=S

R.Harrathi Théorie des Graphes et Optimisation 143

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Itéra 1, T={A} (8, A) Itéra 2, T={A,D} (7, D)


B B
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3

minimum 1 1
6 (6, A) 6 (3, D)
C C

Itéra 3,T={A,D,C} (6, C) Itéra 4,T={A,D,C,B} (6, C)


B B
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3

6 1 6 1
(3, D) (3, D)
C C
R.Harrathi Théorie des Graphes et Optimisation 144

72
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Tous les sommets sont traités Algorithme est fini


d[i] : valeur du chemin de longueur minimale de A à i
[i] : le prédécesseur pour venir de l’origine A.
Arbres de plus courts chemins :

B (6, C) B B
8
(0, -) 5
2 2 2
A D (2, A) 3 A D 3 A D 3
1 1 1
6
C (3, D) C C

R.Harrathi Théorie des Graphes et Optimisation 145

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 146

73
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Preuve : par récurrence


Après i itérations on a T qui contient que des sommets dont le
chemin est de longueur minimale à s
 (s, xi)= d(xi)= Min {d(xk),xkS\T}
 On inclut xi dans T.

 Montrons que le chemin C1 de s à u est minimale et de longueur


minimale d(xi+1), C 1

xi+1
x y
s

R.Harrathi Théorie des Graphes et Optimisation 147

Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres

Algorithme de Dijkstra

Preuve : par récurrence


La propriété est vraie pour i = 0 : d(s, s)=0
On suppose qu’il existe un autre chemin minimal C2 de s à y
C1

xi+1
x y
s

b
C2
L(C2)= (s,b)+(b,u) ≤ d(s, y)
d(s,b) +d(b,y) ≤ d(s, y)
d(s,b) ≤ d(s, y). Les longueurs des arcs étant positives
Contradiction : le sommet b contredit le choix de y
R.Harrathi Théorie des Graphes et Optimisation 148

74
Problème du plus court chemin III. Plus courts chemins à origine unique

Algorithme de Dijkstra

Dijkstra et les valuations négatives


Plus cours de chemin s à t u
2 3
(s, u, v, t)
s v
1
-6
t

Application de l’algorithme (2, s)


u
résultat erroné 2 3
(0, -) s v (5, u)
1
-6
t
(1, s)

R.Harrathi Théorie des Graphes et Optimisation 149

Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Principe
Soit dij(k-1) la longueur du plus court d’un chemin p de i à j dont
les les sommets intermédiaires sont dans {1, 2, . . . , k-1 }.

i <k <k <k j

(i, j) = dij(k-1) .

R.Harrathi Théorie des Graphes et Optimisation 150

75
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Principe
Soit dij(k) la longueur du plus court d’un chemin de i à j dont les
les sommets intermédiaires sont dans {1, 2, . . . , k }.

K
dik(k-1) dkj(k-1)
{1, 2, …, k-1}.
préd[i, j] = préd[k, j]

i
j
dij (k-1)

dij(k) = mink {dij(k–1), dik(k–1) + dkj(k–1)}


R.Harrathi Théorie des Graphes et Optimisation 151

Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

La matrice des distances d’un graphe valué est la matrice


carrée M de taille n x n, définie par :
D [ i, j ] = V(i,j) s’il existe un arc (i, j)
D [ i, j ]=+ ∞ sinon
D [ i, i ]= 0 sinon
D
1
1
4
8
0 8  1
4
2
2  0 1 
4  0 
9 1
 2 9 0
3

R.Harrathi Théorie des Graphes et Optimisation 152

76
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Application de l’algorithme de Floyd-Warshall


0 8  1
 0 1  1
D(0)
4  0  1 8
4
 2 9 0 2
4 2

- 1 - 1 1
9
(0) - - 2 -
3
3 - - -
- 4 4 -
R.Harrathi Théorie des Graphes et Optimisation 153

Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Application de l’algorithme de Floyd-Warshall


0 8  1
 0 1  1
D(1)
4 
12 0 5 1 8
4
 2 9 0 2
4 2

- 1 - 1 1
9
(1) - - 2 -
5 3 1
3 -1 - -1 2
3 1 4 3 1 2
- 4 4 -
R.Harrathi Théorie des Graphes et Optimisation 154

77
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Application de l’algorithme de Floyd-Warshall


0 8 9 1
 0 1  1
D(2)
4 12 0 5 1 8
4
 2 93 0 2
4 2

- 1 -2 1 9
1
3
(2) - - 2 -
5 3 12
3 1 - 1
- 4 42 -
R.Harrathi Théorie des Graphes et Optimisation 155

Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Application de l’algorithme de Floyd-Warshall


0 8 9 1
5 0 1 6 7 1
5
D(3)
4 12 0 5 1 8
4
7 2 3 0
2
4 2

- 1 2 1 6 9
3 1

(3) -3 - 2 -1
5 3 12
3 1 - 1
-3 4 2 -
R.Harrathi Théorie des Graphes et Optimisation 156

78
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Application de l’algorithme de Floyd-Warshall


0 83 94 1
5 0 1 6 7 1
5
D(4)
4 12
7 0 5 1 3
4
7 2 3 0
2
4 2

- 14 22 1 6 4
3 1

(4) 3 - 2 1
12 3 7
3 14 - 1
3 4 2 -
R.Harrathi Théorie des Graphes et Optimisation 157

Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd- Warshall

Application de l’algorithme de Floyd -Warshall


Chemin minimal de 1 à 3 : (1,3)=D[1,3]=4
[1,3 ]= 2 chemin =1 …. 2  3
[1,2]= 4  chemin =1 ….  4 2  3
[1,4]= 1  chemin =1 4 2  3

1 D(4) (4)
1 8
4 0 3 4 1 - 4 2 1
2
4 2 5 0 1 6 3 - 2 1
1
4 7 0 5 3 4 - 1
9
3
7 2 3 0 3 4 2 -

R.Harrathi Théorie des Graphes et Optimisation 158

79
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets

Algorithme de Floyd-Warshall

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 159

Problème du plus court chemin V. Comparaison des algorithmes des plus courts chemins

Comparaison des algorithmes

Plus courts
Algorithme Valuation Complexité
chemins
positive et
d’un sommet à des Bellman-Ford O(card A.card S)
négative
autres
Dijkstra positive O(card S2)
positive et
pour tous couples
Floyd-Warshall négative O(card S3)
de sommets

R.Harrathi Théorie des Graphes et Optimisation 160

80
CHAPITRE 5
PROBLÈME D’ORDONNANCEMENT

R.Harrathi Théorie des Graphes et Optimisation 161

Problème d’ordonnancement I. Introduction

Ordonnancement par l’exemple

La réalisation de l’objectif suppose l'exécution préalable de


multiples tâches soumises à des multiples contraintes.
Exemple : projet de rénovation d’une maison

Désignation Durée
Description Contraintes
tâche (en jours)
a Parquet salle de séjour 6 -
b Réaménagement salle de bains 5 -
c Réfection électricité 3 -
d Carrelage salle de bains 2 b et c achevée
e Peinture 3 c achevée

R.Harrathi Théorie des Graphes et Optimisation 162

81
Problème d’ordonnancement I. Introduction

Ordonnancement par l’exemple

Un problème d’ordonnancement simple


Exécution d’un nombre fini de tâches d’un projet
Chaque tâche est caractérisée par un durée d’exécution ou un
coût d’exécution
Les tâches sont soumises à des contraintes de précédence
Objectif
Déterminer l’ordre et le calendrier d’exécution des tâches, afin de
minimiser la durée totale ou le coût de la réalisation du projet.

R.Harrathi Théorie des Graphes et Optimisation 163

Problème d’ordonnancement II. La méthode MPM

Construction du graphe MPM

M.P.M (Method of Project Management)


Méthode française crée en 1958, pour la construction d’une
centrale nucléaire.
Représenter un projet par un graphe potentiels-tâches
On appelle une tâche le déroulement dans le temps d’une action

R.Harrathi Théorie des Graphes et Optimisation 164

82
Problème d’ordonnancement II. La méthode MPM

Construction du graphe MPM

Une tâche est représentée par un sommet


On relie deux sommets: i et j par un arc de coût di , si la tâche
i de durée di doit précéder la tâche j .

di
i j

On ajoute deux tâches fictives (de durée nulle): début(D) et fin(F)


D: est reliée aux sommets sans prédécesseurs ;
F : est reliée aux sommets sans successeurs.

R.Harrathi Théorie des Graphes et Optimisation 165

Problème d’ordonnancement II. La méthode MPM

Construction du graphe MPM

a
6
0 Paquet SJ

0 5 2
D b d F
Réam SB Carrelage SB
3 3
0

3
c e
Electricité Peinture

R.Harrathi Théorie des Graphes et Optimisation 166

83
Problème d’ordonnancement II. La méthode MPM

Optimisation

Quelle est la durée minimale pour ce projet ?


Quand démarrer chaque tâche ?
a
6
0 Paquet SJ

0 5 2
D b d F
Réa SB Carrelage SB
3 3
0

3
c e
Electricité Peinture

R.Harrathi Théorie des Graphes et Optimisation 167

Problème d’ordonnancement II. La méthode MPM

Durée optimale d’un projet

TFin=Plus long chemin de début (D) à la fin du projet (F)

0
La durée minimale du projet est 7 jours.
a

0 6

0 0 5 7
0 5 2
D b d F

3 3
0
0 3
3
c e

R.Harrathi Théorie des Graphes et Optimisation 168

84
Problème d’ordonnancement II. La méthode MPM

Date au plus tôt d'une tâche

Date la plus proche à laquelle une tâche peut commencer.


Ti =Plus long chemin du Début du projet à une tâche i

0
a
plus tôt
0 6

0 0 5 7
0 5 2
D b d F

3 3
0
0 3
3
c e

R.Harrathi Théorie des Graphes et Optimisation 169

Problème d’ordonnancement II. La méthode MPM

Date au plus tard d'une tâche

Date limite à laquelle une tâche doit être exécutée au plus tard
sans retarder le projet.
T*i = TFin -Plus long chemin d’une tâche i à la Fin du projet

0 1=(7-6)
a
plus tôt plus tard
0 6

0 0 0 0
5 5 7 7
0 5 2
D b d F

3 3
0
0 1 3 4
3
c e

R.Harrathi Théorie des Graphes et Optimisation 170

85
Problème d’ordonnancement II. La méthode MPM

Marge totale d'une tâche

Délai dont on peut retarder une tâche sans remettre en cause la


durée minimale du projet.
Les tâches dont la marge est nulle sont appelées tâches critiques
1
0 1 Tâche critique
Marge totale
a

0 6
0 0
0 0
0 0 0 0 5 5
5 7 7
0 2
D b d F

3 3
0 1 1
0 1 3 4
3
c e

R.Harrathi Théorie des Graphes et Optimisation 171

Problème d’ordonnancement II. La méthode MPM

Chemin critique

Chemin critique la succession des tâches critiques


Chemin= D, b, d, F

1
0 1
a

0 6
0 0
0 0
0 0 0 0 5 5
5 7 7
0 2
D b d F

3 3
0 1 1
0 1 3 4
3
c e

R.Harrathi Théorie des Graphes et Optimisation 172

86
Problème d’ordonnancement II. La méthode MPM

Diagramme de GANTT

Diagramme de GANTT de l’ordonnancement "au plus tôt"

Carrelage SB

Paquet SJ

Peinture

Electricité

Réaménagement SB

0 1 2 3 4 5 6 7 temps

R.Harrathi Théorie des Graphes et Optimisation 173

Problème d’ordonnancement III. La méthode PERT

Construction du graphe P.E.R.T

P.E.R.T (Program Evaluation and Revue Technic )


Méthode américaine crée en 1958, aux USA, pour
l’ordonnancement du programme spatial « Polaris ».
Représenter un projet par un graphe potentiels-étapes
On appelle étape, le début ou la fin d’une tâche.

R.Harrathi Théorie des Graphes et Optimisation 174

87
Problème d’ordonnancement III. La méthode PERT

Construction du graphe P.E.R.T

Une tâche i de durée di est représentée par un seul arc valué de


coût di .
Un sommets est une étape de la réalisation du projet signifiant:
toutes les tâches qui y arrivent sont terminées
toutes les tâches qui en partent peuvent commencer

da dc
a et b doivent être terminées pour
que c et d puissent commencer
db dd

Le graphe peut contenir des tâches fictives de durée nulle afin de


forcer certaines précédences

R.Harrathi Théorie des Graphes et Optimisation 175

Problème d’ordonnancement III. La méthode PERT

Construction du graphe P.E.R.T

Tâche fictive

0
6

5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0
3 0

3
4 6
Peinture

R.Harrathi Théorie des Graphes et Optimisation 176

88
Problème d’ordonnancement III. La méthode PERT

Durée optimale d’un projet

TFin =Plus long chemin de la première à la dernière étape


La durée minimale du projet est 7 jours.
2

0
6

5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0
3 0

3
4 6
Peinture

R.Harrathi Théorie des Graphes et Optimisation 177

Problème d’ordonnancement III. La méthode PERT

Date au plus tôt d'une étape

Ti =Plus long chemin de la première étape à une étape i

6
2
plus tôt
0
6
0 5 7 7
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB

0 0
3
3 6
3
4 6
Peinture

R.Harrathi Théorie des Graphes et Optimisation 178

89
Problème d’ordonnancement III. La méthode PERT

Date au plus tard d'une étape

T*i = TFin - Plus long chemin d’une étape i à la dernière étape

6 7

plus tôt plus tard 2

0
6
0 0 5 5 7 7 7 7
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB

0 0
3
3 4 6 7
3
4 6
Peinture

R.Harrathi Théorie des Graphes et Optimisation 179

Problème d’ordonnancement III. La méthode PERT

Marge totale d'une tâche

Délai dont on peut retarder une tâche sans augmenter la durée


minimale du projet( sous réserve qu'elle ait commencé à sa date au plus
tôt) .
Marge totale=7-6-0 6 7
2
(1)
(1) 0
6
0 0 5 5 7 7 7 7
5 2 0
1 3 5 7
Réaménagement Carrelage SB (0)
SB (0) (0)
0 0
3
3 4 6 7 (1)
(1) 3
4 6
Peinture (1)
R.Harrathi Théorie des Graphes et Optimisation 180

90
Problème d’ordonnancement IV. Application

Enoncé

Tâche Durée Taches achevés


a 2 -
b 4 -
c 4 a
d 5 a,b
e 6 c,d

R.Harrathi Théorie des Graphes et Optimisation 181

CHAPITRE 6
PROBLÈME DU FLOT MAXIMUM

R.Harrathi Théorie des Graphes et Optimisation 182

91
Problème du flot maximum I. Introduction

Problème du flot maximum par l’exemple

Réseau de distribution d’eau potable

Déterminer s'il est possible de satisfaire à travers un réseau la


demande des différentes villes et comment ?

R.Harrathi Théorie des Graphes et Optimisation 183

Problème du flot maximum I. Introduction

Problème du flot maximum par l’exemple

Modélisation par un réseau de transport


capacité= c(c1,v1)
30
c1 v1

puits
source
50 v2 40
s p1 p

disponibilité
40 50
c2 p2 v3 demande des villes

R.Harrathi Théorie des Graphes et Optimisation 184

92
Problème du flot maximum I. Introduction

Problème du flot maximum par l’exemple

Flot sur un réseau de transport


Un flot est une fonction entière positive f définie sur les arcs
0 / 30
c1 v1
flot / capacité

0 / 50 0 / 40
s p1 v2 p

0 / 40 0 / 50
c2 p2 v3

Objectif : Maximiser la quantité d'eau (flot) qui doit être distribuer


aux différentes villes en respectant :
Respectant les capacités.
Respectant la loi de Conservation de flot
R.Harrathi Théorie des Graphes et Optimisation 185

Problème du flot maximum I. Introduction

Problème du flot maximum par l’exemple

Réseau de pipelines
un réseau de transport
3
v1 v3 puits v1 v3
source 6
8 3

S p S p
3
6
8
v2 v4 v2 v4
6

Objectif : Déterminer le maximum du pétrole à envoyer du


source s au puits p.

R.Harrathi Théorie des Graphes et Optimisation 186

93
Problème du flot maximum II. Réseau de transport

Réseau de transport

Graphe orienté valué fortement connexe vérifiant:


3
v1 v3
6
8 3

S p
3
6
8
v2 v4
6

Il existe deux sommets uniques : source et puits


Source s : n’admet pas de prédécesseurs
Puits p: n’admet pas de successeurs
Chaque arc (i, j) doit être muni d’une capacité: c(i,j)≥0
c(i, j) est un entier positif ou nul.

R.Harrathi Théorie des Graphes et Optimisation 187

Problème du flot maximum II. Réseau de transport

Propriétés d’un flot

Contrainte de capacité : Flot réalisable ou compatible

3/3 arc ansaturé


v1 v3 6/8
4/6 s v1
6/8 3/3
f(s,v1)=6≤8
S p
1/3 arc saturé
6/6 6/6
8/8 u v2
v2 v4
5/6 f(s,v2)= 6=6

R.Harrathi Théorie des Graphes et Optimisation 188

94
Problème du flot maximum II. Réseau de transport

Propriétés d’un flot

Symétrie : pour tous i, j  S f (i, j) = - f (j, i)

flot direct flot prélevable

3/3
v1 v3
6/8 4/6
3/3
-6
S t
1/3
6/6
8/8
v2 v4
5/6

f(v1,s)=- f(s, v1)= -6

R.Harrathi Théorie des Graphes et Optimisation 189

Problème du flot maximum II. Réseau de transport

Propriétés d’un flot

Conservation du flot
La somme des flots sur les arcs entrants et la somme des flots sur
les arcs sortants sont égales

6=3+3 3/3 3+1=4


v1 v3
4/6
6/8 3/3

S p
1/3
6/6
8/8
v2 v4
5/6
6=1+5 5+3=8

R.Harrathi Théorie des Graphes et Optimisation 190

95
Problème du flot maximum II. Réseau de transport

Valeur d’un flot

La valeur du flot |f| est égale à la somme des flots sortants de la


source s soit égal au somme des flots entrant dans le puits p.

3/3
v1 v3
4/6
6/8 3/3

|f| = 6+6 =12 S p |f| = 8+4 =12


1/3
6/6
8/8
v2 v4
5/6

Objectif : Rechercher le maximum de |f|

R.Harrathi Théorie des Graphes et Optimisation 191

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Principe

Etant donné un flot initialisé à 0


Trouver un chemin augmentant reliant s à p sur laquelle les
flots peuvent encore être augmentés sans dépasser les capacités
|f|=0 |f|=3
0/3 0/3
v3 v1 v3
v1
0/6 SV1V4P 3/8 0/6
0/8 0/3 3/3
chemin augmentant
S S p
p 0/3
0/3 augmentation
0/6 du flot sur SV1V4P 0/6
0/8 v2 v4
3/8
v2 v4
0/6 0/6

Comment trouver un chemin augmentant: Graphe d’écart ou


graphe résiduel

R.Harrathi Théorie des Graphes et Optimisation 192

96
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Graphe d’écart

Capacité résiduelle
Représente la quantité de flot pouvant encore passer un arc donné
flot : f(i,j) Capacité résiduelle: Cf (i, j)
0/8 8
i j i j

Maximum d’augmentation
6
2/8
i j i j
2 Maximum de diminution

8/8 8
i j i j

8/10 5
i j i j
3/4
9
R.Harrathi Théorie des Graphes et Optimisation 193

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Graphe d’écart

Graphe d’écart Gf =<S, Af > associé à un réseau G =<S,A> :


Graphe orienté valué qui décrit les augmentations ou diminutions
possibles du flot f dans le réseau. (x,y)  A et (x,y)  A
Si f(x,y)<C(x,y) alors (x,y)  Af et Cf(x,y)=C(x,y) -f(x,y)
Si C(x,y)>0 alors (y,x)  Af et Cf(y,x)=f(x,y)
Si (x,y)  A et (y,x)  A alors Cf(x,y)=C(x,y) -f(x,y)+ f(y,x)

Flot sur un réseau G Graphe d’écart Gf


0/3 3
v3 v1 v3
v1
0/8 0/6 8 6
0/3 3

S S p
p
0/3 3
0/6 6
0/8 v2 v4
8
v2 v4
0/6 6

R.Harrathi Théorie des Graphes et Optimisation 194

97
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

On cherche un chemin simple de s à p dans le graphe


d’écart:
Il correspond à une possibilité d'amélioration du flot en modifiant
de la valeur du minimum des capacités résiduelles sur le chemin.
Graphe d’écart
Gf |f|=3
3 0/3
v1 v3 v1 v3
8 6 augmentation 3/8 0/6
3 3/3
du flot sur SV1V4P
S p S p
3 de 3 unités 0/3
6 0/6
v2 v4
8 v2 v4
3/8
6 0/6
cf(p) =Capacité résiduelle p: Chemin
du chemin augmentant

R.Harrathi Théorie des Graphes et Optimisation 195

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Application 1
Chercher le flot maximum sur le réseau suivant

Réseau de transport Initialisation du flot


|f|=0
3 0/3
v1 v3 v1 v3
8 6 0/8 0/6
3 0/3
S p S p
3 0/3
6 0/6
8 v2 v4
0/8
v2 v4
6 0/6

R.Harrathi Théorie des Graphes et Optimisation 196

98
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 1
Graphe d’écart
Gf |f|=3
3 minimum 0/3
v1 v3 v1 v3
8 6 augmentation 3/8 0/6
3 3/3
du flot sur SV1V4P
S p S p
3 0/3
6 0/6
v2 v4
8 v2 v4
3/8
6 p: Chemin 0/6
augmentant
Augmentation
sur l’arc direct (u,v)
f(u,v)+ cf(p)

R.Harrathi Théorie des Graphes et Optimisation 197

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 2
Graphe d’écart
Gf |f|=6

3 3/3
v1 v3 v1 v3
3 6 3/6
augmentation 6/8
3 3/3
5 du flot sur SV1V3P
S p S p
3 3 0/3
6 0/6
v2 v4
5 v2 v4
3/8
6 0/6

R.Harrathi Théorie des Graphes et Optimisation 198

99
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 3
Graphe d’écart
Gf | f | =11

3 3/3
v1 v3 v1 v3
6 3 3/6
augmentation 6/8
3 3 3/3
2 du flot sur SV2V4P
S p S p
3 3 0/3
6 5/6
v2 v4
5 v2 v4
8/8
6 5/6

R.Harrathi Théorie des Graphes et Optimisation 199

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 4
Graphe d’écart
Gf | f | =12

3 3/3
v1 v3 v1 v3
6 3 4/6
augmentation 6/8
3 3 3/3
2 du flot sur SV2V3P
S p S p
1 3 1/3
8
6/6
5 1 8/8
v2 v4 v2 v4
5/6
5

R.Harrathi Théorie des Graphes et Optimisation 200

100
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 5
Graphe d’écart
Gf Max=| f | =12

3 3/3
v1 v3 v1 v3
6 4 4/6
Il n’y a pas un 6/8
3 2 3/3
2 chemin augmentant
S p S p
2 1/3
3 8
6/6
6 1 8/8
v2 v4 v2 v4
5/6
5

Il n’y a pas un chemin augmentant ⇒ Arrêt de l’algorithme ⇒ le


flot est maximale

R.Harrathi Théorie des Graphes et Optimisation 201

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Il existe un chemin simple augmentant de s à p dans G s'il existe


un chemin dan le graphe d’écart Gf pour f
Nous sommes donc ramenés à un problème d’existence de
chemin dans un graphe. On peut calculer :
Un plus court chemin en nombre d’arcs

R.Harrathi Théorie des Graphes et Optimisation 202

101
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Application 2
Chercher le flot maximum sur le réseau suivant
Réseau de transport Initialisation du flot
|f|=0

u u
4 0/4
5 0/5
3 2 P 0/3 0/2
S S P

6 3 0/6 0/3
v v

R.Harrathi Théorie des Graphes et Optimisation 203

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 1

|f|=3

u u
4 3/4
5 augmentation 0/5
3 du flot sur SU VP
S 2 P 3/3 -3/2
S P
6 3 0/6
v 3/3
v

Augmentation Diminution
sur l’arc direct (u,v) sur l’arc inverse(v,u)
f(u,v)+ cf(p) f(v, u) -cf(p)

R.Harrathi Théorie des Graphes et Optimisation 204

102
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 2 |f|=4

u u
1 augmentation 4/4
5 1/5
du flot sur SUP
3 8 3/3 -3/2
S -3 P S P

6 3 0/6 3/3
v v
Itération 3
| f | =8

u 1 u
augmentation
4 4/4
du flot sur SVP 5/5
4
S -3 8 p -1/3 1/2
S p

6 3 4/6
v 3/3
v

R.Harrathi Théorie des Graphes et Optimisation 205

Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Itération 4
Max=| f | =8

u 5 u
Il n’y a pas un
4 4/4
chemin augmentant 5/5
5 -1/3
S p S 1/2 p
2
4 3 4/6 3/3
v v

R.Harrathi Théorie des Graphes et Optimisation 206

103
Problème du flot maximum III. Algorithme de Ford- Fulkerson

Algorithme de Ford- Fulkerson

Algorithme

R.Harrathi Théorie des Graphes et Optimisation 207

104

Vous aimerez peut-être aussi