Introduction à la recherche opérationnelle
Introduction à la recherche opérationnelle
2. Contenu du cours
3. Bibliographie
1) Yves Nobert, Roch Ouellet, Régis Parent, la recherche opérationnelle 3 ème
édition, Guëtan Morin, éditeur.
2) GRACEM, mathématiques appliquées à la gestion, seconde édition tome 1.
3) Robert Faure, Bernard Lemaire, Christophe Picouleau, précis de recherche
opérationnelle (méthodes et exercices d’application), 5ème édition, Dunod, Paris
2000.
4) J.F. Phélizon, méthodes et modèles de la recherche opérationnelle,
Economica, 1998.
5) [Link]: solveur,
6) [Link]
PROGRAMME
Chapitre I : Rappel d’algèbre linéaire, introduction et définition
Chapitre II : La programmation linéaire
I. Définition et exemple
II. Formulation mathématique ou modèle mathématique des programmes
linéaires
III. Résolution des programmes linéaires
A) La méthode graphique
B) La méthode algébrique : méthode de simplexe
C) Complément sur l’algorithme du simplexe :
a) la méthode en deux phases
b)la méthode du grand «M» ou méthode des pénalités
IV. La dualité des programmes linéaires
V. Le dual du simplexe
VI. L’analyse post-optimale
Chapitre III : Le problème de transport
I. Introduction
II. le problème classique de transport
Chapitre IV : Les problèmes d’ordonnancement
Bibliographie
1) Yves Nobert, Roch Ouellet, Régis Parent, la recherche opérationnelle 3 ème
édition, Guëtan Morin, éditeur
2) GRACEM mathématiques appliquées à la gestion, seconde édition tome
1
3) [Link] : solveur
Chapitre I : Rappel d’algèbre linéaire, introduction et définition
I. Rappel d’algèbre linéaire : (voir les cahiers de la 2ème année)
II. Introduction et définition :
La modélisation et la résolution des problèmes de gestion à l’aide des méthodes
quantitatives et statistiques appuyé d’un support informatique sont utilisés dans
le milieu industriel, dans les institutions bancaires et organismes financiers, dans
les domaines hospitaliers, dans les sociétés d’assurance etc.
Les problèmes sont nombreux et variés et font souvent appel à divers techniques
qui relèvent d’un domaine qui a pris son essor au cours de la 2 ème guerre
mondiale pour résoudre divers problèmes de nature militaire et qui a été identifié
<< Recherche Opérationnelle>> ou RO, en anglais <<Operational research>>.
La RO est l’ensemble des techniques rationnelles d’analyse et de résolution de
problèmes concernant notamment l’activité économique et visant à élaborer les
décisions les plus efficaces pour aboutir au meilleur résultat. Elle permet de
déterminer une meilleure organisation des systèmes <<homme-machines>>
sous contrainte des ressources limités. Elle a pour but d’aider le gestionnaire à
déterminer ses politiques et ses gestions scientifiquement.
Dans la plupart des cas, les techniques utilisées sont : la programmation
linéaire, les problèmes de transport et d’affectation, les problèmes
d’ordonnancement, la gestion des stocks etc… qui font appel à des méthodes
mathématiques.
Les demandes d’application sont multiples et variées par exemple en économie,
en gestion, en stratégie politique et militaire.
Chapitre II : La programmation linéaire
I. Définition et exemple :
a) Définition : Parmi les techniques et modèles mathématiques utilisés en
RO, la programmation linéaire occupe une place prépondérante. Cette
méthode mathématique consiste à trouver la solution d’un problème
ramené à la recherche de l’optimum (maximum ou minimum) d’une
fonction linéaire des plusieurs variables (dite fonction économique)
liée par une série de contrainte elle-même estimée sous forme
d’équation ou d’inéquation linéaires.
b) Exemples :
1) Un problème de production : il s’agit de déterminer le plan
optimal de production ou de fabrication.
Une entreprise fabrique plusieurs produits, ce qui exige des
ressources particulières (matière première, machine, personnel) en
quantité limitée. Chaque produit rapporte un certain bénéfice connu
à l’entreprise. Quelles produits l’entreprise doit-elle fabriquer et
quelle quantité pour réaliser le bénéfice total le plus élevé ?
2) Un problème de transport : une entreprise dispose de plusieurs
dépôts contenant chacun un certain nombre de containers.
Différents magasins commande des containers. On connait le
coût de transport de chaque dépôt au magasin. Quelle est
l’organisation de livraison des containers pour minimiser le coût
total de transport ?
3) Un problème d’affectation : tâches doivent être affecté à
machines (une tâche par machine). Le coût d’exécution de chaque
tâche par chacune des machines est connu. Quelle est l’affectation
qui minimise le coût total.
II. Formulation mathématique ou modèle mathématique des
programmes linéaires :
Il s’agit de réaliser une transformation mathématique d’un problème d’ordre
économique technique ou financier.
Dans la plupart des exercices de programmation linéaire, la difficulté est de
mettre en équation le problème posé.
Il s’agit dans tous les cas de bien lire et d’analyser l’énoncé pour trouver :
1) Les variables de décision ou variables d’action ou variables d’activité
ou variables structurelles : ces variables désignent les quantités sur
lesquelles il faut agir, elles correspondent aux nombres ou quantités de
biens produits ou fabriqués (le nombre de biens produits ou de pièces
fabriquées, les nombres de messages diffusés par les différents types de
médias, le volume d’investissement dans les différents types
d’investissement par exemple les titres : action et obligation).
On les désigne généralement par
2) La fonction économique : elle est liée au bénéfice unitaire et au coût
unitaire de fabrication ou de production, ou au prix unitaire de vente des
produits ou pièces.
En économie :
Pour trouver la fonction économique on multiplie les bénéfices unitaires
ou coûts unitaires aux prix de vente unitaire par les variables de décisions
correspondantes et on les additionne.
La fonction économique est une fonction à maximiser ou à minimiser. On
a un problème de maximisation lorsqu’il s’agit de gagner c’est-à-dire
avoir un gain ou un revenu. On a un problème de minimisation lorsqu’il
s’agit de dépenser c’est-à-dire on a une dépense ou une perte.
3) Les contraintes : il y a deux (2) types de contraintes : les contraintes à
caractère économique et les contraintes de signes.
a. Les contraintes à caractère économique : ce sont les contraintes
structurelles ou fonctionnelles et doivent-être conformes à la lettre et à
l’esprit du problème. Elles sont liées aux ressources ou matières
premières (c’est-à-dire comment elles ont été utilisées) et aux
conditions de production ou de fabrication. A chaque ressource ou
matière première doit correspondre une contrainte à caractère
économique.
Pour construire une contrainte liée aux ressources on doit traduire
mathématiquement l’utilisation d’une ressource pour la fabrication ou
production des différents biens.
b. Les contraintes de signes : c’est la non négativité des variables de
décision c’est-à-dire qu’elles sont supérieures ou égales à zéro ).
On les appelle encore les contraintes naturelles.
Ainsi un problème de programmation linéaire comprend : une fonction
économique ou fonction objective et un système de contraintes (un système
d’équation ou d’inéquation linéaire).
NB : dans un problème de maximisation toutes les contraintes liées aux
ressources sont du genre inférieurs ou égales . Et dans un problème de
minimisation elles sont du genre supérieures ou égales .
Exemples
III. Résolution des programmes linéaires :
Il y a la méthode graphique et la méthode algébrique ou méthode du simplexe.
A. La méthode graphique :
NB : elle est valable uniquement pour les problèmes où il y a deux variables.
L’algorithme de la méthode : méthode du gradient
1er pas: construire le domaine des solutions admissibles (c’est-à-dire
résoudre le système d’inéquations) noté D.
Si D est vide (tout est hachuré ou barré), alors le problème n’a pas de
solution.
Si le domaine D n’est pas vide, alors
2ème pas : construire le vecteur normal ou vecteur gradient noté .
Il a pour coordonnées les coefficients des variables dans la fonction
économique: .
les X N(s )
min
les éléments correspondants de la colonne de Pivot
Remarque : ici, on ne tient pas compte du résultat de la division par un
nombre négatif et par zéro (0).
-
A(j s ) BN( s )
1 1
Aj ,
- X N( s ) B
( s ) 1 1
N XN
Oû (s) est le numéro du tableau et 1 veut dire le premier tableau.
5 x1 3x2 270,
7 x 8 x 800,
1 2
4 x1 6 x2 360,
x1 0, x2 0.
Solution initiale:
X 0 x1 0, x2 0, x3 270, x4 800, x5 360 ; F ( X 0 ) 0 .
Vérification si la solution est optimale tableau de simplexe
Premier tableau du simplexe:
C N(s ) A1 A2 A3 A4 A5
3 0 5 3 1 0 0 270
4 0 7 8 0 1 0 800
5 0 4 6 0 0 1 360
Z j C N( s ) A j 0 0 0 0 0 0
C N(s ) A1 A2 A3 A4 A5
3 0 3 0 1 0 1 90
2
4 0 5 0 0 1 4 320
3 3
2 1800 2 1 0 0 1 60
3 6
Z j C N( s ) A j 1200 1800 0 0 300 108
000
j Z j Cj -300 0 0 0 300
C N(s ) A1 A2 A3 A4 A5
1 1500 1 0 1 0 1 30
3 6
4 0 0 0 5 1 19 270
9 18
2 1800 0 1 2 0 5 40
9 18
Z j C N( s ) A j 1500 1800 100 0 250 117
000
j Z j Cj 0 0 100 0 250
La solution est optimale car tous les j sont positifs u nuls c’est-à-dire 0 .
Pour trouver la solution d’un tableau: les valeurs des variables de base sont
(s )
les valeurs des X N dans le tableau et toutes les variables hors base sont nulles:
La solution optimale est: x ( x1 , x2 , x3 , x4 , x4 ) (30, 40, 0, 270, 0) et
F ( x) 117 000 . Remarque: le problème initial dépendait de deux variables
d’oû la solution optimale réelle est: x ( x1 , x2 ) (30, 40) et
F ( x) 117 000 .
Les réponses aux questions possibles
1) L’interprétation économique des variables
Il y a deux types de variables: les variables de décision et les variables d’écart.
a) les variables de décision(les variables de décision désignent les quantités
ou les nombres de biens produits ou fabriqués). Ici elles sont: x1 30 le
nombre de fours de type F1 fabriqués et x2 40 le nombre de fours de type
F2 fabriqués.
b) les variables d’écart(les variables d’écart désignent les quantités de
ressources inutilisées ou les volumes d’heures inutilisées). Ici elles sont:
x3 0 le nombre d’heures inutilisées par les machines, x4 270 le nombre
d’heures inutilisées par les ouvriers, x5 0 le nombre d’heures inutilisées par
les techniciens.
2) La base optimale: ce sont les variables de base du dernier tableau ou tableau
x1
optimal: ici Bopt ou BN x4 .
x
2
3) La solution unique(il n’y a pas d’alternative): La solution est unique (pas
d’alternative) si tous les des variables hors base (VHB) dans le dernier tableau
ou tableau optimal sont différents de zéro. Ici la solution est unique car tous les
j des variables hors base dans le dernier tableau sont différents de
0 ( 3 100 0, 5 250 0) , d’où la société Pyrofour n’a pas une autre
alternative ou possibilité. Son plan de production ou de fabrication est unique
c’est-à-dire 30 fours de type F1 et 40 fours de type F2.
4) La matrice BN
(s )
et son inverse BN
( s ) 1
.
(s )
a) La matrice BN : les variables de base du dernier tableau étant
x1 , x4 et x2 , d’où pour écrire la matrice BN(s ) on prend la 1ère
colonne(correspondant à x1 ), la 4ème colonne(correspondant à x4 ) et la 2ème
colonne(correspondant à x2 ) du premier tableau de simplexe.
5 0 3
Ainsi BN
(s )
7 1 8 .
4 0 6
b) La matrice BN
( s ) 1
: les variables de base du premier tableau étant
x3 , x4 et x5 , d’où pour écrire la matrice BN( s ) on prend la 3ème
1
NB: En multipliant BN
(s )
par B
( s ) 1
N on trouve la matrice unité c’est-à-dire
1 0 0
BN( s )
BN( s )
1
0 1 0 .
0 0 1
Remarque: On peut aussi trouver ces deux matrices en considérant le premier et
le deuxième tableau(en ce moment le deuxième tableau joue le rôle de dernier
tableau): Par exemple ici les variables de base du deuxième tableau étant
x3 , x4 et x2 , d’où pour écrire la matrice BN(s ) on prend la 3ère
colonne(correspondant à x3 ), la 4ème colonne(correspondant à x4 ) et la 2ème
colonne(correspondant à x2 ) du premier tableau de simplexe.
1 0 3
Ainsi BN
(s )
0 1 8 .
0 0 6
Les variables de base du premier tableau étant x3 , x4 et x5 , d’où pour écrire la
matrice B ( s ) 1
N on prend la 3ème colonne(correspondant à x3 ), la 4ème
colonne(correspondant à x4 ) et la 5ème colonne(correspondant à x5 ) du
deuxième tableau de simplexe.
1
1 0
2
Ainsi BN
(s ) 1
4
0 1
3
1
0 0
6
Remarque: A l’itération (s) on a:
-
A(j s ) BN( s )
1
A(j1) ,
- X N( s ) B ( s ) 1 (1)
N XN .
Oû (s) est le numéro du tableau et (1) veut dire le premier tableau.
Exemple: a) pour trouver les éléments de la première colonne du
1
1 0
2
deuxième tableau on multiplie la matrice BN
(s ) 1
4
0 1 par
3
1
0 0
6
les éléments de la première colonne du premier tableau c’est-à-dire
1
1 0
2 5
0 1 4 7 .
3
1 4
0 0
6
(s )
b) Pour trouver les X N du deuxième tableau on multiplie la matrice
1
1 0
2
1 4
BN(s ) 0 1 par les X N(s ) du premier tableau c’est-à-dire
3
1
0 0
6
1
1 0
2 270
0 1 4 800 .
3
1 360
0 0
6
NB: Si on a besoin des éléments du dernier tableau ou tableau optimal on
prend la matrice BN ( s ) 1
de ce tableau(tableau optimal) pour faire la
multiplication avec les éléments correspondants du premier tableau.
5) L’indication des ateliers qui ont travaillé en plein capacité(ou les
ressources qu’il faut prioritairement apporter)
La première contrainte est saturée car x3 0 ( x3 est la variable d’écart liée à
la contrainte ), d’oû les machines ont travaillé en pleine capacité. La deuxième
contrainte n’est pas saturée car x4 270 ( x4 est la variable d’écart liée à la
contrainte ) d’oû les ouvriers n’ont pas travaillé en pleine capacité(il les reste
270 heures). On dit qu’il y a sous-emploi. La troisième contrainte est saturée car
x5 0 ( x5 est la variable d’écart liée à la contrainte ), d’oû les techniciens ont
travaillé en pleine capacité. Lorsqu’il s’agit des ressources on dit que la
ressource a été épuisée(ressource déficitaire qu’il faut prioritairement apporter)
ou la ressource n’a pas été épuisée(ressource excédentaire). Ici les ateliers qui
ont travaillé en pleine capacité sont les ateliers des machines et les techniciens.
IV) La dualité des programmes linéaires
NB: à chaque problème de programmation linéaire correspond un autre
problème appelé son problème dual ou tout simplement son dual. Le premier
problème est appelé le primal.
1) L’algorithme de la construction du dual:
1er pas: Préparer les contraintes à caractère économique de la manière suivante:
- si le primal est un problème de maximisation, alors toutes les contraintes à
caractère économique doivent être du genre (toutes les contraintes du genre
doivent être multipliées par -1),
- si le primal est un problème de minimisation, alors toutes les contraintes à
caractère économique doivent être du genre (toutes les contraintes du genre
doivent être multipliées par -1),
2ème pas: Identifier ou sélectionner les variables du dual(elles doivent être
différentes de celles du primal c’est-à-dire prendre une autre variable par
exemple si on avait les x au primal, prendre les y au dual). A chaque
contrainte à caractère économique du primal doit correspondre à une variable du
dual.
Dual: F ( y ) 3 y1 y2 2 y3 min
1
y
1 y 2 y3 ,
2
y1 y2 1,
y 0, y 0, y 0.
1 2 3
Exemple 2.
F ( x) x1 x2 min
2 x1 x2 2,
x 2 x 2
1 2
x1 x2 5
x1 0, x2 0.
Solution:
Première manière: on a pas le feu vert car on a un problème de minimisation et
toutes les contraintes ne sont pas du genre . On va multiplier la 3ème contrainte
par -1.
2 x1 x2 2, 2 x1 x2 2, y1
x 2 x 2 x 2 x 2 y
1 1
2
2 2
1 2x x 5 x1 x2 5 y3
x1 0, x2 0. x1 0, x2 0.
Dual: F ( y ) 2 y1 2 y2 5 y3 max
2 y1 y2 y3 1,
y1 2 y2 y3 1,
y 0, y 0, y 0.
1 2 3
2 y1 y2 y3 1,
y1 2 y2 y3 1,
y 0, y 0, y 0.
1 2 3
Exemple 3.
F ( x) 2 x1 x2 max
x1 2 x2 2,
x x 6
1 2
x2 5
x1 , x2 .
Solution:
x1 2 x2 2, y1
x x 6
1 2 y2
x2 5 y3
x1 , x2 .
Dual
F ( y ) 2 y1 6 y2 5 y3 min
y1 y2 2,
2 y1 y2 y3 1,
y 0, y , y .
1 2 3
(I) Ax b, ou n
aij x j bi , i 1,..., m
x 0. j 1
x 0, j 1,..., n.
j
m
F ( y ) bi yi min
F ( y ) by min i 1
(II) A y C ,
t
ou m
aij yi C j , j 1,..., n
y 0. i 1
y 0, i 1,..., m.
i
Théorème: le théorème fondamental de la dualité
Si l’un des problèmes (I) ou (II) admet une solution optimale, alors l’autre
problème admet aussi une solution optimale et on a F ( x ) F ( y ) .
Si l’un des problèmes (I) ou (II) n’admet pas de solution optimale, alors l’autre
problème aussi n’admet pas de solution optimale.
Théorème 3. Le théorème des écarts complémentaires
Si x et y sont respectivement les solutions optimales de (I) et (II), alors les
égalités suivantes sont vérifiées:
n
( Ax b) y 0 ou aij xj bi yi 0 et
j 1
m
( A y C ) x 0 ou aij yi C j xj 0 .
t
i 1
3) L’interprétation économique du problème dual
Le problème dual est un problème alternatif à la production c’est-à-dire au lieu
de produire l’entreprise décide de vendre ses ressources à une autre entreprise
concurrente. L’entreprise concurrente cherche donc le prix yi d’une unité de
m
ressource i qu’elle est prête à payer pour que son prix total d’achat bi yi soit
i 1
minimal. Les variables du dual yi sont donc les prix de vente des différentes
ressources. La valeur optimale duale yi est appelée la valeur marginale de la
ressource i .
Remarque:
- Si yi yi , alors on peut dans l’hypothèse de poursuite de la production
acheter des unités supplémentaires de la i ème ressource (c’est à dire c’est
intéressant d’acheter des unités supplémentaires et dans certains cas
d’embaucher des travailleurs supplémentaires). En d’autre terme le prix de la
ressource a baissé.
- Si yi yi , alors on peut céder des unités supplémentaires de la i ème
ressource c’est-à-dire on peut vendre (dans ce cas il n’est pas intéressant
d’acheter des unités supplémentaires et dans certains cas d’embaucher des
travailleurs supplémentaires).
4) Lecture des valeurs optimales du primal ou du dual dans le tableau
optimal du simplexe:
A partir du tableau optimal de l’un ou l’autre des problèmes, on peut obtenir la
solution optimale de l’autre. Pour cela on fait une correspondance entre les
variables de décision et les variables d’écart du primal et du dual c’est-à-dire les
variables de décision du primal doivent correspondre aux variables d’écart du
dual et vice-versa.
Primal Variables de décision Variables d’écart
…………….. …………………
Dual Variables d’écart Variables de décision
………………. …………………..
Une fois le lien établi on associe à chacune de ces variables les valeurs
correspondantes au signe près de la ligne j dans un problème de maximisation
et la valeur absolue de j dans un problème de minimisation.
5 x1 3 x2 270, y1
7 x 8 x 800, y
1 2 2
4 x1 6 x2 360, y3
x1 0, x2 0.
Dual
5 y1 7 y2 4 y3 1500,
3 y1 8 y2 6 y3 1800,
y 0, y 0, y 0.
1 2 3
Pièces :
Pièces :
Pièces :
Exemple 2 : une société fabrique deux pièces . Les prix unitaires des pièces
sont respectivement et . Chaque pièce est traitée successivement dans
trois ateliers. Le nombre d’heures-machines est indiqué dans le tableau suivant :
Pièce 3h 5h 2h
Pièce 1h 3h 3h
_ L’atelier II au moins ,
Solution de d’exercice 11 :
Solution de l’exercice 12 :
Soient les nombres respectifs des pièces de types fabriquées :
Pièces :
Pièces :