Vous êtes sur la page 1sur 45

MINISTERE DES ENSEIGNEMENTS BURKINA FASO

SECONDAIRE ET SUPERIEUR -------


------- Unité- Progrès- Justice
ESTA

Cours de Recherche
Opérationnelle

MASTER 1 EN RIT & EAI

Oumarou BARRO
Conseiller des affaires économiques
au Ministère du Commerce
Enseignant vacataire
70 59 06 39

Année académique 2015-2016


1
Programme de Recherche Opérationnelle

Option : Master 1 en EAI & RIT


Volume horaire : 30 heures

Chapitre I : La programmation linéaire


Chapitre II : La théorie des graphes
Chapitre III : Les problèmes d’ordonnancement

Bibliographie

A. ALJ et R FAURE (1986), « Guide de Recherche opérationnelle : les fondements »


Edition Masson, Paris, 1986.

A. ALJ et R. FAURE (1986), « Guide de Recherche opérationnelle : les applications »


Edition Masson, Paris, 1986.

Gerard DESBAZELLE (1976), « Exercices et problèmes de Recherche opérationnelle ».


Edition DUNOD, 1976.

2
INTRODUCTION GENERALE
Tous les acteurs de la vie économique et sociale (ménages, entreprises, Etat, etc.), dans le cadre de
la gestion de leurs activités, dans la définition et la mise en œuvre de leurs objectifs, dans la
planification des actions à réaliser, etc., sont appelés à prendre des décisions, les meilleures. Cela
suppose qu’ils doivent opérer des choix sur un ensemble de décisions possibles. Une telle
entreprise, au-delà du bon sens, requiert la mise en œuvre d’une démarche scientifique ou l’usage
d’outils appropriés. C’est pourquoi, pour éviter l’arbitraire dans le processus de prise de décision, la
science met à la disposition de l’homme, des méthodes (pluridisciplinaires) ou des outils d’aide à la
prise de décision. Parmi ces outils, il y a la Recherche Opérationnelle.

I Définition de la Recherche Opérationnelle


La Recherche Opérationnelle (RO) peut se définir comme « l’ensemble de méthodes et techniques
rationnelles d’analyse et de synthèse des phénomènes d’organisation utilisables pour prendre des
meilleures décisions ». En d’autre terme, elle peut être définie comme l’approche rationnelle des
décisions.

La RO permet d’aboutir à la prise de décision optimale conduisant à solutionner des problèmes


économiques de tout genre. En effet, avec l’application de ces méthodes, la RO vise, entre autre,
l’amélioration du fonctionnement des entreprises et des organismes publics.
La particularité de la Recherche Opérationnelle est que les méthodes proposées sont des démarches
rationnelles, basées sur des concepts et outils mathématiques.

II Domaines d’application de la Recherche Opérationnelle


La Recherche Opérationnelle est apparue pendant la seconde guerre mondiale en 1940 en
Angleterre puis aux Etats-Unis. Elle était utilisée à des fins militaires à cette époque.
A la suite de ses succès obtenus dans ce domaine durant la 2 nd GM, la Recherche Opérationnelle a
été appliquée pendant de nombreuses années dans l’industrie et le secteur public. Depuis plus d’une
décennie, le champ d’application de la RO s’est élargi à des domaines comme l’économie, la
finance, le marketing et la planification d’entreprise. Plus récemment, la RO a été utilisée pour la
gestion des systèmes de santé et d’éducation, pour la résolution des problèmes environnements et
dans plusieurs autres domaines d’intérêt public.

Comme on peut le constater, les domaines d’applications de la RO sont nombreux et très variés.
Parmi les sujets qui entrent dans ses domaines d’application, on peut noter :

3
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

- la planification de la production ;
- la gestion des stocks ;
- les réseaux de communication ;
- la gestion prévisionnelle du personnel ;
- les problèmes de transport ;

III Les étapes de la méthode scientifique


Elles peuvent se présenter comme suit :
- observation,
- définition du problème,
- formulation d’hypothèses,
- expérimentation,
- acceptation ou rejet d’hypothèses,
- formulation des lois,
- essai de formulation d’une théorie.

En suivant les différentes étapes de la méthode scientifique, il peut arriver que le coût de
l’expérimentation soit très élevé. L’avantage de la Recherche Opérationnelle est qu’elle permet de
contourner cette expérimentation et pour ce faire ; elle utilise des simulations. En effet, un modèle
est une représentation abstraite de la réalité et ses traits majeurs sont sa cohérence et sa simplicité.

IV Les éléments de modélisation


Parmi les éléments de modélisation, on peut citer :
- les variables : elles peuvent être exogènes ou endogènes. Une variable exogène est une variable
qui prend sa valeur à l’extérieur du modèle. Elle est dite endogène que lorsqu’elle prend sa valeur à
l’intérieur du modèle.
Y = f(x1, x2, x3……………….. xn)
Où Y est variable expliquée ou endogène
x1, x2, x3 sont des variables explicatives ou exogènes ;
Soit le modèle suivant C = aY + b
- les coefficients: sont des valeurs associées aux variables. Ici a est un coefficient
- le terme constant : la valeur indépendante de la variable explicative. Ici b est une constante.
- une équation : une égalité entre les deux membres.
X1 + X2 = 6
- une inéquation : une inégalité entre les deux membres.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

X1 + X2 ≥ 6
X1 + X2 ≤ 6

V Formalisation d’un programme


La formalisation d’un programme est une tâche délicate et essentielle car elle conditionne la
découverte ultérieure de la solution optimale.
Elle comporte les phases suivantes :
- la détection du problème et l’identification des variables. En programmation mathématique, les
variables sont les variables décisionnelles ;
- la formulation de la fonction objectif traduit les préférences des agents économiques ;
- la formulation des contraintes.

La ressource étant en général limitée, les activités sont forcement soumises à des contraintes. Elles
revêtent la forme d’équations ou d’inéquations.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Chapitre I : La programmation linéaire

Section I : LES GENERALITES


1 Définition et but de la programmation linéaire
Plusieurs problèmes de la vie économique et sociale, de gestion, etc. peuvent être modélisés par une
formulation de programmation linéaire.
On appelle programme linéaire, un modèle mathématique qui consiste à optimiser (maximiser ou
minimiser) une fonction linéaire de plusieurs variables qui sont reliées par des relations linéaires
appelées contraintes.

Le but de la programmation linéaire est de déterminer l’allocation optimale d’un ensemble de


ressources (main d’œuvre, matériel, machines, etc.) pour atteindre un objectif de maximisation
(d’un profit par exemple) ou de minimisation (d’un coût par exemple), compte tenu des contraintes
qui pèsent sur ces ressources. Elle s’applique à la répartition des ressources limitées entre des
activités en concurrence les unes avec les autres, de façon à atteindre au mieux un certain objectif.

La programmation linéaire est utilisée dans de nombreuses situations. Par exemple, elle permet de
déterminer le meilleur plan de production d’un certain nombre de produits qui nécessitent les
mêmes ingrédients. Elle est également utilisée pour déterminer l’allocation optimale de travailleurs
à un certain nombre de tâches.

L’objectif de ce chapitre est d’aider à formuler sous forme de programmes linéaires un certain
nombre de problèmes importants que l’on rencontre dans le domaine des sciences de la gestion. Il
devra aussi donner des outils nécessaires pour résoudre ces programmes.

2 Etapes de formulation d’un programme linéaire


La formalisation d’un programme doit respecter 4 étapes :
- la détection du problème à traiter
- l’identification des variables ;
- la formulation des contraintes ;
- la formulation de la fonction économique.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

3 Exemple d’un problème de programmation linéaire


Un menuisier fabrique des bureaux pour deux modèles : le modèle luxe et le modèle standard. Des
études de marché ont montré que pour l’année à venir, les possibilités de ventes s’élèvent à 300
unités pour le modèle luxe et à 4 00 unités pour le modèle standard. L’approvisionnement en bois
est suffisant pour pouvoir fabriquer annuellement 500 bureaux quel que soit le type de modèle. Le
temps de fabrication pour le modèle luxe est le double de celui des bureaux de type standard. La
capacité annuelle de fabrication en terme de temps de tous les bureaux est 700 au maximum.
La vente d’un bureau sous le modèle luxe conduit à une marge unitaire sur le coût variable et est
égale à 7. Celle d’un bureau de modèle standard est égale à 5. Le menuisier veut savoir un
programme annuel de fabrication qui lui assure un profit maximum.

Formulation du problème en un programme linéaire


a) Les variables de décision
Comme il y a deux modèles de bureaux à fabriquer, on peut considérer :
- X : le nombre de bureaux de modèle luxe
- Y : le nombre de bureaux du modèle standard

b) La formulation des contraintes


Les facteurs de production (le bois, la main d’œuvre), les contraintes de marché conduisent à
formuler quatre (04) contraintes suivantes :

 X  300 (Possibilité de ventes du modèle luxe)


Y  400 (Possibilité de ventes du modèle standard)

s / c  X  Y  500 (Contrainte de bois (disponibilité en bois)
2 X  Y  700
 (Contrainte du temps (capacité de fabrication)
 X  0; Y  0

Ces variables sont positives ou nulles. On dit qu’elles sont soumises à des contraintes de signe.

c) La fonction économique
C’est une fonction linéaire que l’on peut rendre maximale. On la note souvent Z.
Z = 7X + 5Y
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Le programme linéaire se formule ainsi :


Max Z = 7X + 5Y
 X  300
Y  400

s/c  X  Y  500
2 X  Y  700

 X  0; Y  0

Une telle écriture est appelée programme linéaire. Elle pose ici le problème de la recherche du
maximum d’une fonction linéaire sous les contraintes linéaires.
On dit qu’une contrainte est linéaire lorsqu’elle exprime au moyen d’une inégalité ou d’une égalité
dont le premier membre est une forme linéaire de variables et le second membre un nombre réel.

Le but de la programmation linéaire est donc de résoudre ce type de problème. Pour ce faire, on a
recourt à deux méthodes : la méthode graphique et la méthode du simplexe encore appelée
méthode de Dantzig.

4 Présentation théorique
Un programme linéaire consiste à trouver le maximum ou le minimum d’une forme linéaire dite
« fonction économique » en satisfaisant certaines équations ou inéquations dites contraintes. En
langage mathématique, on décrira de tels programmes de la manière suivante :
Considérons un programme linéaire constitué :

 de n variables de décision non négatives x1, x2,… ,xn ;

 d’une fonction économique à optimiser : MaxZ  c1x1  c2 x2  ...  cn xn , où les coefficients


cj (j = 1, 2, …, n) sont des nombres réels et peuvent représenter par exemple les profits ou
les coûts par unité de production des n biens représentés par des variables xi.
 de m inéquations et/ou équations représentant les contraintes que doivent vérifiées les n
variables et formant un système qui se présente comme suit :
a11x1  a12 x2  ...  a1n xn , ,  b1
a x  a x  ...  a x , ,  b
 21 1 22 2 2n n 2

                  
a m1 x1  a m 2 x2  ...  a mn xn , ,  bm

Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

5 Différentes formes de présentation d’un programme linéaire


5.1 Forme canonique
On va distinguer les problèmes de maximisation, c'est-à-dire un problème dont la fonction
économique est à maximiser, les contraintes sont de type ≤ et, le programme se présente comme
suit :
MaxZ  c1 x1  c2 x2  ...  cn xn
a11x1  a12 x2  ...  a1n xn  b1
a x  a x  ...  a x  b
 21 1 22 2 2n n 2

s / c                   
a x  a x  ...  a x  b
 m1 1 m2 2 mn n m

 x1  0, x2  0,...., xn  0

Pour un problème de minimisation, les contraintes sont de type ≥ et, le programme se présente
comme suit :
MinZ  c1 x1  c2 x2  ...  cn xn
a11x1  a12 x2  ...  a1n xn  b1
a x  a x  ...  a x  b
 21 1 22 2 2n n 2

s / c                   
a x  a x  ...  a x  b
 m1 1 m2 2 mn n m

 x1  0, x2  0,...., xn  0

5.2 Forme matricielle


Les programmes ci-dessus peuvent être présentés sous forme matricielle de la manière suivante :
 x1 
x 
Max ( Min ) Z  c1 , c2 ,..., cn  2 
. 
 
 xn 
  a11a12 ...a1n  x1   b1 
  a a ...a    
  21 22 2 n  x 2   b2 
   .   ou   . 
            
  a m1a m 2 ...a mn  x n   bm 
 
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

5.3 Forme réduite


La forme matricielle peut être ramenée à une forme déduite comme suit :
a) Problème de maximisation b) Problème de minimisation
MaxZ  CX MinZ  CX
 AX  B  AX  B
s / c s / c
X  0 X  0
5.4 Forme standard
Tout programme mis sous forme standard se présente comme suit sous forme réduite :
Max(min) Z  CX
 AX  e  B
s / c
 X  0; e  0
Section II : La résolution graphique du programme linéaire
Le programme linéaire à deux variables peut être représenté dans le plan R  R rapporté à deux
axes. On peut suivre la procédure suivante :
- On trace les droites d’équation représentant les contraintes. Chaque inéquation est satisfaite dans
le demi-plan limité par la droite d’équation correspondant après avoir hachuré les parties du plan ne
respectant pas les contraintes, il reste une zone non hachurée qui représente l’ensemble des
solutions possibles ;
- L’optimum est à rechercher aux différents sommets de la zone non hachurée. Le maximum est
atteint au sommet qui a la plus grande valeur de la zone non hachurée et le minimum correspond au
sommet qui a la plus petite valeur.
Le graphique
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Le tableau de solutions
Points X Y Z = 7X + 5Y
0 0 0 Z0 = 0
A 0 400 ZA = 2 000
B 100 400 ZB = 2 700
C 200 300 ZC = 2 900
D 300 100 ZD = 2 600
E 300 0 ZE = 2 100

L’ouvrier doit fabriquer 200 modèles luxes et 300 modèles standards pour maximiser son profit à
2 900 F.

Section III : Le programme Dual


1 Présentation théorique
A tout programme linéaire appelé Primal correspond un programme linéaire appelé Dual. Le
programme Dual est donc obtenu à partir du programme Primal. En effet, si le programme primal
est :
MaxMin Z  CX
 AX  ou  B
s / c
X  0
Le programme Dual sera :
Min Max W  Y t B
Y t A  ou  t C
s / c
Y  0
Avec :
t
A = transposée de la matrice A des coefficients techniques
t
C = transposée de la matrice C du primal
t
B = transposée de la matrice B du primal
Y = matrice des variables du Dual. Elles sont associées aux contraintes du primal.
Autrement dit, à chaque contrainte du primal est associée une variable Duale.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

c1 
 
c2 
 
 t C  . 
. 
 
. 
c 
 n
 y1  b1 
   
 y2  b2 
   
Y  .  ; B  .  
.  . 
   
.  . 
y  b 
 n  m

Généralement les deux programmes utilisent les mêmes données et présentent les caractéristiques
qui sont données dans le tableau suivant :

PRIMAL DUAL
m contraintes m variables de décision
n variables de décision n contraintes
Contraintes de type ≤ ou ≥ Contraintes de type ≥ ou ≤
Problème max (ou min) Problème min (ou max)
Ecriture en ligne Ecriture en colonne

Exemple :
PRIMAL DUAL

MaxZ  1200 X  2000Y MinW  40 y1  16 y 2  10 y3


 X  4Y  40  y1  2 y 2  3 y3  1200
2 X  7Y  16 
 s / c 4 y1  7 y 2  y3  2000
s / c
3 X  Y  10  y  0; y ;0 y  0
 X  0; Y  0  1 2 3
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

2 Interprétation économique
Cette interprétation se fera à partir de l’exemple du cours suivant :

MaxZ  7 X  5Y
 X  300
Y  400

s / c  X  Y  500
2 X  Y  700

 X  0; Y  0

Ce programme Primal étant un problème de maximisation, le programme Dual sera un


problème de minimisation.
Le primal a 4 contraintes et deux variables de décision, le Dual aura 4 variables de décision et
deux contraintes. Ainsi, à chaque contrainte i sera associée une variable Duale yi. Les variables
de décision du Dual seront donc y1 , y 2 , y3 , y 4 . Les yi sont en francs.

Pour trouver le Dual de ce problème, on va supposer que si le menuisier décide de vendre les
facteurs entrant dans le processus de production au lieu de produire les deux types de modèles,
quels seront alors leurs prix respectifs ? C’est à dire y1 ?, y2 ?, y3 ?, y4 ?

Le menuiser cherche à minimiser le coût total d’acquisition de ces intrants à savoir :


W  300 y1  400 y2  500 y3  700 y4

Le menuisier ne pourra vendre ces intrants que si les prix proposés lui procurent un résultat au
moins égal à ce que lui rapporte la fabrication des deux types de modèles.
y1  0 y 2  y3  2 y 4  7
0 y1  y 2  y3  y 4  5
Le programme Dual sera donc le suivant :
MinW  300 y1  400 y2  500 y3  700 y4
 y1  0 y2  y3  2 y4  7

s / c 0 y1  y2  y3  y4  5
 y ;0 y ;0 y ;0 y  0
 1 2 3 4

3 Relation entre le programme Primal et le programme Dual


Le Primal et le Dual sont liés par des relations suivantes :
- si le Primal est un problème de maximisation, le Dual est un problème de minimisation et vice-
versa ;
- la matrice des coefficients de l’un est la transposée des coefficients de l’autre problème ;
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

- les coefficients de la fonction économique du primal sont les seconds membres des contraintes du
Dual ;
- les seconds membres des contraintes du primal sont les coefficients de la fonction économique du
Dual ;
- le sens des inégalités des contraintes dans le Dual est inversé sauf les contraintes de non
négativité qui sont valables dans le primal que dans le Dual.
- à l’optimum, la fonction économique du primal et celle du Dual ont la même valeur (Z = W) ;
- si, à l’optimum, une contrainte du primal n’est pas saturée, alors la variable Duale correspondante
est nulle ;
- si la valeur optimale d’une variable d’un programme linéaire n’est pas nulle, alors la contrainte
Duale correspondante est saturée pour la solution optimale ;
En définitive, le Dual du Dual n’est autre que le primal.

4 Résolution du programme Dual à partir de la solution du programme Primal


MinW  300 y1  400 y 2  500 y 3  700 y 4
 y1  0 y 2  y 3  2 y 4  7

s / c 0 y1  y 2  y 3  y 4  5
 y ;0 y ;0 y ;0 y  0
 1 2 3 4

Résoudre ce programme consiste à déterminer les valeurs de y1 , y 2 , y3 , y 4 . Pour y parvenir, nous


partirons de la solution optimale du Primal.
La solution optimale du primal est atteint pour X= 200 et Y = 300.

En remplaçant ces variables par leurs valeurs dans les contraintes du primal, on obtient :

200  300
200  300 300  400
300  400 
  

200  300  500 500  500
 700  700
2  200  300  700

On constate que les contraintes 3 et 4 sont saturées (le bois et le temps sont pleinement utilisées),
alors que les contraintes 1 et 2 ne le sont pas (il reste encore 100 modèles luxe et 100 modèles
standard).
Au niveau du Dual, les variables associées aux contraintes non saturées du primal sont nulles, c'est-
à-dire (y1 = 0 et y2 = 0).
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Le programme Dual devient :


MinW  500 y 3  700 y 4
 y3  2 y 4  7

s / c y3  y 4  5
 y ;0 y  0
 3 4

Les contraintes du Dual associées aux variables non nulles du primal étant saturées, pour déterminer
les valeurs de y3 , y 4 , il suffit tout simplement de résoudre le système d’équations suivant :

 y3  2 y 4  7

 y3  y 4  5

Après résolution du système, on obtient : y 3  3F , y 4  2 F

La solution optimale du programme Dual est donc :


y1  0, y2  0, y3  3F , y4  2F

W  3000  0  400  0  500  3  700  2  2900


W  2900
W  Z  2900 F

Section IV : La méthode du simplexe


La résolution du programme linéaire par la méthode graphique n’est valable que pour des
programmes à deux variables. Au-delà de deux variables, cette méthode est inapplicable. Pour cela,
on doit recourir à une autre méthode dite de simplexe, qui, elle, est applicable quelque soit le
nombre de variables.

1 La recherche d’un Maximum


Cette méthode de résolution du Programme Linéaire (PL) s’emploie dans le cas où les contraintes
sont des égalités. Il convient alors de transformer les contraintes de type inégalités en contraintes
d’égalités en introduisant de nouvelles variables appelées variables d’écart. La variable d’écart
mesure l’écart existant entre le premier et le deuxième membre de la contrainte. L’introduction des
variables d’écart transforme le programme en programme standard.

La méthode du simplexe prend pour point de départ une solution de base pour laquelle la fonction
économique est nulle.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

A chaque étape, on cherche à améliorer la solution de départ afin d’atteindre l’optimum. Il s’agit en
fait, à partir d’une solution de base, de rechercher par itération une meilleure solution jusqu’à ce que
l’on aboutisse à l’optimum.
Il faut donc s’assurer après chaque itération que l’on a atteinte ou non l’optimum. Si l’optimum
n’est pas atteint, on détermine une nouvelle itération, une solution de base meilleure que la
précédente et ainsi de suite.
Soit le programme linéaire sous forme canonique :
MaxZ  1000 X  1200Y
 X  Y  900
 X  2Y  1200

s/c 
14 X  6Y  14000
 X  0; Y  0

Le programme standard se présente:


MaxZ  1000 X  1200Y  0e1  0e2  0e3

 X  Y  e1  900
 X  2Y  e  1200
 2
s/c 
14 X  6Y  e3  14000
 X  0; Y  0; e1  0; e 2  0; e3  0

Après avoir mis le programme sous forme standard, on peut établir le tableau initial du simplexe
(T0)
Tableau T0
VHB X Y . . . R
VB
e1 1 1 1 0 0 900 L1
e2 1 2 0 1 0 1 200
L2
e3 14 6 0 0 1 14 000
L3
Z 1000 1200 0 0 0 0 LZ

La partie centrale du tableau donne la matrice des coefficients techniques. La colonne R représente
les valeurs du second membre, elle indique les valeurs attribuées aux variables situées dans la base.
La ligne Z donne les coefficients de la fonction économique exprimée seulement en fonction des
VHB. La solution de départ est égale à 0. En d’autres termes Z = 0.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

a) Première itération
- Sélection de la variable entrante
Selon le critère de sélection de Dantzig, on sélectionne la variable affectée du plus grand coefficient
positif. Il s’agit ici de 1200 : Y entre dans la base.
- Sélection de la variable sortante
On adjoint une colonne supplémentaire R’ représentant le rapport entre les valeurs respectives du
second membre R et les coefficients de la variable entrante. On retient le plus petit rapport positif :
e2 qui sort de la base, car le plus petit rapport positif ici c’est 600.
L’intersection de la colonne (variable entrante) et de la ligne (variable sortante) s’appelle le pivot :
c’est le coefficient de la variable entrante dans l’équation qui servira de base aux calculs. Ici le
pivot est 2.
Il faut arriver d’une part, à faire figurer Y avec le coefficient 1dans l’équation, d’autre part à
éliminer Y dans d’autres équations à partir de la première équation transformée.
Tableau T0
VHB X Y . . . R R’
VB
e1 1 1 1 0 0 900 900 L1

e2 1 2 0 1 0 1 200 600
L2
e3 14 6 0 0 1 1 4000 2 333
L3
Z 1000 1200 0 0 0 0
LZ

Lorsque l’on divise la ligne pivot par le pivot, la nouvelle ligne que l’on obtiendra sera qualifiée de
ligne opératoire.
Pour que les autres coefficients de la colonne s’annulent, il suffit de remplacer chaque ligne par une
combinaison linéaire d’elle-même avec la ligne opératoire.

On transforme ainsi la colonne du pivot en colonne unité. Pratiquement, cela revient à multiplier la
ligne opératoire par l’opposé des coefficients de la colonne opératoire.

La variable Y prend la place de la variable d’écart e2 dans la base et la ligne opératoire s’écrit :
Y 1 1 0 1 0 600 L’2
2 2
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Nous allons nommer cette ligne opératoire L’ 2 et elle servira de base de calculs pour la
transformation des lignes relatives à e1 (L1), e3 (L3), Z (LZ) du tableau T0, respectivement en, L’1,
L’3, et L’Z. Ce qui permettra d’obtenir le tableau T 1.
Ainsi, la ligne relative à e1 (L1) transformée deviendra L’1 : L’1 = L1 – L’2
L1 : 1 1 1 0 0 900
-L’2 : -1 0 0 -600

= L’1 : 0 1 0 300

La ligne relative à e3 c'est-à-dire L3 sera transformé en L’3 : L’3 = L3 - 6L’2


L3 : 14 6 0 0 1 14 000
-6L’2 : -3 -6 0 -3 0 -3 600
= L’3 : 11 0 0 -3 1 10 400
En ce qui concerne la ligne de la fonction économique, la même règle s’applique. Ainsi, L Z sera
transformée en L’Z par l’expression suivante :
L’Z = LZ - 1200L’2
LZ : 1000 1200 0 0 0 0
-1200L’2 : -600 -1200 0 -600 0 -720 000
= L’Z : 400 0 0 -600 0 -720 000
On obtient ainsi le tableau T1 suivant :
VHB X . . e2 . R R’
VB
e1 1 0 1 1 0 300 600 L’1
2 2
Y 1 1 0 1 0 600 1200 L’2
2 2

e3 11 0 0 -3 1 10 400 945,45 L’3


Z 400 0 0 -600 0 -720 000 L’Z

Tous les coefficients de la ligne Z sur les variables hors base ne sont pas tous négatifs, la solution
donnée par ce tableau n’est pas optimale. Cette solution peut donc être améliorée, d’où la deuxième
itération.

b) Deuxième itération
- Variable entrante : X (400 est le coefficient le plus positif)
- Variable sortante : e1 (600 est le plus petit rapport positif des éléments de la colonne R’)
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

- Pivot :

- Ligne opératoire : L’’1 = 2L’1


La ligne opératoire servira de base de calculs pour déterminer par combinaison linéaire L’’2, L’’3,
L’’Z, afin d’obtenir le tableau T2.
L’’1 = 1 0 2 -1 0 600
1
L’’2 = L’2 - L’’1
2
L’2 : 1 0 0 600

1
- L’’1 : 0 -1 0 -300
2
= L’’2 : 0 1 -1 1 0 300

L’’3 = L’3 - 11L’’1


L’3 : 11 0 0 -3 1 10 400
-11L’’1 : -11 0 -22 11 0 -6600
= L’’3 : 0 0 -22 8 1 3800

L’’Z = L’Z - 400L’’1


L’Z : 400 0 0 -600 0 -720 000
-400L’’1 : -400 0 -800 400 0 -240 000
= L’’Z : 0 0 -800 -200 0 -960 000

D’où le tableau T2 suivant :


VHB . . e1 e2 . R
VB
X 1 0 2 -1 0 600 L’’1

Y 0 1 -1 1 0 300
L’’2
e3 0 0 -22 8 1 3800 L’’3
Z 0 0 -800 -200 0 -960 000 L’’Z

Tous les coefficients de la ligne Z sur les variables hors base sont négatifs ou nuls. L’algorithme
s’arrête. On a donc atteint la solution optimale. De plus, cette solution est unique puisque aucun
coefficient de la ligne Z sur les variables hors base n’est nul.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

La deuxième itération conduit donc à la solution optimale :



VB : X *  600;Y *  300; e*3  3800 
VHB : e *1  0;e *2  0 
Les variables de décision sont X et Y. D’où le programme optimal de production :
X* = 600
Y* = 300
Z* = 960 000 (le profit total réalisé est de 960 000 francs)
La variable d’écart e3 = 3 800 signifie que 3 800 unités n’ont pas été utilisées.
Les variables d’écart e1 = 0, e2 = 0 signifient que toutes ces quantités ont été utilisées. Autrement
dit il y a eu pleine utilisation ou plein emploi de ces facteurs.

Remarque : le dernier tableau du simplexe donne non seulement la solution optimale du primal
mais aussi celle du Dual.

Le programme Dual associé à ce problème est :


MinW  900 x1  1200 x2  14000 x3

 x1  x 2  14 x3  1000

s / c  x1  2 x 2  6 x3  1200
 x  0; x  0; x  0
 1 2 3

Pour en déduire la solution optimale du Dual, il suffit de lire sur la ligne Z qui correspond à la
dernière ligne du tableau optimal. Les coefficients des variables d’écart représentent en fait les
valeurs des variables duales à l’optimum.
En effet, le coefficient de la variable d’écart e1 est égal à -800.
Or e1 est la variable d’écart de la première contrainte du primal à laquelle est associée la première
variable du dual x1. D’où x1 = 800.
De la même manière, le coefficient de la variable d’écart e2 est égal à -200.
e2 est la variable d’écart de la deuxième contrainte du primal à laquelle est associée la deuxième
variable du dual x2. D’où x2 = 200.
Par contre la variable d’écart e3 est dans la base avec une valeur positive et différente de zéro ; la
variable duale correspondante sera nulle, c'est-à-dire x3 = 0.
La valeur de W à l’optimum est :
W  900  800  1200  200  14000  0  960000
La solution optimale du Dual est donc :
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

x1 = 800
x2 = 200
x3 = 0
A l’optimum on a W = Z= 960 000

Exemple d’application
MaxZ  50 X  30Y
2 X  Y  200

 X  9 Y  540
 2
4 X  3Y  480

 X  0; Y  0

Travail à faire :
Utiliser la méthode du simplexe pour résoudre ce programme

2 La recherche d’un minimum


Tous les problèmes qu’on a traité jusque là étaient de type : maximiser une fonction linéaire sous
les contraintes de type inférieur ou égal. Or dans beaucoup de problèmes, on peut trouver des
contraintes de type supérieur ou égal et/ou de type égal, ainsi que des problèmes où on a à
minimiser au lieu de maximiser.
D’une manière générale, la résolution des problèmes de minimisation fait appel à l’introduction des
variables artificielles. En effet, lorsqu’on a des contraintes de type ≥ , les variables d’écart ont un
signe négatif et les contraintes de non négativité ne sont plus respectées. Ce qui ne permet pas
d’avoir une solution de base initiale réalisable. Pour ce faire, on utilise donc des variables
artificielles. Une variable artificielle est une variable muette qu’on ajoute au premier membre d’une
égalité ou d’une inégalité de type ≥ afin d’obtenir une solution de base initiale réalisable.
L’introduction de ces variables se fait comme suit :
 bi  ei  ai  bi
 bi   ai  bi
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

a La méthode du BIG M
Cette méthode permet de tenir compte des variables artificielles, lorsqu’on a à résoudre des
programmes ayant des contraintes de type = ou ≥. L’introduction des variables artificielles
recommande qu’on leur affecte un coefficient positif de valeur très élevée dans la fonction
économique (-M pour un problème de maximisation, +M pour un problème de minimisation). A
l’optimum, les variables artificielles sont hors base et si celles-ci sont dans la base avec une valeur
non nulle, le programme n’a pas de solution.

b Exemple d’un problème de minimisation


Soit à résoudre le programme linéaire suivant sous sa forme canonique :
MinZ  3x1  10 x 2
5 x1  6 x 2  10

s / c 2 x1  7 x 2  14
 x  0; x  0
 1 2

1) Forme standard
MinZ  3x1  10 x 2  0e1  0e2
5 x1  6 x 2  e1  10

s / c 2 x1  7 x 2  e2  14
 x  0; x  0; e  0; e  0
 1 2 1 2

2) Solution de base initiale et tableau initial du simplexe


x1  0; x 2  0
e1  10
e2  14
Cette solution n’est pas une solution de base réalisable de départ car e1 et e2 sont négatives. Elles ne
respectent donc pas les contraintes de non négativité. On doit par conséquent introduire un autre
type de variables appelées variables artificielles au niveau de chaque contrainte. Dans la fonction
économique, les variables artificielles doivent être affectées d’un grand coefficient positif M (car
problème de minimisation) pour être sûr qu’elles auront à l’optimum une valeur nulle.
On obtient ainsi le programme suivant :
MinZ  3x1  10 x 2  0e1  0e2  Ma1  Ma 2
5 x1  6 x 2  e1  a1  10

s / c 2 x1  7 x 2  e2  a 2  14
 x  0; x  0; e  0; e  0; a  0; a  0
 1 2 1 2 1 2

Une solution de base admissible de départ consiste à prendre les variables artificielles pour des
variables dans la base, et les autres sont des variables hors base :
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

- les variables hors base sont : x1 = 0 ; x2 = 0 ; e1 = 0 ; e2 = 0


- les variables dans la base sont : a1 = 10 ; a2 = 14
- la fonction économique dans ce cas prend la valeur Z = 24M

On peut ainsi construire le tableau initial du simplexe dont la structure est identique à celle d’un
tableau relatif au problème de maximisation avec quelques éléments supplémentaires.
On le construit de la manière suivante :
Tableau initial (T0) :
CB VHB x1 x2 e1 e2 . . R R’
VB
M a1 5 6 -1 0 1 0 10 L1
L2
M a2 2 7 0 -1 0 1 14 2
Cj 3 10 0 0 M M 0
Zj 7M 13M -M -M M M 24M
LZ
∆= Cj-Zj 3-7M 10-13M M M 0 0 -
L∆

La ligne Cj donne les coefficients de la fonction économique en fonction de toutes les variables ; la
ligne indique l’optimalité et la sélection de la variable entrante. La colonne à gauche
(CB) donne les coefficients des variables dans la base.

3) Première itération
- Sélection de la variable entrante
L’objectif visé est la recherche d’un minimum ainsi la variable entrante est celle qui a le plus grand
coefficient négatif, c'est-à-dire x2. En fait il suffit de regarder le coefficient de M car M est très
grand ; le coefficient indépendant de M n’intervient que dans le cas où plusieurs variables ont le
même coefficient pour M.

- Sélection de la variable sortante


Le critère de sélection de la variable sortante, dans le cas de la recherche d’un minimum, est
identique à celui qui intervient dans celle d’un maximum : « on sélectionne la variable dans la base
correspondant au plus petit rapport positif des seconds membres aux éléments de la colonne de la
variable entrante ». Ici, il s’agit de la variable a1.
En récapitulatif on a :
- Variable entrante : x2 (a le plus grand coefficient négatif -13M)
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

- Variable sortante : a1 ( est le plus petit rapport positif des éléments de R’)

- Pivot : (l’intersection entre la colonne de la variable entrante et de la ligne variable sortante)


- Ligne opératoire : L’1 =

L’1 :

L’2 = L2 - 7L’1
L2 : 7 0 0 1 14
- 7L’1 : -7 0 0

= L’’2 : 0 -1 1

D’où le tableau (T1) :

CB VHB x1 . e1 e2 a1 . R R’
VB
10 x2 1 0 0 -10
L’1
M a2 0 -1 1 2
L’2

Cj 3 10 0 0 M M 0
Zj 10 - M
M L’Z

∆= Cj-Zj 0 0
L’∆

La solution donnée par ce tableau n’est pas optimale car tous les Cj-Zj ne sont pas positifs. On passe
à la deuxième itération.

4) Deuxième itération
- Variable entrante : e1 (a le plus grand coefficient négatif )

- Variable sortante : a2 (2 est le plus petit rapport positif des éléments de R’)
- Pivot : (l’intersection entre la colonne de la variable entrante et de la ligne variable sortante)

- Ligne opératoire : L’’2 =

L’’2 :

L’’1 = L’1+ L’’2


Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

L’1 : 0 0

+ : 0

= L’’1: 1 0 0 2

D’où le tableau (T2):


CB VHB x1 . . e2 a1 a2 R
VB
10 x2 1

0 e1 0

Cj 3 10 0 0 M M 0
Zj 10

∆= Cj-Zj 0 0

Dans ce dernier tableau, on constate qu’au niveau de ∆ tous les coefficients sont positifs ou nuls, ce
qui indique que le tableau 2 est optimal.
D’où la solution optimale est :

VB : X 2  2;e*1  2
*

VHB : x *1  0;e *2  0; a *1  0; a *2  0 
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Chapitre II : La théorie des graphes

Les graphes permettent de formaliser un certain nombre de problèmes qui se posent en


économie et en gestion. On peut citer par exemple :
- les problèmes de transport c'est-à-dire le transport d’une production des différentes
usines vers les différents lieux de distribution ;
- les problèmes d’ordonnancement c'est-à-dire le classement des différentes tâches
par niveau d’évolution.

Section I : Définition
1 Le graphe
Soit un ensemble X appelé ensemble des sommets ; X est défini tel que :
X = {x1, x2, x3……………….. xn }.
Soit б une correspondance qui a chaque élément x de X fait correspondre une partie de X.
Le couple (X, б) définit un graphe.
Exemple : X = {x1, x2, x3……………….. x6}

X б (x)
x1 X2, x3
X2 X4
X3 X2, x4
X4 X5, x6
X5 X6
X6 -

On appellera arc du graphe toute courbe ordonnée de sommets (x i, xj) tel que
xj  б (x).
xi est l’origine de l’arc, xj son extrémité.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

2 La représentation d’un graphe


Un graphe peut être représenté par un ensemble de points relié entre eux par des flèches.
La représentation de l’exemple précédent est la suivante :

3 Le sommet
Un sommet représente un élément de X.
Un xj est dit “ suivant” de xi si xj est élément de б (x) c'est-à-dire s’il y a une flèche de xi
vers xj. On peut lire d’une autre manière : xi est appelé “précédent” de xj.
On désignera par S(x) l’ensemble des suivants de X et par P(x) l’ensemble des précédents
de X.
S(x) = б (x)
P(x) = б (x)-1
Exemple : le tableau à simple entrée qui pour tout x énumère les éléments de S(x) est
appelé dictionnaire de suivant.

X S(X)
x1 X2, x3
X2 X4
X3 X2, x4
X4 X5, x6
X5 X6
X6 -
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Le tableau à simple entrée qui pour tout élément de x énumère les éléments de P(x) est
appelé dictionnaire de précédent.

x P(x)
x1 -
X2 x1, X3
X3 x1
X4 X2, X3
X5 X4
X6 X4, X5

4 La matrice d’un graphe


Soit un graphe dont les éléments sont désignés par les numéros de 1 à n. La matrice de
ce graphe est la matrice carrée d’ordre n dont on a n lignes et n colonnes. Par conséquent
les éléments aij sont égaux à :
- 1 si le sommet j appartient à S(i) ;
- 0 si le sommet j n’appartient pas à S(i).

Exemple : soit le graphe G défini par le dictionnaire de suivant.


x S(x)
1 2
2 3, 5
3 4, 5
4 2
5 4
6 1, 3
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Déterminons la matrice de ce graphe


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

La lecture ligne par ligne de la matrice donne le dictionnaire de suivants ;


La lecture colonne par colonne de celle-ci donne le dictionnaire de précédents.

x P(x)
1 6
2 1, 4
3 2, 6
4 3, 5
5 2, 3
6 -

Le graphe
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Section II : Le chemin d’un graphe


On appelle chemin d’un graphe toute suite ordonnée de sommets reliés par des arcs
telle que l’extrémité d’un arc correspond à l’origine de l’arc suivant et ainsi de suite.
Sur le graphe précédent, (4, 2, 3, 5) est un chemin.
Un circuit est un chemin (x1, x2, x3……………….. xn) tel que x1= xn
Exemple : (2, 5, 4, 2) est un circuit.
(2, 3, 5, 4, 2), (2, 5, 4, 2, 3, 5, 4, 2) Sont des circuits.

Section III : Détermination des niveaux des sommets d’un grapheà partir du
dictionnaire de précédent

Pour déterminer les niveaux des sommets d’un graphe, on procède de la manière
suivante :
- D’abord, on regarde dans le dictionnaire des précédents, les sommets qui n’ont pas de
précédents, c'est-à-dire, les sommets pour lesquels P(x) est vide. Ces sommets sont de
niveau 0 et font partie de l’ensemble des sommets sans précédents noté N0.
- Ensuite, on barre tous les sommets de niveau 0 partout où ils figurent dans la colonne
P(x) du dictionnaire de précédents. Si une ligne a tous ses sommets barrés, le sommet
correspondant est de niveau 1 ou si des lignes ont tous leurs sommets barrés, les
sommets correspondant sont de niveau 1.
- Enfin, on réitère la procédure, en augmentant de 1 la valeur des niveaux jusqu’à ce que
tous les sommets soient barrés.
Exemple : soit le dictionnaire de suivant défini par :

X S(x)
1 2, 3, 5
2 3, 6, 7
3 4, 6, 7
4 6
5 4
6 -
7 -
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Les niveaux du graphe sont :


N0 = {1} N1 = {2, 5} N2 = {3} N3 = {4, 7} N4 = {6}.

La détermination des niveaux permet la disposition et la représentation suivante :

Les niveaux permettent une représentation plus simple et lisible du graphe ; les sommets
étant disposés de la gauche vers la droite par ordre croissant de niveaux, la recherche du
chemin optimal se fait plus facilement sur un graphe ordonné par niveaux.

Exemple d’application 1
Soit à rechercher le chemin le plus court entre les sommets 6 et 7 défini par la matrice ci-
dessous.
La valeur dans une case donne la longueur de l’arc ayant i pour origine et j pour
extrémité.
TAF :
1) Déterminer le dictionnaire de suivants et de précédents ;
2) Déterminer les niveaux de sommet ;
3) représenter le graphe ordonné par niveaux ;
4) Rechercher le chemin le plus court entre 6 et 7.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

1 2 3 4 5 6 7 8 9 10
1
2 2 5
3 10 6
4 9 2
5 3 4
6 3 6
7 2
8 3 6
9 5
10 4 8

Solution
1) déterminons le dictionnaire de suivants et de précédents

X S(X) P(X)
1 - 7, 8
2 4, 10 5
3 8, 9 6
4 7, 8 2, 10
5 2, 6 -
6 3, 10 5
7 1 4, 8
8 1, 7 3, 4, 9, 10
9 8 3
10 4, 8 2, 6

2) Déterminons les niveaux des sommets


N0 = {5} N1 = {2, 6} N2 = {3, 10} N3 = {4, 9} N4 = {8} N5 = {7} N6 = {1}
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

3) représentons le graphe ordonné par niveaux

4) Le chemin le plus court entre 6 et 7


(6, 3, 8, 7) = 3+10+6 = 19
(6, 3, 9, 8, 7) = 3+6+5+6 = 20
(6, 10, 4, 7) = 6+4+9 = 19
(6, 10, 4, 8, 7) = 6+4+2+6 = 18
(6, 10, 8, 7) = 6+8+6 = 20

Conclusion : Le chemin le plus court entre 6 et 7 est (6, 10, 4, 8, 7) et sa longueur est
18.

Exemple d’application 2 : une société de la place connaît une croissance importante et


régulière créant de gros besoin en locaux de production et en aire de stockage. Il en
résulte une importante dispersion géographique des différents bâtiments de l’entreprise.
La matrice ci-dessous indique le temps en minutes que mettent les navettes des différents
points appelés A B C………J
A B C D E F G H I J
A 18 10 15
B 12
C 5 14
D 8
E 7 9 13 14
F 5 6
G 4
H 2
I 6
J
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

1) Etablir les dictionnaires de suivant et de précédent ;


2) Représenter le problème sous forme de graphe ordonné en niveau ;
3) Quel est le chemin que doit emprunter un employé désirant se rendre du point A au
point J en un temps minimum ? Quel est ce temps ?
Solution :
1) Les dictionnaires de suivants et de précédents

x S(x) P(x)
A B, D, E -
B E A, F
C H, J E
D E A;F
E C, G, H, I A, B, D
F B, D -
G I E
H J C, E
I J E, G
J - C, H, I

Les niveaux des sommets:


N0 = {A, F} N1 = {B, D} N2 = {E} N3 = {C, G} N4 = {H, I} N5 = {J}
2) La représentation du problème sous forme de graphe ordonné en niveau

A B E C H J = 44 A E C H J = 29 A D E C H J = 32
ABECJ = 51 AECJ = 36 ADECJ = 39
ABEHJ = 45 AEHJ = 30 ADEHJ = 33
ABEIJ = 50 AEIJ = 35 ADEIJ = 38
A B E G I J = 49 AEGIJ = 34 A D E G I J = 37
4) Le chemin à emprunter par l’employé est : A E C H J et le temps mis pour le trajet
est de 29 minutes.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Chapitre III : Les problèmes d’ordonnancement

Les problèmes d’ordonnancement concernent la planification des grands projets ou la


réalisation des grands ensembles complexes nécessitant une multitude d’opérations ou de
tâches, soumises à des contraintes, et qui mettent en jeu des capitaux, de matériaux et
des hommes de compétences diverses.

Section I : La définition de l’ordonnancement


Etablir l’ordonnancement ou le programme d’un projet c’est :
- Déterminer l’ordre et le calendrier d’exécution des différentes tâches avec les diverses
contraintes ;
- Contrôler le déroulement des travaux et prévoir la coordination entre différentes
opérations pour déceler au temps opportun les retards possibles.
Le but de l’ordonnancement est d’ordonner dans le temps un ensemble d’opérations ou de
tâches contribuant à la réalisation d’un même projet, dans le souci de gagner du temps
dans sa mise en œuvre. Les projets sont donc constitués de nombreuses opérations qui
sont liées entre elles par des relations temporelles. Le déroulement de ces opérations doit
respecter un ensemble de contraintes qui peuvent être :
- les contraintes de temps : certains délais sont à respecter lors de l’exécution des tâches ;
- les contraintes de non simultanéité : certaines tâches ne peuvent être réalisées en même
temps ;
- les contraintes de succession : certaines tâches ne peuvent être exécutées avant
d’autres.
Exemple : soit l’ordonnancement d’un projet
Temps 1 2 3 4 5 6 7 8 9 10
Tâches
A
B
C
D
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Représentons l’ordonnancement de ce projet par un diagramme de Gantt :

Les durées d’exécution sont représentées par des traits épais(3 unités de temps pour la
tâche C par exemple). La position des traits indique l’ordre d’exécution des tâches. En
effet, les contraintes de succession se lisent comme suit : les tâches B et C succèdent à
A ; la tâche D succède à B.

Exemple d’application : on doit exécuter 7 tâches A B C D E F G soumises aux


contraintes de successions rapportées dans le tableau ci-dessous.
Etablir le diagramme de Gantt pour cet ordonnancement.

Tâches Durées P(X)


A 6 -
B 3 -
C 6 -
D 2 B
E 4 B
F 3 D, A
G 1 F, E, C
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Représentons le diagramme de Gantt de cet ordonnancement

Section II : Le positionnement du problème


Les opérations mises en jeu dans la construction d’un ensemble hydroélectrique sont les
suivantes :
A- La construction des voies d’accès ;
B- Les travaux de terrassement ;
C- La construction des bâtiments administratifs ;
D- La commande du matériel électrique ;
E- La construction de la centrale ;
F- La construction du barrage ;
G- Installation des galeries et conduite forcée ;
H- Le montage des machines ;
I- Essai de fonctionnement.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Les données du problème peuvent être formalisées par le tableau suivant :


Opérations Durées (mois) Opérations pré -requises
A 4 -
B 6 A
C 4 -
D 12 -
E 10 B, C, D
F 24 B, C
G 7 A
H 10 E, G
I 3 F, H

Dans la colonne opérations pré-requises figurent les opérations qui doivent être achevées
pour que puisse commencer l’opération correspondant à la ligne.
Pour résoudre les problèmes d’ordonnancement, deux méthodes sont classiquement
utilisées : la méthode des Potentiels Metra (MPM) d’origine française et la méthode
Programm Evaluation and Research Task (PERT) de conception américaine. Toutes les
deux utilisent des graphes pour résoudre le problème.

Section III : La méthode MPM


1 Le principe de la représentation
- un sommet correspond à une tâche ;
- un arc définit une relation ;
- la longueur de l’arc définit le temps minimum séparant deux tâches successives ;
- la longueur de l’arc est égale à la durée de la tâche origine ;
- chaque sommet du graphe est représenté par un rectangle.

Exemple :
A 4 mois B

Ce graphe a pour signification suivante : A doit précéder B, entre le début de A et le début


de B il doit s’écouler au minimum 4 mois.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

2 La construction du graphe
Les tâches et les contraintes étant définies, le tableau qui donne la liste des opérations
pré-requises constitue au sens de la théorie des graphes le dictionnaire de précédents. On
peut donc selon la procédure ordonner un tel graphe par niveaux.
N0 = {A, C, D} N1 = {B, G} N2 = {E, F} N3 = {H} N4 = {I}

Pour construire les graphes selon la méthode MPM, les sommets seront placés de la
gauche vers la droite en fonction de leur niveau. Chaque sommet sera représenté par un
rectangle où figurent les dates au plus tôt et les dates au plus tard de la tâche.

tx tx*
x

x = désigne le nom de la tâche


tx = la date au plus tôt de la tâche x
tx*= la date au plus tard de la tâche x

Le dictionnaire de suivant se présente ainsi :

x Sx
A B, G
B E, F
C E, F
D E
E H
F I
G H
H I
I -
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

3 La détermination de la date au plus tôt


La date au plus tôt signifie la date la plus proche à laquelle la tâche peut commencer
compte tenu de sa date de début et de la durée d’exécution prévue.
dx désignera la longueur des arcs partant du sommet x.
Pour les tâches de niveau 0 (N0), on pose tx = 0 ce qui signifie que ces tâches peuvent
commencer immédiatement.
Pour les autres tâches, on pose tx = longueur du chemin le plus long conduisant d’un
sommet de niveau 0 à ce sommet x.

Exemple : tB = tA + dA or tA = 0 d’où tB= tA + dA = 0 + 4 = 4  tB = 4


tA = tC = t D = 0
tB = tA + d A = 0 + 4 = 4
tG = tA + d A = 0 + 4 = 4
tF = tB + dB = 4 + 6 = 10 Donc tF = 10
tF = tC + d C = 0 + 4 = 4
tE = tB + dB = 4 + 6 = 10
tE =tC + dC = 0 + 4 = 4
tE =tD + dD = 0 + 12 = 12 Donc tE = 12
tH =tG + dG = 4 + 7 = 11
tH =tE + dE = 12 + 10 = 22 Donc tH = 22
tI =tH + dH = 22 + 10 = 32
tI =tF + dF = 10 + 24 = 34 Donc tI = 34
tZ =tI + dI = 34 + 3 = 37

On place une tâche supplémentaire Z (ou tâche fin) relié à tous les sommets qui n’ont pas
de suivant. Celle-ci nous permettra de dater la fin des travaux. t Z est la date à laquelle
l’ensemble des travaux peuvent s’achever au plus tôt (durée minimale).
L’ensemble des arcs ayant contribué à la détermination de t Z constitue le chemin critique.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

4 La détermination de la date au plus tard


La date au plus tard signifie la date la plus lointaine à laquelle la tâche peut commencer
sans retarder la fin du projet.
Il s’agit de déterminer pour chaque tâche x une date de début au plus tard t x* tel que tz ne
soit pas retardé. La procédure est la suivante :
- on pose tZ* = tZ
- soit x un sommet dont tous les sommets suivants (y) sont marqués (par sommet
marqué, il faut comprendre que ty*a déjà été déterminé).
On pose : tx*= Min { ty*- dx } où y є S(x)
Exemple :
tZ*=tZ = 37
tI*=tZ - dI = 37 - 3 = 34
tH*=tI*- dH = 34 - 10 = 24
tF*= tI*- dF = 34 - 24 = 10
tE*=tH*- dE =24 - 10 = 14
tB*= tF*- dB =10 - 6 = 4
tB*= tE*- dB =14 - 6 = 8 Donc tB*= 4
tG*=tH*- dG = 24 - 7 = 17
tA*= tB*- dA = 4 - 4 = 0
tA*=tG*- dA =17 - 4 = 13 Donc tA*= 0
tC*= tF*- dC =10 - 4 = 6
tC*= tE*- dC =14 - 4 = 10 Donc tC*= 6
tD*= tE*- dD = 14 - 12 = 2

Toute tâche qui ne peut être retardée sans affecter la date de fin de projet est une tâche
critique. Ce sont les tâches critiques qui constituent le chemin critique.

En effet, le chemin A B F I Z est un chemin critique. Dans un graphe ordonné par


niveaux, il peut y avoir plusieurs chemins critiques. Le chemin critique est un chemin de
valeur maximale (durée maximale du début à la fin des travaux).
Le chemin critique peut évoluer si toutefois certaines tâches sont retardés.
Si votre projet doit absolument se terminer dans les délais importants, vous devez prêter
attention aux tâches du chemin critique ainsi qu’aux ressources qui leur sont affectées.
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

5 Calcul des marges


a La marge totale
La marge totale est le retard maximum que l’on peut prendre dans la mise en route d’une
tâche sans remettre en cause les dates au plus tard des tâches suivantes (donc sans
retarder la fin des travaux). Pour une tâche x, sa marge totale est donnée par l’expression
suivante :
MT x   t x*  t x

b La marge libre
La marge libre est le retard maximum que l’on peut prendre dans la mise en route d’une
tache sans remettre en cause les dates au plus tôt des tâches suivantes. Pour une tâche x,
sa marge libre est donnée par l’expression suivante :
M L x   Mint y  t x  d x 

Exemple d’application :
Un groupe d’experts veut installer un cabinet de prestation de service comptable
informatique. Les différentes tâches sont présentées dans le tableau suivant :
Code des tâches Nombre de Tâches
jours antérieures
A : Information des commerciaux 20 -
B : Embauche d’un technicien 30 -
C : Formation du technicien 3 B
D : Formation des commerciaux 10 A;C
E : Aménagement de la salle 2 A
F : Commande et livraison du mobilier 5 E
G : Livraison des ordinateurs et des 1 F
imprimantes
H : Installation des matériels 1 G;D
I : Installation du logiciel 1 H
J : Tests et mise en route 2 I

Travail à faire :
1) Déterminer les différents niveaux ;
2) représenter le graphe par la méthode MPM ;
3) Calculer les marges totales et marges libres (utiliser un tableau) ;
4) Indiquer le chemin critique et la durée totale d’exécution du projet.
Section IV : La méthode PERT
La méthode PERT a pour but essentiel de mettre en évidence les liaisons qui existent
entre les tâches. Elle est un instrument de définition et de coordination des services
dirigeants, des actions à accomplir pour mener à bien une entreprise dans les délais
convenables.

1 Le principe de la représentation
A chaque tâche correspond un arc du graphe.
Chaque sommet du graphe est une étape signifiant :
- toutes les tâches qui arrivent sont terminées ;
- toutes les tâches qui partent peuvent commencer.
Exemple : soit la représentation suivante :

A(2)

C(3)
B(4)

D(1)

Elle signifie que les tâches A et B sont terminées car ce sont des arcs qui arrivent par
rapport au sommet. Par contre, les tâches C et D peuvent commencer car ce sont
des arcs qui partent par rapport au sommet. Les valeurs entre parenthèses
correspondent respectivement aux durées des tâches.

Exemple : Faites la représentation suivante : les tâches A et B précèdent C et la


tâche B précède D. Avec A pour une durée de 2 mois, B 4 mois, C 3 mois et D 1
mois.
On a la représentation suivante :

43
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Cette représentation n’est pas correcte car elle implique que A précède D, ce qui
n’est pas juste. Il convient d’introduire une tâche fictive pour avoir la bonne
représentation.

2 La construction du graphe PERT


La détermination des niveaux ne correspond pas à la formulation PERT puisque les
niveaux correspondent à des sommets alors que les tâches sont représentées par
des arcs. Chaque sommet sera représenté par un cercle de type :

Où x désigne le numéro de l’étape (celle-ci n’est pas une donnée initiale du problème
mais résulte de la construction du graphe PERT).
tx désigne la date au plus tôt de l’étape x
tx*désigne la date au plus tard de l’étape x.

On ajoute un sommet initial d’où partent toutes les tâches dont la mise en route
n’est soumise à aucune contrainte d’antériorité et un sommet final auquel
aboutissent toutes les tâches n’ayant pas de suivant.

Ainsi, pour construire le graphe PERT, on tient compte des principes de construction
c'est-à-dire le respect des contraintes d’antériorités. Il n’y a véritablement pas une
démarche spécifique pour construire le graphe PERT, on procède généralement par
tâtonnement en collant les graphes partiels.

44
Cours de Recherche Opérationnelle: Master 1 en EAI & RIT

Reprenons l’exemple précédent du projet de construction d’un ensemble


hydroélectrique pour construire le graphe PERT.

Le chemin critique est : 1-2-3-6-7 ou A B F I Z et sa durée d’exécution est de 37


mois.

45

Vous aimerez peut-être aussi