Académique Documents
Professionnel Documents
Culture Documents
LA RECHERCHE OPERATIONELLE
Cours & Exercices
Elaboré par :
Mme HADDAD Fatma Zohra
2016/2017
Avant propos
De milliers de décisions sont prises chaque jour dans les entreprises. Cependant, Il
existe plusieurs types de classifications de décision, celles selon le degré de risque (certaines,
aléatoires et incertaines), une deuxième classification selon le niveau de décisions présenté par
I.ANSOFF (stratégiques, tactiques et opérationnelles). Par contre, H.SIMON distingue une
classification selon le type d’information et possibilité de modélisation (structurées, semi
structurées et non structurées). La classification de la décision que nous allons adopter est celle
de SIMON, du faite qu’elle se rapproche plus de notre sujet d’étude.
SIMON (Economiste prix Nobel 1978) est l’auteur du modèle IMC (Intelligence,
Modélisation, Choix), qui parle de la complexité du processus décisionnel où il parle d’une
rationalité limitée. Il considère que le processus décisionnel est constitué de trois étapes :
1
FAURE Robert, Précis de RO, édition : DUNOD, 2000, page:13
utilisant des modèles et des méthodes scientifiques adaptés. Elle aide à résoudre les problèmes
concrets.
2
https://educnet.enpc.fr/pluginfile.php/17191/mod_resource/content/0/CoursROPonts.pdf
La popularité grandissante des méthodes de RO est d’ailleurs indissociablement liée à la percée
fulgurante de l’informatique (en particulier, de la micro-informatique) dans le monde de la
gestion. Des outils aussi puissants et aussi complexes que la programmation linéaire, les
algorithmes de graphes, l’optimisation combinatoire, l’analyse multicritère, la simulation et les
processus stochastiques sont ainsi disponibles grâce au tableur Excel).
Dans un contexte économique caractérisé par une concurrence féroce, des marges
réduites et la complexité croissante des décisions de gestion, la RO devient souvent un outil
indispensable pour améliorer la performance des entreprises et semble encore promise à un bel
avenir.
• Formulation du problème
• Construction du modèle mathématique
▪ Identification des variables associées au problème
▪ Formulation des contraintes qui délimitent les valeurs que peuvent
prendre les variables
▪ Formulation de la mesure d’efficacité associée aux variables (fonction
linéaire dite fonction objectif)
• Obtention d’une solution optimale à partir du modèle
• Vérification du modèle et de la solution
• Établissement de contrôle sur la solution
• Mise en œuvre de la solution
3
Jean-François PHELIZON, Méthodes et Modèles de la Recherche Opérationnelle, édition :
économica, 1998, Page : 50
Chapitre I : La programmation Linéaire
1- Définition :
Un programme linéaire est un problème d'optimisation dans lequel : les variables doivent
satisfaire un ensemble d'équations et/ou d'inéquations linéaires, appelées « contraintes »; on
cherche à maximiser ou minimiser une fonction linéaire de ces variables, appelée « fonction
objective ou fonction économique ». Ainsi, la Programmation linéaire occupe une place très
importante et sa mise en point fut étroitement liée au développement de l’informatique
scientifique4.
4
http://www.enib.fr/~tisseau/pdf/course/info.pdf.
▪ Préciser les paramètres du modèle
• constantes associées aux contraintes et à la fonction objective
▪ Validation du modèle et des résultats
• S’assurer que :
o Le modèle développé est conforme à la réalité
o Les résultats sont valides dans toutes les conditions
Exemple 6
Une firme fabrique deux produits A et B avec trois matières : M1, M2 et M3, selon le tableau
suivant :
A B Stocks
M1 2 1 8
M2 1 2 7
M3 0 1 3
Gain / unité 4 5
Les variables :
Soit x1 la quantité du produit A et x2 la quantité du produit B. Nous remarquons que les
variables x1 et x2 qui représentent des productions, ne peuvent pas avoir de valeurs négatives ;
x1 0 et x2 0 .
5
Ces hypothèses résument celles qui ont été donné par G. B. Dantzig : La proportionnalité, La non-
négativité, l’additivité et la linéarité de la fonction objectif
6
Exemple adapté du livre : Exercices et problèmes de Recherche Opérationnelle, p :56,Roseaux
2005.Edition dunod.
Les contraintes :
- bilan de M1 : 2x1 + x2 8
- bilan de M2 : x1 + 2 x2 7
- bilan de M3 : x2 3
L'objectif :
Il s’agit de rendre le profit maximum, c'est à dire de maximiser la fonction :
Z = 4 x1 + 5x2
Activités 1……………….i……………..n
Ressources
1 a 11………….…a1j ….……..a1n
j ai1…………..…Aij .….……..Ain
m am1……………amj ….…….amn
∑ aij xj ≤ bi i=1 à m
2- La fonction à optimiser
Elle traduit l’objectif poursuivi par l’entreprise. L’objectif consiste à maximiser un
avantage ou minimiser un inconvénient. Cette fonction s'appelle fonction objective ou fonction
économique.
Connaissant le prix de vente à l'unité de chaque produit (Pi) et son coût de fabrication
à l'unité (Vi), il est possible de définir une marge bénéficiaire brute par unité de produit (Ci).
Remarque :
Cette formulation mathématique est caractérisée par des contraintes linéaires et une fonction
objective par rapport à l'ensemble des variables. Elle est appelée "Programme linéaire" et est
notée souvent "PL".
On pourra aussi rencontrer des fonctions objectives à minimiser, des contraintes de type "
" ou de type " = " et des variables "non-astreintes".
3- L’écriture matricielle du programme mathématique
Le problème (PL) revient à chercher x tel que la fonction économique Z soit maximum.
Z ( x ) = c, x
P L Ax b
x 0
Forme standard
Un problème est dit sous forme standard si et seulement si toutes les vraies contraintes, autre
que xi 0 , sont des égalités. Il est souvent nécessaire d’introduire des variables d’écart pour
4- Exemples de formulation
Enoncé de problème N° 1 :7
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de tomates et celles
de piments. Il dispose de 480 heures de main d’œuvre et de 440 m3 d’eau. Un hectare de tomates
demande 1 heure de main d’œuvre, 4 m3 d’eau et donne un bénéfice net de 100 Unités
Monétaires. Un hectare de piments demande 4 heures de main d’œuvre, 2 m3 d’eau et donne un
bénéfice net de 200 Unités Monétaires.
7
Méthodes et exercices d'application Robert Faure, Bernard Lemaire, Christophe
PicouleauEdition : Dunod p : 36
Le bureau du périmètre irrigué veut protéger le prix des tomates et ne lui permet pas de cultiver
plus de 90 hectares de tomates. Quelle est la meilleure allocation de ses ressources ?
Formulation du problème N° 1 en un PL :
Etape 1 : Identification des variables de décision. Les deux activités que l’agriculteur doit
déterminer sont les surfaces à allouer pour la culture de tomates et de piments :
• x1 : la surface allouée à la culture des tomates
• x2 : la surface allouée à la culture des piments
On vérifie bien que les variables de décision x1 et x2 sont positives : x1 0, x2 0 .
Etape 2 : Identification des contraintes. Dans ce problème les contraintes représentent la
disponibilité des facteurs de production :
• Terrain : l’agriculteur dispose de 150 hectares de terrain, ainsi la contrainte liée à la
limitation de la surface de terrain est x1 + x2 150
• Eau : la culture d’un hectare de tomates demande 4 m3 d’eau et celle d’un hectare de piments
demande 2m3 mais l’agriculteur ne dispose que de 440m3. La contrainte qui exprime les
limitations des ressources en eau est 4 x1 + 2 x2 440 .
• Main d’œuvre : Les 480 heures de main d’œuvre seront départager (pas nécessairement en
totalité) ente la culture des tomates et celles des piments. Sachant qu’un hectare de tomates
demande une heure de main d’œuvre et un hectare de piments demande 4 heures de main
d’œuvre alors la contrainte représentant les limitations des ressources humaines est
x1 + 4x2 480
• Les limitations du bureau du périmètre irrigué : Ces limitations exigent que l’agriculteur ne
cultive pas plus de 90 hectares de tomates. La contrainte qui représente cette restriction est
x1 90.
Etape 3 : Identification de la fonction objectif. La fonction objectif consiste à maximiser le
profit apporté par la culture de tomates et de piments. Les contributions respectives 100 et 200,
des deux variables de décision x1 et x2 sont proportionnelles à leur valeur. La fonction objectif
est donc z = 100 x1 + 200 x2 .
Enoncé de problème N° 2 :8
Une usine de Textile ait parmi ses activités la finition des tissus de coton. La production
du service « finition » est limitée par la capacité de son équipement et le volume de main-
d’œuvre disponible. Les dirigeants de la firme ont le choix entre trois procédés de finition : ils
savent qu’avec le procédé 1 le profit par lot de tissu traité est de 1 Unité Monétaire, avec le
procédé 2 il est de 0,9 Unité Monétaire, et avec le procédé 3 il est de 1.1 Unité Monétaire. Ils
savent aussi que le procédé 1 utilise 3 heures-machine par lot de tissu traité, le procédé 2 utilise
2.5 heures-machine et le procédé 3 utilise 5,25 heures-machine. Le procédé 1 a besoin de 0,4
heure de main-d’œuvre par lot de tissu, le procédé 2 a besoin de 0,5 heure, et le procédé 3 a
besoin de 0,35 heure. Enfin, l’usine a une capacité maximale de finition de 6000 heures-
machine, et elle peut employer au maximum 600 heures de main-d’œuvre par semaine.
Déterminer le PL qui permet de trouver le nombre de lots de tissu de coton que chaque
procédé peut traiter par semaine pour maximiser le profit de la firme.
Formulation du problème N° 2 en un PL :
x1 : nombre de lots de tissu de coton que le procédé 1 permet de traiter par semaine.
x2 : nombre de lots de tissu de coton que le procédé 2 permet de traiter par semaine.
x3 : nombre de lots de tissu de coton que le procédé 3 permet de traiter par semaine.
8
An introduction to linear programming and the theory of games (2001), A. M. Glicksman
9
Méthodes et modèles de la recherche opérationnelle 2006, A. Kaufmann, pp 22-23
Pour nourrir sa vache, un paysan dispose de deux poudres alimentaires P1 et P2
composées d’ingrédients A, B et C. Un sac de poudre P1 pèse 900 g et contient 100 g
d’ingrédients A, 200 g de B et 600 g de C. Un sac de poudre P2 pèse 600 g et contient 200 g de
chacun des trois ingrédients. Quotidiennement, la vache doit consommer au moins 300 g de A,
500 g de B et 700 g C. Les prix respectifs par kg de P1 et P2 sont respectivement 3 Unité
Monétaire et 2 Unité Monétaire . Quelle dépense journalière minimale le paysan doit-il
envisager, de sorte que sa vache reçoive une nourriture suffisante ?
Formulation du problème N° 3 en un PL :
x1 : La quantité de poudre P1 que le paysan doit donner à sa vache
x2 : La quantité de poudre P2 que le paysan doit donner à sa vache
Min Z : 3 x1 + 2 x2
100 x1 + 200 x2 ≥ 300
200 x1 + 200 x2 ≥ 500
600 x1 + 200 x2 ≥ 700
x1 ≥ 0 , x2 ≥ 0
Remarque :
Cette formulation mathématique est caractérisée par des contraintes linéaires et une fonction
objective par rapport à l'ensemble des variables. Elle est appelée "Programme linéaire" et est
notée souvent "PL".
On pourra aussi rencontrer des fonctions objectives à minimiser, des contraintes de type "
" ou de type " = " et des variables "non-astreintes".
Exercice 1 :
Un fabricant de fuel produit de l’essence normale et sans plomb. Chaque type d’essence
nécessite deux traitements : le cracking et le raffinage. Chaque unité de normal nécessite 0,2
heures de cracking et 0,5 heure de raffinage ; l’essence sans plomb nécessite 0,4 heure de
10
Recherche opérationnelle Méthodes d'optimisation en gestion Jean-Claude Moisdon , Michel Nakhla
Edition : Presses des Mines – Transvalor, 2011
cracking et 0,2 heure de raffinage. Le profit est de 15 unité Monétaire par unité de normal, et
de 30 unité Monétaire pour le sans plomb.
Exercice 2 :
Considérons une banque qui n'a que deux types d'actifs, ses prêts et ses placements en
valeurs mobilières. Cette banque dispose de 400 millions unité Monétaire qu'elle doit répartir
entre ces deux types d'actifs. Cette banque veut que ses prêts s'élèvent au moins à 150 millions
unité Monétaire. Comme il est plus aisé de retrouver de la liquidité avec des placements qu'avec
des prêts la banque souhaite que le montant des placements soit égal au moins à 20% du total,
prêts plus placement. Les responsables de la banque veulent maximiser le profit sachant que les
prêts rapportent 16% et les placements 10%.
Exercice 3 :
Exercice 4 :
Une entreprise peut fabriquer, sur une machine donnée, travaillant 45 heures par
semaine, trois produits différents P1 , P2 et P3 . L’article P1 laisse un profit net de 4 unité
rendements de la machine sont, respectivement, 50, 25 et 75 articles par heure. Le marché peut
absorber, au plus, 1 000 objets P1 , 500 objets P2 et 1 500 objets P3 par semaine. Formuler
Exercice 5 :
Combien de ceintures de chaque type faut-il fabriquer par jour de manière à maximiser
le bénéfice total de l’entreprise ?
Exercice 6 :
Le mobilier d'une bibliothèque municipale doit être changé pour contenir au moins 4400
livres de petit format et 2600 livres de grand format.
Un premier fournisseur propose des meubles de type A pouvant contenir 110 livres de petit
format et 100 livres de grand format pour un prix de 400 unités monétaires.
Un deuxième fournisseur propose des meubles de type B pouvant contenir 220 livres de petit
format et 100 livres de grand format pour un prix de 600 unités Monétaires.
Exercice 7 :
Des hommes d’affaires veulent investir au maximum 5 000 unités monétaires dans les
projets A et B. L’investissement en A est au plus de 4 000 unités monétaires, et l’investissement
en B est au moins de 600 unités monétaires. Pour chaque dollar investi, A rapporte 0,08 unité
Monétaire et B rapporte 0,10 unité monétaire.
L’investissement en Y peut être au plus le tiers de l’investissement en X. Combien
Exercice 8 :
Une entreprise fabrique trois types de piles : sèches de type 1 (PS1), sèches de type 2
(PS2) et à combustible (PC).
• L'assemblage,
• Un test de qualité
• Un traitement d'isolation.
Seules les piles satisfaisant le test de qualité sont soumises au traitement d'isolation.
Les piles qui ratent le test de qualité sont mises au rebut.
Modélisez cet exercice de façon à pouvoir répondre aux questions suivantes : Quel est
le nombre optimal de piles de chaque type à fabriquer le mois prochain si l'entreprise est
assurée de vendre toute sa production ? Quel sera le profit ?
Exercice 10 :
Votre start-up est bien partie mais la concurrence est rude et pour augmenter votre
clientèle (principalement des femmes) vous décidez de lancer une grande campagne de
publicité. Votre plan de publicité prévoit que vous voulez atteindre au moins 200 millions de
consommateurs dont 150 millions de femmes minimum (en audience cumulée). Cependant, vu
le retournement de conjecture vous devez être très prudent avec vos dépenses car vos financiers
commencent à se montrer assez inquiets. Vous faites donc appel à une grande agence de
publicité qui vous communique le nombre de consommateurs que vous pouvez espérer toucher
en passant des annonces dans les différents medias ainsi que les coûts associés.
Complétez votre plan de publicité en déterminant le nombre d'annonces que vous allez
faire passer sur chaque media pour atteindre le public visé au moindre coût.
1) Une solution unique et meilleure qu’elle soit et qu’on appelle solution optimale ;
2) Une solution double ;
3) Une infinité de solution ;
4) Un Programme qui n’admet pas de solution.
Elle correspond au point le plus éloigné de l’origine (0,0) sur la zone admissible atteint par la
droite Z, dans le cas de maximisation,
Elle correspond au point le plus proche de l’origine (0,0) sur la zone admissible attient par la
droite Z, dans le cas de minimisation.
Remarque :
Si l'ensemble des solutions optimales est non vide, alors, il représente un des sommets du
polyèdre (obtenu en représentant les contraintes sous formes géométrique).
Min Z : 3 X1 + 2 X2
100 X1 + 200 X2 ≥ 300
200 X1 + 200 X2 ≥ 500
600 X1 + 200 X2 ≥ 700
X1 ≥ 0, X2 ≥ 0
Maintenant en ayant les coordonnées de chaque droite, on peut les tracer sur le même plan.
On hachure le demi-plan correspondant aux solutions non réalisables
Max Z : 20 X1 + 30 X2
X1 + 3 X2 ≤ 18
X1 + X2 ≤ 8
2 X1 + X2 ≤ 14
X1 ≥ 0 , X2 ≥ 0
• Exemples :11
Dans cette section on donne quelques exemples de résolution graphique de problèmes linéaires
relatifs au différents cas possibles :
• Problème de maximisation
Max 100x1 + 200x2 x2 (2)
(4)
x1 90 (4) 40
E x1
x1 0, x2 0
la solution optimale est B(40,110)
11
Exercices et problèmes résolus de recherche opérationnelle - Roseaux, Edition : Dunod 2000
• Problème avec solution non bornée
Max - 2 x1 + 3 x 2 x2
2 x1 − 3 x 2 6 (2)
x1 0, x 2 0
5 x1
Z=0
(1)
• Problème impossible
Min 3 x1 + 2 x 2 x2
s.c. x1 + 2 x 2 2 (1)
2 x1 + 4 x 2 8 (2)
x1 0, x 2 0
x1
(2)
(1)
L’espace des solutions réalisables est vide, il est l’intersection des deux zones
grises de la figure ci-dessus
x2 4 (3)
10 x1
x1 0, x 2 0
Z=0
L’ensemble des points décrit par le segment [AB] représente les solutions
optimales du problème linéaire
• Problème de dégénerescence
Max x1 + x 2 x2
(2)
Z=0
3- Analyse de sensibilité
Une analyse de sensibilité se résume à la recherche des intervalles de variations
possibles des paramètres du programme linéaire sans que la solution optimale ne soit modifiée.
Réponse :
x2
12
B
x1
6 12
Z=10
On peut changer la valeur du second membre de la troisième contrainte jusqu'à ce que la droite
de coefficient directeur –1/6 touche le point optimal (2,8). C’est à dire qu’on peut varier le
second membre de la troisième contrainte de 24 jusqu'à 50 sans changer la solution optimale.
Question : De combien peut-on faire varier le profit engendré par la culture d’un hectare de
tomates, dans le problème de l'agriculture, sans changer la solution optimale ?
Réponse :
x2 (2)
(4)
A
B
110
C
(3)
Z=0 30
D (1)
E x1
40
Soit la variation du profit engendré par la culture d’un hectare de tomate. La fonction objectif
est égale à (100 + ) x1 + 200x2
Section II : La méthode du simplexe
Alors au-delà de trois variables, il y a lieu d’utiliser une autre méthode. Il s’agit de la
méthode du simplexe.
Notions de bases
12
https://educnet.enpc.fr/pluginfile.php/17191/mod_resource/content/0/CoursROPonts.pdf
13
De nombreux mathématiciens, parmis eux le Russe L. V. Kantorovich, se sont penchés sur le problème
de programmation linéaire avant 1947.
On appelle solution de base (associée à B), la solution particulière obtenue en faisant
xHB = 0 , d’où x B = AB −1b . Une telle solution est dite réalisable si x B 0 . Une solution de base
est dite dégénérée14 si x B a des composantes nulles.
2- L’algorithme du Simplexe
a1,1 a1,n b1
a .
a m,n bm
m ,1
c Z ( x )
1 cn
- On passe à l’écriture canonique par rapport à la base B, ce qui donne de façon simplifiée :
1
−1 −1
AHB = AB AHB b = AB b
1
0 0 t
c HB = t c HB − t AHB Z ( x )− t b
t
- Si c HB n’est pas négatif ou nul, il faut utiliser un changement de base.
- Le nouveau tableau se calcule par pivotage : on utilise la méthode de Gauss en prenant pour
pivot le coefficient a s ,e ,
3-L’organigramme du simplex
Début
Non
Fin
CS=max {Cj}
jєn
4- La transformation du PL:
Dans un PL sous forme canonique, toutes les contraintes ont des signes différents et toutes les
variables sont positives ou nulles. Par contre, dans le PL sous forme standard, toutes les
contraintes sont des égalités (en général avec beaucoup plus d’inconnues que d’équations).Les
versions algébriques de l’algorithme du simplexe commencent par transformer le PL à traiter
en un PL équivalent sous forme standard. Le passage de la forme canonique du PL vers la
forme standard se fait par le biais des variables d’écarts et /ou artificielles.
Si la contrainte est du signe ≥ : alors on déduit une variable d’écart et on ajoute une variable
artificielle
Les variables artificielles forment la matrice identité et ce sont des variables de base.
Le coefficient de la variable artificielle dans la fonction objectif est (+M) si on est le cas de
MIN et (–M) dans le cas de MAX, sachant que M tend vers + ∞
La contrainte de non négativité
Les valeurs des variables de bases dans la solution de bas se lisent dans les valeurs de
ressources.
Le passage de la forme canonique vers forme standard se fait par l’introduction des variables
d’écarts comme suit :
X1 ≥ 0, X2 ≥ 0, X3 ≥ 0, S1 ≥ 0, S2≥ 0
X1= 0, X2 = 0 et X3 = 0 alors Z0 = 0
Les variables de base sont les variables d’écarts : S1 et S2 sur la ligne et colonne
Les variables hors base sont les variables de décision : X1 , X2 et X3 juste sur la ligne
VHB VB
C X* X1 X2 X3 S1 S2 B B/A
0 S1 3 2.5 5.25 1 0 6000
VB 0 S2 0.4 0.5 0.35 0 1 600
C 1 0.9 1.1 0 0 0 Z= 0
Z
∆
A B
C D
A est le pivot, la nouvelle valeur de D est : D’ = (A*D) – (B*C)
Chaque fois qu’on veut calculer la nouvelle valeur d’une case, elle doit se située sur la diagonale
du pivot.
MIN ∆ < 0
VHB VB
C X* X1 X2 X3 S1 S2 B B/A
0 S1 3 2.5 5.25 1 0 6000 6000/5.25 =
Variable sortante
VB 1142.85
0 S2 0.4 0.5 0.35 0 1 600 600/0.35=
1714.28
C 1 0.9 1.1 0 0 0 Z= 0
Z= 0 0 0 0 0 / /
∑(A*C)
∆=Z – -1 -0.9 -1.1 0 0 / /
C
La variable entrante est X3 car elle représente la valeur la plus élevé de ∆ = 1.1
La variable sortante est S2 car elle représente la valeur la plus petite du rapport B/A : 1142.85
Le pivot de Gauss est 5.25
On s’appuyant sur ces trois éléments, on peut avoir le premier tableau d’itération :
C X* X1 X2 X3 S1 S2 B B/A
1.1 X3 0.57 0.47 1 0.19 0 1142.85 1142.85/0.47
=2431.57
0 S2 0.2 0.33 0 - 1 200 200/0.33=606.06 Variable sortante
0.06
C 1 0.9 1.1 0 0 Z=1257.35 S2 X1’=[(0.4*5.25)-(3*0.35)]/5.25=0.2
Z 0.62 0.51 1.1 0.20 0 / S2 X2’=[(0.5*5.25)-(0.35*2.
∆ - - 0 0.20 0 / 5)]/5.25=0.33
0.38 0.39 S2 S1’=[(0*5.25)-(0.35*1)]/5.25=-0.06
B’ =[(600*5.25)-
(0.35*6000)]/5.25=200
Variable Z= (1.1*1142.85)+(0*200)=1257.35
entrante
Puisqu’il y a des valeurs de ∆ < 0, donc ce n’est pas la solution optimale et il faudra améliorer
la solution.
La variable entrante est X2 puisqu’elle correspond à la valeur la plus élevé de ∆, par contre la
variable sortante est S2 et le pivot est : 0.33
C X* X1 X2 X3 S1 S2 B B/A
1.1 X3 0.28 0 1 0.27 - 858 858/0.28=3064.28
1.42
0.9 X2 0.60 1 0 - 3.03 606.06 606.06/0.6=1010.1
0.18
C 1 0.9 1.1 0 0 Z=
1489.25
Z 0.84 0.9 1.1 0.13 1.16 /
∆ - 0 0 0.13 1.16 /
0 .15
Puisqu’il y a des valeurs de ∆ < 0, donc ce n’est pas la solution optimale et il faudra améliorer
la solution.
La variable entrante est X1 puisqu’elle correspond à la valeur la plus élevé de ∆, par contre la
variable sortante est X2 et le pivot est : 0.60
C X* X1 X2 S1 R1 S2 R2 S3 R3 B B/A
M R1 100 200 -1 1 0 0 0 0 300 300/100 = 3
M R2 200 200 0 0 -1 1 0 0 500 500/200 = 2.5
Variable
M R3 600 200 0 0 0 0 -1 1 700 700/600 = 1.16
sortante
C 3 2 0 M 0 M 0 M 1500 /
M
Z 900M 600M -M M -M M -M M / /
∆ 900M - 3 600M -2 -M 0 -M 0 -M 0 / /
Variable entrante
600 est le pivot
Remarque :
Dés que la variable artificielle quitte la base, on supprime sa colonne du tableau
C X* X X2 S1 R1 S2 R2 S3 B B/A
1 Variable
M R1 0 500/3 -1 1 0 0 1/6 550 /3 11/10= 1.1 sortante
M R2 0 400/3 0 0 -1 1 1/3 800/3 2
3 X1 1 1/3 0 0 0 0 -1/6007/6 2/7 =3.5
C 3 2 0 M 0 M 0 Z=450M /
+7/2
Z 3 300M+1 -M M -M M M/2 - / /
3/600
∆ 0 300M-1 -M 0 -M 0 M/2 - / /
3/600
Variable
entrante
Puisqu’il y a des valeurs de ∆ > 0, donc ce n’est pas la solution optimale et il faudra améliorer
la solution.
La variable entrante est X2 puisqu’elle correspond à la valeur la plus élevé de ∆, par contre la
variable sortante est R1 et le pivot de Gauss est : 500/3
Remarque :
Quand il y a un « zéro » dans la ligne du pivot, la colonne ne change pas.
C X* X1 X2 S1 S2 R2 S3 B B/A
2 X2 0 1 -3/500 0 0 1/1000 11/10 /
M R2 0 0 4/5 -1 1 1/5 120 150
3 X1 1 0 1/500 0 0 -1/500 4/5 400
C 3 2 0 0 M 0 /
Z 3 2 4M/5- -M M M/5- / /
2/500 1/200
∆ 0 0 4M/5- -M 0 M/5- / /
2/500 1/200
Puisqu’il y a des valeurs de ∆ > 0, donc ce n’est pas la solution optimale et il faudra améliorer
la solution.
La variable entrante est S1 puisqu’elle correspond à la valeur la plus élevé de ∆, par contre la
variable sortante est R2 et le pivot est : 4/5
Puisque toutes les valeurs de ∆ < 0 donc c’est la solution optimale : X1*= 0.5 (0.9) = 0.45,
X2*= 2 (0.6) = 1.2, et Z* = 0.45 (3) + 1.2 (2) = 3.75 Unités monétaires.
Ceci va nous amener aussi à changer notre règle d’arrêt de la procédure de simplexe et de définir
le tableau optimal, comme celui où tous les effets nets
cj - zj sont positifs ou nuls.
Min x1 + x2
Sc 2x1 + x2 12
5x1 + 8x2 74
x1 + 6x2 24
x1 0 , x2 0
Pour permettre à la méthode de simplexe de démarrer de l’origine, il faut comme on l’a déjà vu
dans le cas de problème de maximisation, introduire les variables artificielles.
Avec les problèmes de maximisation on attribue à ces variables un coefficient
-M dans la fonction objectif pour les contraindre à quitter la base rapidement. Dans le cas de
problèmes de minimisation, on a intérêt à changer le coefficient de ces variables en M (M très
grand) afin d’arriver au même résultat et de les faire sortir de la base.
Sc 2x1 + x2 - S1 + A1 = 12
5x1 + 8x2 - S2 + A2 = 74
x1 + 6x2 - S3 + A3 = 24
x1 , x2 , S1 , S2 , S3 , A1 , A2 0
5 6 0 0 0 M M M
x1 x2 S1 S2 S3 A1 A2 A3
M A1 12 2 1 -1 0 0 1 0 0 12
M A2 74 5 8 0 -1 0 0 1 0 37/4
M A3 24 1 6 0 0 -1 0 0 1 4
8M 15 -M -M -M M M M
1-8M 1-15M M M M 0 0 0
5 6 0 0 0
x1 x2 S1 S2 S3
1 x1 8 1 0 -8/11 1/11 0
0 S3 26 0 0 2 -1 1
1 x2 2 0 1 5/11 -2/11 0
1 1 -3/11 -1/11 0
0 0 3/11 1/11 0
x1 = 8
x2 = 2
S1 = 0
S2 = 0
S3 = 26
Z = 10
Après avoir vérifié que le second membre des contraintes est positif, le tableau suivant résume
les transformations à faire subir à notre programme linéaire avant de le résoudre par la méthode
de simplexe :
III- de type « » Attribuer un coefficient nul pour Attribuer un coefficient nul pour
la variable d’écart et un la variable d’écart et un
Ajouter une variable coefficient - M pour variable coefficient M pour variable
artificielle et une artificielle
variable d’écart avec un artificielle
signe "-"
Le tableau suivant résume les étapes de la méthode de simplexe relatif aux problèmes de
maximisation et minimisation :
3 Ecrire le programme linéaire sous une Ecrire le programme linéaire sous une
forme standard forme standard
5 Choisir comme variable entrante dans la Choisir comme variable entrante dans la
base celle qui admet le plus grand effet net base celle qui admet le plus petit effet net
positif cj-zj. négatif cj-zj.
6 Choisir la variable sortante de la base celle Choisir la variable sortante de la base celle
qui admet le plus petit ratio supérieur à qui admet le plus petit ratio supérieur à
zéro. zéro.
La deuxième méthode pour résoudre un problème de se base sur le résultat suivant « Résoudre
un problème min ctx sujet à un ensemble de contraintes est équivalent à résoudre un problème
max -ctx sujet au même ensemble de contraintes ». Ces deux problèmes sont équivalents dans
la mesure où ils donnent le même vecteur des solutions optimales. La seule différence est que
la valeur de la solution max -ctx est l’opposé de la solution de min ctx; (i.e. min ctx = - max -
ctx).
Donc pour résoudre le programme linéaire relatif au problème de médecine, on peut résoudre
le problème de maximisation suivant:
Max - x1 - x2
S.c. 2x1 + x2 12
5x1 + 8x2 74
x1 + 6x2 24
x1 , x2 0
1- Problèmes Irréguliers15
Dans le chapitre précédent tous les programmes linéaires qu’on a traité sont du type : Maximiser
une fonction linéaire sous contraintes de type inférieur ou égale (et avec un second membre
positif).
Or dans beaucoup de problèmes réels, on peut retrouver des contraintes de type supérieur ou
égal et/ou de type égal.
Dans ce chapitre, on étudiera les modifications à apporter à la méthode du simplexe pour qu’elle
puisse résoudre tous ces types de programmes.
Afin de générer une solution réalisable de base initiale pour la méthode de simplexe, on a annulé
les variables de décision x1 et x2 . Ceci nous permet de commencer à partir de l’origine O. Or,
on vérifie bien que l’origine n’est pas une solution réalisable. La question qui se pose est
comment nous allons réécrire le programme de manière qu’on puisse construire le tableau de
simplexe initial à l’origine.
Pour arriver à cette fin, on doit ressortir une astuce mathématique qui se résume à l’introduction
de nouvelles variables, dite variables artificielles A1 et A2.
Ces variables n’ont aucune interprétation, comme leur nom l’indique, ils sont conçus a-
rtificiellement pour nous aider à utiliser la procédure de simplexe et à formuler le tableau initial
à partir de l'origine.
15
J.ACHER,J.GARDELLE, Programmation Linéaire, édition Dunod, 3 édition, 2000, page : 49
Si on ajoute ces deux variables artificielles A1 et A2 respectivement à la 2ème et 3ème contrainte,
le programme devient le suivant.
Maintenant on peut obtenir une solution initiale de base du système d’équations, si on pose x1
= x2 = 0.
La solution initiale est
x1 = 0
x2 = 0
S1 = 4
S2 = 0
A1 = 60
A2 = 5
Cette solution n’est pas réalisable puisque x2 n’est pas supérieur à 50. Ainsi, il est important de
distinguer entre une solution réellement réalisable et une solution du programme linéaire réécrit
pour la procédure du simplexe. Certes, une solution réalisable du problème réel reste toujours
une solution réalisable pour le programme linéaire transformé, le contraire n’est pas toujours
vrai.
On peut conclure que tant que les variables artificielles restent dans la base, la solution demeure
non réalisable réellement pour notre programme.
Une manière pour garantir que ces variables artificielles sortent de la base avant d’atteindre la
solution optimale est de leur associée un grand coût -M dans la fonction objectif. Ainsi, si ces
variables restent dans la base ils vont causer une diminution importante de la valeur de la
fonction objectif. Ce qui nous contraignent à les faire sortir le plutôt possible de la base.
La fonction objectif s’écrit donc :
5 6 0 0 -M -M
x1 X2 S1 S2 A1 A2
0 S1 4 -1 1 1 0 0 0
-M A1 60 (5) 3 0 0 1 0
-M A2 5 0 1 0 -1 0 1
Les deux premières itérations on fait sortir de la base les variables artificielles A1 et A2. Leurs
effets nets est maintenant négatif et très élevé, elles ne pourront donc pas être sélectionnées à
l’itération suivante, ni même ultérieurement comme on peut facilement le constater. Donc on
peut supprimer du tableau la colonne relative à A1 et A2.
5 6 0 0
x1 x2 S1 S2
0 S1 8 0 0 1 8/5 5
5 x1 9 1 0 0 3/5 15
6 x2 5 0 1 0 -1 -5
5 6 0 -3
0 0 0 3
5 6 0 0
x1 x2 S1 S2
0 S2 5 0 0 5/8 1
5 x1 6 1 0 -3/8 0
6 x2 10 0 1 5/8 0
5 6 15/8 0
0 0 -15/8 0
Le tableau ci-dessus est optimal car tous les effets nets sont négatifs ou nuls. Donc la solution
optimale est :
x1 = 6
x2 = 10
S1 = 0
S2 = 5
Exemple:
Vérifions à l’aide de la méthode de simplexe, que le problème suivant est réellement impossible
:
Max 4 x1 + 3x2
Sc x1 + x2 2
3x1 + x2 10
x1 , x2 0
En introduisant les variables d’écarts et les variables artificielles le programme s’écrit:
Max 4x1 + 3x2 - MA1
Sc x1 + x2 - S1 = 2
3x1 + x2 - S2 + a1 = 10
x1 , x2 , S1 , S2 , A1 0
4 3 0 0 -M
x1 x2 S1 S2 a1
0 S1 2 (1) 1 1 0 0 2
-M a1 10 3 1 0 -1 1 10/3
-3M -M 0 M 1
3M+4 M+3 0 -M -M-1
4 3 0 0 -M
x1 x2 S1 S2 a1
4 x1 2 1 1 1 0 0
-M a1 5 0 -2 -3 -1 1
4 4+2M 1+3M M -M
0 -1-2M -1-3M -M 0
Le tableau de simplexe ci-dessus est optimal avec une variable artificielle dans la base.
16
Jean-François PHELIZON, Méthodes et Modèles de la Recherche Opérationnelle, édition :
économica, 1998
b est positif). Ceci est dû au fait que lors de la résolution de ce genre de programme par la
méthode de simplexe on n'utilise pas des variables artificielles. Donc il est impossible de les
retrouver dans la solution optimale.
1 2 0 0 -M
x1 x2 S1 S2 a1
-M a1 2 1 (1) -1 0 1 2
0 S2 3 0 1 0 1 0 3
-M -M M 0 -M
1+M 2+M -M 0 0
1 2 0 0
x1 x2 S1 S2
2 x2 2 1 (1) -1 0 -2
0 S2 1 -1 0 (1) 1 1
2 2 -2 0
-1 0 2 0
1 2 0 0
x1 x2 S1 S2
x2 3 0 1 0 1
2
0 S1 1 -1 0 1 1 -1
0 2 0 2
1 0 0 -2
Le dernier tableau montre que la variable x1 n’admet aucune limite sur sa valeur de sortie.
Exemple
Max z = 2x1 + 0 x2 + 3/2 x3
s.c. x1 - x2 2
2x1 + x3 4
x1 + x2 + x3 3
x1, x2, x3 0
La solution optimale de ce problème est :
x1 = 1
x2 = 0
x3 = 2
z =5
2 0 3/2 0 0 0
x1 x2 x3 S1 S2 S3
S1 2 1 -1 0 1 0 0 2
0
0 S2 4 2 8 0 -1 0 0 2
0 S3 3 1 6 0 0 -1 0 3
0 15 -M -M -M M
2 0 3/2 0 0 0
La variable entrante est x1, mais les deux premières contraintes donnent la même valeur
minimale du ratio. Ceci indique que lorsque x1 passe à 2, les variables d’écart S1 et S2 vont
s’annuler malgré que l’un des deux demeure encore dans la base.
2 0 3/2 0 0 0
x1 x2 x3 S1 S2 S3
2 x1 2 1 -1 0 1 0 0 -2
0 S2 0 0 2 1 -2 1 0 0
0 S3 1 0 2 1 -1 0 1 1/2
2 -2 0 2 0 0
0 2 3/2 -2 0 0
Et la valeur de la fonction objectif z = 4. Cette solution de base est dite dégénérée. Continuons
les itérations relatives à la méthode de simplexe. La variable entrante est x2.
Le problème est qu’un des ratios est nul ce qui indique qu’on ne peut pas augmenter la valeur
de x2 puisque la valeur de la fonction objectif ne va pas augmenter et reste égale à 4.
On peut facilement vérifier que nous somme en train de cycler sans atteindre la solution
optimale. Ce genre de cyclage dans la méthode de simplexe est dangereux et on doit l’identifier
avant de commencer à résoudre le problème, sinon on passera un temps énorme sans atteindre
la solution optimale.
Pour terminer cette section, il faut noter que ce n'est pas tout problème de dégénérescence qui
peut conduire à un cyclage.
Exemple
Max 10 x1 + 9x2
Sc 7/10x1 + x2 630
1/2 x1 +5/6x2 480
x1 + 2/3x2 708
1/10 x1 +1/4x2 135
x1 ,, x2 0
Essayer de résoudre ce programme par la méthode de simplexe (choisir en cas de deux
quotients égaux, celui qui se trouve dans la ligne supérieure).