Vous êtes sur la page 1sur 45

1

.
A. TOURE & M. BALDE
Première partie

Théorie des Graphes et Applications

1
Chapitre 1
Théorie des graphes

1.1 Graphes

1.1.1 Introduction

Considérons l’exemple des matchs de football opposant plusieurs équipes. Parmi les questions qui intéressent
les organisateurs de ces rencontres on peut noter : la programmation des match , la comptabilisation des victoires,
défaites, matchs nuls, scores, les classements des équipes... Concrètement prenons le cas suivant :

Exemple 1.1 matchs de foot


Six équipes de football A, B, C, D, E, F organisent des rencontres. On veut donner une représentation de la
situation suivante :

A joue contre B, C, D et E D joue contre A, C et F


B joue contre A, E et F E joue contre A, B, C et F
C joue contre A, D et E F joue contre B, D et E

Une représentation possible est un tableau à double entrée (matrice) dans lequel on mettrait un signe (ou une
marque) pour indiquer qu’une rencontre a eu lieu entre les équipes i et j :

Tableau 1.1 Une représentation tabulaire des rencontres


PP
PP équipe j
P PP A B C D E F
équipe i PP
PP
A    
B   
C   
D   
E    
F   

Remarque 1.1 – Une équipe ne peut jouer contre elle même (pas de marque dans la diagonale du tableau) ;
– Le tableau présente une symétrie par rapport à la diagonale ;

3
4 chapitre 1

– On aurait pu remplacer  par 1 et une case vide par 0 (zéro). Le tableau 1.1 aurait alors la de forme
d’une matrice booléenne. On reviendra sur la représentation matricielle des graphes dans la section 1.1.4.
La relation «jouer contre » est une relation entre deux équipes (relation binaire). On peut donc représenter
une équipe par un «point» ou par n’importe quelle marque, et la relation entre deux équipes par un «trait»
reliant les 2 points. Ainsi la représentation des rencontres de l’exemple 1.1 donnerait

A C

F D

Fig. 1.1

Cette représentation graphique, nous permet de définir la notion de graphe non orienté.

1.1.2 Graphes non orientés

Dèfinition 1.1 Un graphe non orienté G = (S, A) est déterminé par la donnée :
– d’un ensemble S
– d’un ensemble A inclus dans S  S
Les éléments de S sont appelés des sommets, ceux de A portent le nom d’ arêtes.

Représentation graphique

Exemple 1.2 La figure suivante donne des représentations graphiques de graphes non orientés.

2
a d 6 5

e
f 1

b c 3 4

G = (S, A) G0 = (S 0 , A 0 )
0
 S = a, b, c, d, e, f  S = 1, 2, 3, 4, 5, 6
A = (a, b), (a, d), (b, c), (c, d), (c, e) A 0 = (1, 2), (3, 4), (3, 5), (4, 5), (4, 6), (5, 6)

Fig. 1.2 Exemples de graphes non orientés

On s’intéresse maintenant aux résultats des matches en identifiant entre deux équipes qui se rencontrent un
vainqueur et un vaincu. On introduit alors la relation «i bat j» qui est une relation de «domination» (relation
d’ordre).

.
A. TOURE & M. BALDE
Graphes 5

Remarque 1.2 On ne dit pas comment traiter le match nul (égalité), on peut faire l’hypothèse qu’il n’y a
pas de match nul en utilisant par exemple la notion de relation symétrique (les 2 équipes sont toutes les deux
vainqueurs).

1ère Représentation

Tableau à double entrée : pour chaque i et quelque soit j, on écrit dans la cellule (i, j)

 1 si i bat j
 0 sinon ;

il s’agit d’un codage

Remarque 1.3 Sans hypothèse supplémentaire, le 0 peut aussi bien traduire une défaite, ou encore qu’il n’y
a pas eu de rencontre entre les deux équipes considérées ( ou parle de l’ambiguïté du zéro).
En considérant les résultats suivants :

A bat B, C et E D bat A
B bat E et F E bat F
C bat D et E F bat D

on construit le tableau 1.2. Pour être plus précis concernant les résultats des rencontres et afin de contourner

Tableau 1.2
Tableau 1.3
@ j
A B C D E F @ j
i
@
@ A B C D E F
@
@ i @
@
A 0 1 1 0 1 0
A 0 +1 +1 −1 +1 0
B 0 0 0 0 1 1
B −1 0 0 0 +1 +1
C 0 0 0 1 1 0
C −1 0 0 +1 +1 0
D 1 0 0 0 0 0
D +1 0 −1 0 0 −1
E 0 0 0 0 0 1
E −1 −1 −1 0 0 +1
F 0 0 0 1 0 0
F 0 −1 0 +1 −1 0

l’ambiguïté du 0, on pourra noter







+1 s’il y a victoire de i sur j
−1 si défaite de i devant j



 0 si égalité ou pas de rencontre entre i et j

Ce qui donne le tableau 1.3. Si l’on veut faire un classement des équipes, on additionne, pour chaque équipe i,
les coefficients de la ligne i du tableau et on compare avec les sommes des autres lignes pour obtenir le nombre
de points ou score de chaque équipe. On reviendra sur la représentation matricielle des graphes dans la section
1.1.4.

Remarque 1.4 Pour éviter les ex-acquo, on pourra remplacer les coefficients 1, 0, −1 par des valeurs (poids)
telles que par exemple le nombre de buts du match.

.
A. TOURE & M. BALDE
6 chapitre 1

2ème Représentation

Une manière graphique de présenter le résultat "i bat j" est de tracer un arc quittant le sommet i vers le
sommet j. Ainsi, la représentation des résultats des matchs donne la figure ci-après :

A C

F D

Fig. 1.3

Ceci nous permet d’introduire la notion de graphe orienté.

1.1.3 Graphes orientés

Un graphe orienté G = (S, A) est déterminé par la donnée :


– d’un ensemble S
– d’un ensemble A inclus dans S  S
Les éléments de S sont appelés des sommets, ceux de A portent le nom d’ arcs .Représentation graphique

Exemple 1.3 La figure suivante donne des représentations graphiques de graphes orientés.

x5

x1 x4 a b

x2 x6 x3 c e d

 G = (S, A) G = (S 0 , A 0 )
0

0
 S = x1 , x2 , x3 , x4 , x5 , x6 S = a, b, c, d, e
A = (x1 , x2 ), (x1 , x5 ), (x2 , x6 ), (x3 , x4 ),
(x4 , x1 ), A 0 = (a, e), (a, c), (b, e), (c, e),

(x5 , x4 ), (x6 , x1 ), (x6 , x3 ), (x6 , x4 ) (d, b), (e, a), (e, b), (e, d)

Fig. 1.4 Exemples de graphes orientés

1.1.4 Représentation Matricielle

Outre les représentations ensembliste et graphique, un graphe peut être représenté par une matrice.
.
A. TOURE & M. BALDE
Graphes 7

Matrice d’adjacence

Nous distinguerons deux types d’adjacence : l’adjacence entre sommets et celle entre arcs (ou arêtes). Chacun
des cas est associé à une matrice d’adjacence. Dans le cadre de ce cours, nous nous limitons à la matrice
d’adjacence de sommets appelée aussi matrice d’adjacence sommet-sommet
La matrice d’adjacence (sommet-sommet) M = (aij ) d’un graphe G = (S, A) est obtenue comme suit :
ses lignes et ses colonnes représentent les sommets du graphe ;
– si l’arc (i, j) 2 G, on place le chiffre 1 à l’intersection de la ligne i et la colonne j du tableau i.e aij = 1 ;
– sinon, on met le chiffre 0 à cette position i.e aij = 0.

Exemple 1.4 Le graphe orienté G1 de la figure 1.5 est représenté par la matrice M1
0 1
x3
0 1 1 0
B C
B C
B0 0 0 1C
x2 M2 = B
B
C
C
B0 1 0 0C
x4 @ A
0 0 0 0
G1
x1

Fig. 1.5 Matrice booléenne d’un graphe orienté

Exemple 1.5 Le graphe non orienté G2 de la figure 1.6 est représenté par la matrice M2
0 1
3
0 1 1 0
B C
B C
B1 0 1 0C
M2 = B
B
C
C
B1 1 0 1C
@ A
4 1 2
0 0 1 0
G2

Fig. 1.6 Matrice booléenne d’un graphe non orienté

Propriété 1.1 La matrice d’adjacence d’un graphe non orienté est symétrique.

Matrice d’incidence

Contrairement à la matrice d’adjacence, la matrice d’incidence est construite en considérant un sommet et


un arc à la fois. En effet, dans la matrice d’incidence M = (aiu ), les lignes correspondent aux sommets et les
colonnes aux arcs. Cette matrice est obtenue comme suit :
– aiu = 0 si le sommet i n’est pas une extrémité de l’arc u
– aiu = +1 si le sommet i est l’extrémité initiale de l’arc u
– aiu = −1 si le sommet i est l’extrémité finale de l’arc u

Exemple 1.6 Cherchons la matrice d’incidence M1 du graphe G1 de la figure 1.5 .


Pour cela, aidons nous du tableau suivant comportant sur sa première colonne les sommets de G1 et sur sa
première ligne les arcs de G1

.
A. TOURE & M. BALDE
8 chapitre 1

(x1 , x2 ) (x1 , x3 ) (x2 , x4 ) (x3 , x2 ) 0 1


1 1 0 0
x1 1 1 0 0 B C
B C
B−1 0 1 −1C
x2 −1 0 1 −1 On en déduit alors M1 = B
B
C
C
B 0 −1 0 1C
x3 0 −1 0 1 @ A
0 0 −1 0
x4 0 0 −1 0

1.1.5 Notions liées aux sommets

ordre d’un graphe : L’ordre d’un graphe (orienté ou non) est le nombre de sommets de ce graphe.

Exemple 1.7 Le graphe G1 de la figure 1.5 est d’ordre 4 .


boucle : On appelle boucle un arc reliant un sommet à lui même.
Un graphe ne possédant pas de boucle est appelé graphe simple.
multigraphe : Si dans un graphe G, un arc ou une arête est répété(e) plusieurs fois , on dit alors que G est un
multigraphe.

Remarque 1.5 Les multigraphes ne sont pas étudiés dans le cadre de ce cours.

1.2 Parcours dans un graphe

1.2.1 Cas d’un graphe orienté

Sauf précision, tous les graphes considérés dans cette sous section sont supposés orientés.
Soit G = (S, A) un graphe orienté.
Chemin
Un chemin est une suite ordonnée de sommets

(x1 , x2 , . . . , xp )

telle que (xi , xi+1 ) 2 A.


Les sommets x1 et xp sont appelés respectivement extrémité initiale et extrémité finale du chemin.
Circuit
Un circuit est un chemin dont les extrémités finale et initiale sont identiques.

Exemple 1.8 Considérons le graphe suivant.

 
P1 = a, c, e, d, b et P2 = a, e, b, e, d sont deux chemins de ce graphe.
 
C1 = a, c, e, d, b, e, a et C2 = e, b, e sont deux circuits de ce graphe.
Chemin élémentaire
C’est un chemin qui ne passe pas plus d’une fois par chacun de ses sommets.
Chemin hamiltonien
C’est un chemin passant une fois et une seule par chacun des sommets du graphe.
Chemin simple

.
A. TOURE & M. BALDE
Parcours dans un graphe 9

a b

c e d
G
Fig. 1.7 Chemins et circuits

C’est un chemin ne passant pas plus d’une fois par chacun de ses arcs.
Chemin eulérien
C’est un chemin passant une fois et une seule par chacun des arcs du graphe.

Exemple 1.9 Dans le graphe G de la figure 1.7, le chemin P1 = a, c, e, d, b est élémentaire, hamiltonien,

simple mais n’est pas eulérien, par contre le chemin P2 = a, c, e, a, e, b, e, d, b est eulérien.
Longueur d’un chemin
La longueur d’un chemin est le nombre d’arcs qui le composent.

Exemple 1.10 P1 et P2 sont respectivement de longueurs 4 et 8.


Remarque 1.6 Les qualificatifs élémentaire, hamiltonien, simple et eulérien peuvent être utilisés dans le
cas de circuits. Il suffit de remplacer le terme "chemin" par "circuit".


Exemple 1.11 Le circuit C2 = e, b, e du graphe G de la figure 1.7 est élémentaire et simple.

1.2.2 Cas d’un graphe orienté ou non

Chaîne
Considérons un graphe (orienté ou non) G = (S, A).
Une chaîne est une suite ordonnée
(x1 , x2 , . . . , xk )

de sommets de G telle que (xi , xi+1 ) ou (xi+1 , xi ) appartienne à A.


Cycle
Un cycle est une chaîne dont les extrémités finale et initiale sont identiques.

Remarque 1.7 De même que pour les chemins et circuits, on parlera de chaînes et cycles élémentaires, hamil-
toniens, simples et eulériens.

Exemple 1.12 Considérons le graphe suivant.


 
Dans ce graphe, N1 = 1, 2, 3, 4, 5 est une chaîne hamiltonienne et N2 = 2, 4, 5, 3, 1, 2 est un cycle hamiltonien
mais non eulérien.

Propriété 1.2 Tout chemin est une chaîne et de même que tout circuit est un cycle. Cependant la réciproque
n’est pas vraie.

.
A. TOURE & M. BALDE
10 chapitre 1

2 3

4 5
G
Fig. 1.8 Chaines et cycles

1.3 Qualificatifs de sommets


Sommets adjacents
Deux sommets i et j sont dits adjacents s’ils sont reliés par un arc. Cet arc est alors dit incident à chacun de
ces sommets
Soient G = (S, A) un graphe orienté, i et j deux sommets de G.
Suivant, Précédent
On dit que le sommet j est un suivant ou successeur du sommet i si l’arc (i,j) est un arc de A Le sommet i
est alors appelé précédent de j.
Descendant, Ascendant
On dit que le sommet j est un descendant du sommet i s’il existe un chemin quittant i et aboutissant à j.
Le sommet i est alors appelé ascendant du sommet j.

Exemple 1.13 Dans le graphe ci dessous,

x1 x4

x3 x2
G1

Fig. 1.9 Succession de sommets

le sommet x2 est un suivant des sommets x1 et x3 . Le sommet x4 est un descendant des sommets x1 et x3 .
Par convention, l’ensemble des ascendants de x contient x. De même, l’ensemble des descendants de x contient
x.
degré
Considérons un graphe G et un sommet u de G. On appelle degré du sommet u le nombre d’arcs incidents à
u. Le degré du sommet u est noté d(u).
Dans le cas d’un graphe orienté, on définit en outre
– le degré intérieur d− (u) comme étant le nombre d’arcs ayant pour extrémité finale le sommet u.
– le degré extérieur d+ (u) comme étant le nombre d’arcs ayant pour extrémité initiale le sommet u.

.
A. TOURE & M. BALDE
Graphes partiels - Sous graphes 11

Bien évidemment, on a la relation

d(u) = d− (u) + d+ (u)

Exemple 1.14 Dans le graphe précédent, on a :


d− (x1 ) = 0, d+ (x1 ) = 2 et d(x2 ) = 3

1.4 Graphes partiels - Sous graphes

1.4.1 Graphes partiels

Soit G = (S, A) un graphe donné. Un graphe partiel G 0 = (S, A 0 ) de G est le graphe G auquel on a enlevé
quelques arcs.
NB : G et G 0 ont même ensemble de sommets S, tandis que A 0  A.

1.4.2 Sous graphes

Un sous graphe GX = (X, AX ) de G est le graphe G auquel on a enlevé quelques sommets.

1 1 1

2 3 2 3 2 3

4 5 4 5 4
G G0 GX

(a) graphe G (b) Graphe partiel G 0 (c) Sous graphe GX ob-


obtenu par suppression tenu par suppression du

de 5 arcs. sommet 5

Fig. 1.10 Sous graphe - graphe partiel

Remarque 1.8 Quand on enlève un sommet, on supprime de même tout arc qui lui serrait incident.

1.5 Quelques graphes particuliers

1.5.1 Graphe symétrique

Un graphe G = (S, A) est symétrique si l’existence de l’arc (x, y) entraîne celle de (y, x).

.
A. TOURE & M. BALDE
12 chapitre 1

Propriété 1.3 Tout graphe non orienté est symétrique.

1.5.2 Graphe transitif

Un graphe G = (S, A) est dit transitif si à chaque fois que l’on a deux arcs (x, y) , (y, z) dans A alors l’arc
(x, z) existe dans A.

Exemple 1.15 Le graphe G1 de la figure 1.11 n’est pas transitif car (b, d) et (d, c) sont dans G1 mais (b, c)
n’existe pas. Par contre le graphe G2 est transitif.

c
1
4

2 3
b
G1 G2

Fig. 1.11 Transitivité dans un graphe

Propriété 1.4 Dans un graphe transitif, s’il existe un chemin d’un sommet x à un autre sommet y, alors il y
existe l’arc (x, y)

1.5.3 Graphe complet

Un graphe est dit complet si toute paire de sommet est reliée par un arc ou une arête. On note KN le graphe
simple complet à N sommets. Ce type de graphe correspond à un tournoi : rencontres dans lesquelles chaque
équipe en compétition affronte toute autre équipe.

Exemple 1.16 La figure 1.12 présente 4 graphes complets.

(a) K2 (b) K3 (c) K4 (d) K5

Fig. 1.12 Exemples de graphes complets

.
A. TOURE & M. BALDE
Connexité dans un graphe 13

1.6 Connexité dans un graphe

1.6.1 Composante simplement connexe

Une composante (simplement) connexe d’un graphe est un sous graphe GS tel que pour toute paire de
sommets {x, y} de GS il existe une chaîne les reliant.

Exemple 1.17 Dans le graphe G à la figure 1.13, les sous graphes E et H engendrés respectivement par les
sommets {1, 2, 3} et {4, 5, 6} sont simplement connexes.

5 6 5 6

1 1

4 4

2 3 2 3
G E H

(a) Un graphe non connexe (b) Une composante connexe de G (c) Une autre com-
posante connexe de

Fig. 1.13 Composantes connexes d’un graphe

Algorithme de recherche de composantes simplement connexes

Etant donné un graphe G = (S, A).

1.6.2 Composante simplement connexe d’un sommet x

. La composante simplement connexe d’un sommet x de G notée CS (x) est définie par :

CS (x) = y 2 G tel qu’il existe une chaîne de x à y

Algorithme

Pour chercher la composante simplement connexe du sommet x, on procède comme suit :

i) Marquer  le sommet x
ii) Marquer  tout sommet adjacent à un sommet déjà marqué 

iii) Répéter l’étape ii) jusqu’à ce que l’on ne puisse plus marquer aucun sommet. Alors les sommets marqués
sont ceux de la composante connexe de x

Exemple 1.18 Considérons le graphe suivant

.
A. TOURE & M. BALDE
14 chapitre 1

a
En marquant  le sommet a, l’on se rend compte par
application de l’algorithme que les sommets b, c et d d

seront tous marqués  D’où la composante simplement b


connexe de a est CS (a) = {a, b, c, d} De la même
manière, on trouve que CS (e) = {e, f, g, h} En résumé, f c e
g
ce graphe présente deux composantes connexes que sont
les sous graphes engendrés par les ensembles CS (a) et
CS (e) h

Fig. 1.14 Graphe G

1.6.3 Composante fortement connexe

Une composante fortement connexe d’un graphe est un sous graphe GF tel que pour toute paire de sommets
{x, y} de GF , il existe un chemin de x à y et un chemin de y à x.

Exemple 1.19 Le sous graphe E de la figure 1.13 est une composante fortement connexe du graphe G .

Propriété 1.5 Un graphe ne possédant qu’une seule composante simplement (resp. fortement) connexe est
simplement (resp. fortement) connexe.
Composante fortement connexe d’un sommet x
La composante fortement connexe d’un sommet x de G notée CF (x) est définie par :

CF (x) = y 2 G tel qu’il existe un chemin de x à y et de y à x

Algorithme de recherche de composantes fortement connexes

Pour chercher la composante fortement connexe du sommet x, on procède comme suit :

+
i) Marquer − le sommet x

ii) Marquer + tout suivant (non marqué) d’un sommet marqué +


Marquer − tout précédent (non marqué) d’un sommet marqué −

+
iii) Lorsque plus aucun sommet ne peut être marqué ni + ni − les sommets marqués − constituent la com-
posante fortement connexe de x

Exemple 1.20 Considérons le graphe suivant


En appliquant l’algorithme, on trouve la composante fortement connexe du sommet 3 : CF (3) = 3, 4, 5 Le
graphe G n’est pas fortement connexe car il admet plus d’une composante fortement connexe.

.
A. TOURE & M. BALDE
Arbre et arborescence 15

1+ 2+

3+
− 4+

5+

G
Fig. 1.15 Graphe G

1.7 Arbre et arborescence

Un arbre T est un graphe connexe sans cycle. Il a une arête de moins que sommets.
Arborescence
Une arborescence est un graphe orienté G = (S, A) tel que :
– sans l’orientation G est un arbre
– tous les sommets de G sont descendants d’un sommet unique r appelé racine.
Anti-arborescence
Une anti-arborescence est le graphe "inverse " d’une arborescence : tous les sommets sont ascendants d’un
sommet a unique appelé anti-racine.
T est un arbre, G une arborescence et H une anti-arborescence.

a
r

(a) Arbre (b) Arborescence (c) Anti-arborescence

Fig. 1.16

L’arborescence peut être utilisé pour faire le classement des équipes selon l’ordre de mérite. Par exemple selon
les résultats des rencontres de foot des six équipes A, B, C, D, E et F, on retient le classement suivant :

1ere l’équipe A, 2e ex-acquo les équipes B et C, 4e l’équipe D et 6e ex-acquo les équipes E et F.

Sous forme d’une arborescence, on aurait :

.
A. TOURE & M. BALDE
16 chapitre 1

r (racine)

B C

E F

Fig. 1.17 Classement des équipes

Graphe valué

Reprenons l’exemple des rencontres de football du début de chapitre en y ajoutant cette fois-ci les scores
comme indiqué dans le tableau 1.7
La représentation graphique obtenue est alors celle de la figure 1.18 qui présente des arcs munis de pondérations

Tableau 1.4 Résultats des rencontres de foot

Rencontre A:B A:C A:D A:E B:F B:E C:D C:E D:F E:F
Résultat 3−0 2−0 0−1 4−1 2−1 2−1 1−0 4−0 1−0 4−2

symbolisant la différence de but lors des rencontres.


Ceci nous permet de donner la définition suivante :

B
3
A 2 C

1
1
1
1
3 4
F 1 D
2
E

Fig. 1.18 Résultat avec les différences de but

Un graphe G = (S, A) est dit valué si à chaque arc a de A, est associé une quantité l appelé coût de l’arc a.
La manipulation de graphe valués possède beaucoup d’applications dans la vie courante : optimisation de coût
de travaux dans un réseau, calcul de flots maximum, recherche de chemins optimaux...

1.7.1 Arbre de recouvrement

Soit G = (S, A) un graphe connexe valué. Un graphe partiel T de G est un arbre de recouvrement si T est
un arbre contenant tous les sommets de G.

.
A. TOURE & M. BALDE
Arbre et arborescence 17

a
7

8
5 b c
7
9 5.5
15
d e
6 9
8
11
f g

Fig. 1.19 Graphe valué

1.7.2 Arbre de recouvrement à coût minimal.

Parmi tous les arbres de recouvrement du graphe G, celui dont la somme total des coûts de ses arcs est la
plus petite est appelé arbre de recouvrement à coût minimal.

1.7.3 Algorithme de Kruskal

Etant donné un graphe G = (S, A), cet algorithme détermine un arbre de recouvrement de coût minimal
noté T. La méthode cherche initialement un arbre de coût minimal. Par la suite, on adjoint successivement des
arcs de coût minimal jusqu’à obtenir un arbre de recouvrement. Ces arcs sont stockés dans un ensemble noté P.

1. Etape 1. Initialisation
Choisir un arc u1 2 A de coût minimal.
Poser i = 1 et P = ;

2. Etape 2. Addition d’arc


[
Poser P = P {ui } ;
Pour 1 6 i 6 n − 1, déterminer ui+1 2 A \ P tel que
(a) le coût de ui+1 soit minimal.

(b) le sous graphe Gi engendré par les arcs u1 , u2 , . . . , ui + 1 soit sans cycle

3. Etape 3. Mise à jour


Poser i = i + 1.
Si i = n ou Gi = T , alors fin Sinon retourner à l’étape 2.

Exemple 1.21 Appliquer l’algorithme de Kruskal au graphe suivant.

Etape 1 : Initialisation
P = ;.
L’arc de coût minimal du graphe est l’arc (a, d), donc on le choisit.
Etape 2. Addition d’arc

.
A. TOURE & M. BALDE
18 chapitre 1

b c

d e

f g

Fig. 1.20 L’arbre de recouvrement minimal

[
P=P (a, d) .
L’arc de coût minimal dans A \ P est (e, c), donc on le retient.
Etape 3. Mise à jour
Les arcs retenus ne nous permettent pas encore d’avoir un arbre, alors, il retourner à l’étape 2.

On a P = (a, d), (e, c)
L’arc de coût minimal dans A \ P est (d, f), donc on le retient.
- Mise à jour

P = (a, d), (e, c), (d, f) .
On n’a pas encore un arbre. On a deux arcs de coût minimal (valant 7) dans A \ P. Il s’agit de (a, b) et (b, e).
Ces deux arcs sont intégrés dans l’ensemble P
- Mise à jour

P = (a, d), (e, c), (d, f), (a, b), (b, e) .
L’arc de coût minimal dans A \ P est (f, e), cependant son adhésion dans P créerait un cycle.
Ceci fait que cet arc n’est pas retenu. L’arc de coût minimal suivant est l’arc (e, g).
L’acceptation de cet arc nous permet d’avoir un arbre recouvrant le graphe. D’où l’arrêt de l’algorithme.
Conclusion :

L’arbre de recouvrement est engendré par les arcs de P = (a, d), (e, c), (d, f), (a, b), (b, e), (e, g) . Le coût de
cet arbre est 5 + 5, 5 + 6 + 7 + 7 + 9 = 39, 5

1.8 Niveaux dans un graphe


Considérons un graphe orienté G = (S, A) connexe sans circuit.
Niveau d’un sommet
Le niveau d’un sommet x de G est la longueur (nombre d’arcs) du plus long chemin d’extrémité finale x.

1.8.1 Algorithmes de recherche de niveaux

L’algorithme consiste a :

i) Lister dans un tableau l’ensemble des sommets et leurs précédents (s’il y en a)

.
A. TOURE & M. BALDE
Chemins de longueurs extrémales 19

b e

a g

d f

Fig. 1.21 Graphe H

ii) Déterminer l’ensemble Ni contenant les sommets n’ayant pas de précédents.Poser i = 0

iii) Rayer du tableau tous les sommets n’ayant pas de précédents.


S’il se trouve que tous les sommets du graphe sont barrés, alors c’est la FIN de l’algorithme.
Sinon retourner à l’étape (ii)

Exemple 1.22 Rechercher les niveaux du graphe suivant. Conformément à l’algorithme, on dresse le tableau
de gauche qui suit :

Sommet Précédent(s) Le sommet g n’a pas de précédent, donc il est Sommet Précédent(s)
a b, d de niveau 0. a b, d

b c, d, e On a donc l’ensemble N0 = g . b c, d, e
c e En rayant le sommet g, on se retrouve avec le c e
.
d e, f tableau de droite. d e, f
e f, g Le sommet f est le nouveau sommet sans précé- e f, g
 
f g dent, donc il est de niveau 1. D’où N1 = f et f g

g − le sommet f doit être rayé. g −


En continuant le processus, on trouve :



– au niveau 2, N2 = e ;

– au niveau 3, N3 = c, d ;

– au niveau 4, N4 = b ;

– au niveau 5, N5 = a .

1.9 Chemins de longueurs extrémales

L’objectif de cette section est de chercher des chemins de longueurs extrémales. Plus précisément, il s’agit de
fournir des algorithmes permettant de déterminer des chemins de longueurs minimales (plus courts chemins) et
des chemins de longueurs maximales (plus longs chemins). Pour ce faire, nous allons présenter deux algorithmes.

.
A. TOURE & M. BALDE
20 chapitre 1

g f d a

e b

N0 N1 N2 N3 N4 N5

Fig. 1.22 Graphe H ordonnancé par niveau

g f d a
11 6 5

9 8 15 9 7

e b
7

5 8

Fig. 1.23 Graphe H ordonnancé par niveau

1.9.1 Algorithme de Bellman

Objectif :
Trouver dans un graphe sans circuit, comportant des arcs valués positivement ou négativement tous les chemins
de longueurs extrémales aboutissant à un sommet x0 du graphe.
Recherche de plus courts chemins (P.C.C)
Algorithme

1. Ordonnancer le graphe par niveaux ;


N0 = x0 , Affecter à x0 la quantité l0 = 0 ;

2. A chaque niveau, pour le sommet xj faire, lj = Min li + vij pour i tel que xi est un précédent de xj et
avec vij valuation de l’arc (xi , xj ).

3. Reconstruire le plus court chemin de x0 à un autre sommet en "remontant".

Recherche de plus longs chemins (P.L.C)


 
Dans ce cas, il suffit de remplacer dans l’étape 2) précédente l’expression lj = Min li + vij par lj = Max li +

vij

Exemple 1.23 Chercher les plus courts chemins menant au sommet a du graphe suivant.
Solution

Ce graphe est déjà ordonnancé par niveau (voir section précédente).

.
A. TOURE & M. BALDE
Chemins de longueurs extrémales 21

g f d a
11 6 5

7
e b
7

8
c

Fig. 1.24 graphe des plus courts chemins.

Nous allons procéder par itérations, en définissant un ensemble P qui contient à chaque étape les sommets
donnant les P.C.C. et un ensemble T donnant les précédents des sommets contenus dans P.
Initialisation
Partant du sommet a, notons P = {a}.
L’ensemble des précédents du point a est T = {b, d}.
Itération 1
 
On a lb = 7 et ld = 5 ; Min lb , ld = 5 = ld ce qui correspond au sommet d, donc on met à jour P : P = a, d .

L’ensemble des précédents des sommets de P est T = b, e, f .
Itération 2
On a lb = 7, le = ld + ve,d = 5 + 15 = 20, lf = ld + vfd = 5 + 6 = 11.
  
Min lb , le , lf = 7 = lb . Il s’en suit les mises à jour P = a, d, b et T = c, e, f .
Itération 3

lc = lb + vcb = 15, le = Min lb + veb , ld + ved = Min{14; 20} = 14 et lf = ld + vfd = 11.

On a Min lc , le , lf = lf = 11.
 
Mises à jour : P = a, d, b, f et T = c, e, g .
Itération 4
lc = 15, le = 14 et lg = lf + vgf = 11 + 11 = 22.

On a Min lc , le , lg = le = 14.
 
Mises à jour : P = a, d, b, f, e et T = c, g .
Itération 5
 
lc = 15 et lg = Min lf + vgf , le + vge = Min 22, 23 = 22.

On a Min lc , lg = lc = 15.
 
Mises à jour : P = a, d, b, f, e, c et T = g .
Itération 6

Il ne reste que le sommet g de T . Avec lg = 22, on intègre g dans l’ensemble P. D’où P = a, d, b, f, e, c, g .
Les plus courts chemins menant au sommet a est donné dans le graphe suivant.

1.9.2 Algorithme de Dijkstra

Objectif :
Trouver dans un graphe orienté G = (S, A) valué positivement, pouvant comporter un circuit tous les chemins

.
A. TOURE & M. BALDE
22 chapitre 1

f d
6

11 5
8
g a
15 5 9

9 7
e b
7

5 8

Fig. 1.25

de longueurs extrémales quittant un sommet x0 vers tout autre sommet du graphe.


Recherche de plus courts chemins (P.C.C)
Méthode
2 A, on cherche le minimum sur tous les chemins de x0 à
On définit la valuation l : A → R+ , et pour tout x
x de la somme des valuations des arcs du chemin. On construit un ensemble P  S tel que le P.C.C de x0 à
tout autre sommet de P soit constitué de sommets de P.
Algorithme
Soit x0 le sommet par rapport auquel le P.C.C est calculé. Pour tous sommets xi et xj , on pose

 l(xi , xj ) > 0 si (xi , xj ) 2 A



l(xi , xi ) = 0



 l(x , x ) = +∞ si (x , x ) 
i j 2A i j

– Etape 0 : Initialisation

Poser P = x0 , D[x0 ] = 0 ;
6 x0 , faire D[xi ] = l(x0 , xi ).
Pour xi =
– Etape 1
Si P = S, alors fin,
 
sinon : soit xj tel que xj 2 S \ P et D[xj ] soit le minimum des D[xi ] c-à-d D[xj ] = MinD[xi ] ,
[
alors P = P {xj }
– Etape 2
Pour tout xi2 S \ P, faire

D[xi ] = Min D[xi ], D[xj ] + l(xj , xi )
Retourner à l’étape 1.

Exemple 1.24 Appliquer l’algorithme de Dijkstra pour chercher le P.C.C du sommet g à tout autre sommet
du graphe de la figure 1.25.

Solution

.
A. TOURE & M. BALDE
Exercices 23

f d
6

11 5
g a
5

9
e b
7

Fig. 1.26 graphe des plus courts chemins.

La résolution peut être faite sous forme tabulaire : on construit un tableau dont la première ligne comporte
les sommets du graphe. Le tableau est rempli ligne après ligne. A partir de la 2e ligne, le premier élément de
chaque ligne comporte le sommet xi donnant le PCC à l’étape considérée. Les valuations l(xi , xj ) des arcs (s’il
en existe) liant le sommet xi à tout autre sommet xj remplissent les autres cellules de la ligne (sauf les deux
dernières). L’avant dernière colonne donne la valeur du PCC tandis que dans la dernière colonne sont stockés
l’ensemble des précédents du sommet auquel abouti le PCC. Cette dernière colonne permet de retrouver les
PCC.
sommet graphe →
a b c d e f g PCC Précédent(s)
sommet du PCC ↓
g − − − − 9 11 0 Dg = 0 néant
e − 7 5 15 0 − − De = lge = 9 g
f − 5 − 6 − 0 − Df = lgf = 11 g
c − 8 0 − − − − Dc = De + lec = 14 e
b 7 0 − − − − − Db = De + leb = Df + lfb = 16 e, f
d 5 9 − 0 − − − Dd = Df + lfd = 17 f
a 0 − − − − − − Da = Dd + lda = 22 d

Remarque 1.9 Une fois un sommet sélectionné, dans le PCC (i.e. la première colonne), on peut alors rayer le
restant des cellules se trouvant dans la colonne réservée au sommet qui vient d’être sélectionné. zéro.
Les plus courts chemins ayant pour origine le sommet g sont donnés dans le graphe suivant.

1.10 Exercices

1 Construire un graphe orienté dont les sommets sont les entiers compris entre 1 et 12 et dont les arcs sont
obtenus par la relation "x est diviseur de y".

1. Est-il possible de tracer les figures suivantes sans lever le crayon (et sans passer deux fois sur le même
trait !) ?

.
A. TOURE & M. BALDE
24 chapitre 1

2. Quelle est la propriété particulière résultant de la réponse à la question 1) ?

3. Construire à partir de chacun des graphes G1 et G2 un graphe fortement connexe sans avoir à augmenter
un arc.

4. Donner les matrices les plus adaptées pour G1 et G2 et les deux nouveaux graphes obtenus dans la
question 3).

G1 G2

3 Etant donnés les graphes suivants. Trouver les réunions de ces graphes pris deux à deux.

a d a e d a d

f f f

b c b g c b c
G1 G2 G3

x3
Le graphe ci-contre modélise les rencontres de matchs de foot qui
x4 x2
ont mis aux prises huit équipes x1 , x2 , . . . , x8 .

1. S’agissait - il d’un tournoi ?

2. Compléter si nécessaire le graphe pour en faire un tournoi.


x5 x1
3. Que se serait il passé si

a) l’équipe x2 était retirée de la compétition ?


x6 x8
b) les équipes x2 et x7 étaient retirées de la compétition ?
x7
On représentera chacune des situations.
G

5 Le théorème d’Euler sur la recherche de chemin eulériens dit ce qui suit : Un graphe G admet un chemin
eulérien si et seulement si il est connexe et possède 0 sommet ou 2 sommets de degré impair. Utiliser le
théorème d’Euler pour se prononcer sur l’existence de chemins eulériens pour les graphes suivants. Préciser si
ces derniers possèdent des cycles ou circuits eulériens.

.
A. TOURE & M. BALDE
Exercices 25

x4 x1

x5 x6 a e d a d

x3 x2
f
e

x8 x7 b g c b c
G1 G2 G3

4
2 a d
6
a d
f
3
5

7
e

b c b c
8 G4 G5 G6

1. Construire les matrices booléennes et d’incidence des graphes de l’exercice précédent.

2. Rendre transitif ceux parmi eux qui ne le sont pas.

x6

Le graphe ci-contre porte le nom de graphe de Petersen.


x2
x10 x3 x7
1. Calculer les degrés des sommets de ce graphe.
x1
2. Ce graphe est il complet ?

3. Ce graphe possède -t-il un cycle eulérien ?


x5 x4
4. Extraire deux sous graphes d’ordre 5 (ayant 5 sommets) qui
ont chacun un cycle eulérien et un cycle hamiltonien. x9 x8

Graphe de Petersen

8 Etudier les composantes simplement et fortement connexes des graphes suivants. Dire si ces graphes sont
simplement ou fortement connexes.

.
A. TOURE & M. BALDE
26 chapitre 1

i
e
1 5 9 13 a
o

2 6 10 14 k
b f
n
d
3 7 11 15 g p

c
4 8 12 16 q
G1 m
G2
h

9
La direction d’une grande usine veut relier les 7 principales zones de l’usine par des voies de chargement et de
déchargement. La construction de telles routes consomme de l’espace et la direction désire minimiser la longueur
totale des voies. Le graphe suivant donne la distance en mètres entre les différentes zones numérotées de 1 à 7.
90 60
1 4 7

60 50
30 40

70 3 6
80

45 110 40

2 5
160

Déterminer l’arbre de recouvrement de longueur minimal du graphe et donner la solution au problème de la


direction.

10

La compagnie aérienne Mecca-World’s-Center (MWC) a 3 b 5 c

décide de mettre en place un plan d’itinéraire global lui


2 1 2
5 2 2 5
permettant de desservir onze villes du monde dont la
Mecque. Ces villes sont représentées par les sommets de
e 5 d 5 Mecque 3 f 4 j
la figure ci-contre et les différents trajets possibles sont
matérialisés par les arcs. L’objectif de la compagnie est 5 2 2 2 4
1 2
de minimiser le coût total de déplacement de ses avions
tout en desservant toutes les villes. g 3 h 3 i

1) Quel algorithme proposez vous au Boss de cette3) Le Boss habitant Dakar, ville située au sommet d
compagnie pour atteindre ses objectifs ? du graphe, impose a ce qu’il y ait un vol direct
2) Appliquez cet algorithme et donnez un plan d’itiné-Dakar-Mecque. En tenant compte de cette nouvelle
raire global des avions. donne, fournissez au Boss un plan respectant toutes ses
exigences. Y’a - t- il d’autres possibilités ?

.
A. TOURE & M. BALDE
Exercices 27

11 Chercher les chemins de longueurs extrémales dans les graphes suivants :


6 10 25
f d a b d

5 1 4 2
7 5
6
g 2 b a 20 15
30 10
6
1 7 2 9

e c c e
7 25
G3 G4

12 Huit chasseurs de primes quittent huit quartiers de Dakar pour se rendre au Plateau, localité où se trouve
le butin (voir figure ). Dans ce graphe sont aussi matérialisés les trajets possibles et les temps mis en minutes
d’un quartier à un autre.

2
Colobane
2
5
5 1
CiteH2 O G − Dakar Centenaire Plateau
2
3
6 Liberte6 2 3
3 2

PatteD 0 oie 2 S − Coeur


5 6
4
Foire

On demande

1. Utiliser un algorithme du cours pour trouver les meilleurs itinéraires à chacun des ces chasseurs.

2. La chasse étant ouverte à 0h 00mn, tous les concurrents quittent à cette heure sauf celui de Centenaire
qui préfère prendre 3mn de retard. Donner, dans un tableau, les heures de départ et d’arrivée de chacun
des concurrents.

13
Un politicien en baisse de popularité est en campagne électorale. A un moment donné, il se rend compte que
durant ses tournées les populations brandissent à son endroit des brassards rouges pour lui manifester leur
mécontentement. Le politicien ayant en main le graphe (G1 ) (voir figure) se trouve actuellement à la localité A
et veut regagner sa demeure située en H tout en rencontrant le moins de brassards rouges possible. Sur ce graphe
sont représentés l’ensemble des tronçons entre les villes A, B, ..., H munis des quantités de brassards rouges
exprimés en centaines les jonchant. Notre politicien est coincé ! Aidez- le à retrouver un chemin lui permettant
de regagner sa demeure tout en rencontrant le moins de rouge possible. Combien de brassards rouges rencontre
- t - il sur ce chemin ?
N.B. On justifiera la méthode utilisée.

.
A. TOURE & M. BALDE
28 chapitre 1

21
B E

20 20
18
13

17
C F
10
13
G
18
18
10
A
13 10

19
D H
24

Graphe (G1 )

14 La figure suivante représente différents trajets reliant des localités situées entre la ville de Dakar et la
communauté rurale de Diamniadio. Le projet d’autoroute à péage dont le tracé du tronçon Colobane-Diamniadio
est en gras prévoit un poste de péage à Camberene (voir figure ). Dans ce graphe sont aussi matérialisés les
trajets et les temps mis en unités de temps (UT) entre les localités.

4 6
Cices Pikine KeurMassar
1
2 1
5 3 3 Diamniadio

1
ZoneA 2 PatteD 0 oie Camberene
1,5 6
2 1 4

3
6 Pont − Hann 2 7 SIPS Mbao
1,5 2
3

Colobane 2 Yarah

5
4

Capa

1. Pour rentabiliser le projet, une obligation est faite à tous les usagers de passer si possible par le poste
de péage. Utiliser, dans ce cas, un algorithme du cours pour déterminer les itinéraires les plus courts
aboutissant à Diamniadio et qui quittent n’importe quelle localité.

2. En période de grande affluence, il n’y a pas d’obligation de passer par le poste de péage (Camberene).
D’ailleurs, le fait de passer ce poste crée une perte de temps de 2 UT du fait des longues files d’attente.
Déterminer dans ce cas les plus cours chemins menant à Diamniadio à l’aide d’un algorithme du cours.

.
A. TOURE & M. BALDE
Chapitre 2
Ordonnancement de projets

2.1 Les Problèmes d’ordonnancement

Les réalisations importantes telles que les constructions d’édifices, la conception d’une usine, le programme
de réalisation d’un avion, la gestion d’un projet, etc. demandent une surveillance constante et une parfaite
coordination des différents intervenants pour éviter des pertes de temps coûteuses. Les problèmes liés à cette
coordination sont les problèmes d’ordonnancement. Un problème d’ordonnancement peut être posé de la manière
suivante : étant donné un objectif à atteindre et dont la réalisation demande l’exécution préalable de multiples
tâches ou opérations, soumises à un certain nombre de contraintes, déterminer l’ordre et le calendrier d’exécution
de ces différentes tâches. L’ordonnancement se déroule alors en trois principales étapes :
– la planification : elle consiste à identifier les différentes tâches à faire, les dates de leur réalisation et les
moyens matériels et humains (ressources) à leur affecter ;
– l’exécution des différentes tâches définies dans la planification ;
– le contrôle et le suivi : on effectue une comparaison entre ce qui a été planifié et ce qui a été exécuté en
termes de dates de réalisation et de coût.

2.2 Les contraintes en ordonnancement de projet

Prenons un exemple : on veut construire un nouveau bâtiment de manière à pouvoir déménager le plus tôt.
Le tableau de la page suivante regroupe les tâches à réaliser, leurs durées et leurs préalables. La réalisation d’un
tel projet nécessite de lier les différentes tâches qui le composent par un certain nombre de contraintes : certaines
tâches ne peuvent s’exécuter qu’après que d’autres soient terminées. Par exemple, on ne peut commencer les
fondations que lorsque le terrassement est fini. D’autres tâches peuvent s’exécuter simultanément ; ainsi les
travaux d’électricité et de plomberie peuvent être menés de pair comme indiqué dans le tableau 2.1. En
ordonnancement de projet, les contraintes rencontrées sont généralement de trois types :

1. les contraintes de temps : on a deux sortes de contraintes de temps, les contraintes de localisation
temporelle ou de délais où une tâche ne peut commencer ou finir avant ou après une certaine date, et les
contraintes de succession qui expriment qu’une tâche doit commencer après qu’une autre soit terminée ou

29
30 chapitre 2

No tâche durée (jours) préalables


1 terrassement 5 néant
2 fondations 4 1
3 colonnes porteuses 2 2
4 charpente toiture 2 3
5 couverture 3 4
6 maçonnerie 5 3
7 plomberie, électricité 3 2
8 coulage dalle béton 3 7
9 climatisation 4 8 et 6
10 plâtre 10 9 et 5
11 finitions 5 10
Tableau 2.1 Construction d’un bâtiment

qu’une fraction d’une tâche soit finie ou qu’un certain délai se soit écoulé depuis le début ou la fin d’une
autre tâche (par exemple, on ne coule pas les fondations si le terrassement n’est pas fini) ;

2. les contraintes cumulatives ou de production : les ressources en matériel ou en hommes sont limitées,
leur temps d’occupation également est limité ;

3. les contraintes disjonctives : c’est le cas où, en plus des contraintes de succession, la réalisation
simultanée de deux ou plusieurs tâches n’est pas possible ou pas permise, (par exemple, une même grue
est utilisée sur deux chantiers).

2.3 Les méthodes d’ordonnancement.


Dans l’ordonnancement de projet on utilise des représentations du type diagramme ou graphes orientés ainsi
que des algorithmes de détermination de dates au plus tôt et au plus tard, tenant compte de l’enchaînement
des tâches. Ainsi, trois méthodes d’ordonnancement sont proposées.

2.3.1 La méthode des potentiels Métra (MPM) et le graphe potentiel - tâches.

Cette méthode a été mise au point par une équipe de chercheurs français dirigée par Bernard Roy (1960).
On représente le projet par le graphe suivant :
– à chaque tâche on associe un sommet du graphe ;
– on rajoute deux sommets correspondant à deux tâches fictives, respectivement la tâche de début du projet
de durée nulle qui précède toutes les autres tâches et la tâche de fin du projet qui doit succéder à toutes
les autres tâches ;
– les contraintes de succession sont représentées par des arcs reliant deux sommets ;
– à chaque arc on associe un nombre représentant soit la durée d’une tâche, soit un délai.

Exemple 2.1 Le fait qu’une tâche j succède à une tâche i de durée 4 jours se représente comme suit :

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 31

i j
4

Fig. 2.1 Graphe de la méthode MPM

Lemme 2.1 Une condition nécessaire d’existence de solution du problème d’ordonnancement est que le
graphe correspondant soit sans circuit.

En effet, l’existence d’un circuit dans un tel graphe voudrait dire qu’une tâche donnée se serait succédé. Ce qui
n’est pas réaliste.

le graphe potentiel - tâches.

Le projet commençant à la date t0 = 0, on cherche un ordonnancement qui minimise la durée totale du


travail c’est-à-dire la date de fin du projet. Pour qu’une tâche puisse commencer, il faut que toutes les tâches
qui la relient à la tâche début du projet soient réalisées, le graphe est donc ordonnancé par niveaux.
En appliquant les principes énoncés ci dessus aux données du tableau 2.1, on obtient le graphe suivant :

2 2
3 4 5

4 3
2

0 5 10 5
0 1 2 6 10 11 12

4 5 4

7 8 9
3 3

Fig. 2.2

Ordonnancement au plus tôt

La date au plus tôt ti de début de la tâche i est donnée par la longueur du " plus long chemin " du sommet
début au sommet i. La durée minimale tFin du projet est donc le plus long chemin du sommet début au sommet
fin. Le résultat des calculs des dates de début au plus tôt des tâches de notre projet de construction est fourni
dans le graphe suivant. Ces dates sont marquées au dessus des sommets.

Remarque 2.1 Un sommet ayant plusieurs précédents ne peut être marqué que si tous ses précédents sont
marqués. En guise d’illustration prenons le sommet 9. Ce sommet a deux précédents que sont les sommets 6 et
8. Le calcul des dates au plus tôt des tâches 6 et 8 donne respectivement t6 = 11 et t8 = 12 ; alors

 
t9 = Max t6 + d6 , t8 + d8 = Max 11 + 5, 12 + 3 = 16

.
A. TOURE & M. BALDE
32 chapitre 2

9 11 13
2 2
3 4 5

4 3
2
0 0 5 11 20 30 35
0 5 10 5
0 1 2 6 10 11 12

4 5 4
9 12 16
7 8 9
3 3

Fig. 2.3 Dates de début au plus tôt

Ordonnancement au plus tard

Partant du sommet fin, pour lequel la date de début au plus tard coïncide avec la date de début au plus
tôt, on retranche à la date au plus tard la durée de la dernière tâche. On détermine ainsi la date de début au
0
plus tard t11 de la tâche 11 :
0
t11 = t12 − d11 = 35 − 5 = 30.

On marque ensuite à rebours les sommets 10, 5,...


Les dates de début au plus tard des taches de l’exemple étudié sont représentées en dessous des sommets du
graphe suivant.

9 11 13
2 2
3 4 5
9 15 17
4 3
2
0 0 5 11 20 30 35
0 5 10 5
0 1 2 6 10 11 12
0 0 5 11 20 30 35

4 5 4
9 12 16
7 8 9
3 3
10 13 16

Fig. 2.4 Dates de début au plus tard

Remarque 2.2 Un sommet ayant plusieurs suivants ne peut être marqué que si tous ses suivants sont marqués
et sa date au plus tard correspond au marquage minimal. Par exemple prenons le cas du sommet 3 : pour
chercher la date au plus tard de ce sommet, il faut d’abord marquer les sommets 4 et 6 . Les calculs montrent
que les dates de début au plus tard associées à ces sommets valent respectivement t40 = 15 et t60 = 11. Alors

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 33

celle de la tâche 3 est


 
t3 = Min t40 − d4 , t60 − d6 = Min 15 − 2, 11 − 2 = 9

Marge totale - tache critique

On définit la marge totale mt de la tâche i comme la différence entre la date au plus tard ti0 et la date au
plus tôt ti :
mt = ti0 − ti .

La marge totale sur une tâche est le retard que l’on peut avoir dans l’exécution de cette tâche sans retarder
l’ensemble du projet. Une tâche dont la marge totale est nulle est appelée tâche critique. Si un quelconque
retard est pris sur une tâche critique, la durée du projet sera augmentée d’autant.

Exemple 2.2 La marge totale de la tâche 2 est mt (2) = 5 − 5 = 0, celle de la tâche 7 est mt (7) = 10 − 9 = 1
et celle de la tâche 10 vaut mt (10) = 20 − 20 = 0. Ainsi, on constate que les tâches 2 et 10 sont des tâches
critiques.

chemin critique

Un chemin critique est formé par la succession des sommets représentant uniquement des tâches critiques
reliées par leurs arcs.

Exemple 2.3 Dans l’exemple étudié, le chemin critique est engendré par les sommets de l’ensemble


C= 0 , 1 , 2 , 3 , 6 , 9 , 10 , 11 , 12

Il est représenté en pointillé à la page précédente.

Remarque 2.3 On peut avoir plusieurs chemins critiques dans un problème d’ordonnancement de projets

Marge libre

On définit la marge libre ml d’une tâche comme le retard que l’on peut prendre dans l’exécution de cette
tâche sans retarder la date de début au plus tôt de toute tâche qui lui succède. Si on note di la durée de la
tâche i et si la tâche j succède à i, alors la marge libre de i est égale au minimum pour tous ses successeurs j
de (tj − ti − di ) :

ml = Min tj − ti − di
j

Exemple 2.4 La marge libre de la tâche 2 est

 
ml (2) = Min t3 − t2 − d2 , t7 − t2 − d2 = 9 − 5 − 4, 9 − 5 − 4 = 0.

.
A. TOURE & M. BALDE
34 chapitre 2

Celle de la tâche 5 est


ml (5) = t10 − t5 − d5 = 20 − 13 − 3 = 4.

Remarque 2.4 La marge libre d’une tâche critique est également nulle.

Remarque 2.5 On doit avoir entre la tâche i et son successeur j la relation : tj − ti > di ; on voit donc qu’à
chaque tâche i est associé un nombre ti qui peut être considéré comme un potentiel (au sens de la Physique ou
de l’Électricité), d’où le nom de graphe potentiel - tâches.

2.3.2 La méthode PERT (Program Evaluation and Research Task) et le graphe


potentiel- étapes.

Contrairement à la méthode MPM, la construction du graphe (graphe potentiel- étapes) de la méthode PERT
associe à chaque tâche un arc du graphe. La longueur de chaque arc est la durée de la tâche correspondante. Les
sommets sont utilisés pour traduire les relations de succession temporelle. Si une tâche J succède à une tâche I,
alors l’extrémité initiale de l’arc correspondant à J doit être l’extrémité finale de l’arc correspondant à I.

I,dI J,dJ
a

Fig. 2.5 Graphe de la méthode PERT

Le début et la fin d’une tâche sont des étapes du projet. On définit une étape début du projet, une étape fin
du projet et un certain nombre d’étapes intermédiaires. Chaque étape est définie par un ensemble de tâches
effectuées ou de tâches qui débutent. Comme dans la cas de la méthode MPM, le graphe ainsi défini doit
nécessairement être sans circuit pour que le problème d’ordonnancement admette une solution.

Quelques difficultés dans la construction du graphe avec PERT

Parfois, pour traduire certaines contraintes, on introduit des tâches dites fictives.
Cas 1
Etant données quatre tâches I, J, K et L liées comme suit :
– la tâche J succède aux tâches I et K
– la tâche L succède à la tâche K
Le graphe de la figure 2.6(a) semble bien représenter ces relations. Cependant cette construction crée une

I J
I J

K L
K L

(a) La relation de succession (b) Rectification par


"L suit I" est de trop ajout d’un arc fictif

Fig. 2.6 Ajout d’un arc fictif

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 35

nouvelle relation : la relation "L succède à I". Pour surmonter cette difficulté, on ajoute un arc représentant
une tâche fictive qui joint l’extrémité finale de K et le début de J. Cette tache fictive représentée en pointillé

figure 2.6(b) est de durée nulle.
Cas 2
Deux tâches I et J ont les mêmes prédécesseurs dont le sommet fin est 1 ou (exclusif) et ont des successeurs
communs dont le sommet début est 2. Naturellement, on est tenté de représenter ce fait par la figure 2.7(a) ci
dessous.

2
J
1 2 I2 1
I
3

(b)Mauvaise représentation PERT (c) Bonne représentation PERT

Fig. 2.7 Ajout d’un arc fictif

Cependant la représentation correcte en PERT est celle de la figure 2.7(b) : on intercale un sommet (ici c’est le
sommet 3) et on ajoute une tâche fictive I2 (de durée nulle) qui "prolonge" la tâche I au sommet 2.
Cas 3
Les premières tâches du projet peuvent ne pas débuter à la même date (date au plus tôt) ; on introduit alors
des tâches fictives entre l’étape début du projet et les sommets initiaux de ces tâches. Ces tâches fictives auront
alors comme durées les délais respectifs de démarrage de ces tâches.

JIK
JI0
début 2
K0

Fig. 2.8 Premières tâches ne débutant pas à la même date

Les tâches fictives I0 , J0 et K0 ont pour durée les délais respectifs de démarrage de I, J et K.

Exemple 2.5 Reprenons, dans le tableau 2.2 le même projet que nous avons résolu avec la méthode MPM
mais cette fois ci en changeant la nomination des tâches.
Après avoir procédé à un ordonnancement par niveaux, la construction du graphe PERT de ce problème est
donnée dans la figure 2.9 :

.
A. TOURE & M. BALDE
36 chapitre 2

No tâche durée (jours) préalables


A terrassement 5 néant
B fondations 4 A
C colonnes porteuses 2 B
D charpente toiture 2 C
E couverture 3 D
F maçonnerie 5 C
G plomberie, électricité 3 B
H coulage dalle béton 3 G
I climatisation 4 H et F
J plâtre 10 I et E
K finitions 5 J
Tableau 2.2 Construction d’un bâtiment.

D, 2
3 5

C, 2 E, 3

A, 5 B, 4 J, 10 K, 5
0 1 2 7 8 9
F, 5

G, 3 I, 4

4 6
H, 3

Fig. 2.9 Graphe potentiel-étapes associé au problème

Ordonnancement au plus tot

Pour chaque étape i, on définit sa date au plus tôt de réalisation ti qui est la longueur du plus long chemin
entre l’étape "début" et l’étape i.
Ces dates au plus tôt sont indiquées au dessus des sommets du graphique de la figure 2.10. Comme dans la
méthode du potentiel les dates de début au plus tôt de toutes les tâches suivant un sommet correspondent
à la date au plus tôt ti du sommet situé juste avant la tâche. Par exemple, la date de début au plus tôt de
la couverture (tâche E) est le 13e jour.

La durée minimale du projet sera donc la longueur du plus long chemin entre l’étape "début" et l’étape
"fin".

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 37

Ordonnancement au plus tard

Dans un premier temps, et après avoir marqué les dates de début au plus tôt, procédons au marquage des
dates au plus tard des sommets (étapes) ceci en commençant par la dernière étape et en soustrayant les durées
des tâches comme dans le cas de la méthode (MPM). Cependant, pour lever toute confusion avec la méthode
(MPM), il convient de souligner ce qui suit :

Remarque 2.6 Les dates se trouvant en dessous des sommets ne représentent pas les dates de début au plus
tard des tâches suivants ces sommets mais plutôt celles des sommets (étapes) eux-mêmes . Ces mêmes dates
représentent aussi les dates de fin au plus tard des tâches précédant les sommets. Par exemple, la date 16 se
trouvant en dessous du sommet 6, est la date de fin au plus tard des tâches F et H et celle de début au plus
tard de l’étape 6.

11 13
D, 2
3 5
11 17
C, 2 E, 3

0 5 9 20 30 35
A, 5 B, 4 J, 10 K, 5
0 1 2 7 8 9
F, 5
0 5 9 20 30 35

G, 3 I, 4
12 16
4 6
H, 3
13 16

Fig. 2.10 Graphe potentiel-étapes associé au problème

Le calcul des dates de début au plus tard peut se faire de deux façons différentes :
– étant donné une tâche (i, j) de durée dij délimitée par les sommets i et j marqués respectivement par ti ,
ti0 et tj , tj0 tels que représentés dans la figure 2.11

ti0 ti0
(i, j)
i j
dij
ti ti

Fig. 2.11 Calcul date début au plus tard

La date de début au plus tard de la tâche (i, j) est

t 0 (i, j) = tj0 − dij .

0
Exemple 2.6 La date de début au plus tard de la tâche D est tD = 17 − 2 = 15 et celle de la tâche H est
0
tH = 16 − 3 = 13.

.
A. TOURE & M. BALDE
38 chapitre 2

La deuxième méthode consiste à chercher d’abord les marges des tâches puis de les additionner aux dates de
début au plus tôt. La recherche des dates de début (au plus tôt et au plus tard) est résumée dans le tableau 2.3
de la page 39.

Marge totale - tâche critique

La marge totale de la tâche (i, j) entre les sommets i et j est définie par :

mt (i, j) = tj0 − ti − di,j

où t 0 j est la date au plus tard du sommet j, ti est la date au plus tôt du sommet i et di,j est la durée de cette
tâche.

Exemple 2.7 La marge totale de la tache D est

mD = t50 − t3 − dD = 17 − 11 − 2 = 4,

celle de la tache I est


mI = t70 − t6 − dI = 20 − 16 − 4 = 0.

Une tâche dont la marge totale est nulle est une tâche critique .

Exemple 2.8 la tâche I est une tâche critique.

chemin critique

Un chemin critique est formé d’une succession formée uniquement que de tâches critiques.

Ordonnancement au plus tard

Pour calculer les dates de début au plus tard des différentes tâches, il convient de procéder en deux temps.
D’abord, on calcule le temps de début au plus tard des sommets comme cela est fait précédemment. Ensuite,
pour une tâche (i, j) débutant au sommet i et finissant au sommet j, sa date au plus tard est obtenue en
additionnant sa marge mt (i, j) à la date au plus tôt du sommet i.

Exemple 2.9 Soit à déterminer la date au plus tard de la tâche D de notre projet de construction de bâtiment.
La marge de la tâche D étant mD = 4, alors la date au plus tard de D est

t3 + mD = 11 + 4 = 15.

Le tableau suivant donne le résultat du calcul des dates des débuts au plus tôt et au plus tard des tâches du
projet.
Le chemin critique est engendré par les tâches de l’ensemble


C= A, B, C, F, I, J, K

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 39

Tâche A B C D E F G H I J K
Date de début au plus tôt 0 5 9 11 13 11 9 12 16 20 30
Marge 0 0 0 4 4 0 1 1 0 0 0
Date de début au plus tard 0 5 9 15 17 11 10 13 16 20 30

Tableau 2.3 calcul de l’ordonnancement par PERT.

Marge libre

La marge libre de la tâche comprise entre les sommets i et j est définie par :

ml (i, j) = tj − ti − di,j

où tj est la date au plus tôt du sommet ou de l’étape j.

Exemple 2.10 Les marges libre des tâches D et I sont respectivement

ml (b) = t5 − t3 − dD = 13 − 11 − 2 = 0 et ml (I) = t7 − t6 − dI = 20 − 16 − 4 = 0

Entre les deux étapes i et j successives, on doit avoir tj − ti > di,j . Donc à chaque étape k est associé un
nombre tk qui peut être considéré comme un potentiel, d’où le nom de graphe potentiel- étapes.

Remarque 2.7 Toute tâche critique a une marge libre nulle.

Remarque 2.8 La marge libre d’une tâche est inférieure à sa marge totale.

2.3.3 Le diagramme de Gantt.

En 1917, l’ingénieur industriel américain Henry L. Gantt développe pour la Marine une méthode de repré-
sentation graphique qui porte son nom et qui permet de suivre l’avancement et la réalisation d’opérations de
grande importance. Il s’agit de représenter dans un tableau les différentes tâches, en ligne, et les unités de temps
(heures, jours, semaines, mois,...) en colonne ; la durée d’une tâche est matérialisée par un trait ou une barre.
Après avoir identifié les différentes tâches et estimé leur durée, on tient compte des contraintes de succession
pour les représenter successivement et dans l’ordre à l’intérieur du tableau.

Exemple 2.11 Considérons le planning du tableau 2.4 de la page 40.

Ordonnancement au plus tôt et au plus tard

Sur la diagramme de Gantt, la date de début au plus tôt d’une tâche donnée est celle à laquelle commence
la barre la symbolisant. Par exemple la date de début au plus tôt des tâches D et E est 7 tandis que celle G est
14.
Les dates de début au plus tard s’obtiennent après détermination des marges totales.

.
A. TOURE & M. BALDE
40 chapitre 2

Tâches Durées Tâches préalables


A 5 -
B 4 -
C 3 B
D 7 A, C
E 6 A, C Construction de diagramme.
F 2 B Le graphique se construit barre après barre. A la tâche X, on
G 4 D associe une barre de longueur égale à sa durée. Cette barre

H 3 E commence au niveau où finit la dernière tâche précédant X.

I 5 E, F Les relations du succession temporelle sont représentées par

J 2 H, I des flèches interrompues verticales. Par exemple A précédant


Tableau 2.4 exemple de planning. D, la flèche quitte la fin de la barre de A pour le début de la
Marges libres et marges totales barre de D.

– La marge libre d’une tâche est la distance (sur l’horizontale) séparant la fin de cette tâche à la première
tâche à la succéder. Ces distances sont représentées horizontalement en pointillés.

Exemple 2.12 La marge libre de la tâche F est 13 − 6 = 7 , celle de D est 0 et celle de G est 2.

– Pour obtenir la marge totale d’une tâche, on procède en deux phases ; étant donné une tâche X dont on
cherche la marge totale :
 on considère chaque chemin quittant X et aboutissant à la dernière tâche avant d’atteindre la fin du projet ;
 on projette le chemin sur l’axe des abscisses.
Parmi tous ces chemins projetés, celui dont la projection aura donné le moins d’espace vide va permettre de
déduire la marge totale de la tâche X. En effet, la marge totale de X est obtenue en additionnant les longueurs
des parties vides (n’ayant pas reçu de projection) de ce chemin sur l’axe des abscisses.

Exemple 2.13 Soit à chercher la marge totale de la tâche D.


On voit qu’il n’y a qu’un seul chemin qui quitte D vers la fin ; c’est le chemin P = (D, G) . La figure 2.13 donne
en traits ondulés la projection de ce chemin sur l’axe des temps. Entre le début de cette projection et la date
de fin il y a un vide de 2 unités, donc la marge totale de la tâche D est 2.

Exemple 2.14 Soit à chercher la marge totale de la tâche A.


Les chemins quittant A vers la date fin sont P1 = (A, D, G), P2 = (A, E, H) et P3 = (A, E, I, J). En projetant
ces trois chemin, on se rend compte que celui dont la projection donne le moins d’espace vide est le chemin P3 .
Ce vide correspond à 2 unités de temps. Donc la marge totale de A est 2 jours.

Chemin critique

Un chemin critique s’obtient comme suit :


– on part de la dernière tâche aboutissant à la date de fin du projet (s’il y en a plusieurs, on les prend une
à une) ;
– on intègre une tâche immédiatement derrière celle-ci ;

.
A. TOURE & M. BALDE
Les méthodes d’ordonnancement. 41

Tâches

J
Temps

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fig. 2.12 Diagramme de Gantt

– ensuite, on intègre une tâche immédiatement derrière cette dernière, puis le processus est répété jusqu’à
la dernière tâche à être acceptée
L’ensemble des tâches ainsi sélectionnées constituent un chemin critique. Dans le cas de l’exemple étudié, le
chemin critique est formé des tâches

B, C, E, I , J

Ces tâches sont surlignées dans le graphique précédent.

Suivi de l’exécution des tâches

Sur la diagramme de Gantt, on arrive à lire la progression des tâches au fil du temps. En effet, étant donné
une date t0 sur l’axe des abscisses il suffit de tracer une droite verticale passant par cette date. Cette droite
scinde les tâches en trois catégories :
– les tâches qui doivent être en cours d’exécution à cette date : Ce sont les tâches interceptées par cette
verticale ;
– celles devant être déjà achevées à cette date. Ces tâches sont à gauche de de la première catégorie ;
– celles qui ne sont pas encore entamées à cette date. Ces dernières sont à droite de la première catégorie.
Cette même verticale donne une information sur le pourcentage de réalisation des tâches en cours.

.
A. TOURE & M. BALDE
42 chapitre 2

Tâches

J
Temps

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Fig. 2.13 Marges totales et chemin critique

2.4 Exercices

1 Construire le graphe PERT du projet formé des tâches A, B, C, D, E, F, G, H, I, J, K, L, sous les contraintes
suivantes :

1. les premières tâches A, B, C peuvent démarrer simultanément ;

2. A et B précèdent D ;

3. B précède E, F et H ;

4. F et C précèdent G ;

5. E et H précèdent I et J ;

6. C, D, F et J précèdent K ;

7. K précède L ;

8. I, G et L sont les dernières tâches du projet.

2 On considère l’ensemble des tâches d’un projet dont on donne l’ordonnancement dans le tableau 2.5 : On
suppose que les premières tâches débutent simultanément un (1) jours après le début du projet. Aucune tâche
ne commence avant la fin de toutes celles qui la précèdent.

1. Tracer le graphe "potentiel-tâches" (MPM) associé à cet ordonnancement.

.
A. TOURE & M. BALDE
Exercices 43

Tableau 2.5

Tâches Durées (jours) Tâches précédentes


A 2 -
B 5 -
C 4 -
D 3 A
E 1 B
F 2 B,D
G 1 C
H 3 A,G

2. Déterminer les dates au plus tôt et les dates au plus tard des tâches.

3. Quelles sont les tâches critiques ? Quel(s) est (sont) les(s) chemin(s) critique(s).

4. Est -il possible, sans augmenter la durée totale du projet d’augmenter :

(a) le délai entre le début du projet et les premières tâches de deux (02) jours au lieu d’un (1) jour ?

(b) la durée de la tâche B de six (06) jours au lieu de (05) jours ?

3 Dans le cadre de la réforme hospitalière, les conseils d’administration de 3 centres hospitaliers voisins ont
élaboré en commun un plan de rationalisation de leurs activités. Tout en maintenant les 3 sites existants, ils
ont décidé de fusionner en une seule entité appelée HOPITAL NORD. La réorganisation des unités de soins et
de leur gestion implique l’interconnexion des réseaux informatiques des 3 sites. Deux des 3 hôpitaux, désignés
H1 et H2, sont déjà interconnectés ; vous participez à l’étude et à la mise en place de la connexion du troisième
hôpital, désigné H3.
L’évolution du réseau local du site H3 a été planifiée. Les tâches nécessaires à la réalisation de ce projet,
leurs durées ainsi que les conditions d’antériorité qui les relient figurent dans le tableau 2.6 :

1. Construire le graphe d’ordonnancement du projet selon la méthode MPM.

2. Déterminer le chemin critique et indiquer la durée minimale de réalisation du projet.

3. Le responsable redoute maintenant des difficultés techniques sur la mise à jour matérielle des postes,
difficultés qui porteraient de 2 à 8 jours la durée de la tâche L. Indiquer l’incidence sur la durée globale
du projet d’allongement de la durée de la tâche L.

4 Une importante société de magasins alimentaires à grande surface diversifie son activité en créant des
commerces dans les petites villes. La société crée le fonds de commerce qui est ensuite géré de façon autonome
par un commerçant franchisé. La société réalise une étude d’implantation puis elle installe le commerce. Les
tâches à exécuter sont résumées dans le tableau 2.7 :

1. Tracez le diagramme PERT du projet. Indiquez les dates au plus tôt sur ce graphe

2. En quel temps minimum ce projet pourra-t-il être réalisé ? Faire apparaître le ou les chemin(s) critiques.

3. Donnez, sous forme de tableau, les marges totales et libres.

.
A. TOURE & M. BALDE
44 chapitre 2

Tableau 2.6

Code de la tâche Désignation de la tâche Durée en jours Tâches antérieures


A Définition des contraintes du réseau 2 BE
B Mise en place du projet 6 -
C Mise à jour des droits d’accès 2 F
D Achat des composants matériels 8 J
E Définition du budget 3 -
F Mise à jour des groupes utilisateurs 2 K
G Formation de l’administrateur réseau 5 J
H Câblage 10 J
I Commande de Novell Netware 5 4 D
J Choix des fournisseurs et des intervenants 5 A
K Mise à jour logicielle des postes clients 1 M
L Mise à jour matérielle des postes 2 D
M Installation Novell Netware 5 2 LIHG

Tableau 2.7

Liste des tâches Durée en jours Tâches préalables


A - Recherche d’un local 50 -
B - Recherche d’un franchisé 45 -
C - Constitution du dossier du franchisé 15 A, B
D - Constitution du dossier pour la chambre de commerce 10 A, B
E - Formation du franchisé 30 B
F - Aménagement, plâtrerie, peinture du magasin 20 A
G - Réfection façade, enseigne 8 A
H - Equipement chambre froide 8 A, F
I - Equipement rayonnage 5 A, F
J - Implantation du magasin 6 A, B, E, F, G, H, I
K - Tirage des feuillets publicitaires 6 A, B, D
L - Distribution des feuillets publicitaires 2 A, B, D, K
M - Envoi des invitations pour l’inauguration 6 A, B, D
N - Inauguration du magasin 1 toutes

5 Reprendre les exercices 2 et 3 en utilisant


a) le diagramme de Gantt
b) la méthode PERT

.
A. TOURE & M. BALDE

Vous aimerez peut-être aussi