Vous êtes sur la page 1sur 94

CHAPITRE 1

Formulation
dun programme
linaire (PL)
I. Introduction
Limportance de loptimisation et la ncessit dun outil simple pour modliser
des problmes de dcision que soit conomique, militaire ou autres on fait de la
programmation linaire un des champs de recherche les plus actifs au milieu du
sicle prcdent. Les premiers travaux1 (1947) sont celle de George B. Dantzig
et ses associs du dpartement des forces de lair des Etats Unis dAmrique.
Les problmes de programmations linaires sont gnralement lis des
problmes dallocations de ressources limites, de la meilleure faon possible,
afin de maximiser un profit ou de minimiser un cot. Le terme meilleur fait
rfrence la possibilit davoir un ensemble de dcisions possibles qui
ralisent la mme satisfaction ou le mme profit. Ces dcisions sont en gnral
le rsultat dun problme mathmatique.

De nombreux mathmaticiens, parmis eux le Russe L. V. Kantorovich, se sont penchs sur le problme de
programmation linaire avant 1947.
1

II. Les conditions de formulation dun PL


La programmation linaire comme tant un modle admet des hypothses (des
conditions) que le dcideur doit valider avant de pouvoir les utiliser pour
modliser son problme. Ces hypothses sont2 :
1. Les variables de dcision du problme sont positives
2. Le critre de slection de la meilleure dcision est dcrit par une fonction
linaire de ces variables, cest dire, que la fonction ne peut pas contenir par
exemple un produit crois de deux de ces variables. La fonction qui
reprsente le critre de slection est dite fonction objectif (ou fonction
conomique).
3. Les restrictions relatives aux variables de dcision (exemple: limitations des
ressources) peuvent tre exprimes par un ensemble dquations linaires.
Ces quations forment lensemble des contraintes.
4. Les paramtres du problme en dehors des variables de dcisions ont une
valeur connue avec certitude

III. Les tapes de formulation dun PL :


Gnralement il y a trois tapes suivre pour pouvoir construire le modle d'un
programme linaire :
1. Identifier les variables du problme valeur non connues (variable de
dcision) et les reprsenter sous forme symbolique (exp. x1, y1 ).
2. Identifier les restrictions (les contraintes) du problme et les exprimer par un
systme dquations linaires.
3. Identifier lobjectif ou le critre de slection et le reprsenter sous une forme
linaire en fonction des variables de dcision. Spcifier si le critre de
slection est maximiser ou minimiser.

IV. Prsentation Thorique


Un programme linaire consiste trouver le maximum ou le minimum dune
forme linaire dite fonction objectif en satisfaisant certaines quations et
ingalits dites contraintes. En langage mathmatique, on dcrira de tels
modles de la manire suivante :
Soient N variables de dcision x1, x2,, xn, lhypothse que les variables de
dcision sont positives implique que x1 0, x 2 0, , x N 0 .

Ces hypothses rsument celles qui ont t donn par G. B. Dantzig : La proportionnalit, La non-ngativit,
ladditivit et la linarit de la fonction objectif
2

La fonction objectif est une forme linaire en fonction des variables de dcision
de type
z c1 x1 c2 x2 c N x N

o les coefficients c1,,cN doivent avoir une valeur bien dtermine (avec
certitude) et peuvent tre positifs, ngatifs ou nuls. Par exemple le coefficient ci
peut reprsenter un profit unitaire li la production dune unit supplmentaire
du bien xi, ainsi la valeur de z est le profit total li la production des diffrents
biens en quantits gales x1 , x 2 , , x N .
Supposons que ces variables de dcision doivent vrifier un systme dquations
linaires dfinis par M ingalits
a11 x1 a12 x2 a1N x N b1

a21 x1 a22 x2 a2 N x N b2

aM 1 x1 aM 2 x2 aMN x N bM

o les coefficients a1M,, aMN et b1,, bM doivent avoir une valeur bien
dtermine (avec certitude) et peuvent tre positifs, ngatifs ou nuls. Le
paramtre bj reprsente la quantit de matire premire disponible dont le bien x i
utilise une quantit gale aij xi .
En suivant les tapes de formulation ci-dessus, on peut reprsenter le PL comme
suit :
Max c1 x1 c2 x2 c N x N
s.c

a11 x1 a12 x2 a1N x N b1


a21 x1 a22 x2 a2 N x N b2

aM 1 x1 aM 2 x2 aMN x N bN
x1 0, x2 0, , x N 0

V. Exemples de formulations
Limit au dpart aux problmes industriels et militaires, de nos jours plusieurs
problmes de divers domaines sont reprsents ou approxims par des modles
de PL. Lutilisation de ces techniques de modlisation sest renforce encore
aprs avoir construit des algorithmes et des logiciels capables de rsoudre de
plus larges problmes avec autant de variables de dcision que de contraintes.
La tche de formulation demande gnralement une certaine expertise et
connaissance du problme pour pouvoir relever facilement les diffrentes
composantes du problme et ainsi donner un programme qui modlise au mieux

la situation relle. Dans ce qui suit, on prsentera quelques exemples de


formulation en programme linaire lis diffrents problmes de dcision :
Exemple 1 : Problme dagriculture 3
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de
tomates et celles de piments. Il dispose de 480 heures de main duvre et de 440
m3 deau. Un hectare de tomates demande 1 heure de main duvre, 4 m 3 deau
et donne un bnfice net de 100 dinars. Un hectare de piments demande 4 heures
de main duvre, 2 m3 deau et donne un bnfice net de 200 dinars.
Le bureau du primtre irrigu veut protger 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 problme en un PL :
Etape 1 : Identification des variables de dcision. Les deux activits que
lagriculteur doit dterminer sont les surfaces allouer pour la culture de
tomates et de piments :
x1 : la surface alloue la culture des tomates
x2 : la surface alloue la culture des piments
On vrifie bien que les variables de dcision x1 et x2 sont positives :
x1 0, x2 0 .
Etape 2 : Identification des contraintes. Dans ce problme les contraintes
reprsentent la disponibilit des facteurs de production :
Terrain : lagriculteur dispose de 150 hectares de terrain, ainsi la contrainte
lie la limitation de la surface de terrain est x1 x2 150
Eau : la culture dun hectare de tomates demande 4 m3 deau et celle dun
hectare de piments demande 2m3 mais lagriculteur ne dispose que de 440m3.
La contrainte qui exprime les limitations des ressources en eau est
4 x1 2 x2 440 .
Main duvre : Les 480 heures de main duvre seront dpartager (pas
ncessairement en totalit) ente la culture des tomates et celles des piments.
Sachant quun hectare de tomates demande une heure de main duvre et un
hectare de piments demande 4 heures de main duvre alors la contrainte
reprsentant les limitations des ressources humaines est x1 4 x 2 480

Exemple du cours du Prof. Mohamed Saleh Hannachi


4

Les limitations du bureau du primtre irrigu : Ces limitations exigent que


lagriculteur ne cultive pas plus de 90 hectares de tomates. La contrainte qui
reprsente 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 dcision x1 et x2
sont proportionnelles leur valeur. La fonction objectif est donc
z 100 x1 200 x 2 .

Le programme linaire qui modlise le problme dagriculture est :


Max

100 x1 200 x2

s.c.

x1 x2 150
4 x1 2 x2 440
x1 4 x2 480
x1
90
x1 0, x2 0

Exemple 2 : Problme de mdecine 4


Un spcialiste en mdecine a fabriqu un mdicament (des pilules) pour gurir
les sujets atteints dun rhume. Ces pilules sont fabriques selon deux formats :
Petite taille : elle contient 2 grains daspirine, 5 grains de bicarbonate et 1
grain de codine.
Grande taille : elle contient 1 grain daspirine, 8 grains de bicarbonate et 6
grains de codine.
Pour gurir la maladie, le sujet a besoin de 12 grains daspirine, 74 grains de
bicarbonate et 24 grains de codine. Dterminer le nombre de pilules minimales
prescrire au sujet pour quil soit gurit.
Formulation du problme en un PL :
Le problme de mdecine prsente certaines ressemblances avec le problme de
lagriculture, dans les deux cas cest un problme dallocation de ressources.
Les variables de dcision qui reprsentent des valeurs inconnues par le dcideur
qui est dans ce cas le spcialiste en mdecine sont :
x1 : le nombre de pilules de petite taille prescrire.
x2 : le nombre de pilules de grande taille prescrire.
On vrifie bien que les variables de dcision x1 et x2 sont positives :
x1 0, x2 0 .

An introduction to linear programming and the theory of games, A. M. Glicksman


5

Les contraintes imposes par le problme sur les valeurs possibles de x1 et x2


sont :
La prescription doit contenir des pilules avec au moins 12 grains daspirine.
Sachant quune petite pilule contient 2 grains daspirine et quune grande
pilule contient un seul grain daspirine, on obtient la contrainte suivante :
2 x1 x2 12 .
De la mme faon que pour laspirine, la prescription du spcialiste en
mdecine doit contenir au moins 74 grains de bicarbonate. Ainsi la contrainte
suivante doit tre satisfaite : 5 x1 8 x2 74 .
Finalement la contrainte impose par le fait que la prescription doit contenir
au moins 24 grains de codine est x1 6 x2 24 .
Etape 3 : Identification de la fonction objectif. On remarque quil y a plusieurs
couples de solutions ( x1 , x 2 ) qui peuvent satisfaire les contraintes spcifies
ltape 2. La prescription doit contenir le minimum possible de pilules. Donc le
critre de slection de la quantit de pilules prescrire est celle qui minimise le
nombre total des pilules z x1 x 2 .

Le programme linaire qui modlise ce problme mdical est donc le suivant :


Min

x1 x2

s.c.

2 x1 x2 12
5 x1 8 x2 74
x1 6 x2 24
x1 0, x2 0

Exemple 3 : problme de production 5


Pour fabriquer deux produits P1 et P2 on doit effectuer des oprations sur trois
machines M1, M2 et M3, successivement mais dans un ordre quelconque. Les
temps unitaires dexcution sont donns par le tableau suivant :
M1
M2
M3
P1
11 mn
7 mn
6 mn
P2
9 mn
12 mn
16 mn
On supposera que les machines nont pas de temps dinactivit.
La disponibilit pour chaque machine sont :
165 heures (9900 minutes) pour la machine M1 ;
140 heures (8400 minutes) pour la machine M2 ;
160 heures (9600 minutes) pour la machine M3 .
Le produit P1 donne un profit unitaire de 900 dinars et le produit P2 un profit
unitaire de 1000 dinars.
5

Mthodes et modles de la recherche oprationnelle, A. Kaufmann, pp 22-23


6

Dans ces conditions, combien doit-on fabriquer mensuellement de produits P1 et


P2 pour avoir un profit total maximum ?
Formulation en un PL :
Les variables de dcisions sont :
x1 : le nombre dunits du produit P1 fabriquer
x2 : le nombre dunits du produit P2 fabriquer
Les contraintes outre les contraintes de non-ngativit sont :
11x1 9 x 2 9900 pour la machine M1
7 x1 12 x 2 8400 pour la machine M2
6 x1 16 x 2 9600 pour la machine M3
Le profit maximiser est : z 900 x1 1000 x 2

Le programme linaire rsultant est :


Max

900 x1 1000 x2

s.c.

11x1 9 x2 9900
7 x1 12 x2 8400
6 x1 16 x2 9600
x1 0, x2 0

Exemple 4 : Problme dalimentation 6


On se propose de raliser une alimentation conomique pour des bestiaux, qui
contient obligatoirement 4 sortes de composants nutritifs, A, B, C et D.
Lindustrie alimentaire produit prcisment deux aliments M et N qui
contiennent ces composants : 1 Kg daliment M contient 100 g de A, 100 g de C,
200 g de D ; 1 Kg daliment N contient 100 g de B, 200 g de C, 100 g de D.
Un animal doit consommer par jour au moins : 0.4 Kg de A ; 0.6 Kg de B ; 2 Kg
de C ; 1.7 Kg de D. Laliment M cote 10 DT le Kg et N cote 4 DT le Kg.
Quelles quantits daliments M et N doit-on utiliser par jour et par animal pour
raliser lalimentation la moins coteuse ?

Formulation en un PL :
6

Mthodes et modles de la recherche oprationnelle, A. Kaufmann, pp 24-25


7

On peut rsumer toutes les donnes du problme dans le tableau suivant


M
N
Quantits prescrites
A
0.1
0
0.4
B
0
0.1
0.6
C
0.1
0.2
2
D
0.2
0.1
1.7
Cot
10
4
Ce genre de tableau peut aider mieux analyser le problme et ainsi formuler le
programme linaire correspondant.
Les variables de dcision sont
xM : la quantit daliments M utiliser pour lalimentation des deux bestiaux
xN : la quantit daliments N utiliser pour lalimentation des deux bestiaux
Les contraintes de non-ngativit sont x1 0, x2 0.
Le choix de cette quantit est contraint la prsence dans lalimentation du
composant
x1 4
A : 0.1 x1 0.4
x2 6
B : 0 .1 x 2 0 .6
x1 2 x 2 20
C : 0.1 x1 0.2 x 2 2
D : 0.2 x1 0.1 x 2 1.7 2 x1 x 2 17
La fonction objectif est une fonction cot : z 10 x1 4 x 2 .
Le programme linaire est un programme de minimisation :
10 x1 4 x2

Min

x1 4

s.c.

x2 6
x1 2 x2 20
2 x1 x2 17
x1 0, x2 0

Exemple 5 : Problme de mlange 7


Un industriel veut produire un alliage Z 30% de plomb, 30% de zinc et 40%
dtain. Supposons quil puisse se procurer sur le march des alliages A, B, C,
D, E, F, G, H, I dont les compositions et les prix respectifs sont donns dans le
tableau suivant :
Compositions
des alliages
(en %)
7

G. B. Dantzig applications et prolongements de la programmation linaire pp :13-14


8

Alliage
fabriquer

Plomb
Zinc
Etain
Cot au Kilo

10
10
80
4.1

10
30
60
4.3

40 60 30
50 30 30
10 10 40
5.8 6 7.6

30
40
30
7.5

30
20
50
7.3

50
40
10
6.9

20
30
50
7.3

30
30
40

Combien doit-il acheter de chaque alliages A, B, C, D, E, F, G, H et I pour


obtenir au prix de revient minimum un 1 Kg de lalliage Z ?
Formulation en un PL :
La dcision prendre : Combien acheter de chaque alliage A, B, , I ?
Les variables de dcision sont :
xi : la quantit dalliage i, i= A, B, , I, acheter.
On vrifie bien que les variables de dcision xi , i= A, B, , I, sont positives :
x A 0, xB 0, xC 0, xD 0, xE 0, xF 0, xG 0, xH 0, xI 0 .
Les contraintes relatives au problme sont :
Equation de la conservation de la matire :
x A 0, x B 0, xC 0, x D 0, x E 0, x F 0, xG 0, x H 0, x I 0

Equation de la satisfaction des proportions en Plomb :

x A 0.3 x B 0.5 xC 0.3 x D 0.3 x E 0.4 x F 0.2 xG 0.4 x H 0.3 x I 0.3

Equation de la satisfaction des proportions en Zinc :

0.1 x A 0.3 x B 0.5 x C 0.3 x D 0.3 x E 0.4 x F 0.2 x G 0.4 x H 0.3 x I 0.3

Equation de la satisfaction des proportions en Etain :

0.8 x A 0.6 x B 0.1 xC 0.1 xD 0.4 x E 0.3 xF 0.5 xG 0.1 x H 0.5 xI 0.4

La fonction objectif dans cet exemple reprsente le cot dachat des diffrents
alliages A, B, C, D, E, F, G, H et I. Donc lexpression de la fonction objectif est
la suivante :
z 4.1 x A 4.3 x B 5.8 xC 6 x D 7.6 x E 7.5 x F 7.3 xG 6.9 x H 7.3 x I

Le programme linaire qui modlise ce problme mlange s'crit :


Min

4.1 x A 4.3 x B 5.8 xC 6 x D 7.6 x E 7.5 x F 7.3 xG 6.9 x H 7.3 x I

s.c.

x A x B xC x D x E x F xG x H x I 1
0.1 x A 0.1 x B 0.4 xC 0.6 x D 0.3 x E 0.3 x F 0.3 xG 0.5 x H 0.2 x I 0.3
0.1 x A 0.3 x B 0.5 xC 0.3 x D 0.3 x E 0.4 x F 0.2 xG 0.4 x H 0.3 x I 0.3
0.8 x A 0.6 x B 0.1 xC 0.1 x D 0.4 x E 0.3 x F 0.5 xG 0.1 x H 0.5 x I 0.4
x A , x B , xC , x D , x E , x F xG , x H , x I 0

Exemple 6 :

Slection de Mdias

Une entreprise dsire effectuer une campagne publicitaire dans la tlvision, la


radio et les journaux pour un produit lanc rcemment sur le march. Le but de
8

Operations research principles and practice, pp17-18


9

la campagne est dattirer le maximum possible de clients. Les rsultats dune


tude de march sont donns par le tableau suivant :

Cot dune publicit


Nombre
de
client
potentiel par publicit
Nombre
de
client
potentiel femme par
publicit

Tlvision
Locale
Par
satellite
40 DT
75 DT
400
900
300

400

Radio

Journaux

30 DT
500

15 DT
200

200

100

Pour la campagne, on prvoit de ne pas payer plus que 800DT pour toute la
campagne et on demande que ces objectifs soient atteints :
1. Au minimum 2000 femmes regardent, entendent ou lisent la publicit ;
2. La campagne publicitaire dans la tlvision ne doit pas dpasser
500 DT ;
3. Au moins 3 spots publicitaires seront assurer par la tlvision locale et au
moins de deux spots par la tlvision par satellite.
4. Le nombre des publicits dans la radio ou dans les journaux sont pour chacun
entre 5 et 10.
Formulation en un PL :
Les variables de dcision du problme sont
x1 : le nombre de spots publicitaires dans la tlvision locale
x2 : le nombre de spots publicitaires dans la tlvision par satellite
x3 : le nombre de spots publicitaires dans la radio
x4 : le nombre daffiches publicitaires dans les journaux
Les contraintes de non-ngativit sont vrifies.
Les contraintes du problme sont :
Cot total de la compagne publicitaire : 40 x1 75 x 2 30 x3 15 x 4 800
Nombre de clients femmes potentiels par publicit :
300 x1 400 x 2 200 x3 100 x 4 2000

Contraintes de la tlvision : 40 x1 75 x 2 500 , x1 3 et x 2 2


Contraintes sur le nombre de publicits dans la radio et dans les journaux
5 x3 10 et 5 x 4 10 .
La fonction objectif maximiser reprsente le nombre de clients potentiels par
publicit z 400 x1 900 x2 500 x3 200 x4 .
Le programme linaire rsultant est :
10

Max

400 x1 900 x2 500 x3 200 x4

s.c.

40 x1 75 x2 30 x3 15 x4 800
30 x1 40 x2 20 x3 10 x4 2000
40 x1 75 x2

500
3

x1

x2
x3

x3

10
x4

x4

10

x1 0, x2 0, x3 0, x4 0

CHAPITRE 2

11

Formulation
dun programme
linaire (PL)
I. Introduction
Aprs avoir illustrer par des exemples, comment un problme pratique peut tre
modlis par un programme linaire, ltape qui va suivre sera certainement
celle de la rsolution de ce problme mathmatique. La mthode graphique est
lune des premires mthodes utilises ce sujet.
Si on parle de rsolution graphique alors on doit se limiter une reprsentation
deux variables et au plus trois variables. Ceci indique que dans ce chapitre on
examinera seulement les programmes linaires deux variables de dcision.

II. Systme daxes


Une des conditions de la russite de notre reprsentation graphique est le choix d'un systme daxes. Un mauvais choix peut rendre notre
reprsentation non claire et imprcise.

A cause des contraintes de non-ngativit des variables de dcision, nous nous


intressons seulement au cadran positif (voir figure ci-dessus).
Cette rgion sappelle la rgion des solutions possibles du problme.
Prenons lexemple 2 relatif au problme de mdecine. Le programme linaire est
le suivant :

12

Min

x1 x2

s.c.

2 x1 x2 12
5 x1 8 x2 74
x1 6 x2 24
x1 0, x2 0

Un bon choix se base sur une lecture des diffrents paramtres du programme
linaire. Dans notre cas, on ne peut qualifier de bon, le choix de 20 comme
unit dans les deux axes.
Pour lexemple, on peut choisir le systme daxes suivant :
x2
12
6
3
6

12

24

x1

III. Reprsentation graphique des contraintes


Parmi les solutions possibles dun problme, il y a ceux qui vont satisfaire toutes
les contraintes du programme, appels solutions ralisables, et ceux qui vont
satisfaire une partie ou aucune de ces contraintes, appels solutions non
ralisables.
Une reprsentation graphique des ingalits (des contraintes) va nous permettre
de dterminer lensemble des solutions ralisables.
Revenons lexemple 2 du problme de mdecine.
Une des contraintes de ce problme est celle relative au grain daspirine :

2 x1 x2 12 .

Lensemble des solutions qui vrifient cette ingalit est le mme que celui qui
vrifie 2 x1 x2 12 et 2 x1 x 2 12 .
x2
12
6
3
6

12

24

x1

Lensemble des solutions qui correspond lquation est lensemble des points
de la droite l dfinie par x 2 2 x1 12 . Cette droite admet une valeur de la pente
gale 2 et intercepte laxe des ordonnes en 12 (voir figure ci-dessus).

13

Lingalit

2 x1 x 2 12

correspond un demi-plan limit par la droite


Or cette droite divise le plan en deux demi-plans ouverts donc
quel est le demi-plan choisir ?
x 2 2 x1 12 .

x2

12
6
3
6

12

24

x1

Pour ce faire, il suffit de prendre un point de lun des demi-plans (cest dire
nappartenant pas la droite x 2 2 x1 12 ) et voir sil vrifie lingalit
2 x1 x 2 12 . Par exemple le point de coordonnes (0,0) ne vrifie pas lingalit
2 x1 x 2 12 donc le demi-plan 1 au-dessus de la droite est celui recherch (voir
figure ci-dessus).
Lespace hachur reprsente le demi-plan ferm des solutions qui vrifient la
contrainte 2 x1 x 2 12 .
Si on fait de mme pour les deux autres contraintes du problme (voir figures
ci-dessous), on obtient les deux autres demi-plans 2 et 3 relatifs aux solutions
vrifiant respectivement les contraintes 5 x1 8 x2 74 et x1 6 x2 24 .
3

9.25
6
3

4
6

12

24

x1

14,8

24

x1

Une solution possible du problme est dite ralisable si et seulement si elle


vrifie toutes les contraintes, cest dire si elle appartient aux trois demi-plans
relatifs chaque contrainte du programme linaire, en dautre terme
1 2 3 (voir figure).
x2
Ensemble des
solutions
ralisables

12
3
6

12

24

x1

Dfinition : Un ensemble E non vide est dit convexe si et seulement si pour tout
lment x et y de E et pour tout [0,1], x + (1-) yE.

14

On peut vrifier facilement que chacun des demi-plans 1, 2 , 3 est convexe en


vrifiant que pour toute paire de points P1 et P2, lensemble des points qui
forment le segment [P1P2] appartient au demi-plan.
Thorme : Lintersection densembles convexes (non vide) est convexe.
Propositions : Lensemble des solutions ralisables (non vide) est convexe.

IV. Reprsentation de la fonction objectif


Soit z la valeur de la fonction objectif du problme de mdecine z x1 x 2 .
Pour z=0, la fonction objectif est reprsente de la manire suivante :
x2
12
3
6

24

x1

x1 x 2 0

Pour z=6, cest dire que le nombre de pilules prescrire est gale 6 pilules.
La fonction objectif est reprsente comme suit :
x2
12
3
6

24

x1

x1 x 2 6

Chaque point du segment qui relie les points (6,0) (0,6) reprsente des
solutions qui engendrent une prescription avec 6 pilules des deux tailles.
On peut tracer une infinit de droites qui reprsentent les diffrentes valeurs de
la fonction objectif, toutes ces droites ont le mme coefficient directeur (-1). Par
suite elles sont parallles entre elles. De plus on peut diminuer la valeur de z
indfiniment dans le sens indiqu dans la figure ci-dessous.
x2
12
3
x1
6

z 6 z 12

z 18

Le problme est de connatre quelle est la droite qui correspond la valeur


minimal de la fonction objectif ?
15

V. Recherche de la solution optimale


a. Rsolution graphique
Si nous retraons lensemble des droites parallles relatives diffrentes valeurs
de la fonction objectif sur la figure qui reprsente lensemble des solutions
ralisables, on peut localiser la solution optimale. Elle correspond la solution
ralisable qui intercepte la droite la plus petite valeur de z.
x2
12
B
3
6

x1

12
Z=10

Dans notre exemple, la solution optimale est lintersection des deux contraintes
2 x1 x2 12 et 5 x1 8 x2 74 . Une valuation des coordonnes de ce point revient
rsoudre le systme linaire suivant :

2 x1 x2 12

5x1 8x2 74
Elle correspond daprs le graphique au point (2,8). Donc la prescription
optimale est de 2 pilules de petite taille et 8 pilules de grande taille. Le nombre
de pilules (la valeur de la fonction objectif) est gale 10.
b. Rsolution par numration :
On remarque que la solution optimale du problme de mdecine est un point
extrme qui se trouve sur le bord de lensemble des solutions. Une telle solution
est dite solution ralisable de base.
On peut admettre le rsultat suivant : Si un programme linaire admet une
solution optimale alors il existe une solution ralisable de base pour laquelle la
fonction objectif atteint la valeur optimale
Une mthode de rsolution du programme linaire consiste donc dterminer
les solutions ralisables de base (les points dintersection des droites qui forment
les contraintes) et calculer pour chaque point la valeur de la fonction objectif.
La solution du programme linaire est la solution qui on associe la valeur
optimale de la fonction objectif.

16

x2
12

A
B

C
6

D
x1

12

Dans le problme de mdecine, lensemble des solutions ralisables de base prsente 4 points extrmes A(0,12), B(2,8), C(23/11,126/11) et
D(24,0). La valeur de la fonction objectif associe respectivement A, B, C et D est 12, 10, 149/11 et 24. On vrifie bien que B est la
solution optimale du problme avec une valeur optimale gale 10.

VI. Exemples
Dans cette section on donne quelques exemples de rsolution graphique de problmes linaires relatifs au diffrents cas possibles :

Problme de maximisation
Max

100 x1 200 x2

s.c.

x1 x2 150

(1)

4 x1 2 x2 440

(2)

x1 4 x2 480

(3)

x1

90

x2
A

(2)
B

110

(4)

Z=0

(4)

30

(3)
D

x1 0, x2 0

(1)

40

x1

la solution optimale est B(40,110)

Problme avec solution non borne


Max

- 2 x1 3 x 2

s.c.

x1 5

(1)

2 x1 3 x 2 6

(2)

x2
(2)

x1 0, x 2 0

Z=0

x1
(1)

On peut augmenter la valeur de la fonction objectif dans la direction des flches


indfiniment donc la solution est non borne

17

Problme impossible
Min

3 x1 2 x 2

s.c.

x1 2 x 2 2

(1)

2 x1 4 x 2 8

(2)

x2

x1 0, x 2 0

(2)

x1

(1)

Lespace des solutions ralisables est vide, il est lintersection des deux zones
grises de la figure ci-dessus

Problme solutions multiples


Max

x1 3 x 2

s.c.

2 x1 6 x 2 30

x2

(1)

x1 10

(2)

x2 4

(3)

(2)

(1)
A

(3)
B

x1 0, x 2 0

10

x1

Z=0

Lensemble des points dcrit par le segment [AB] reprsente les solutions
optimales du problme linaire

Problme de dgnerescence
Max
s.c.

x1 x 2
3 x1 2 x 2 40

x2

(1)

x1 10

(2)

x2 5

(3)

(2)

(1)
B

(3)

x1 0, x 2 0
O

x1
Z=0

La solution optimale B(10,5) est dite dgnre si trois contraintes concourent


en ce point.

18

VII. Analyse de sensibilit


Une analyse de sensibilit se rsume la recherche des intervalles de variations
possibles des paramtres du programme linaire sans que la solution optimale ne
soit modifie.
Question : De combien peut-on faire varier la quantit de codine dans le
problme de mdecine sans changer la solution optimale.
Rponse :
x2
12
B
3
6

x1

12
Z=10

On peut changer la valeur du second membre de la troisime contrainte jusqu'


ce que la droite de coefficient directeur 1/6 touche le point optimal (2,8). Cest
dire quon peut varier le second membre de la troisime contrainte de 24
jusqu' 50 sans changer la solution optimale.
Question : De combien peut-on faire varier le profit engendr par la culture
dun hectare de tomates, dans le problme de l'agriculture, sans changer la
solution optimale ?
Rponse :
x2
A

(2)

(4)

110
Z=0

30

(3)
D

40

(1)
x1

Soit la variation du profit engendr par la culture dun hectare de tomate. La


fonction objectif est gale (100 ) x1 200 x2
La solution demeure optimale si la pente de la fonction objectif reste toujours
comprise entre la pente de la contrainte (1) et (3). Ceci est quivalent dire que :
1

200
1

100
4

On peut vrifier aussi que si :

19

50 100

50 alors la solution optimale est A


50 alors le problme est solutions multiples : [AB]
50 100 alors la solution optimale est B
100 alors le problme est solutions multiples : [BC]
100 300 alors la solution optimale est C
300 alors le problme est solutions multiples : [CD]
300 alors la solution optimale est D

CHAPITRE 3

La Mthode de
Simplexe
I. Introduction

20

On a prsent dans le chapitre prcdent une procdure graphique pour rsoudre


un programme linaire deux variables. Par contre, dans la plupart des
problmes rels, on a plus que deux variables dterminer. Une procdure
algbrique pour rsoudre les programmes linaires avec plus que deux variables
fera lobjet de ce chapitre. C'est la mthode de simplexe.
Une implmentation de cette procdure permis de rsoudre des programmes
avec un peu plus de quelques milliers de variables. Le programme Lindo quon
prsentera dans le chapitre 7 (en version pour tudiant) supporte au plus 200
variables et 100 contraintes.
Dans ce chapitre la mthode de simplexe est prsente pour les problmes
Max

ct x

s.c

Axb

et en utilisant le problme de lagriculteur :

X 0

100 x1 200 x2

Max

x1 x2 150
4 x1 2 x2 440

s.c.

x1 4 x2 480
x1
90
x1 0, x2 0

II. Mise sous forme standard


La mise sous forme standard consiste introduire des variables supplmentaires
(une pour chaque contrainte) de manire a rcrire les ingalits ( ) sous la
forme d'galits. Chacune de ces variables reprsente le nombre de ressources
non utiliss. On les appelle variable d'cart. La forme standard s'crit donc :

Max c t x
s.c
AxS b
X 0, S 0

Max c1 x1 c2 x2 c N x N
s.c
a11 x1 a12 x2 a1N x N S1 b1
a21 x1 a22 x2 a2 N x N S 2 b2

a M 1 x1 a M 2 x2 a MN x N S M bM
x1 0, x2 0, , x N 0
S1 0, S 2 0, , S M 0

La forme standard du programme linaire de l'agriculteur est :


Max
s. c

100x1 + 200x2
x1 + x2 + S1 = 150
4x1 + 2x2 + S2 = 440
x1 + 4x2 + S3 = 480(3.4)
x1 + S4 = 90
(3.5)
x1, x2, S1, S2, S3, S4 0

(3.1)
(3.2)
(3.3)
(3.6)

21

L'impact de ces variables d'cart sur la fonction objectif est nulle. Ceci explique
le fait que leur existence soit tout simplement lie une mise en forme du
programme linaire initial. Ces variables d'cart peuvent prendre des valeurs
nonnegatives. Le fait de donner la valeur des variables d'cart a l'optimum donne
une ide du nombre des ressources non utilises.

III. Revue algbrique de la mthode du simplexe


La question qui se pose : que demande-t-on dune procdure algbrique ?
En premier lieu, on note que les contraintes du problme (3.2)-(3.5), forment un
systme de 4 quations et de 6 variables. Or il y a un nombre infini de solutions
de ce systme dquations. Donc une procdure algbrique, pour la rsolution
dun programme linaire doit tre capable de retrouver les solutions des
systmes dquations o il y a plus de variables que de contraintes.
En deuxime lieu, ce ne sont pas toutes les solutions qui vrifient (3.2)-(3.5) qui
sont des solutions du programme linaire ; ils doivent en plus satisfaire les
contraintes de nonngativit. Ainsi une procdure algbrique doit tre capable
dliminer, de lensemble des solutions qui satisfait (3.2)-(3.1) celles qui
narrivent pas satisfaire les contraintes de nonngativit.
Finalement, une procdure algbrique pour rsoudre les programmes linaires
doit tre en mesure de choisir parmi les solutions ralisables ceux qui
maximisent la fonction objectif.
La mthode de simplexe est une procdure algbrique qui tient compte de ces
trois considrations.
Pour illustrer cette procdure,
devient
x1 = 150
x1 + S2 = 440
4x1 + S3 = 480
x1 + S4 = 90

supposons que x2 = 0 et S1 = 0. Notre systme


x1 =
S2 =
S3 =
S4 =

150
340
-120
-60

Les variables x1, S2, S3 et S4 (non nulles) sont dites variables de base et les
variables S1, x2, (nulles) sont dites variables hors base.
Gnralement, si on a un programme linaire standard constitu de n variables et
m contraintes (n m) alors une solution de base (extrme) est obtenue, en
22

annulant (n-m) variables et en rsolvant les m contraintes pour dterminer les


valeurs des autres m variables.
On note quune solution de base nest pas toujours ralisable. Cest le cas de la
solution quon vient de retrouver.
Une solution ralisable de base serait celle o x1 = x2 = 0, ainsi on a :
S1 = 150
S2= 440
S3 = 480
S4 = 90
Cette solution correspond un point extrme de lensemble des solutions
ralisables qui est lorigine O.
Pour la mthode de simplexe une solution ralisable de base initiale est
demande. Une telle solution peut tre retrouve en annulant toutes les variables
de dcision. Ce qui correspond dans notre exemple au point dorigine O.
A partir de ce point la mthode de simplexe va gnrer successivement des
solutions ralisables de base pour notre systme dquations en sassurant que la
valeur de la fonction objectif est en train daugmenter jusqu' localiser la
solution optimale du problme qui est un point extrme de lespace des solutions
ralisables donc une solution ralisable de base.
Ainsi, on peut dcrire la mthode de simplexe comme tant une procdure
itrative qui passe dune solution ralisable de base une autre jusqu atteindre
la solution optimale.
La description mathmatique de ce processus fera lobjet de la section suivante.

IV. La mthode des tableaux


La mthode de simplexe commence par l'identification d'une solution ralisable
de base et ensuite, elle essaye de trouver d'autres solutions ralisables de base
jusqu atteindre la solution optimale. Ainsi, on doit, tout dabord, retrouver
cette solution ralisable de base.
Gnralement si le programme linaire satisfait ces deux proprits :
P1/ Parmi les variables du problme standard, il y a m variables qui apparaissent
avec un coefficient non nul dans chaque contrainte (dans notre exemple : S1, S2,
S3 et S4).
23

P2/ Les valeurs du second membre des contraintes (les composants du vecteur
b) sont positives.
Alors une solution ralisable de base est obtenue en annulant les (n-m) variables
de dcision et la valeur des variables d'cart est directement donne par le
second membre. La deuxime proprit assure la satisfaction des contraintes de
nonngativit des variables d'cart.
Dans notre exemple, la forme standard du programme linaire vrifie ces deux
proprits.
a. Tableau de simplexe initial
Aprs avoir mis le programme linaire sous une forme qui vrifie les deux
proprits P1 et P2, ltape suivante est de tracer le tableau de simplexe initial.
Le modle gnral des tableaux de simplexe est :
cj coefficient correspond aux variables

variables de base

Qi Valeur des

VB variables de
base

des variables de
base

Ci coefficients

Toutes les variables

A = (aij)i,j
matrice des coefficients
des contraintes du programme
standard

Pour notre exemple le tableau de simplexe initial est le suivant :


100
200
0
0
0
0
x1
x2
S1
S2
S3
S4
0
S1
150
1
1
1
0
0
0
0
S2
440
4
2
0
1
0
0
0
S3
480
1
4
0
0
1
0
0
S4
90
1
0
0
0
0
1
On remarque quon a plac en premire ligne les contributions unitaires de
toutes les variables de dcision x1,..., S4 dans la fonction objectif. Dans la
troisime ligne, on retrouve la premire contrainte x1 + x2 + S1 = 150. La valeur
150 reprsente ici la valeur de S1 relative la solution ralisable de base initiale.
24

Dans la premire colonne on trouve les contributions nulles des variables d'cart
qui forment la solution de base initiale.
Exemple :
Question : Quelles sont les contraintes et la fonction objectif du programme
linaire dcrit par le tableau de simplexe suivant :

0
0

S1
S2

150
440

6
x1
4
1

7
x2
2
5

0
S1
1
0

0
S2
0
1

Rponse : Les contraintes du programme sont :


4 x1 + 2x2 + S1 = 50
x1 + 5x2 + S2 = 40
et la fonction objectif est : 6x1 + 7x2 + 0S1 + 0S2
Remarque : Les variables qui figurent dans la deuxime colonne sont dites
variables de base. A chacune de ces variables, on associe la valeur 1
lintersection de la ligne et de la colonne relative cette variable et dans le reste
de la colonne on trouve des zros.
Jusqu ici on a vu comment retrouver une solution ralisable de base et
comment prsenter le tableau de simplexe initial. Dans la section suivante, on
examinera la procdure lie la mthode de simplexe qui permet de passer de
cette solution ralisable de base initiale une autre solution ralisable de base
qui donne une meilleure valeur de la fonction objectif.
b. Amlioration de la solution
Pour amliorer la solution il faut gnrer une autre solution de base (point
extrme) qui augmente la valeur de la fonction objectif. Cest dire, quon doit
slectionner une variable hors base et une variable de base et les permuter de
telle faon que la nouvelle solution donne une plus grande valeur de la fonction
objectif.
Pour savoir si on peut amliorer notre solution ralisable de base initiale nous
allons introduire deux nouvelles lignes au-dessus du tableau de simplexe.
La premire ligne, note zj, reprsente la variation de la valeur de la fonction
objectif qui rsulte du fait quune unit de la variable correspondante la j me
colonne de la matrice A est amene dans la base. Par exemple z1 reprsente la
diminution du profit qui rsulte de lajout dune unit la valeur de x1.
25

En effet, si on produit un hectare supplmentaire de x1, la valeur de quelques


variables de base vont changer vu quon a :
x1 + S1 = 150
4x1 + S2 = 440
x1 + S3 = 480
x1 + S4 = 90
Donc, une augmentation de x1 de 0 vers 1 va tre accompagne d'une diminution
des variables de base S1, S2, S3, S4 respectivement de 1, 4, 1 et 1.
Leffet de cette diminution sur la fonction objectif est nul car les coefficients des
variables dcarts dans cette fonction sont nulles
z1 = 0 S1 + 0 S2 + 0 S3 + 0 S4 =0 1 + 0 4 + 0 1 + 0 1 = 0
La valeur z1 est calcule en multipliant les coefficients de la premire colonne de
la matrice A relatifs la variable x1 par les coefficients ci de la premire
colonne. Gnralement, on a :
aij ci
zj =
i
La deuxime ligne, note cj - zj, reprsente leffet net de laugmentation dune
unit de la jme variable.
Dans notre exemple, leffet net sur la fonction objectif engendr par
laugmentation dune unit dans la valeur de x1 est
c1 - z1 = 100 - 0 = 100
Si on reprend la mme opration pour le reste des variables, on trouve le tableau
suivant :

0
0
0
0

S1
S2
S3
S4

150
440
480
90
zj
cj - zj

100
x1
1
4
1
1
0
100

200
x2
1
2
2
0
0
200

0
S1
1
0
0
0
0
0

0
S2
0
1
0
0
0
0

0
S3
0
0
1
0
0
0

0
S4
0
0
0
1
0
0

En analysant la ligne relative lvaluation nette cj - zj, on remarque quune


augmentation dune unit de la valeur de x1 engendre un profit de 100 dinars, et
quune augmentation dune unit de la valeur de x2 engendre un profit
supplmentaire de 200 dinars. Donc, si on a choisir, on va opter pour une
augmentation de la valeur de x2. On dit que x2 est la variable entrante.

26

Le problme est maintenant, jusquo peut-on augmenter x2 ?


Cette augmentation ne peut pas se faire infiniment, sous lhypothse que x1 reste
nulle. On a
x1 + S1
= 150
2x2 + S2
= 440
4x2 + S3
= 480
x4 + S2
= 90
On peut voir que x2 peut prendre comme valeur maximale la valeur de 100 (il ne
faut pas oublier que les Si, i=1, 2, 3, 4 sont des variables positives). Cette valeur
est obtenue en choisissant la plus petite valeur positive des divisions de 100/1,
440/2, 480/4 et 90/0 (on suppose que 90/0 est gale linfini ).
En gnral, la valeur maximale de la variable entrante xj est le minimum des
valeurs positives des rapports de Qi par les coefficients de la colonne de la
matrice A relatif la jme variable. Ces rapports feront lobjet dune autre colonne
droite de la matrice A.
Dans notre exemple, on aura :

0
0
0
0

S1
S2
S3
S4

100
440
480
90

100
X1
1
4
1
1
0
100

200
x2
1
2
4
0
0
200

0
S1
1
0
0
0
0
0

0
S2
0
1
0
0
0
0

0
S3
0
0
1
0
0
0

0
S4
0
0
0
1
0
0

150
220
120

Le fait daugmenter x2 jusqu la valeur 100 va engendrer lannulation de la


valeur du variable dcart S3, ce qui limine S3 de la base. On appelle S3 variable
sortante.

27

Llment 4, lintersection de la ligne relative la variable sortante S1 (dite


ligne pivot) et de la colonne relative la variable entrante x2 (dite colonne pivot)
est llment pivot. (Cest llment cercl dans le tableau).
c. Calcul des tableaux suivants
Dans le nouveau tableau de simplexe on va remplacer S3 par x2 et lensemble des
variables de base deviendra S1, S2, x2, S4. On exige que x2 prenne la mme place
dans la colonne des variables de base que celle de la variable sortante S3.
Jusqu maintenant on ne peut pas remplir le tableau relatif cette nouvelle
solution de base :
100
x1

200
x2

0
S1

0
S2

0
S3

0
S4

0
S1
0
S2
200
x2
0
S4
Ce qui reste dterminer sont les coefficients aij de la nouvelle matrice A et les
valeurs Qi des variables de base. Ceci est ralis en utilisant la rgle de pivot :
1. Diviser le ligne de pivot par la valeur de llment de pivot pour trouver la
ligne transforme de la ligne de pivot.

0
0
200
0

S1
S2
x2
S4

120

100
x1

200
x2

0
S1

0
S2

0
S3

0
S4

1/4

-1/4

2. A chacune des variables de base, on associe la valeur 1 lintersection de la


ligne et de la colonne relative cette mme variable et dans le reste de la
colonne on trouve des zros.
100
x1
0
0

S1
S2

200
x2
0
0

0
S1
1
0
28

0
S2
0
1

0
S3

0
S4
0
0

200
0

x2
S4

120

1/4

1
0

0
0

0
0

-1/4

0
1

3. Pour calculer le reste des valeurs du tableau, on opre des combinaisons


linaires dans le prcdent tableau de simplexe. Par exemple pour calculer la
nouvelle valeur qui va prendre la place de la valeur 100 devant la variable de
base S1: On multiplie 100 par le pivot (4), on retranche de ce produit le
produit de la projection de la valeur 100 sur la ligne pivot par la projection de
la valeur 100 sur la colonne pivot, et on divise le tout par la valeur du pivot
(4).

0
0
0
0

S1
S2
x2
S4

150
440
480
90

100
x1
1
4
1
1

200
x2
1
2
4
0

0
S1
1
0
0
0

150 4 480 1
30
4

0
S2
0
1
0
0

100
x1
0
0
200
0

S1
S2
S3
S4

30
120

1/4

0
S3
0
0
1
0

0
S4
0
0
0
1

0
S3
-1/4

0
S4
0
0
0
1

0 4 11
1

4
4

200
x2
0
0
1
0

0
S1
1
0
0
0

0
S2
0
1
0
0

-1/4

En appliquant cette rgle sur notre exemple, on trouve le tableau suivant :


100
200
0
0
0
0
x1
x2
S1
S2
S3
S4
0
S1
30
3/4
0
1
0
-1/4
0
0
S2
200
7/2
0
0
1
-1/2
0
200
S3
120
1/4
1
0
0
-1/4
0
0
S4
90
1
0
0
0
0
1
Remarques:
a) On vrifie toujours que les colonnes de la matrice relative chacune des
variables de base sont formes par des zros sauf 1 dans lintersection avec la
ligne relative aux mmes variables de base.
b) On peut vrifier aussi que lensemble des solutions ralisables, induit par les
contraintes dcrites dans le dernier tableau de simplexe, est le mme que
celui reprsent par les contraintes initiales. La rgle de pivot est une
29

combinaison linaire des contraintes du programme linaire donc elle ne


change pas lensemble des solutions ralisables.
c) La nouvelle solution ralisable de base est
x1 = 0
x2 = 120
S1 = 30
S2 = 200
S3 = 0
S4 = 90
Cette nouvelle solution correspond au point A(voir graphique). On vrifie bien
que la valeur de la fonction objectif est passer de 0 120 x 200. La valeur de la
fonction objectif peut tre facilement calculer en multipliant membre membre
les ci de la premire colonne par les valeurs des variables de base Qi dans la 3me
colonne.
d) La solution de dpart correspond au point O. La premire itration nous a
amen dans le sens de l'amlioration du profit (fonction objectif), cest dire
le long de laxe des ordonnes.
Ayant retrouv une nouvelle solution, on veut savoir sil est possible de
retrouver une solution ralisable de base meilleure. Pour arriver cette fin, on
doit ajouter les deux lignes relatives au choix de la variable entrante, et la
colonne relative au choix de la variable sortante.

0
0
200
0

S1
S2
x2
S4

30
200
120
90

100
x1
3/4
7/2
1/4
1
50
50

200
x2
0
0
1
0
200
0

0
S1
1
0
0
0
0
0

0
S2
0
1
0
0
0
0

0
S3
-1/4
-1/2
1/4
0
50
-50

0
S4
0
0
0
1
0
0

40
400/7
480
90

La variable entrante est x1 ; elle prsente la plus grande valeur cj- zj. Si on calcule
les quotients Qi/ci1, on retrouve que la variable sortante est S1 qui on associe la
plus petite valeur du ratio Q1/c11=40. Llment pivot dans ce tableau est 3/4. La
nouvelle base est compose de x1, S2, x2, S4.
Le tableau de simplexe suivant issu de lapplication de la rgle de pivot est :
30

100
x1
1
0
0
0

200
x2
0
0
1
0

0
S1
4/3
-14/3
-1/3
-4/3

0
S2
0
1
0
0

0
S3
-1/3
2/3
1/3
1/3

0
S4
0
0
0
1

100 x1
40
0
S2
60
200 x2 110
0
S4
50
Cette nouvelle solution
x1 = 40
x2 = 120
S1 = 0
S2 = 60
S3 = 0
S4 = 50
correspond au point B qui est, daprs les rsultats retrouve par la mthode
graphique, la solution optimale du problme. Ainsi, il faut sattendre ce que la
mthode de simplexe reconnaisse cette solution comme tant la solution
optimale.
Ajoutons la ligne relative au calcul de l'effet net dune augmentation unitaire
dune des variables du problme, on a :

100
0
200
0

x1
S2
x2
S4

40
60
110
50

100
x1
1
0
0
0
100
0

200
x2
0
0
1
0
200
0

0
S1
4/3
14/3
-1/3
-4/3
200/3
-100/3

0
S2
0
1
0
0
0
0

0
S3
-1/3
2/3
1/3
1/3
100/3
-100/3

0
S4
0
0
0
1
0
0

Leffet net associ aux variables hors base S1 et S2 est ngatif. Ceci nous oblige
dire que faire entrer une de ces deux variables dans la base va engendrer une
diminution dans la valeur de la fonction objectif. Donc il ny a pas une autre
solution ralisable de base qui peut engendrer un profit meilleur. Par suite cette
dernire solution est la solution optimale. Ce dernier tableau de simplexe est
donc dit tableau optimal.
31

On peut gnraliser ce rsultat en disant que la solution optimale dun


programme linaire est atteinte sil ny a aucune valeur positive dans la ligne
cj-zj du tableau du simplexe.

V. Rsum de la procdure de la mthode du simplexe


(dans le cas d'un problme de maximisation sous contraintes et avec un second
membre positif)
Etapes
1. Formuler un programme linaire
pour le problme rel.
2. Vrifier que le second membre du
programme linaire est positif
3. Ecrire le programme linaire sous
une forme standard
4. Construire le premier tableau de
simplexe
5. Choisir comme variable entrante
dans la base celle qui admet le plus
grand effet net positif cj-zj.
6. Choisir la variable sortante de la
base celle qui admet le plus petit ratio
suprieur zro.

Justification
Pour
obtenir
une
reprsentation
mathmatique du problme
Ceci est ncessaire pour obtenir comme
variable de base initiale lorigine
Mettre toutes les contraintes sous forme
dgalit
Ce tableau correspond la solution initiale
de base
La valeur de cj-zj indique la quantit
daugmentation de la fonction objectif si
on augmente la valeur de xj dune unit.
La plus petite valeur de Qi/aij indique le
nombre maximal dunit de xj quon peut
introduire avant que la variable de base de
lime ligne ne soit gale zro.
7. Construire le nouveau tableau en Cette rgle nous permet entre autre de
utilisant la rgle de pivot
calculer les valeurs des nouvelles variables
de dcision
8. Faire le test doptimalit. Si Si (cj-zj) 0 alors on na pas dintrt
(cj-zj) 0 pour toutes les variables (hors faire entrer dans la base aucune de ces
base), la solution obtenue est donc variables. Une telle introduction engendra
optimale. Sinon retourner ltape 5.
une diminution de la fonction objectif.

VI. Exemple
Rsoudre le programme linaire suivant en utilisant la mthode de simplexe.
Max 3x1 + 2x2
SC
- x1 + 2x2 4
3x1 + 2x2 14
32

x1 + x2 3
x1 0 x2 0
La forme standard du programme linaire s'crit comme suit :
Max 3x1 + 2x2
SC
- x1 + 2x2 + S1 = 4
3x1 + 2x2 + S2 = 4
x1 - x2 + S3 = 3
x1, x2, S1, S2, S30
Tableau de simplexe initial (1re itration)

0
0
0

S1
S2
S3

4
14
3

3
x1
-1
3
(1)
0
3

2
x2
2
2
-1
0
2

0
S1
1
0
0
0
0

0
S2
0
1
0
0
0

0
S3
0
0
1
0
0

-4
14/3
3

La variable entrante est x1 puisquelle prsente le plus grand effet net positif. La
variable sortante est S3 car elle correspond au plus petit quotient positif.

2me itration

0
0
3

S1
S2
x1

7
5
3

3
x1
0
0
1
3
0

2
x2
1
(5)
1
0
2

0
S1
1
0
0
0
0

0
S2
0
1
0
0
0

La variable entrante est x2 et la variable sortante est S2


3me itration
33

0
S3
1
-3
1
3
-3

7
1
3

0
2
3

S1
x2
x1

6
1
4

3
x1
0
0
1
3
0

2
x2
0
1
0
2
0

0
S1
1
0
0
0
0

0
S2
-1/5
1/5
1/5
1
-10

0
S3
8/5
-3/5
2/5
0
0

Tous les cj-zj 0 donc le tableau de simplexe est optimal et la solution optimal du
programme linaire est
x1 = 4
x2 = 1
S1 = 6
S2 = 0
S3 = 0
La valeur de la fonction objectif est 14.
Remarque : Leffet net de laugmentation dune unit de la valeur de S3
(variable hors base) est nul. Donc si on introduit S3 dans la base, on ne modifie
pas la valeur de la fonction objectif. Ainsi une autre solution optimale peut tre
trouve pour notre programme linaire. Ceci confirme le rsultat de la mthode
graphique qui indique que ce problme admet un ensemble de solution optimale
dcrit par le segment [BC].
La solution optimale donne par le dernier tableau de simplexe correspond au
point C.
Le tableau du simplexe suivant est :

0
2
3

S3
x2
x1

15/4
13/4
5/2

3
x1
0
0
1
3
0

2
x2
0
1
0
2
0

0
S1
5/8
3/8
-1/4
0
0

0
S2
-1/8
1/8
1/4
1
-1

0
S3
1
0
0
0
0

Le tableau est optimal et la solution correspondante est :


x1 = 5/2
34

x2 = 13/4
S1 = 0
S2 = 0
S3 = 15/4
La valeur de la fonction objectif est 14.

CHAPITRE 4

Problmes de
Minimisation et
35

Problmes
Irrguliers
I. Introduction
Dans le chapitre prcdent tous les programmes linaires quon a trait sont du
type : Maximiser une fonction linaire sous contraintes de type infrieur ou
gale (et avec un second membre positif).
Or dans beaucoup de problmes rels, on peut retrouver des contraintes de type
suprieur ou gale et/ou de type gale, ainsi que des problmes o on a
minimiser au lieu de maximiser.
Dans ce chapitre, on tudiera les modifications apporter la mthode du
simplexe pour quelle puisse rsoudre tous ces types de programmes.

II. Les variables artificielles


Considrons le programme linaire suivant :
Max 5x1 + 6x2
S.c
-x1 + x2 4
5x1 + 3x2 = 60
x2 5
x1 0 , x2 0

L'introduction des variables d'cart dans le programme linaire donne


Max 5x1 + 6x2 + 0S1 + 0S2
S.c
-x1 + x2 + S1 = 4
5x1 + 3x2 = 60
x2 - S2 = 5
x1 0 , x2 0, S1 0, S2 0
Afin de gnrer une solution ralisable de base initiale pour la mthode de
simplexe, on a annul les variables de dcision x1 et x2 . Ceci nous permet de
commencer partir de lorigine O. Or, on vrifie bien que lorigine nest pas une
solution ralisable. La question qui se pose est comment nous allons rcrire le

36

programme de manire quon puisse construire le tableau de simplexe initial


lorigine.
Pour arriver cette fin, on doit ressortir une astuce mathmatique qui se rsume
lintroduction de nouvelles variables, dite variables artificielles A1 et A2.
Ces variables nont aucune interprtation, comme leur nom lindique, ils sont
conus artificiellement pour nous aider utiliser la procdure de simplexe et
formuler le tableau initial partir de l'origine.
Si on ajoute ces deux variables artificielles A1 et A2 respectivement la 2me et
3me contrainte, le programme devient le suivant.
Max 5x1 + 6x2 +...
S.c
-x1 + x2 + S1 = 4
5x1 + 3x2 + A1 = 60
x2 -S2 + A2 = 5
x1 0, x2 0, S1 0, S2 0 , a1 0, a2 0
Maintenant on peut obtenir une solution initiale de base du systme dquations,
si on pose x1 = x2 = 0.
La solution initiale est
x1 = 0
x2 = 0
S1 = 4
S2 = 0
A1 = 60
A2 = 5
Cette solution nest pas ralisable puisque x2 nest pas suprieur 50. Ainsi, il
est important de distinguer entre une solution rellement ralisable et une
solution du programme linaire rcrit pour la procdure du simplexe. Certes,
une solution ralisable du problme rel reste toujours une solution ralisable
pour le programme linaire transform, le contraire nest pas toujours vrai.
On peut conclure que tant que les variables artificielles restent dans la base, la
solution demeure non ralisable rellement pour notre programme.
Une manire pour garantir que ces variables artificielles sortent de la base avant
datteindre la solution optimale est de leur associe un grand cot -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 plutt possible de la base.
La fonction objectif scrit donc :
Max z = 5x1 + 6x2 - M A1 - M A2
avec M un trs grand nombre (exemple: M 1010) .
En appliquant de ces modifications, le tableau de simplexe initial est
37

0
-M
-M

S1
A1
A2

4
60
5

5
x1
-1
(5)
0

6
X2
1
3
1

0
S1
1
0
0

0
S2
0
0
-1

-M
A1
0
1
0

-M
A2
0
0
1

De la mme manire que prcdemment essayons de retrouver la variable


entrante te la variable sortante :
5
6
0
0
-M
-M
x1
x2
S1
S2
A1
A2
0
S1
4
-1
1
1
0
0
0
-4
-M
A1
60
(5)
3
0
0
1
0
12
-M
A2
5
0
1
0
-1
0
1

-5M -4M
0
M
-M
-M
5+5 6+4
0
-M
0
0
M
M

La variable entrante est x1 (5 +5M 6 + 4M avec M assez grand) et la variable


sortante est A1 . Le tableau de simplexe qui suit est :
5
6
0
0
-M
-M
x1
x2
S1
S2
A1
A2
0
S1
16
0
8/5
1
0
1/5
0
10
5
x1
12
1
3/5
0
0
1/5
0
20
-M
A2
5
0
(1)
0
-1
0
1
5
5
3-M
0
M
1
-M
0
3+M
0
-M
-M-1
0

Le tableau de simplexe aprs la deuxime itration indique que la variable


sortante est A2.
Remarque: Simplification du tableau
Les deux premire itrations on fait sortir de la base les variables artificielles A1
et A2. Leurs effets nets est maintenant ngatif et trs lev, elles ne pourront
donc pas tre slectionnes litration suivante, ni mme ultrieurement
comme on peut facilement le constater. Donc on peut supprimer du tableau la
colonne relative A1 et A2.
38

En appliquant la rgle ci-dessus, on obtient le tableau de simplexe suivant :

0
5
6

0
5
6

S1
x1
x2

S2
x1
x2

8
9
5

5
x1
0
1
0
5
0

6
x2
0
0
1
6
0

0
S1
1
0
0
0
0

0
S2
8/5
3/5
-1
-3
3

5
6
10

5
x1
0
1
0
5
0

6
x2
0
0
1
6
0

0
S1
5/8
-3/8
5/8
15/8
-15/8

0
S2
1
0
0
0
0

5
15
-5

Le tableau ci-dessus est optimal car tous les effets nets sont ngatifs ou nuls.
Donc la solution optimale est :
x1 = 6
x2 = 10
S1 = 0
S2 = 5

Remarque: cas o le second membre ngatif


Le problme qui peut se poser est que lune des variables du second membre soit
ngative. Par exemple supposons que lors de la formulation on trouve une
contrainte de ce type :
x1 - x2 -4
La condition quil faut vrifier avant de se lancer dans la rcriture de cette
contrainte, en vue de construire le programme standard, est la nongativit du
second membre.

39

Ainsi, on doit modifier la contrainte avant de commencer la standardisation et la


rcrire comme suit :
-x1 + x2 4
Exercice :
Rcrire convenablement ces contraintes:
(1) x1 + 3x2 - 5x3 = - 20
(2) -x1 + 3x2 - 5
(3) 5x1 - 2x2 - 10

III. Les problmes de minimisation


Il y a deux manires de rsoudre un problme de minimisation en utilisant la
mthode de simplexe.
La premire mthode ncessite le changement de la rgle de choix de la variable
entrante. Dans un problme de maximisation la rgle est de choisir comme
variable entrante celle qui a le plus grand effet net positif non nul. Ceci parce
que notre objectif est de choisir la variable qui en entrant dans la base va
engendrer un profit supplmentaire et ainsi accrotre la valeur de la fonction
objectif. Pour un problme de minimisation, on va utiliser la rgle inverse.
Cest--dire la variable entrante est celle laquelle on associe la plus petite
valeur ngative non nulle de leffet net cj - zj.
Ceci va nous amener aussi changer notre rgle darrt de la procdure de
simplexe et de dfinir le tableau optimal, comme celui o tous les effets nets
cj - zj sont positifs ou nuls.
Essayons dappliquer la mthode de simplexe sur le problme de mdecine :
Min x1 + x2
Sc
2x1 + x2 12
5x1 + 8x2 74
x1 + 6x2 24
x1 0 , x2 0
Pour permettre la mthode de simplexe de dmarrer de lorigine, il faut comme
on la dj vu dans le cas de problme de maximisation, introduire les variables
artificielles.
Avec les problmes de maximisation on attribue ces variables un coefficient
-M dans la fonction objectif pour les contraindre quitter la base rapidement.
Dans le cas de problmes de minimisation, on a intrt changer le coefficient
de ces variables en M (M trs grand) afin darriver au mme rsultat et de les
faire sortir de la base.
40

Avant de construire le tableau de simplexe initial, on rcrit le programme


linaire relatif au problme de mdecine avec les variables artificielles.
Min x1 + x2 + MA1 + MA2+ MA3
Sc
2x1 + x2 - S1 + A1 = 12
5x1 + 8x2 - S2 + A2 = 74
x1 + 6x2 - S3 + A3 = 24
x1 , x2 , S1 , S2 , S3 , A1 , A2 0

Le tableau de simplexe initial est :


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
M
A2
74
5
8
0
-1
0
0
1
0
M
A3
24
1
6
0
0
-1
0
0
1
8M
15
-M -M -M
M M M
1-8M 1-15M M
M
M
0
0
0

Aprs 4 itrations, on trouve le tableau de simplexe optimal suivant :


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

On retrouve la mme solution obtenue par la mthode graphique :


x1 = 8
x2 = 2
S1 = 0
S2 = 0
S3 = 26
Z = 10

41

12
37/4
4

Aprs avoir vrifier que le second membre des contraintes est positif, le tableau
suivant rsume les transformations faire subir notre programme linaire
avant de le rsoudre par la mthode de simplexe :
Quand la contrainte
est

Pour la fonction objectif dun problme de

Maximisation
Minimisation
Attribuer un coefficient nul pour la variable dcart
Ide type
Ajouter une variable
dcart
II- de type = Attribuer un coefficient -M Attribuer un coefficient M
Ajouter une variable pour variable artificielle
pour la variable artificielle
dcart
et
une
variable artificielle
Attribuer un coefficient nul Attribuer un coefficient nul
III- de type
Ajouter une variable pour la variable dcart et un pour la variable dcart et
artificielle et une coefficient - M pour variable un coefficient M pour
variable artificielle
variable dcart avec artificielle
un signe "-"
Le tableau suivant rsume les tapes de la mthode de simplexe relatif aux
problmes de maximisation et minimisation :
Etape
Maximisation
1
Formuler un programme linaire
pour le problme rel.
2
Vrifier que le second membre du
programme linaire est positif
sinon modifier les contraintes
3
Ecrire le programme linaire sous
une forme standard
4
Construire le premier tableau de
simplexe
5
Choisir comme variable entrante
dans la base celle qui admet le plus
grand effet net positif cj-zj.
6
Choisir la variable sortante de la
base celle qui admet le plus petit
ratio suprieur zro.
7
Construire le nouveau tableau en
utilisant la rgle de pivot
8
Faire le test doptimalit. Si
42

Minimisation
Formuler un programme linaire
pour le problme rel.
Vrifier que le second membre du
programme linaire est positif sinon
modifier les contraintes
Ecrire le programme linaire sous
une forme standard
Construire le premier tableau de
simplexe
Choisir comme variable entrante
dans la base celle qui admet le plus
petit effet net ngatif cj-zj.
Choisir la variable sortante de la
base celle qui admet le plus petit
ratio suprieur zro.
Construire le nouveau tableau en
utilisant la rgle de pivot
Faire le test doptimalit. Si

(cj-zj) 0 pour toutes les variables


(hors base) donc la solution
obtenue est optimale. Sinon
retourner ltape 5.

(cj-zj) 0 pour toutes les variables


(hors base) donc la solution obtenue
est optimale. Sinon retourner
ltape 5.

La deuxime mthode pour rsoudre un problme de se base sur le rsultat


suivant Rsoudre un problme min ctx sujet un ensemble de contraintes est
quivalent rsoudre un problme max -ctx sujet au mme ensemble de
contraintes . Ces deux problmes sont quivalents dans la mesure o ils
donnent le mme vecteur des solutions optimales. La seule diffrence est que la
valeur de la solution max -ctx est loppos de la solution de min ctx; (i.e. min ctx
= - max -ctx).
Donc pour rsoudre le programme linaire relatif au problme de mdecine, on
peut rsoudre le problme de maximisation suivant:
Max - x1 - x2
S.c. 2x1 + x2 12
5x1 + 8x2 74
x1 + 6x2 24
x1 , x2 0
On peut vrifier facilement que la mthode de simplexe applique au
programme ci-dessus, engendre le mme vecteur de solutions optimales.

IV. Les problmes irrguliers


Aprs avoir examin comment on peut rsoudre un programme linaire par la
mthode de simplexe, on sintresse dans cette section aux problmes
irrguliers, qu'on peut rencontrer lors de la rsolution dun programme linaire
par la mthode de simplexe. Donc, lobjet de cette section est de reconnatre ces
problmes et de les rsoudre par la mthode de simplexe.
a. Les problmes impossibles
Graphiquement, on a caractris ces problmes par un ensemble de solutions
ralisables vide. Avec la mthode de simplexe, on reconnat que le problme est
impossible si une ou plusieurs variables artificielles sont prsentes dans la base
dans le tableau de simplexe optimal, ce qui signifie que la solution donne par
ce tableau nest pas rellement ralisable.
Exemple:
Vrifions laide de la mthode de simplexe, que le problme suivant est
rellement impossible :
Max 4 x1 + 3x2
Sc
x1 + x2 2
43

3x1 + x2 10
x1 , x2 0
En introduisant les variables dcarts et les variables artificielles le programme
scrit:
Max 4x1 + 3x2 - MA1
Sc
x1 + x2 - S1 = 2
3x1 + x2 - S2 + a1 = 10
x1 , x2 , S1 , S2 , A1 0

0
-M

4
-M

S1
a1

x1
a1

2
10

2
5

4
x1
(1)
3
-3M
3M+4

3
x2
1
1
-M
M+3

4
x1
1
0
4
0

3
x2
1
-2
4+2M
-1-2M

0
S1
1
0
0
0

0
S1
1
-3
1+3M
-1-3M

0
S2
0
-1
M
-M

0
S2
0
-1
M
-M

-M
a1
0
1
1
-M-1

2
10/3

-M
a1
0
1
-M
0

Le tableau de simplexe ci-dessus est optimal avec une variable artificielle dans
la base.
Remarque : Un programme de maximisation ou de minimisation avec
seulement des contraintes de type ne peut pas tre impossible (sous
lhypothse que le second membre b est positif). Ceci est d au fait que lors de
la rsolution de ce genre de programme par la mthode de simplexe on n'utilise
pas des variables artificielles. Donc il est impossible de les retrouver dans la
solution optimale.
b. Les problmes solutions multiples
Graphiquement, ce problme est caractris par le fait que la pente de la droite
reprsentant la fonction objectif (z = 0) est gale la pente de lune des
contraintes restrictives. Lorsquon utilise la mthode de simplexe, on identifie ce
problme lorsquun des effets nets (relatif une variable hors base) est nul.
44

Lexemple de la section 3 du prcdent chapitre reprsente un problme avec


solutions multiples.
c. Les problmes solution infinie
Graphiquement, ce problme est caractris par le fait quon peut dplacer la
droite de la fonction objectif indfiniment de manire accrotre la valeur, en
gardant toujours une intersection non vide avec lensemble des solutions
ralisables.
Avec la mthode de simplexe, on reconnat ce problme lorsque la variable
entrante nadmet aucune limite sur sa valeur dentre, cest dire que tous les
ratios Qi/aijo sont ngatifs ou nuls.
Exemple
Max x1 + 2x2
Sc
x1 + x2 2
x2 3
x1 , x2 0
On introduit les variables dcart et les variables artificielles, le programme
linaire devient :
Max x1 + 2x2 + 0S1 + 0S2 - Ma1
Sc
x1 + x2 - S1 + a1 = 2
x2 + S2 = 3
x1 , x2 , S1 , S2 , a1 0
Les tableaux de simplexe sont :

-M
0

a1
S2

2
3

1
x1
1
0
-M
1+M

2
x2
(1)
1
-M
2+M

0
S1
-1
0
M
-M

0
S2
0
1
0
0

-M
a1
1
0
-M
0

0
S1
-1
(1)
-2
2

0
S2
0
1
0
0

-2
1

2
0

x2
S2

2
1

1
x1
1
-1
2
-1

2
x2
(1)
0
2
0

45

2
3

1
2
0
0
x1
x2
S1
S2
2
x2
3
0
1
0
1

0
S1
1
-1
0
1
1
-1
0
2
0
2
1
0
0
-2

Le dernier tableau montre que la variable x1 nadmet aucune limite sur sa valeur
de sortie.
d. Les problmes solution dgnre
Graphiquement, on appelle solution dgnre le point o plusieurs contraintes
concourent (un nombre suprieur ou gale trois contraintes). Un programme
linaire est dit dgnre si une ou plusieurs variables dans la base optimale sont
nulles. Dans la rsolution graphique ce problme nest pas difficile rsoudre,
mais avec la mthode de simplexe il peut causer des difficults.
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 problme est :
x1 = 1
x2 = 0
x3 = 2
z =5

La forme standard du programme linaire est


Max 2x1 + 0 x2 + 3/2x3 + 0 S1 + 0 S2 + 0 S3
Sc
x1 - x2 + S1 = 2
2x1 + x3 + S2 = 4
x1 + x2 + x3 + S3 = 3
x1, x2, x3, S1, S2, S3 0
Le tableau de simplexe initial est :
46

2
0
3/2
0
0
0
x1
x2
x3
S1
S2
S3
0
S1
2
1
-1
0
1
0
0
2
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 premires contraintes donnent la mme
valeur minimale du ratio. Ceci indique que lorsque x1 passe 2, les variables
dcart S1 et S2 vont sannuler malgr que lun des deux demeure encore dans la
base.
Choisissons arbitrairement de faire sortir de la base la variable dcart S1.

2
x1
1
0
0
2
0

0
3/2
0
0
0
x2
x3
S1
S2
S3
2
x1
2
-1
0
1
0
0
-2
0
S2
0
2
1
-2
1
0
0
0
S3
1
2
1
-1
0
1
1/2
-2
0
2
0
0
2
3/2
-2
0
0

La nouvelle solution ralisable de base est :


x1 = 0
x2 = 0
x3= 1
S1 = 2
S2 = 0
S3 = 0
et la valeur de la fonction objectif z = 4. Cette solution de base est dite
dgnre. Continuons les itrations relatives la mthode de simplexe. La
variable entrante est x2.
Le problme est quun des ratios est nul ce qui indique quon ne peut pas
augmenter la valeur de x2 puisque la valeur de la fonction objectif ne va pas
augmenter et reste gale 4.
Si on ritre une autre fois, en remplaant S2 par x2 dans la base on obtient :
2
x1

0
x2

3/2
x3
47

0
S1

0
S2

0
S3

2
0
0

x1
x2
S3

2
0
1

1
0
0
2
0

0
1
0
0
0

1/2
0
1/2
0
4
1/2
-1
1/2
0
0
0
1
-1
1

0
0
1
0
1/2
0
-1
0

Ce tableau nest pas optimal, la variable entrante est x3 et la variable sortante est
x2. On remarque aussi que ce passage dune solution une autre ne
saccompagne pas dune augmentation de la valeur de la fonction objectif.
On peut facilement vrifier que nous somme en train de cycler sans atteindre la
solution optimale. Ce genre de cyclage dans la mthode de simplexe est
dangereux et on doit lidentifier avant de commencer rsoudre le problme,
sinon on passera un temps norme sans atteindre la solution optimale.
Pour terminer cette section, il faut noter que ce n'est pas tout problme de
dgnrescence 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 rsoudre ce programme par la mthode de simplexe (choisir en cas
de deux quotients gaux, celui qui se trouve dans la ligne suprieure).

CHAPITRE 5

48

Dualit et analyse
de sensibilit
I. Introduction
Dans ce chapitre, on va tudier des notions relatives au programmes linaires
tels que le programme dual, les cots marginaux ainsi que des techniques de
validation de la solution dun programme linaire, cest dire lanalyse de
sensibilit.
Nous allons commencer ce chapitre par donner quelques termes cls du jargon
utilis pour interprter conomiquement les diffrents rsultats du programme
linaire.

II. Interprtation conomique


Les lments cls dun programme linaire standard sont :
- La fonction objectif dite fonction conomique. Cette fonction peut reprsenter
un cot, un profit, etc...
- Les contraintes sont composes, des coefficients aij de la matrice A, dite
matrice technologique, et des constantes bi, qui forment le vecteur du second
membre. Le second membre peut reprsenter la disponibilit des ressources, les
niveaux de demande etc...
- Les variables dcart peuvent reprsenter, par exemple dans le problme de
lagriculteur, lexcdent de chacune des ressources : terrain, eau, heures de
travail, bureau dirrigation. Elles sont aussi dites variables de surplus.
Quand une variable dcart est nulle, on dit que la contrainte correspondante est
sature. Dans le problme de lagriculteur les contraintes terrain et main
duvre sont satures. Elles sont dites aussi restrictives car une variation du
second membre (par exemple) engendre un changement dans la valeurs de la
solution optimale.
Toute contrainte non sature loptimum nest pas restrictive pour le problme,
cest dire quelle na aucune influence sur la solution considre.
Dfinition: Cot marginal
49

Par dfinition, on appelle cot marginal dun bien laugmentation minimale de


dpenses, par rapport la solution optimale, qui rsulterait de lutilisation dune
unit supplmentaire de ce bien, lorsque le problme pos consiste produire
des biens au moindre cot.
Si le problme pos consiste transformer des biens pour vendre une production
avec un meilleur profit et laugmentation maximale de revenu qui rsulte de la
possibilit de disposer dune unit supplmentaire de lun des biens, est la valeur
marginale de ce bien. Trs souvent, on emploie galement dans ce cas le
qualificatif cot marginal.
Remarque : Les cots marginaux sont donc les effets nets associs aux variables
dcart, puisque ce sont ces variables qui dterminent les excdents (ou les
insuffisances) de biens.
Si une variable dcart nest pas nulle, dans la solution optimale, cest que le
bien correspondant est dj excdentaire. Par consquent, le fait de disposer
dune unit supplmentaire de ce bien naura aucune influence sur le revenu. On
dit alors que ce bien une valeur marginale nulle, ou par extension, que la
variable dcart associe ce bien a une valeur marginale nulle.
Par contre, si une variable dcart est nulle dans la solution optimale, cest que le
bien correspondant est totalement utilis. Par la suite une variation de la
disponibilit aura gnralement une influence sur le revenu. Cest pourquoi cette
variable dcart nulle dans la solution optimale une valeur marginale non nulle,
et cette valeur marginale prcise la variation de la fonction conomique rsultant
de lutilisation dune unit supplmentaire du bien associ.
Exemple : Dans le problme de lagriculteur on a

Le cot marginal li S1 est 200 3


Une augmentation de S1 dune unit entrane une diminution de 200 3 de la
valeur de la fonction conomique.

Le cot marginal li S 2 est 0 et l'optimum S 2 =0


on a dj 60m 3 deau de plus donc si on ajoute 1m 3 ca ne va pas changer la
solution optimale ni la valeur de la fonction conomique
Le systme de contraintes dans le programme linaire relatif au tableau de
simplexe optimal du problme de lagriculteur est
x1 4 3 S1 1 3 S 3 40
S 14 3 S 2 3 S 60
2
1
3

x 2 1 3 S1 1 3 S 3 110
S 4 4 3 S1 1 3 S 3 50

La fonction conomique scrit


z 100 x1 200 x 2

50

Si on exprime z en fonction de
systme dquation ci dessus on a

S1

et

S3

(variables hors base) en utilisant le

z 100 4 3 S1 1 3 S 3 40 2001 3 S1 1 3 S 3 110


z 26000 200 3 S1 100 3 S 3

La valeur 26000 correspond la valeur optimale de la fonction conomique.


Si S1 1 alors un hectare de terrain de moins utiliser, donc une rduction de
200 3 dinars de la valeur de la fonction objectif.
Si on ajoute 3 hectares de terrains S1 3 , avec lhypothse que les autres
quantits restent inchanges alors le revenu augmente de 200 3 3 200dinars
On vrifie ceci, si on rsout le programme linaire
Max
S.C

100 x1 200 x 2
x1 x 2 153
4 x1 2 x 2 440
x1 4 x 2 480
x1 90
x1 0 , x 2 0

On trouve que la valeur optimale va augmenter de 200 dinars est devient 26 200
dinars.
Exercice : Expliquer graphiquement que si on ajoute des m 3 deau, on aura
aucune amplification dans la fonction objectif.
Remarque : Dans le cas o on diminuerait 60m 3 deau, la solution optimal
devient dgnre.
Les valeurs marginales apportent donc des renseignements conomiques
particulirement intressantes, mais il faut les utiliser avec prudence car leur
domaine de validit est limit.
Par exemple, si on ajoute 30 hectares de terrains aux 150 dj disponibles dans
le problme de lagriculteur, le revenu augmentera de 200 3 3 200dinars .
Ceci nest pas vrai, parce que si on rsout le programme linaire suivant :
Max
S.C

100 x1 200 x 2
x1 x 2 180
4 x1 2 x 2 440
x1 4 x 2 480
x1 90
x1 0 , x 2 0

La valeur optimale du programme linaire ci-dessus est de 26 875,14 donc le


revenu na pas augment de 2000 dinars comme prvu.

51

II. Dualit
a. Dfinition
La forme dun programme linaire de type maximisation est
Max
S.C

z ct x
Ax b
x0

PL1

avec x, b , c des vecteurs de dimensions respectives


matrice de dimension m, n

n, m et n , et A une

On appelle programme dual de PL1 , le programme linaire suivant :


Min
S.C

w bt y
t

A.Y c

y0

avec y un vecteur de dimension m et t A la transpose de la matrice A .


Le programme PL1 est appel programme Primal.
Pour passer du primal au dual, on remarque que :
a ) Les termes du second membre deviennent les coefficients de la fonction
objectif et rciproquement.
b ) Le problme de maximisation devient un problme de minimisation.
c ) Les ingalits " " deviennent des ingalits " "
d ) La matrice A se transforme en sa transpose.
Exemple : Le programme primal (problme de lagriculteur) est
Max
S.C

z 100 x1 200 x 2
x1 x 2 150
4 x1 2 x 2 440
x1 4 x 2 480
x1 90
x1 0 , x 2 0

Donc le programme dual est


Min
S.C

w 150 y1 440 y 2 480 y 3 90 y 4


y1 4 y 2 y 3 y 4 100
y1 2 y 2 4 y 3 200

y1 0

y2 0

b. Proprits et signification conomique du programme dual


Pour expliquer la signification du problme dual on va se baser sur lexemple de
lagriculteur.
Supposons quun agriculteur (client) voudrait acheter la totalit de nos
ressources disponibles. Notre agriculteur acceptera certainement cette
proposition si le prix offert par ce client lui procure le mme profit.
52

soit

y1
y2
y3

y4

le prix d'un hectare de terrain


le prix dun m 3 deau
le prix dune heure de main duvre
le prix de la permission de la culture dun hectare de tomates.

Le problme du client consiste minimiser les frais dachat des ressources :


cest dire 150 y1 440 y 2 480 y3 90 y 4 sous la contrainte que les prix satisfont
notre agriculteur.
Pour notre agriculteur un hectare de terrain 4m 3 deau, une heure de travail et
un hectare de permission du bureau est quivalent a un revenu de 100 dinars.
Tandis que, un hectare de terrain, 2m 3 deau et 4 heures de travail lui
engendrent un revenu de 200 dinars.
Il nest prt vendre ses ressources que si
suprieur ou gale 100 DT et que si
suprieur ou gal 200 DT.
Ainsi le problme du client est

y1 4 y 2 y 3 y 4
y1 2 y 2 4 y 3

lui rapporte un revenu


lui rapporte un revenu

150 y1 440 y 2 480 y 3 90 y 4

Min
S.C

y1 4 y 2 y 3 y 4 100
y1 2 y 2 4 y 3 200

y1 0

y2 0

Donc le problme du client peut tre modlis par le programme dual.


Le tableau de simplexe final du programme dual est :

480
150

y3
y1

100/3
200/3

150
y1
0
1
150
0

440
y2
-2/3
14/3
380
60

480
y3
1
0
480
0

90
y4
-1/3
4/3
40
50

0
L1
1/3
-4/3
-40
40

0
L2
1/3
1/3
-110
110

Avec L1 et L2, les variables dcart la 1re et la 2me contrainte du programme


dual.
On remarque que la solution optimale du dual peut tre dduite du primal de la
manire suivante :
y1 = 200/3 C3 - z3 = - 200/3
y2 = 0
C2 - z4 =
0
53

y3 = 100/3
y4 =
0
L1 =
0
L2 =
0
C1 - z1 = 0
C2- z2 = 60
C3- z3 = 0
C4 - z4= 50
C5 - z5= 40
C6 - z6= 110
w = 26000

C5 - z5 = - 100/3
C6 - z6 =
0
C1 - z1 =
0
C2 - z2 =
0
S1
=
0
S2
=
60
S3
=
0
S4
=
50
x1
=
40
x2
=
110
z
= 260000

On peut gnraliser ce rsultat dans le tableau suivant :

xj = 0
xj > 0
Sj = 0
Sj > 0

Primal (Max)
Variables de dcision
C j - zj < 0
C j - zj = 0
variables dcart
C j - zj 0
C j - zj = 0

Dual (Min)
variables dcart
Li = | Cj - zj | 0 Cj - zj = 0
L i = 0 C j - z j = xj
Variables de dcision

yi = | Ci - zj | 0 Cj - zj = 0
yi = 0 et Cj zj = Sj

On remarque aussi qu loptimum la valeur de la fonction objectif du dual est


gale la valeur de la fonction objectif du primal.
Proposition : Le dual du programme dual est le programme primal.

c. Tableau de correspondance primal-dual


Max
- Matrice des contraintes (m, n)

Min
- Transpose de la matrice des
contraintes (n, m)
54

- Second membre des contraintes


- Coefficient de la fonction objectif
Nombre de contraintes
i me contrainte de type
i me contrainte de type
i me contrainte de type =

- Coefficient de la fonction objectif


- Second membre des contraintes
Nombre de variables principales
i me variable de type 0
i me variable de type 0
i me variable qcq IR

Nombre de variables
j me variable
j me variable
j me variable qcq IR

Nombre de contraintes
j me contrainte de type
j me contrainte de type
i me contrainte de type =

Exemples

Primal
Max x1 + x2
S.c x1 + x2 3
- x 1 + x2 1
x1 2
x1 0, x2 0
Min - x1 + x2
S.c 2x1 - x2 2
- x1 + 2x2 -2
x1 + x2 5
x1 0, x2 0
Max 2x1 - x2
S.c x1 - x2 = 3
x1 4
x1 0, x2 0
Max 2x1 - x2
S.c x1 - 2x2 2
x1 + x2 = 6
x2 5
x1IR, x2IR

Dual
Min 3y1 + y2 + 2y3
S.c y1 - y2 + y3
y1 + y2 1
y1 0, y2 0, y3 0
Max 2y1 - 2y2 + 5y3
S.c 2y1 - y2 + y3 -1
- y1 + 2y2 + y3 1
y1 0, y2 0, y3 0
Min 3 y1+ 4 y2
S.c y1+ 2 y2 2
- y1 -1
y1IR, y2 0
Min - 2y1 + 6y2 - 5y3
S.c y1 + y2 = 2
- 2y1 + y2+ y3 = -1
y1 0, y2 IR, y3 0

III. Analyse de sensibilit


Dfinition: Une solution de base optimale est dite stable si lensemble des
variables de base loptimum ne changent pas, mme si les valeurs de ces
variables de base sont modifies.
55

Dans cette section on examinera la stabilit de la solution optimale dun


programme linaire suite la variation de lun des paramtres de ce programme.
On utilisera pour prsenter lanalyse de sensibilit sur ces diffrents paramtres
du programme linaire lexemple de lagriculteur.
Max 100x1 + 200x2
S.c x1 + x2 150
4x1 + 2x2 440
- x1 + 4x2 480
x1 90
x1 0 , x2 0
a. Analyse de sensibilit sur les Cj
On cherche dterminer un intervalle dans lequel peut varier Cj sans que la
solution optimale ne change.
Considrons une variation du coefficient Cj de 100 100 +
En remplaant dans le tableau optimal 100 par 100 + , on obtient le tableau
suivant :

100+
0
200
0

x1
S2
x2
S4

40
60
110
50

0
100+ 20
0
x1
x2
S1
1
0
4/3
0
0
-14/3
0
1
-1/3
0
0
-4/3
100+ 20 (200+4)/3
0
0
0
(200+4)/3

La solution donne par le tableau reste optimale si

56

S2
0
1
0
0
0

S3
-1/3
2/3
1/3
1/3
(100-)/3

S4
0
0
0
1
0

-100/3

( 20 4 )
3 0 50
50 10
10 0 10
3
Donc la solution optimale est stable et prend la mme valeur (x1,x2)=(40,110)
tant que 50 C1 200
Exercice : Supposons que le coefficient Cj d'une variable hors base dans la
solution optimale, est modifi. Dans quel intervalle, Cj peut-il varier sans que la
base optimale soit modifie ?
(Aide : diffrencier le cas dun programme de maximisation et le cas dun
programme de minimisation).
Solution :
- < Cj zj
cas dun programme de maximisation
zj Cj < -
cas dun programme de minimisation
b. Analyse de sensibilit sur les bj
Dterminer lintervalle pour lequel, la solution optimale reste stable, pour une
variation du second membre de la ime contrainte bi .
Considrons une variation de b1 de 150 150 + .
Sachant que dans le premier tableau de simplexe b1 nest prsent que dans la
premire contrainte. On obtient ainsi une correspondance entre la colonne des
quantits Qi et la colonne de S1.

0
0
0
0

S1
S2
S2
S4

150+1
440+0
480+0
90+0
0+1

100
x1
1
4
1
1
0
100

200
x2
1
2
4
0
0
100

0
S1
1
0
0
0
0
0

0
S2
0
1
0
0
0
0

0
S3
0
0
1
0
0
0

0
S4
0
0
0
1
0
0

Dans le tableau optimal, la colonne correspondant S1 nous donne les


coefficients de dans la colonne des quantits.
57

100
0
200
0

x1
S2
x2
S4

40+4/3
60-14/3
110-1/3
50-4/3
26000+200/
3

100
x1
1
0
0
0
100

200
x2
0
0
1
0
200

0
S1
4/3
-14/3
-1/3
-4/3
200/3

0
S2
0
1
0
0
0

0
S3
-1/3
2/3
1/3
1/3
100/3

0
S4
0
0
0
1
0

-200/3

-100/3

La base reste optimale tant que :

40 4/ 3 0 1 30
60 14 / 3 0 90 / 7

1
- 30 90/7
110 1/ 3 0 1 330
50 4 / 3 0 1 75/ 2
Donc tant que 120 b1 160,85 la base demeure la mme et la solution
optimale est stable mais elle change en valeur (exemple: pour = 3 le vecteur de
solutions optimale est (x1,x2,S1,S2,S3,S4)=(44,109,0,46,0,46))
Remarque : Daprs le rsultat ci-dessus on peut conclure que le cot marginal
de 200/3 par hectare de la premire ressource nest valide que si la solution de
base demeure stable. Donc si et seulement si 120 b1 160,85. Ceci est appel
le domaine de validit du cot marginal.
Exercice 1:
Sans faire de calcul, de combien peut-on modifier la quantit de m3 deau sans
nuire la solution optimale ? confirmez votre rsultat a l'aide de la mthode
d'analyse de sensibilit expos ci-dessus ?
Exercice 2 :
Dterminer lintervalle dans lequel peut varier b1 et b3 (les ressources en surface
et en main duvre) sans que la base optimale change.
Rponse 2 :
58

40 4/31 1/32 0
60 14/3 2/3 0
1 2

1 0 1/31 1/32 0
50 4/31 1/32 0

41 2 120
7 90
12

1 2 3 0
41 2 150

Pour 1 = 0 (variation nulle de la surface en hectare), la solution optimale est


stable pour une variation 2 des ressources en main duvre entre 570 et 730
heures (-150 2 90).
Le cot marginal de 100/3 par heure de main duvre de la 3me ressource nest
valide que dans lintervalle [570, 730].
c. Analyse de sensibilit sur les coefficients aij
Supposons que dans le problme de lagriculteur, le nombre dunits de la ime
ressources ncessaire pour produire une unit de produit j, soit (aij + ) ou lieu
de aij. Ainsi, on se pose la question si la solution optimale demeure stable suite
un tel changement.
i) xj est une variable de base et la ime ressource est totalement utilise.
Par exemple :
480

x1 + (4+ )x2 480

x1 + (4 + )x2 + S3 =

A loptimum, la base est inchange donc


x1* (4 ) x 2* S*3 480
S*3 0, x1* 0, x 2* 0

Si 0 , alors lquation ne peut pas tre satisfaite sinon S*3 0 puisque


*
*
*
x1* 4 x *
2 480 et x 2 S3 0 , x 2 0 .
Si 0 , alors on a un excdent de la 3me ressource (S3 0), ce qui nous
contraint changer la base (la solution optimale nest plus stable).
Conclusion: Dans le cas o xj est une variable de base optimale et la ime
ressource est totalement utilise, il est impossible de modifier le
coefficient aij sans que la base dans la solution optimale ne change pas
(la solution optimale n'est pas satable).
ii) xj est une variable de base et la ime ressource nest pas totalement utilise.
59

Par exemple : (4 +) x1 + 2x2 440


(4 + )x1 +2x2 + S2 = 440
A loptimum, la solution est inchange donc
(4 ) x1* 2 x2* S * 2 440
S*2 60, x1* 0, x *2 0

Pour que la base demeure toujours optimale il faut et il


suffit que

x2* S2* 60
*
S2 0

60
*
60 x2 0 3 / 2
x*2

Conclusion: Dans le cas o xj serait une variable de base optimale et o la ime


ressource nest pas totalement utilise, il est possible de modifier le coefficient
aij dune valeur ij gale

ij

Si
x *j

et la solution optimale demeure stable.

iii) Si xj est une variable hors base (xj = 0). Ceci implique quon ne va pas
produire le produit j
Si ij 0, alors il est encore moins conomique de fabriquer ce produit si le
coefficient technologique aij augmenterait de ij
Si ij 0 , alors la fabrication du produit j peut devenir conomique si on
utilise moins de ressources.

IV. Introduction dune nouvelle activit


On sait dj que la valeur optimale de la variable duale reprsentent les cots
marginaux (dopportunit) associs lutilisation de ressources limites.
On peut galement utiliser ces cots marginaux pour valuer des dcision
concernant lintroduction de nouveaux produits ou de nouveaux procds de
fabrication.
a. Introduction dune nouvelle variable de dcision
Lagriculteur prvoit de produire des pommes de terre. Un hectare de pomme de
terre demande 3 m3 deau et 2 heures de travail pour un revenu de C3 dinars.
La question est pour quelle valeur de C3, lagriculteur a-t-il intrt introduire
cette nouvelle production ?
Sans rsoudre le nouveau programme linaire suivant:
Max 100x1 + 200x2 + C3x3
60

S.c

x1 + x2 + x3 150
4x1 + 2x2 +3x3 440
x1 + 4x2 + 2x3 480
x1 90
x1, x2, x3 0

On peut dterminer si lagriculteur a un intrt introduire la production ou pas.


En dautres termes, sil na pas intrt le faire, la solution optimale du
programme linaire ci-dessus donne x3 = 0. Ce qui revient dire, que pour
lagriculteur lutilisation dun hectare de terrain, de 3 mtres cube deau et de
deux heures de travail lui procurent plus de gain sils va les mettre au service de
la production de tomates et/ou de piments plutt que dans la production de
pommes de terre. Ceci est quivalent au fait que la contrainte suivante:
y1* 3 y 2* 2 y 3* C 3 nest pas satisfaite (avec y1* , y 2* et y 3* sont les prix minimaux des
ressources pour notre agriculteur).
Cette contrainte correspond la 3 me contrainte du programme dual du
programme linaire ci-dessus :
On a :

y1*

200 *
100
,y 2 0 et y*3
,
3
3

donc :

Si C3 < 200/3, lagriculteur na pas intrt introduire la nouvelle activit


Si C3 > 200/3, lagriculteur a intrt introduire cette nouvelle activit, la
solution optimale va changer et la valeur de la fonction objectif augmentera
Si C3 = 200/3, lagriculteur est indiffrent envers lintroduction de cette
nouvelle activit.
b. Introduction dune nouvelle contrainte
Si la solution optimale satisfait la nouvelle contrainte, le problme admettra la
mme solution. Sinon lintroduction de cette contrainte va engendrer une
nouvelle solution optimale.

CHAPITRE 6

Logiciel pour la
rsolution des
61

programmes
linaires :
LINDO
(Linear INteractive and Discrete Optimizer)

I. Introduction
Lindo est un logiciel utilis pour rsoudre les modles doptimisation linaires,
entiers et quadratiques. Une des caractristiques de Lindo cest quil offre des
outils qui peuvent aider lanalyse des modles en utilisant la mthode de
Simplexe.
On prsente dans ce chapitre la version tudiant 6.0 (1997). Cette version rsout
des problmes de dimension maximale de 200 variables et de 100 contraintes.

II. Installation du Logiciel


Pour utiliser cette version de Lindo il est conseill davoir au moins un
processeur 486 et 8Mo de mmoire RAM. Il faut aussi prvoir un espace disque
dur de 2Mo pour pouvoir linstaller.
Les tapes de linstallation sont :
1. Dmarrer Windows.
2. Insrer le CD-ROM ou la disquette.
3. Cliquer sur licne Setup (install) dans votre explorateur de Windows
4. Suivre les instructions sur lcran
Pour plus dinformation sur ce logiciel visiter ladresse web : www.lindo.com

III. Rsolution dun exemple


Dans cette section, et sur la base de lexemple de lagriculteur, on va focaliser
notre attention sur les oprations suivantes : introduire les donnes, rsoudre le
problme, et analyser les rsultats que donne LINDO.
a. Le problme de lagriculteur
Le programme linaire qui modlise le problme de lagriculture est :

62

Max
s.c.

100 x1 200 x2
x1 x2 150
4 x1 2 x2 440
x1 4 x2 480
x1
90
x1 0, x2 0

b. Introduction des donnes


Double cliquer sur licne lindo 6.0 for Windows de votre menu
dmarrer/programmes. Le logiciel va sexcuter et vous aurez cette fentre qui
saffiche sur votre cran :

Dans tous les modles de Lindo la fonction objectif est dfinie en premire
ligne. Dans notre exemple la fonction objectif est :

Max _ 10 _ x1__20 _ x2

Les tirs bas indique la prsence dun espace obligatoire entre les entres pour
pouvoir les diffrenties.
Il faut noter quon peut remplacer x1 et x2 par nimporte quel mot qui indique
ces deux variables, par exemple, on peut remplacer x1 par "tomates" et x2 par
"piments". Une autre caractristique est que Lindo ne fait pas de diffrence
entre majuscule et minuscule. Pour lui la variable TOMATE est la mme
que la variable tomAtE .
Pour commencer crire les contraintes, il faut introduire la mention subject
to ou tout simplement son abrviation st .
Dans notre exemple les contraintes sont :

63

subject _ to
terrain) x1 _ _ x2_ _ 150
eau) 4 _ x1_ _ 2 _ x2 _ _ 440
Mo) x1 _ _ 4 _ x2_ _ 480
bureau) x1 _ _ 90
On remarque quon peut appeler chaque contrainte par un nom nominatif que
Lindo va utiliser pour afficher les rsultats.
Lcran quon obtient aprs avoir introduit les diffrents paramtres est le
suivant :

On na pas ajouter les contraintes de non-ngativit, Lindo suppose par dfaut


que les variables de dcision sont de types nonngative.
c. Rsolution du problme
Aprs avoir crit convenablement le programme linaire, on passe maintenant
la rsolution.
Pour rsoudre notre programme il faut cliquer sur le bouton
dans la
barre doutils. Lindo va commencer ainsi compiler le modle. Si un message
derreur saffiche cest que le programme, par exemple, est non born ou bien
non ralisable...
Lors de la compilation, on voit une barre qui montre le pourcentage de travail
effectu.

d. Interprtation des rsultats


Sil ny a pas derreur de formulation, Lindo va commencer rsoudre le
problme. Par dfaut, il va vous demander si vous voulez faire une analyse de
sensibilit. Pour le moment on va rpondre Non .
64

Avant que Lindo nous propose un premier rapport sur la solution optimale, il
nous donne ltat du problme exprim par cette fentre :

Ce rapport prliminaire nous indique que :


a) Status : Optimal ; Il nous informe sur ltat de la solution actuelle. Elle peut
tre Optimal (optimale), Feasible (ralisable), Infeasible (non ralisable) ou
Unbounded (non borne).
b) Iterations : 2 ; Il indique le nombre ditrations ncessaire pour rsoudre le
problme (en utilisant la version rvise de la mthode de Simplexe).
c) Infeasibility : 0 ; Ceci indique la quantit de violation dans les contraintes.
d) Objective : 26000 ; Cest la valeur de fonction objectif relative la solution
actuelle.
e) Best IP : N/A ; Cest la meilleure valeur de la fonction objectif. Ceci nest
vrai que pour les problmes de type entier.
f) IP Bound : N/A ; Cest la borne de la fonction objectif pour cette solution.
Ceci nest vrai que pour les problmes de type entier.
g) Branches : N/A ; Cest le nombre de variables entiers branched on par
Lindo. Ceci nest vrai que pour les programmes de type entier.
h) Elapsed Time : 00 :06 :45 ; Cest le temps coul avant que le rsolveur ne
soit invoqu (ce temps est variable mme pour le mme exemple).
Si on ferme cette fentre, on remarque quun autre rapport saffiche. Ce rapport
contient des informations sur la solution optimale.

65

Dans le tableau ci-dessus saffichent dans la premire colonne les diffrentes


variables de dcision et aussi les variables dcart relatives chaque contrainte
du programme. Leurs valeurs sont donnes dans la deuxime colonne. On
vrifie bien que la solution optimale concide avec la solution dj retrouve
dans les prcdants chapitres. La troisime colonne reprsente les valeurs nettes,
i.e. c j z j . Pour les variable decart cest les prix duals.

III. Les commandes de Lindo


Dans cette section, on dcrit brivement les diffrentes commandes prsentes
dans le logiciel Lindo.
Dans lenvironnement Windows, Lindo divise ces commandes en six catgories.
1. File

a) New : Crer un nouveau document.


66

b) Open : Ouvrir un document existant et le placer dans une fentre ddition


(cette fentre a une capacit maximale de 64000 caractres).
c) View : Ouvrir un document existant dans une fentre de vision (view
window). Ce genre de fentre permet dimporter des programmes plus de
64000 caractres de votre diteur (tels que Word). Quelques oprations ne
sont pas autorises dans un view window tels que : couper, copier, coller,
effacer
d) Save : Enregistrer. Le format par dfaut est le *.ltx, et cest le format texte de
Lindo.
e) Save as : Enregistrer sous. Dautres formats sont prsents tels que le *.lpk
(cest un format compress qui ne peut tre lu par aucun autre diteur autre
que celui de Lindo) ou le *.mps (malgr quil naccepte pas les commentaires
dans le rapport, ce format est utilis par dautres logiciels)
f) Close : ferm.
g) Print : Imprim.
h) Priter setup : proprits de limprimante.
i) Log Output : Pour ouvrir ou fermer des log file utiliss pour enregistrer les
rsultats de votre session.
j) Take Commands : Pour excuter des macros.
k) Basis Read : Pour charger du disque une solution de base pour le modle
actif.
l) Basis Save : Enregistrer sur le disque la solution de base du modle actif.
m) Title : Afficher le nom pour le modle actif.
n) Date : Afficher la date.
o) Elapsed Time : Afficher le temps coul depuis le commencement de la
session.
p) Exit : Quitter Lindo.
2. Edition

67

a)
b)
c)
d)
e)
f)
g)

Undo :Annuler la dernire opration.


Cut : Couper
Copy : Copier
Paste : Coller
Clear : Effacer
Find /Replace : Rechercher/Remplacer
Options : Utiliser pour modifier les paramtres par dfaut du systme.

h) Go to Line : aller la ligne numro .. de la fentre active.


i) Paste Symbol : Elle affiche une fentre de dialogue qui contient les syntaxes,
les variables et les noms des lignes rservs par Lindo. On peut utiliser cette
commande pour ajouter des contraintes supplmentaires au modle.

j) Select All : Slectionner Tout


k) Clear All : Effacer tout
l) Choose New Font : Choisir les polices dans la fentre active.

68

3. Solve

a) Solve : Rsoudre le modle dont la fentre est active


b) Compile Model : Compiler (sans rsoudre) le modle dont la fentre est
active
c) Debug : Dbugger le modle dont la fentre est active, sil est non ralisable
ou non born. Dans le cas dun problme non ralisable, la commande Debug
dtecte lensemble des contraintes (sufficient set), dont llimination est
suffisante pour garantir une solution optimale. Et il dtermine aussi un
ensemble de contraintes (necessary set), dont la modification entrane
ncessairement un modle ralisable. Dans le cas dun problme non born,
la commande Debug dtecte lensemble des variables de dcision (sufficient
set), dont la fixation de leurs valeurs est suffisante pour garantir une solution
optimale. Et il dtermine aussi un ensemble de variables de dcision
(necessary set), dont la modification entrane ncessairement un modle
born.
d) Pivot : Une des oprations fondamentales dans la mthode de Simplexe est
lopration pivot, qui correspond une itration du simplexe. Lindo nous
donne la possibilit de choisir nous mme les variables entrantes et sortantes
et nous permet ainsi de rsoudre le programme itration par itration.
Exemple : Essayons de rsoudre le problme de lagriculteur en utilisant la
commande Pivot .
La variable entrante dans le premier tableau de Simplexe est X2 et la variable
sortante est la variable dcart de la contrainte dans la 4ime ligne.

Le rapport suivant saffiche :

69

Donc cette itration a fait passer la valeur de la fonction objectif 24000.


Pour pouvoir choisir les variables entrantes et sortantes on peut afficher le
tableau de Simplexe relatif la dernire itration en utilisant la commande
Tableau dans le menu Reports . On obtient :

Daprs le tableau ci-dessus, la variable entrante est X1 et la variable sortante est


SLK 2.
On obtient ainsi le rsultat suivant :

La valeur de la fonction objectif est optimale et on peut vrifier que le tableau de


simplexe relatif cette dernire itration est optimal :

70

e) Preemptive Goal : Cette commande peut rsoudre un problme objectif


multiples en adoptant une manire lexicographique. Ainsi on optimise le
premier objectif puis le second sous une contrainte supplmentaire que le
premier est gale la valeur optimale dj trouve. Plus prcisment,
supposons que lagriculteur peut acheter des ressources supplmentaires avec
un prix de 40 dinars pour un hectare de terrain(Y1), 10 dinars le m 3 deau
(Y2) et 8 dinars lheure supplmentaire de main duvre (Y3). Les quantits
disponibles sur le march respectivement pour Y1, Y2 et Y3 sont de 10
hectares de terrain, 5 m3 deau et 4 heures de main duvre. On appelle G le
gain issu de la culture et D les dpenses dachat des ressources
supplmentaires. Le programme peut scrire sous cette forme :

La rsolution avec la commande Preemptive Goal nous donne les rsultats


suivants :

71

4. Reports

a) Solution : Elle donne un rapport de rsolution standard avec ou sans les


variables non nulles.

72

b) Range : Cette commande donne la marge de variation des coefficients de la


fonction objectif et du second membre sans que la base dans la solution optimale
ne change. Pour lexemple de lagriculteur, cette commande donne les rsultats
suivants :

c) Parametrics : Cette commande permet de faire une analyse paramtrique du


second membre des contraintes. Par exemple, aprs avoir rsolu le problme de
lagriculteur, on aimerait avoir une ide sur la variation de la valeur de la
fonction objectif suite une variation entre 150 300 hectares de la surface de
terrain disponible. En utilisant cette commande, une fentre de dialogue souvre.
On fait entrer le numro de la contrainte tudier (2) ainsi que la variation du
second membre (300). On peut aussi choisir le type de rapport de rsultat. Dans
notre cas, le choix s'est port sur un graphique deux dimensions.

Le rapport quon obtient est le suivant :


73

d) Statistics : Cette commande affiche des statistiques relatives au problme


actif dans la fentre du rapport tel que le nombre de variables de dcision, le
nombre de lignes
e) Pereuse : Cette commande est utilise pour gnrer un rapport sous forme de
texte ou de graphique (en 2D ou en 3D) relatif aux rsultats du problme actif.
Le menu associ cette commande est le suivant :

On a choisi ici davoir un rapport graphique sur les valeurs des variables de
dcision ainsi sur les variables duales qui leurs sont associes dans le problme
de lagriculteur. Le rsultat est le tableau suivant :

74

f) Picture : Cette commande permet de crer un texte ou une figure qui illustre
les diffrents paramtres du problme. La fentre de dialogue associe cette
commande est la suivante :

Le rsultat obtenu pour le problme de lagriculteur est le suivant :

g) Basis Picture : Cette commande affiche dans la fentre rapport une figure
qui reprsente la matrice de base actuelle (relatif la solution trouve en
excutant la commande solve du mme menu). Le rapport quon obtient en
excutant cette commande pour le problme de lagriculteur est :

h) Tableau : Cette commande affiche le tableau de Simplexe relatif la solution


en cours. Si la solution est optimale, cette commande permet davoir le
tableau de Simplexe optimal. Dans le problme de lagriculteur le tableau de
Simplexe optimal obtenu en utilisant cette commande est :

75

i) Formulation : Elle permet de visualiser un lment slectionn (des lignes)


ou tout le problme dans la fentre rapport.
j) Show Column : Cette commande vient sajouter la commande formulation,
elle nous permet de visualiser des colonnes (choix relatifs aux variables de
dcision) dans la fentre du rapport.
k) Positive Definite : Cette commande est utilise pour les problmes
quadratiques pour sassurer que la valeur optimale est globale.
5. Window

a) Open Command Window : Cette commande ouvre une fentre de dialogue


qui sert diter des macros pour Lindo.
b) Open Status Window : Cette commande ouvre la fentre de dialogue qui
affiche ltat du programme Lindo (Lindo Solver Status).
c) Send to Back : Cette commande est utilise pour balancer les fentres en
arrire plan.
d) Cascade : Cette commande arrange les fentres qui saffichent sur lcran
sous une forme dite cascade.
e) Title : Cette commande arrange les fentres de manire redimensionner ces
fentres et les afficher horizontalement ou verticalement selon votre choix.
f) Close All : Cette commande permet de fermer toutes les fentres actives.
76

g) Arrange Icons : Cette commande permet darranger les fentres rduites sous
forme dicne.
6. Help

a) Contents : Cette commande ouvre la fentre daide de Lindo


b) Search for Help On : Cette commande permet la recherche rapide par
mots cls.
c) How to Use Help : Cette commande affiche un menu qui informe sur la
manire dont on peut utiliser le menu Help.
d) About LINDO : Cette commande affiche
concernant la version du logiciel Lindo utilis.

quelques

informations

VI. Programmation nombres entiers


On peut utiliser Lindo pour rsoudre des problmes en nombres entiers. Il suffit
de mentionner que les variables du problme sont de type entier.
On va supposer ici que dans le problme de lagriculteur les variables de
dcision X1 et X2 sont de type entier. On sait dj que la solution optimale va
demeurer inchange puisque les valeurs de ces variables loptimum sont des
entiers.
Pour utiliser Lindo, il faut procder comme avant :
1/ On fait entrer la fonction objectif
2/ Commencer crire les contraintes aprs avoir introduit la mention Subject
to
Aprs avoir terminer ldition des contraintes il faut ajouter la commande
END , qui indique que ldition des contraintes est termine. Ainsi on peut
dfinir la nature des variables de dcision.
Pour dire quune variable X est de type
77

a) Entiers (XIN), on crit : GIN _ X


b) Binaire (X={0,1}), on crit : INT _ X
c) Non borne (XIR), on crit : FREE _ X
Pour le problme de lagriculteur variables entiers on crit :

La rsolution de ce problme donne le rsultat suivant :

Exercices
A) Essayer de rsoudre tous les exercices de la srie 1 en utilisant le Logiciel
Lindo.
B) Problmes de transport : Une entreprise approvisionne 4 de ces clients
partir de 3 diffrents dpts. Le chef de cette entreprise veut minimiser le
cot unitaire par unit transporte. Le tableau suivant prsente toutes les
donnes :
78

Cot unitaire

Client 1

Client 2

Client 3

Client 4

Dpt 1
Dpt 2
Dpt 3
Demande du
client

6
4
8
15

2
9
8
17

6
5
1
22

7
3
5
12

79

Capacit du
dpt
30
25
21

CHAPITRE 7

Introduction la
Programmation
Dynamique
I. Introduction
La programmation dynamique est une technique mathmatique qui a pour objet
daider prendre des dcisions squentielles indpendantes les unes des autres.
Contrairement la programmation linaire, il ny a pas un formalisme
mathmatique standard. Cest une approche de rsolution o les quations
doivent tre spcifies selon le problme rsoudre.
Notre expos se base essentiellement sur de nombreux exemples qui illustrent
cette technique.

II. Exemple prototype. Le problme du voyageur


7

2
2

5
4

5
4

3
3

4
4

4
6

3
10

3
3

Un postier dcide deffectuer un voyage entre diffrentes villes quil ne connat


pas. Son but est de choisir le chemin le moins dangereux. Pour choisir son
chemin, il sinforme auprs des assurances sur les diffrentes valeurs des polices
dassurance de vie entre les diffrentes routes possibles du voyage.
Le trajet du postier est compos de 4 tapes (voir figure) et il doit arriver la
ville numrote 10 en partant de la ville numrote 1. Les autres numros
reprsentent les villes susceptibles dtre traverses. Les arcs entre ces nuds
80

reprsentent les diffrents trajets possibles et les valeurs cij au-dessus des arcs
reprsentent le prix de la police dassurance vie relatif au trajet dcrit par larc.
Le chemin le moins dangereux est celui qui admet la plus petite valeur de la
police dassurance vie
Exemple : Si le voyageur empreinte le trajet 1 2 6 9 10 , le cot total
de la police dassurance est 13
Soit xn (n=1, ..., 4) les variables de dcisions relatives chacune des 4 tapes. Le
chemin suivre par le voyageur est 1 x1 x2 x3 x4 avec x4 = 10.
Soit fn (S, xn) le cot total de la police dassurance vie pour le reste des tapes
sachant que nous somme ltat S de ltape n et que la destination choisie est
xn.
Etant donn S et n, soit x n* la valeur de xn qui minimise fn (S, xn) et soit f n* (S) la
valeur minimale de fn (S, xn). ( f n* (S)= fn (S, xn* )).
Lapproche de la programmation dynamique repose sur lide quun chemin ne
peut tre optimal que si chacune des ses composantes est elle mme optimale.
La dmarche de la programmation dynamique consiste tudier dabord les
sous problmes qui se situent chronologiquement les derniers et sur un principe
de retour en arrire.
Lobjectif est donc de trouver la valeur de f1* (1). Pour lavoir, la programmation
dynamique va essayer dvaluer avec une procdure de chanage en arrire f 4*
(s), f3* (s), f 2* (s) et enfin f1* (1).
A chaque tape, on va essayer dvaluer pour chaque tat s, la valeur de f (S, xn)
pour chaque destination xn possible, puis de retrouver la meilleure destination
*
xn
(celle qui correspond au plus petit cot f(S, xn)) et aussi la valeur de f n* (s).
Etape 4

x4

f4(S, x4))

f 4* (s),

*
x4

3
4

3
4

10
10

S
8
9

Etape 3
81

f3(S, x3)=Csx3+
x3

f 4* (x3)

f3* (s),

*
x3

4(=1+3)
9
6

8(=4+4)
7
7

4
7
6

8
9
8

S
5
6
7
Etape 2

f2(S, x2)=Csx2+
x2

f3* (x2)

f 2* (s)

x1*

11
7
8

11
9
8

12
10
11

11
7
8

5 ou 6
5
5 ou 6

S
2
3
4
Etape 1

f1(S, x1)=Csx1+ f 2* ( x1)


x1

f1* (1)

x1*

13

11

112

11

3 ou 4

S
1

La valeur de f1* (1) = 11 reprsente le cot total minimal de la police


dassurance vie. Le chemin optimal nest unique puisque ds le dpart on peut
choisir x1* = 3 ou 4, donc lensemble de ces chemins est:
1 3 5 8 10
1 4 5 8 10
1 4 6 9 10
Exercice 1 : (Problmes de transport)
Modliser le problme de plus court chemin en utilisant la programmation
linaire ?
(Aide: Utiliser des variables du type binaires xi=0 ou 1)

82

III. Caractristiques dun problme de programmation


dynamique
Nous allons maintenant sur la base de lexemple prcdant analyser les
proprits communes aux problmes de programmation dynamique.
(i) Le problme peut tre dcompos en tapes et une dcision doit tre prise
chaque tape.
Le dernier exemple est devis en 4 tapes o chaque tape, la dcision
prendre est celle de la destination choisir. Ces dcisions sont interdpendantes
et squentielles.
(ii) A chaque tape correspond un certain nombre dtats. Dans lexemple du
voyageur, les tats chaque tapes sont reprsents par les villes que le
voyageur visit. Le nombre de ces tats dans lexemple est fini. Dans ce qui suit
en tudiera des problmes o le nombre dtats est infinie (xn IN) ou continue
(xn IR)
(iii) A chaque tape, la dcision prise transforme ltat actuel en un tat associ
ltape suivante (dans certains cas avec une distribution de probabilit).
Dans notre exemple, se trouvant une ville donne, le voyageur dcide de se
rendre une autre ville qui est un tat de ltape suivante.
(iv) Etant donn un tat, une stratgie optimale pour les tapes restantes est
indpendante des dcisions prises au tapes prcdentes.
Si le voyageur est dans un tat quelconque de ltape i, le chemin optimal entre
cet tat et ltat 10 sera indpendant de la faon dont il y est arriv. En dautres
termes, ltat actuel contient toute linformation ncessaire aux dcisions
futures. Cette proprit est dite principe doptimalit.
(v) Lalgorithme de recherche de la solution optimale commence par trouver la
stratgie optimale pour tous les tats de la dernire tape.
(vi) Une relation de rcurrence identifie la stratgie optimale dans chaque tat de
ltape n partir de la stratgie optimale dans chaque tat de ltape n+1.
83

*
Dans notre exemple la relation est f n* (S)= Min
x n {Csxn + f n 1 (xn)}
La stratgie optimale tant donn que nous sommes ltat S de ltape n,
ncessite de retrouver la valeur de xn qui minimise lexpression ci-dessus.

La relation de rcurrence toujours cette forme


{fn(S,xn)},
avec fn(S,xn) est une expression en fonction de S, xn et

f n* (S)=

Max
xn

ou

Min
xn

f n*1 (-)

(vii) Utilisant cette relation de rcurrence, lalgorithme procde reculons tape


par tape. Il dtermine la stratgie optimale pour chaque tat de chaque tape.
Dans tout problme de programmation dynamique, on peut construire chaque
tape un tableau analogue au suivant.

Etape n

fn(S, x1)
X1

tats n+1

f n* (s)

*
xn

S
tats n

le cot ou la
distance

La longueur du
Le meilleur
chemin optimal tat de ltape
partir de S
n+1 le long du
jusqu ltat final
chemin
optimal final

IV. Programmation dynamique dterministe


a. Introduction
Dans cette section on sintresse au problme dit dterministe, o la
connaissance de ltat et de la dcision prendre suffisent pour savoir ltat
ltape suivante.
Un problme dynamique dterministe est caractris par la dtermination de la
fonction objective. Cette fonction peut tre le minimum de la somme de la
contribution induite par le passage dun tat un autre, ou le maximum dune
telle somme, ou le minimum du produit de ces termes etc.

84

Il faut aussi dterminer la nature de lensemble des tats dans chacune des
tapes. Ces tats Sn peuvent tre reprsents par des variables discrtes ou par
des variables continues ou dans certains cas par un vecteur .
tape n
Sn

tape n+1
contribution de xn

Sn+1

La structure de base dun problme dynamique dterministe


b. Problme du type plus court chemin

Quel est le plus court chemin de A B ?


Solution:
On considre l'ensemble des tats les point d'intersection sur les diagonales.
Ainsi on a exactement 8 tapes.
fn(S, xn) = Csxn + fn+1 (xn), n=1,...., 8
avec f*n+1 (s) = Min
x n fn(S, xn) et f9 (S) = 0

85

Etape 8

f8(S, B)
x8

f8* (S)

x*
N

3
2

3
2

B
B

S
1
2
Etape 7

f7(S, x7) = Csx7+ f8( x7)


x7

f 7* (s)

*
x7

7
5
-

6
6

7
5
6

1
1
2

S
1
2
3
Etape 6

f6(S, x6) = Csx6+ f7( x7)


x6

f 6* (s)

*
x6

12
9
-

8
7
-

11
7

12
8
7
7

1
2
2
3

S
1
2
3
4
Etape 5

f5(s, x5) = Csx5+


x5

f 6* (x6)

f5* (s)

*
x5

16
16
-

11
12
-

8
10
-

11
15

16
11
8
10
15

1
2
3
3
4

S
1
2
3
4
5

86

Etape 4

f4(s, x4) = Csx4+


x4

f5* (x4)

f 4* (s)

*
x4

20 16 - 14 10 - 11 11
- 16

20

16
10
11
16

2
3
3,4
4

S
1
2
3
4
Etape 3

f3(s, x3) = Csx3+


x3

f 4*

(x3)

f3* (s)

*
x3

12
-

12
12
-

16
13

17

12
12
13

2
2
3

S
1
2
3
Etape 2

f2(s, x2) = Csx2+


x2

f3*

(x3)

f 2* (s)

x*
2

15
2

15
16

14

15
14

1,2
3

S
1
2
Etape 1

f1(s, x1) = Csx1+


x1

f 2*

(x1)

f1* (s)

x1*

20

18

18

S
A

87

On peut rsumer les rsultats de la faon suivante:


Etapes
Chemin optimal 1
Chemin optimal 2

1
A
A

2
2
2

3
3
3

4
3
3

5
3
4

6
3
3

7
2
2

8
1
1

La longueur du chemin optimal (1 ou 2) est gale 18.


c. Rpartition optimale des moyens
Un projet du gouvernement est tudi par 3 groupes de chercheurs. La
probabilit que chacun de ces groupes 1, 2 et 3, narrive pas terminer le projet
est respectivement: 0,4; 0,6 et 0,8.
Si on ajoute ces groupes deux nouveaux chercheurs, les probabilits dchec
sont donn par ce tableau
Probabilit dchec
Groupes
1
2
0,4
0,6
0,2
0,4
0,15
0,2

Nbre de nouveaux chercheurs


0
1
2

3
0,8
0,5
0,3

Le problme est de dterminer lallocation optimale de ces deux chercheurs afin


de minimiser la probabilit que les groupes de recherche chouent dans leur
travail.
Solution:
Etapes: 3 tapes ou les tats reprsentent le nombre de chercheurs
disponibles
Variable de dcision: xn reprsente le nombre de chercheurs allouer
lquipe de recherche n, n = 1, 2, 3.
Contribution de la dcision xn est la probabilit que lquipe n choue aprs
avoir eu xn chercheur de plus
f n* (S) cest la probabilit minimale que les groupes n,..., 3 chouent dans
leurs recherches :

f n* (S)

avec fn(S, xn) = pn(xn)


xn et f 3* (s) =1.

*
n 1

Min

x n S fn(S,

xn)

n = 1, 2, 3

(S, xn), pn(xn) est la contribution de la dcision

tape n

tape n+1
88

9
B
B

S- xn
pn(xn)
fn(S, xn) = pn(xn)

f n*1 (S-

xn )

Etape 3

f3(S, x3) = p3(x3)


x3

f 3* (S)

*
x3

0,8
0,8
0,8

0,5
0,5

0,3

0,8
0,5
0,3

0
1
2

S
0
1
2
Etape 2

f2(S, x2) = p2(x2)


x2

f3*

(x3)

f 2* (S)

x*
2

0,48
0,3
0,18

0,32
0,2

0,16

0,48
0,3
0,16

0
0
2

S
0
1
2
Etape 1

f1(S, x1) = p1(x1)


x1

f 2*

(x1)

f1* (S)

x1*

0,064

0,06

0,072

0,06

S
2

La stratgie optimale est x1* = 1, x*2 = 0 et x3* = 1.


La probabilit dchec des trois groupes de recherche est de 0,06.

Exercice 2 : (Problme de gestion des Stocks)


89

Un magasin vend des chaussures de Ski. Par exprience, la priode de vente de


ces chaussures dure 6 mois, du 1er Octobre jusquau 31 Mars.
Les prvisions de vente sont donnes par le tableau suivant:
Mois
Octobre
Novembre
Dcembre
Janvier
Fvrier
Mars

Demande
40
20
30
40
30
20

Le magasin achte ces chaussures par lots de 10, 20, 30, 40 ou 50 paires avec un cot de 4$ par paire et des rductions sur les prix dachat.

Quantit
10
20
30
40
50

Solde
4%
5%
10%
20%
25%

Le cot de lancement dune commande dapprovisionnement est fixe, et est de


2$. En plus un cot supplmentaire pour chaque ordre est de 8$ (cot de
transport des chaussures au magasin).
Le stock du magasin ne peut pas dpasser le nombre de 40 paires de chaussures
par mois.
Une paire qui reste en stock la fin du mois engendre un cot de 0,2$ par paire
par mois.
Aprs 6 mois le magasin doit vendre toutes ces chaussures est le niveau des
stocks doit tre nul. Sous lhypothse que la demande est fixe et uniforme
pendant chaque mois, retrouver la stratgie qui minimise le cot total des stocks.
Solution:
Les tapes reprsentent le dbut de chaque mois et les tats le nombre de paires
de chaussures en stock.
Dn: demande la nme tape
xn: la commande au debut de la nme tape
(xn) = 10 + Cn xn avec Cn le cot d'achat.
Pour n = 1,...,5,
f 7* (S)=0

f n* (S)= D Min
n S xn

{(xn) +0,2(S+xn-Dn)+

90

f n*1 (S+xn-Dn)}

avec

Etape 6

A la dernire tape le stock restant est nulle donc les tats possibles de
cette tape sont 0, 10, 20.
x6

f 6* (s)

x6*

86
84
0

20
10
0

S6
0
10
20
Etape 5

S6 = S5 + x5 30
f5(s, x5)= (x5) +0,2(S+x5-30)+

x5

10

f 6* (S+x5-30)

f5(s, x5)
20 30 100 50

f5* (s)

x5*

164
142
122
86
50

50
40
30
0
0

S5
0
10
20
30
40

- 204 188 164


- 172 168 142 - 134 136 122 86 98 90 50 52 -

Etape 4

S5 = S4 + x4 - 40
f4(s, x4)= (x4)+0,2(S+x5-30)+
x4

10

f 6* (S+x5-30)

f4(s, x4)
20 30

40

50

f 4* (s)

*
x4

302
282
264
230
196

304
286
252
218
-

302
282
250
218
164

40
30,40
20
10
0

S4
0
10
20
30
40

- 250
- 212 230
164 192 212

282
262
244
210

Etape 3

S4 = S3 + x3 - 30
f3(s, x3)= (x3)+2/3+1/3-30)
(s4)
91

f 4*

x3

10

20

30

40

50

f3* (s)

x3*

302
284

350
332
302

388
370
340
310

420
402
372
342
290

422
392
362
310
-

414
384
323
-

414
384
323
302
284

50
50
50
0
0

S
0
10
20
30
40

Etape 2

S3 = S2 + x3 - 20

x2

f2(s, x2)= (x2)+0,2+ (S2 + x2-20)


0
10
20
30
40

f 3* (s3)

50

f 2* (s)

x2*

467
452
-

468
446
414
384
336

50
40
0
10
0

f1* (s)

x1*

606

40

S
0
10
20
30
40

414
386
336

462
434
384
356

500
472
422
394
378

504
454
426
410
-

474
446
430
-

Etape 1

S2 = S1 + x1 40

x1

f1(s, x1)= (x1)+0,2+ (S1 + x1-40) f 2* (s2)


0
10 20 30 40
50

S
0

606

608

la politique optimale est 40, 50, 0, 40, 50, 0. Le cot est 606.
d. Rsolution d'un programme linaire
La programmation linaire peut tre utiliser pour rsoudre des programmes
linaires de petite taille. On se limite ici des programmes linaires du type
entiers.
Considrons le programme linaire suivant
Max 3x1 + 5x2
S.c
3 x1 + 2 x2 9
4 x1 + 5 x2 11
92

x1 IN , x2 IN
La dcision prendre est de dterminer les valeurs de x1 et x2. On peut assimiler
le problme un programme dynamique deux tapes, o dans un premier
temps, on doit dterminer la valeur de x1, et dans un deuxime temps la valeur
de x2. Reste savoir quels sont les tats relatifs chaque tape ?
Ces tats doivent fournir l'information ncessaire pour aider choisir notre
dcision.
Une simple rflexion nous amne considrer, le nombre de ressources non
utilises dans les contraintes, comme tant des tats possibles.
Un tat est dcrit par un vecteur (R1,R2), o R1 et R2 sont respectivement les
ressources non utilises dans la premire et la deuxime contrainte.
A l'tape 1, l'unique tat possible est S=(9,11).
La structure de base du problme est
tape n
(R1,R2)

tape n+1
(R1- a1n xn , R2- a2nxn )
cn xn

fn((R1,R2), xn) = cn xn +

f n*1 ((R1-

a1n xn , R2- a2nxn ))

Max

R1
a1n { fn((R1,R2), xn)} pour n=1,2 et
avec f n* (R1,R2) =
R
xn 2
a 2n
xn

f 3* (R1,R2)=0

Etape 2

A l'tape 2, si on considre toutes les combinaisons possibles des valeurs de R1


et R2 alors on aura considrer un nombre d'tat total gale 99 tats. Or tous
ces tats ne sont pas ralisables dans le sens qu'on n'aura jamais par exemple
dans l'tape 2 l'tat (10,8). Ainsi, pour dterminer l'ensemble des tats ralisables
dans la deuxime tape, il suffit de considrer toutes les valeurs possibles de x1
(0,1 et 2), et avoir par consquence les tats suivant: (9,11), (6,7) et (3,3).

x2

f2((R1,R2), x2) = 5 x2
0
1
2

f 2* (s)

x2*

10
5
0

2
1
0

S
9,11
6,7
3,3

0
0
0

5
5
-

10
-

93

Etape 1

On a : f1((R1,R2), x1) == 3 x1 + f 2* ((R1- 3 x1 , R2- 4 x1 ))

x1

f1((R1,R2), x1)
0
1
2

f1* (s)

x1*

10

S
9,11

10

3+5=8

La solution optimale est (x1,x2)=(0,2) et la valeur de la fonction objectif est gale


10.
Exercice 3: Rsoudre les programmes linaires suivants en utilisant la technique
de la programmation dynamique:

Max
S.c

4x1 + 5x2
8 x1 + 5 x2 24
2 x1 + 5 x2 13
x1 IN , x2 IN
La solution optimale est (x1,x2)=(1,2).
Max x1 + 2 x2 + x3
S.c
3 x1 + 2 x2 5
3 x2 + 2 x3 7
x1 IN , x2 IN , x3 IN
La solution optimale est (x1,x2,x3)=(1,1,2).

94

Vous aimerez peut-être aussi