Académique Documents
Professionnel Documents
Culture Documents
Cours S5 Eco
Cours S5 Eco
Programmation
Linaire
Mohamed HACHIMI
EG
Semestre 5
Formulation
1. Introduction
Mthode graphique
10
11
11
2. Problme de maximisation
13
3. Problme de minimisation
18
22
1. Principe de lalgorithme
22
23
3. Illustration de lalgorithme
25
4. Algorithme du simplexe
31
5. Application
32
35
35
2. Illustration de lalgorithme
35
42
4. Application
45
48
48
2. Proprits de la dualit
53
1
1.
Formulation
Introduction
2.
2.1.
Formulation
m
p
q
Profit unitaire
2.2.
A
1h
2 kg
9 kg
50 dh
B
2h
2 kg
4 kg
60 dh
Disponible
8h
10 kg
36 kg
Quelles sont les informations dont doit disposer le directeur de lentreprise pour
considrer que son problme est rsolu ? Il suffit de connatre la quantit du
produit A et la quantit du produit B fabriquer quotidiennement, nest-ce pas ?
Agissons comme si ces quantits nous taient connues et dnotons-les par :
x1 = la quantit du produit A produire
x2 = la quantit du produit B produire
Les variables x1 et x2 sont dites variables de dcision.
Quel profit lentreprise retirera-t-elle de la vente de ces deux produits ? Il sagit
dadditionner les bnfices tirer de chacun des 2 produits :
pour le produit A, elle retire 50 dh par unit et en fabrique x1 units ; cette
production lui rapporte donc un profit de (50 x1 ) dh ;
de mme, la quantit x2 du produit B lui permet de faire un profit de (60 x2 ) dh.
Le profit total tirer des deux produits slve donc :
(50 x1 + 60 x2 ) dh
Nous dnoterons ce profit total par z et laisserons implicite lunit montaire :
z = 50 x1 + 60 x2
Nous cherchons videmment rendre z aussi grand que possible en donnant x1 et
x2 des valeurs appropries.
La grandeur z est une fonction qui, chaque plan de production (une quantit
de A, une quantit de B), associe le nombre de dirhams que lentreprise retirerait
comme profit si elle adoptait ce plan. Cette fonction z, qui traduit lobjectif de notre
problme, sappelle fonction objectif ou fonction conomique. Et, comme nous
cherchons rendre z aussi grand que possible, nous crivons :
Maximiser z
o z = 50 x1 + 60 x2
Formulation
(m)
On emploie le signe 6 , et non = , car il nest pas obligatoire que toutes les
heures disponibles soient utilises pour la fabrication des produits A et B, bien quil
ne soit pas interdit quil en soit ainsi.
Contraintes relatives aux matires premires En sinspirant de la contrainte
relative la machine, ces contraintes scrivent tout naturellement :
2x1 + 2x2 6 10
(p)
9x1 + 4x2 6 36
(q)
Formulation
x1 + 2x2 6 8
(P)
2x1 + 2x2 6 10,
9x1 + 4x2 6 36
x1 , x 2 > 0
2.3.
soit : x1 + x2 6 5
Variables dcart
Afin de ramener les contraintes des galits (qui sont plus faciles traiter que les
ingalits), on introduit des variables dcart. Ces variables seront toujours, comme
les variables de dcision x1 et x2 , positives ou nulles.
Aprs lajout des variables dcart x3 , x4 et x5 relatives aux contraintes (m), (p) et
(q), nous obtenons la formulation :
x1 + 2x2 + x3
= 8
(P)
2x1 + 2x2
+ x4
= 10
9x1 + 4x2
+ x5 = 36
x1 , x 2 , x 3 , x 4 , x 5 > 0
La variable dcart dune contrainte reprsente la quantit disponible non utilise.
Cest lcart entre la disponibilit et le besoin.
2.4.
Max z = c1 x1 + c2 x2 + + cn xn
.
.
.
x1 ,
x2 , . . . ,
xn > 0
Formulation
fournira les valeurs optimales des quantits xj produire de chacun des produits ;
la fonction conomiques reprsente le gain total ; le premier membre de chaque
contrainte (Mi ) reprsente le temps total dutilisation de la machine Mi . Les valeurs
des variables dcart associes chacune de ces contraintes correspondent au temps
disponible non utilis de chaque machine.
3.
3.1.
A
B
C
Cot unitaire
3.2.
P
2
1
1
20 dh
Q
1
1
3
40 dh
Besoins minimaux
16
12
18
Formulation
Chacun des 3 lments nutritifs considrer donne lieu une contrainte, qui vise
exiger que les aliments, dans leur ensemble, satisfassent les besoins quotidiens du
troupeau. On obtient :
2x1 + x2 > 16
(A)
x1 + x2 > 12
(B)
x1 + 3x2 > 18
(C)
Les contraintes ci-dessus emploie le signe > parce quil faut respecter les
exigences de consommation minimales, mais que celles-ci peuvent tre dpasses.
Enfin, il faut pas oublier quon peut pas acheter des quantits ngatives de P ou Q :
x1 , x 2 > 0
Le modle se rsume ainsi :
2x1 + x2 > 16
3.3.
x1 + x2 6 12
x1 + 3x2 6 18
x1 , x 2 > 0
Min z = c1 x1 + c2 x2 + + cn xn
.
.
.
x1 ,
x2 , . . . ,
xn > 0
Formulation
10
4.
Mthode graphique
Min z = a0 x1 + b0 x2
Max z = a0 x1 + b0 x2
a1 x1 + b1 x2 > c1
a1 x1 + b1 x2 6 c1
(D)
(P)
a2 x1 + b2 x2 > c2
a2 x1 + b2 x2 6 c2
...
... ...
...
... ...
x1 , x 2 > 0
x1 , x 2 > 0
1.
1.1.
ai x1 + bi x2 > ci ,
(P2 ) ai x1 + bi x2 6 ci
y
p
mi
De
lan
o
p
mi
e
D
lan
Chaque contrainte dtermine lun des deux demi-plans (P1 ) ou (P2 ) que lon
trouvera en vrifiant si un point particulier (lorigine (0, 0) par exemple) est contenu
Mthode graphique
12
D
D
Rgion born
1.2.
p
a0
x1 +
b0
b0
(si b0 6= 0).
p
est lordonne lorigine de la droite (Dp ). Ainsi, on a :
b0
Si b0 > 0 alors p1 < p2 yp1 < yp2
Si b0 < 0 alors p1 < p2 yp1 > yp2
Mthode graphique
y
13
y
B
D
A
C
o
B
D
A
C
o
Tous les points sur une mme droite assurent la mme valeur pour z. Quand on
passe dune droite une autre, les valeur de z varient : ils augmentent si on se
2.
2.1.
Problme de maximisation
Enonc du problme
Mthode graphique
14
ncessite le passage dans le deuxime atelier pour fabriquer le cadre en bois et dans
le troisime atelier o le verre est mont sur le chassis. Les profits unitaires, les
temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les
capacits hebdomadaires de ces ateliers sont donns au tableau suivant :
Atelier 1
Atelier 2
Atelier 3
Profit
Produit 1
(heures/produit)
1
0
3
300 dh
Produit 2
(heures/produit)
0
2
2
500 dh
Capacit disponible
(heures/semaine)
4
12
18
Le modle linaire
Quelles sont les quantits de chassis que lentreprise devrait produire par semaine,
si elle veut maximiser son profit ? Les variables de dcision seront :
x1 = nombre de chassis de type 1 produire par semaine
x2 = nombre de chassis de type 2 produire par semaine
Le problme de planification de la production de chassis se traduit par le modle
linaire suivant :
x1
6 4
(atelier 1)
(A1)
2x2 6 12
(atelier 2)
(A2)
(P)
3x1 + 2x2 6 18
(atelier 3)
(A3)
x1
> 0
x2 > 0
A chaque couple de valeurs des variables de dcision x1 et x2 on associe un point
(x1 , x2 ) du plan R2 : le point (x1 , x2 ) sinterprte comme la proposition dun plan de
production indiquant le nombre de chassis fabriquer par semaine. Gnralement,
on parle indiffremment du point (x1 , x2 ) ou du plan de production (x1 , x2 ) ou
encore de la solution (x1 , x2 ).
2.3.
Les contraintes x1 > 0 et x2 > 0 signifient que tous les points (x1 , x2 ) reprsentant
des solutions acceptables doivent tre dans le premier quadrant, soit droite de
Mthode graphique
15
(1)
x2
8
Droite D1
Droite D1
x1
x1
Puisque toutes les contraintes du modle linaire sont de la mme forme, il suffit
de les prendre en considration tour tour, en procdant, pour chaque contrainte,
comme suit :
choisir 2 points de la droite associe. Afin de faciliter les calculs, on peut choisir
les deux points ayant chacun une coordonne nulle. Puis tracer cette droite ;
dterminer de quel ct de la droite associe la contrainte est satisfaite. Pour
reprer rapidement le bon cte, il suffit de regarder si le point (0, 0) est du bon
cte ;
tracer une flche pointant vers ce ct.
Illustrons nouveau cette procdure laide de la contrainte (A2). La droite associe
cette contrainte est la droite dquation :
x2 = 6
(2)
Mthode graphique
16
x2
8
<Points ou` (A1)
respectee mais
:est
(A2) ne lest pas
8
6
8
6
(2)
(1)
x2
x1
(2)
x1
x2
8
(2)
(2)
2
0
(1)
x2
(3)
x1
(3)
x1
Lensemble des points qui nont pas t limins aprs la prise en considration de
toutes les contraintes constitue la rgion ralisable. En conomie, cet ensemble est
aussi appel lensemble de production.
2
2.4.
Mthode graphique
17
La rgion ralisable que nous venons de construire ne dtermine pas une solution,
mais tout un domaine contenant un nombre infini de points. Il va falloir reprer
un plan de production optimal, cest--dire un point (x1 , x2 ) vrifiant toutes les
contraintes et permettant z de prendre sa plus grande valeur sur la rgion
ralisable.
Pour cela, on va considrer des valeurs successives de la fonction conomique :
z = p.
Ce qui correspond graphiquement des droites parallles
300x1 + 500x2 = p.
(4)
Les points dune de ces droites sont donc le lieu de tous les points donnant la mme
valeur du profit (do le nom de droites disoprofits).
Tracer une premire droite disoprofit permet dobtenir une illustration de la pente
de z. En tracer une deuxime permet de dterminer la direction selon laquelle
la valeur de z augmente. Ainsi, en augmentant petit petit la valeur de p dans
lquation (4), on obtient des droites parallles, chacune plus loin de lorigine que
les prcdentes.
(1)
x2
8
6
(2)
z=
z=
200
0
(3)
100
0
x1
Mthode graphique
18
(1)
x2
x2
(2)
z=
z=
200
0
(3)
100
0
(x1 , x2 ) = (2, 6)
z=
z=
x1
200
0
100
0
x1
3.
3.1.
Problme de minimisation
Enonc du problme
2
3.2.
Mthode graphique
19
2x1 + x2 > 14
x1 + x2 > 12
(P)
x1 + 3x2 > 18
x1
6 14
x2 6 16
x1 , x 2 > 0
On obtient aisment le
(O)
(A)
(B)
(C)
(L)
(K)
Les contraintes (A), (B) et (C) scrivent > parce quil faut respecter les besoins
minimaux en matires premires, mais ceux-ci peuvent tre dpasses.
Ce programme diffre du programme prcdent sous 2 aspects : la fonction
conomique sest minimiser ; certaines contraintes sont de signe > et lorigine
O = (0, 0) du plan nest pas une solution ralisable.
La technique de rsolution graphique reste la mme, mais, puisquil sagit de la
recherche dun minimum, la droite iso-valeur le plus proche de lorigine et qui reste
en contact avec la rgion ralisable, fournit le minimum.
En premier temps, nous construisons la rgion ralisable. La zone hachure dans le
graphe ci-dessous est lensemble des points satisfaisant toutes les contraintes.
x2
x2
16
16
14
12
14
(K)
(L)
(A)
12
10
10
(B)
(C)
2
0
2
2
8 10 12 14 16
x1
8 10 12 14 16
x1
rgion ralisable
Mthode graphique
20
x2
x2
12
12
10
10
D
C
4
B
2
2
D
C
8 10 12 14 16
x1
8 10 12 14 16
x1
en B = (9, 3)
en C = (2, 10)
x2
12
12
10
10
4
B
2
2
D
C
8 10 12 14 16
x1
8 10 12 14 16
x1
Mthode graphique
21
Comme la droite disocot la plus basse possible est tangente la contrainte (B), la
valeur minimale serait attente aux sommets B(9, 3) et C(2, 10). De plus, tout point
du segment [B, C] minimisera la fonction conomique sous les contraintes poses.
Cette multiplicit des solutions optimales provient du fait que les droites disocots
sont parallles la droite associe la contrainte (B).
Algorithme du simplexe
Mthode algbrique
Nous avons rsolu des cas de programmes linaires simples : deux variables et trois
ou cinq contraintes. Au fur et mesure que le nombre des contraintes saccrot, la
mthode graphique savre de plus en plus difficile mettre en uvre. En prsence
de trois variables, nous devons faire appel une reprsentation graphique dans
lespace, exercice trs dlicat . . . Or, dans la pratique, les programmes linaires
comportent plusieurs dizaines de variables et de contraintes. Ainsi, le recours
une mthode gnrale devient indispensable.
Lalgorithme du simplexe est la plus utilise des mthodes de rsolution des
programmes linaires. Il a t mis au point en 1948 par B. Dantzig. Depuis, cet
algorithme a fait lobjet de certaines darticles scientifiques et a servi la rsolution
de nombreux modles linaires
1.
Principe de lalgorithme
23
Max z = cx
Ax = b
x>0
avec A de type (m, n) et de rang m, x de type (1, n) et b de type (m, 1).
Nous dcrirons le droulement de la mthode du simplexe en lappliquant au
modle de fabrication des chassis (FC) introduit au chapitre 2. Rappelons quaprs
lajout dune variable dcart dans chaque contrainte relles, le programme (FC) se
rcrit sous la forme
x1
+ x3
= 4
(FC)
2x2
+ x4
= 12
3x1 + 2x2
+ x5 = 18
x1 ,
x2 , x 2 , x 4 , x 5 > 0
2.
A= B H
24
o H est la sous-matrice forme par les colonnes de A qui ne sont pas dans la base.
De mme on peut partitionner x en (xB xH )t et c en (cB cH )t , on peut crire
Max z = cB xB + cH xH
()
BxB + HxH = b
x>0
(1)
(0, 9)
8
(0, 6)
(2, 6)
(4, 6)
(2)
4
(4, 3)
2
(0, 0)
(3)
(4, 0) (6, 0)
x1
var. de base
x3 , x 4 , x 5
x2 , x 3 , x 5
x2 , x 3 , x 4
x1 , x 2 , x 3
x1 , x 2 , x 5
x1 , x 2 , x 4
x1 , x 4 , x 5
x1 , x 3 , x 4
(x1 , x2 )
(0, 0)
(0, 6)
(0, 9)
(2, 6)
(4, 6)
(4, 3)
(4, 0)
(6, 0)
sol. de base
(4, 12, 18)
(6, 4, 6)
(9, 4, 6)
(2, 6, 2)
(4, 6, 6)
(4, 3, 6)
(4, 6, 6)
(6, 2, 12)
25
On appelle solutions de base adjacentes deux solutions de base dont les variables
de base sont les mmes sauf une qui est de base dans la premire base et hors base
dans la seconde.
Dans lexemple (FC), les deux solutions de base suivantes sont adjacentes :
(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18),
(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6)
car elles ne diffrent que par une seule variable hors base. Par contre les solutions
suivantes :
(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18),
(x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0)
ne sont pas adjacentes puisquelles diffrent pas plus dune variable hors base.
3.
Illustration de lalgorithme
Initialisation de lalgorithme
x1
+ x3
= 4
2x2
+ x4
= 12
3x1 + 2x2
+ x5 = 18
on lit la valeur des variables de base :
x3 = 4, x4 = 12, x5 = 18.
Do la solution de base ralisable de dpart :
(0, 0, 4, 12, 18)
Notons que si une composante du second membre b avait t ngatif ou si une
contrainte avait t sous forme dgalit, on aurait pas pu dmarrer ainsi. Ces
26
embches peuvent tre leves en passant par une phase prliminaire appele phase I
de lalgorithme du simplexe.
Que vaut la fonction objectif pour cette premire solution de base ?
z = 300x1 + 500x2 = 300 0 + 500 0
cest--dire un bnfice nulle, ce qui nest pas tonnant. Cette solution correspond
au plan de production : on ne produit rien, on nutilise aucune ressource et on ne
gagne rien.
La formulation de lexemple (FC), sous la forme standard, permet dexprimer
facilement chaque variable dcart (ici variable de base) ainsi que la fonction objectif
z comme fonctions affines des variables de dcision seulement (ici variables hors
base) :
x3 = 4
x1
x4 = 12
2x2
(Dic 1)
x5 = 18
3x1
2x2
z =
300x1 + 500x2
Le tableau ci-dessus est appel un dictionnaire. La solution de base de dpart peut
tre rsume ainsi :
variables hors-base : x1 = 0, x2 = 0 ;
variables de base : x3 = 4, x4 = 12, x5 = 18 ;
la valeur de la fonction objectif : z = 0.
3.2.
27
Pour obtenir une meilleure solution, il suffit de faire passer lune des deux variables
x1 ou x2 de la valeur zro une valeur positive. Il est donc prfrable de choisir
x2 qui vaut 500 par unit alors que x1 ne vaut que 300. On peut ainsi esprer
aller "plus vite" vers la solution optimale. Par contre la valeur de x1 restera nulle.
conomiquement, on va donc produire des chassis de type 2 et toujours pas des
chassis de type 1.
Le critre de slection de la variable entrante est donc le suivant : on choisit
la variable avec le coefficient positif (de la fonction objectif) le plus lev.
Notons que pour pouvoir appliquer ce critre simple (le choix de la variable
entrante), la fonction objectif z doit tre exprime en fonction des seules variables
hors base.
Choix de la variable sortante
On peut prsent se poser les deux questions suivantes :
a) jusquo peut-on augmenter la valeur de x2 ?
b) quelle variable de base doit-elle sortir, cest--dire doit-elle devenir hors base ?
(Noter que le nombre des variables de base doit toujours tre exactement gal m,
cest--dire 3 dans notre exemple)
En supposant que x1 reste hors base (et donc gal 0) dans (Dic 1), on obtient les
variations des variables de base en fonction de x2 :
x3 = 4
(C1)
x4 = 12 2x2
(C2)
x5 = 18 2x2
(C3)
Mais pour conserver une solution ralisable et ne pas quitter la rgion ralisable, il
faut aussi que les composantes restent positifs. Nous devons avoir x3 > 0, x4 > 0 et
x5 > 0. En fait :
x3 = 4
>0
x4 = 12 2x2 > 0
x5 = 18 2x2 > 0
12
=6
2
18
x2 6
=9
2
x2 6
ou encore
28
on peut supposer que x4 est prsent hors base (cest une rponse la question b).
On en conclut que la variable sortante est x4 , cest--dire la premire qui sannule
lorsque x2 saccrot partir de 0.
On effectue les rapports des seconds membres des contraintes aux
coefficients correspondants de la variable entrente. La variable sortante
correspond au plus petit rapport positif.
Gometriquement, en partant du sommet (0, 0) de la rgion ralisable D, on se
dplace sur une arte de D (laxe des x2 ). Lorsque la variable dcart x4 devient
nulle, cela veut dire quon a rencontr la droite associe la deuxime contrainte.
On arrive alors dans un nouveau sommet, lintersection des hyperplans x1 = 0 et
x4 = 0 (dans R5 ) cest--dire lintersection des droite x1 = 0 et x2 = 6 (dans R2 )
x2
(2, 6)
(0, 6)
(4, 3)
(0, 0)
(4, 0)
x1
x4
(Dic 2)
2
x5 =
6
3x1 +
x4
z = 3000 + 300x1 250x4
29
La premire itration est termine. La deuxime solution de base peut tre rsume
ainsi :
variables hors-base : x1 = 0, x4 = 0 ;
variables de base : x2 = 6, x3 = 4, x5 = 6 ;
la valeur de la fonction objectif : z = 3000.
Elle correspond au sommet (0, 6) de la rgion ralisable. conomiquement, cette
solution dfinit un plan de production beaucoup plus intressant : on fabrique 6
chassis du type 2 (x2 = 2) en consommant entirement la capacit de production de
latelier 2 et x5 = 6 units de la capacit de production de latelier 3. La capacit de
fabrication de latelier 1 nest pas encore utilis (x3 = 4). Le profit est z = 3000.
Test darrt
La question qui se pose maintenant est : commet savoir le fait que la solution
optimale est trouve ?
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
infrieures ou gales la fonction objectif. Comment peut-on savoir sil existe encore
un sommet adjacent profitable ?
Pour rpondre cette question, nous allons examiner la nouvelle expression de la
fonction z. La dernire quation du dictionnaire (Dic 2) :
z = 3000 + 300x1 250x2
Comme x1 a un coefficient positif, il est intressant de faire entrer x1 en base, ce qui
entrane une deuxime itration.
Le critre darrt sera donc le suivant : la solution de base courante est
optimale si tous les coefficients de la fonction objectif z sont ngatifs ou nuls
lorsque z est exprime en fonction des seuls variables hors base.
Deuxime itration
Au vu de
z = 3000 + 300x1 250x2
on slectionne donc pour la variable entrante x1 . En effet, cest la variable ayant le
plus grand coefficient positif, et dailleurs la seule possible.
Pour dterminer la variable sortante, tudions la variation des variables de base en
30
x1 6 6
ou encore
x1 6 2
La variable sortante est x5 , cest elle qui est la premire sannuler (pour x1 = 2).
Pour calculer le nouveau sommet, on utilise la troisime quation du (Dic 2) pour
exprimer x2 en fonction des nouvelles variables hors base, x5 et x4 :
1
1
x1 = 2 x5 + x4
3
3
On remplace ensuite x1 par cette expression dans les autres quations du
dictionnaire :
1
1
x3 =
2
x5 +
x4
3
3
1
x2 =
6
x4
(Dic 3)
2
1
1
x1 =
2
x5 +
x4
3
3
z = 3600 100x5 150x4
La deuxime itration est termine. La troisime solution de base peut tre rsume
ainsi :
variables hors-base : x4 = 0, x5 = 0 ;
variables de base : x1 = 2, x2 = 6, x3 = 2 ;
la valeur de la fonction objectif : z = 3600.
Elle correspond au sommet (2, 6) de la rgion ralisable. conomiquement, cette
solution dfinit le plan de production suivant : on fabrique 2 chassis du type 1 et
6 chassis du type 2 en consommant entirement les capacits de production des
ateliers 2 et 3. Le profit est z = 3600.
x2
(2, 6)
(0, 6)
(4, 3)
(0, 0)
(4, 0)
x1
31
Tous les coefficients de la dernire ligne, dans (Dic 3), sont ngatifs :
z = 3600 100x5 150x4
Faire entrer x5 ou x4 diminuera la valeur de z. Il nest plus possible damliorer
z. La solution courant
x1 = 2, x2 = 6
est optimale et donne la valeur maximal la fonction objectif : z = 3600.
4.
Algorithme du simplexe
tape 0. Initialisation
crire le programme linaire sous standard : Ajouter les variables dcart.
Dfinir une solution de base de dpart ; prciser les variables de base et les
variables hors base de cette solution. Gnralement, les variables dcart sont
pris comme variables de base et les variables de dcision comme variables hors
base.
tape 1. Choix de la variable entrante
Exprimer la fonction objectif z en fonction des seules variables hors base. Puis
choisir comme variable entrante la variable hors base affecte du coefficient
positif le plus lev.
Si tous les coefficients de z sont ngatifs ou nuls, lalgorithme sarrte. La
solution courante est optimale.
Sinon, soit r lindice de cette variable entrante.
tape 2. Choix de la variable sortante
La variable sortante est la premire sannuler lorsque xr augmente : cest
celle pour laquelle le minimum est atteint dans :
bi
bs
= min
: asr > 0, i = 1, . . . , m
asr
air
s est lindice de la ligne correspondante.
Si tous les asr sont infrieurs 0, alors la solution est non born.
32
5.
5.1.
Application
nonce du problme
Ressource A
Ressource B
Ressource C
Bnfice
Produit 1
2
1
1
7
Produit 2
4
1
2
9
Produit 3
5
2
3
18
Produit 4
7
2
3
17
Stock
42
17
24
Formulation mathmatique
x3 ,
x4 > 0
33
= 42
+ x6
x3 ,
= 17
+ x7 = 24
x4 , x 5 , x 6 , x7 > 0
Dictionnaire initial
= 42 2x1
= 17 x1
= 24 x1
=
7x1
4x2
x2
2x2
+ 9x2
5x3
2x3
3x3
18x3
7x4
2x4
3x4
+ 17x4
(Dic 1)
Premire itration
34
x5 =
x6
x3
z
2
x2
3
1
+
x2
3
2
x2
3
3x2
5
x7 2x4
3
2
+
x7
3
1
x7 x4
3
6x7 x4
+
(Dic 2)
Deuxime itration
= 1
= 3
= 7
= 147
+ x6
3x6
+ x6
3x6
x2
+ x2
x2
2x2
+ x7 2x4
+ 2x7
x7 x4
4x7 x4
(Dic 3)
Puisque tous les coefficients de la fonction objectif z sont ngatifs, il nest plus
possible damliorer z. La solution obtenue
x1 = 3,
x2 = 0,
x3 = 7,
x4 = 0,
x5 = 1,
x 6 = x7 = 0
Algorithme du simplexe
Mthode des tableaux
1.
1.1.
Forme simpliciale
1.2.
Phase I du simplexe
2.
Illustration de lalgorithme
(FC)
x1
+ x3
= 4
2x2
+ x4
= 12
3x1 + 2x2
+ x5 = 18
x1 ,
x2 , x 2 , x 4 , x 5 > 0
36
1 0 1 0 0
4
h
i
A=
b
=
c
=
0
2
0
1
0
12
300
500
0
0
0
18
3 2 0 0 1
Nous allons maintenant voir commet effectuer les procdures de lalgorithme du
simplexe en utilisant les tableaux.
2.1.
Tableau initial
x1
x2
x3
x4
x5
x3
x4
12
x5
18
300
500
vecteur b
variables
de base B
valeur de z
matrice A
vecteur c
On a ajout au-dessus du tableau le nom des variables pour voir quelle variable
correspond chaque colonne du tableau.
Plusieurs caractristiques dun tableau simplex sont remarquer
Tout dabord, on peut lire directement sur le tableau les valeurs des variables
de base. Si x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b.
4
2.2.
37
variable entrante
B
x1
x2
x3
x4
x5
x3
x4
12
x5
18
300 500
colonne pivot
Choix de la variable sortante
On choisit la variable sortante comme tant la variable de base qui sannule la
premire. Comme nous lavons vu au chapitre prcdent, cela revient calculer
le minimum du rapport du coefficient du membre de droite de chaque contrainte
sur le coefficient correspondant de la colonne pivot lorsque ce dernier est strictement
positif :
12 18
min
,
=6
2 2
Dans le cas o le coefficient dans la colonne entrante est ngatif ou nul, la ligne
nentre pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple.
Supposons que le coefficient de x2 dans la premire contrainte soit 1 la place de
0. Lquation correspondante se rcrit de manire quivalente comme suit :
x1 = 4 + x2
Quelle que soit la valeur de x2 > 0, la variable de base x1 reste positive.
38
La variable sortante est alors la variable de base dont la valeur se lit dans la ligne
o le minimum se produit : ici, il sagit de la deuxime ligne et donc de la variable
x4 . On encadre alors la ligne o le minimum se produit. Cette ligne reoit le nom de
ligne pivot :
variable
sortante
b
x2
x1
x2
x3
x4
x5
x3
x4
12
x5
18
300 500
ligne pivot
variable entrante
39
x1
x2
x3
x4
x5
x1
x2
x3
x4
x5
x3
x3
x4
1
2
x2
1
2
x5
18
x5
18
300
300 500
bc
2
x4
x2
xj
z
Remarquons que la rgle du rectangle implique :
si une ligne contient un 0 lintersection avec la colonne du pivot, cette ligne ne
sera pas modifie.
si une colonne contient un 0 lintersection avec la ligne du pivot, cette colonne
ne sera pas modifie.
En appliquant ces oprations au tableau initial, on obtient le deuxime tableau :
40
x1
x2
x3
x4
x5
x3
x2
1
2
x5
0 250
3000 300
z2 = 3000
Deuxime itration
nouvelle
variable
sortante
x1
x2
x3
x4
x5
b
x1
x3
x2
1
2
x5
0 250
3000 300
41
x1
x2
x3
x4
x5
x3
x2
x1
3000
0 250
1
2
1
0
1
3
0
x1
x2
x3
x3
x2
x1
3600
0 150 100
x4
1
3
1
2
1
x5
1
3
0
1
3
: xB3 = (2, 6, 2, 0, 0)
z3 = 3600
42
deuxi`eme iteration
(2, 6)
premi`ere iteration
(0, 6)
(4, 3)
(0, 0)
x1
(4, 0)
Cest le mme chemin suivi par la mthode algbrique. Ce qui nest pas tonnant.
3.
x1
x2
...
xn+1
b1
a11
a12
...
a1n
...
xn+2
b2
a21
a22
...
a2n
...
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
xn+m
bm
...
z B
...
am1 am2
c1
c2
. . . amn
...
cn
tape 1 :
Dans le cas o toutes les contraintes initiales dun programme linaire se prsentent
sous forme de contraintes dingalits du type "infrieur ou gal" avec un membre
de droite positif, on rcrit dabord le programme sous forme standard en ajoutant
des variables dcart. Puis on met les variables de dcisions (variables originales)
hors base et les variables dcart en base. On indique en section 5 comment
construire le tableau initial dans le cas dun programme linaire quelconque.
43
tape 2 :
Si les coefficients cj sont tous 6 0, alors STOP : la solution de la base actuelle est
optimale. Sinon, choisir la variable hors base dont le coefficient dans la dernire
ligne est positif et le plus grand possible. Soit xr la variable entrante.
Soit xr telle que cr > cj , pour tout cj > 0
On colore la colonne correspondante qui est appele colonne pivot. Il en rsulte le
tableau suivant :
xn+1
b1
...
xn+2
b2
...
..
.
..
.
..
.
..
.
..
xn+m
bm
...
z B
c1 . . . cr . . . cn
...
..
.
..
.
..
.
..
.
..
.
tape 3 :
Choisir comme variable sortante la premire variable de base sannuler. Pour cela,
on calcule le minimum du rapport du second membre bi sur le coefficient air de la
variable entrante dans la mme ligne lorsque air > 0. Soit ` la ligne o le minimum
se produit :
b`
bi
= min
: air > 0
a` r
air
La variable sortante est celle qui correspond la ligne o le minimum se produit.
Soit xs la variable sortante. On colore la ligne correspondante qui est appele ligne
pivot. Il en rsulte le tableau suivant :
44
xn+1
..
.
b1
..
.
1
..
.
0
..
.
...
..
.
0
0
xs
0
..
.
0
1
..
.
0
...
..
xn+m
bs
..
.
bm
.
...
z B
...
..
.
..
.
am1
..
..
.
.
. . . amr
..
..
.
.
. . . amn
c1 . . . cr . . . cn
asr
45
4.
Application
= 42
+ x6
= 17
+ x7 = 24
xi > 0 i = 1, . . . , 7
Tableau initial :
Il est vident que
x1 = x2 = x3 = x4 = 0,
x5 = 42,
x6 = 17,
x7 = 24
x1
x2
x3
x4
x5
x6
x7
x5
42
x6
17
x7
24
18
17
Comme, dans la dernire ligne, il y a des coefficients des variables hors base qui sont
positifs (valeurs 7, 9, 17 et 18), cette solution de base ralisable nest pas optimale.
46
Deuxime tableau :
Daprs les critres dentre et de sortie prsents la section 4 :
x3 hors base entre en base. Car elle possde le plus grand coefficient positif,
dans la dernire ligne, qui est 18.
x7 en base sort de base, puisque cest elle qui correspond la ligne pour laquelle
le rapport de bi sur air est le plus petit avec air > 0, i = 1, 2, 3; r = 3. En
effet, a13 , a23 , a23 sont positifs et
42
b1
=
= 8.4,
a13
5
le plus faible ration est
b2
17
=
= 8.5,
a23
2
b3
24
=
= 8,
a33
3
24
correspond la ligne dindice 3.
3
ce que nous indiquons dans le tableau initial en colorant la colonne pivot et la ligne
pivot ; nous y entourons aussi le pivot, qui est gal 3.
Construisons le nouveau tableau simplexe en appliquant les rgles du pivotage :
x5
x6
x3
z
x1
x2
1
3
1
3
1
3
2
3
1
3
2
3
144
x3
x4
x5
x6
x7
5
3
2
3
1
3
Puisquil y a encore, dans la dernire ligne, un coefficient positif (valant 1), nous
ne sommes pas la solution optimale et nous devons donc rechercher une nouvelle
meilleure solution de base ralisable.
Troisime tableau :
Par un raisonnement analogue celui de ltape (2), nous dduisons que :
x1 hors base entre en base.
x6 en base sort de base
ce que nous indiquons dans le tableau prcdent.
Construisons le nouveau tableau simplexe :
47
x1
x2
x3
x4
x5
x6
x7
x5
x1
x3
147
Puisque tous les coefficients de la dernire ligne sont ngatifs, le tableau trouv
correspond une solution optimale. Celle-ci est dfinie par :
x1 = 3, x3 = 7, x5 = 1, x2 = x4 = x6 = x7 = 0.
Le profit maximal est z = 147.
Dualit en programmation
linaire
1.
Avant de donner la definition formelle dun problme dual, nous allons expliquer
comment il sexplique en terme de problme de production.
1.1.
Exemple 1
(P)
x1 + x2 + 2x3 + 2x4 6 17
x1 , x 2 , x 3 , x 4 > 0
49
(Produit 1)
Une dmarche simillaire propos des autres produits lamne crire que
4 u1 + 1 u2 + 2 u3 > 9
(Produit 2)
5 u1 + 2 u2 + 3 u3 > 18
(Produit 3)
7 u1 + 1 u2 + 3 u3 > 17
(Produit 4)
(D)
2u1 + u2 + u3 > 7
u1 , u 2 , u 3 > 0
50
Les problmes (P) et (D) utilisent en fait exactement les mmes donnes
numriques. On peut les lire directement partir du tableau ci-dessous ; (P)
correspond une lecture ligne par ligne, (D) une lecture colonne par colonne.
42
u2
17
u3
24
18
17
Coeff. dans w
S.M
b
u1
Coeff. des uj
S.M.
Dual (Min)
Primal (Max)
Coeff. des xi
x1
x2
x3
x4
Coeff. dans z
1.2.
Exemple 2
(D)
30x1 + 20x2 > 60
x1 , x 2 > 0
o x1 et x2 les nombres de poudres de types X et Y quiil doit mlanger.
Le laboratoire dcide de vendre sparment les vitamines A, B et C en sachet de
25, 60 et 15 units. Combien doit-il vendre lunit de chaque vitamine pour tre
comptitif avec le pharmacien ?
51
u1 , u 2 , u 3 > 0
1.3.
La dualit associe tout problme linaire un autre problme linaire qui est appel
problme dual du problme initial ; par opposition le problme initial est appel
problme primal. Considrons un problme de maximisation sous canonique :
(D)
n
X
Max
z
=
cj xj
j=1
X
aij xj 6 bi
j=1
xj > 0
i = 1, . . . , m
j = 1, . . . , n
52
m
X
Min w =
b i ui
i=1
X
(D)
aij ui > cj
i=1
ui > 0
j = 1, . . . , n
i = 1, . . . , m
Les variables xj sont appeles variables primales et les variables ui sont appeles
variables duales.
Cette dfinition est caractrise par les rgles suivantes :
le sens de loptimisation est invers. La maximisation (resp. minimisation) dans
le primal devient une minimisation (resp. maximisation) dans le dual ;
les signes sont inverss dans les ingalits correspondant aux contraintes, mais
la contrainte de non-ngativit sur les variables de dcision subsiste ;
les coefficients de la fonction conomique du primal deviennent les seconds
membres des contraintes duales ; les seconds membres des contraintes primales
deviennent les coefficients de la fonction conomique du dual ;
Comme le problme dual du dual est le problme primal initial, il convient donc de
parler dune paire de problmes de programmation linaire lis par la dualit.
Souvent le problme primal est considre soit sous sa forme canonique ou sous sa
forme standard. Dans ces deux, le problme dual devient, en notation vectorielle,
la forme canonique :
le primal :
Max z = cx
Ax 6 b
x>0
la forme standard :
Max z = cx
le primal :
Ax = b
x>0
le dual :
Min w = ub
uA > c
u>0
(
le dual :
Min w = ub
uA > c
Nous pouvons vrifier cette dernire relation, en mettant la forme standard sous
une forme canonique quivalente.
53
Exemple
Considrons le problme suivant :
Max z =
x1 + 3x2
x1 + x2 6 14
(P)
2x1 + 3x2 6 12
2x1 x2 6 12
x1 , x 2 > 0
son dual scrit
(P)
1.4.
u1 2u2 + 2u3 6 1
u1 + 3u2 u3 6 3
u1 , u 2 , u 3 > 0
Rgles de dualisation
variable xj > 0
variable xj 6 0
variable ui > 0
variable ui 6 0
2.
Min w
Proprits de la dualit
Nous allons montrer que la relation entre deux problmes va beaucoup plus loin que
lesthtique mathmatique de cette symtrie. En fait nous allons tudier certaines
rsultats concernant les relations entre le problme primal et son dual.
Considrons un problme linaire de maximisation (le primal) sous sa forme
54
z = Max z = cx
Ax 6 b
x>0
2.1.
w = Min w = ub
uA > c
u>0
Dualit faible
Proprit 1
Si x et u sont des solutions ralisables respectivement du primal
(maximum) et du dual (minimum), elles vrifient :
cx 6 ub
En effet,
Ax 6 b et
u>0
uA > c
x>0
et
)
=
uAx 6 ub
uAx > cx
)
= cx 6 uAx 6 ub
Corollaire 1
Une solution ralisable du dual (resp. primal) fournit une borne suprieur
(resp. infrieur) de z (resp. w)
:
z
6 ub
w > cx
u ralisable du dual
u ralisable du primal
Corollaire 2
Soient x et u des solutions ralisables respectivement du primal et du dual.
Si cx = ub, alors x et u sont solutions optimales.
En effet, supposons, par exemple, que x nest pas une solution optimale. Alors, il
existe une solution ralisable x tel que
c x > c x
Do c x > ub, ce qui est en contradiction avec la proprit 1.
Le corollaire 2 indique que lgalit des fonctions conomiques du primal et du dual
est une condition suffisante doptimalit pour des solutions ralisables des deux
problmes.
55
Corollaire 3
Si un problme possde une valeur optimale infinie, son dual est impossible.
En effet, si z = +., Daprs le corollaire 1, toute solution ralisable u du dual
devrait vrifier + 6 u b. Ce qui est impossible. Mme dmarche si w = .
2.2.
Dualit forte
Proprit 2
Si le problme primal (resp. dual) possde une solution optimale finie, alors
il en est de mme pour le problme dual (resp. primal) et de plus z = w.
z = cB x
B et cB B1 A c 6 0
x
H = 0
(critre doptimalit).
Posons
uB = cB B1
Cette solution duale est ralisable puisque
uB A 6 c
et de plus vrifie
uB b = z
Cette solution est donc une solution optimale finie du problme dual.
Corollaire 4
Lgalit des fonctions objectifs du primal et du dual est donc une condition
ncessaire et suffisante doptimalit pour des solutions ralisables des deux
problmes.
Thorme fondamentale de la dualit
Parmi les neuf situations potentielles pour une paire de problmes lis par la dualit,
il nexiste que quatre situations possibles
1. Les deux problmes ont des solutions optimales finies ;
56
2. a) Le problme primal a une valeur optimale infinie, et son dual est impossible ;
b) Le problme primal est impossible, et son dual a une valeur optimale infinie ;
3. Les deux problmes sont impossibles.
Le tableau suivant rcapitule la situation
Solution
optimale finie
1.
Non
Non
Primal/ Dual
Solution optimale finie
Valeur optimale infinie
Problme impossible
Valeur
optimale infinie
Non
Non
.2 b)
Problme
impossible
Non
2. a)
3.
(P)
x1 x2 > 1
(D)
x1 + x2 > 1
x1 , x 2 >
max u1 u2
u1 u2 6 2
u1 + u2 6 2
u1 , u 2 > 0
0
0
57
(P)
x1 + x2 6 1
(D)
x1 x2 6 1
x1 , x 2 > 0
min u1 + u2
u1 + u2 > 2
u1 u2 > 2
u1 , u 2 > 0
0
0
(P)
x1 x2 6 1
(D)
x1 + x2 6 1
x1 , x 2 >
min u1 u2
u1 u2 > 2
u1 + u2 > 2
u1 , u 2 > 0
0
0
2.3.
58
u (b Ax) = > 0
(uA c) x = > 0
= cx ub = + > 0
i = 1, . . . , m
ou
(xj > 0, uCj > cj , ) j = 1, . . . , n
des couples de contraintes duales.
Convenons quune contrainte dingalit (6 ou >) est dite serre pour une solution,
si elle est vrifie avec le signe dgalit (=) et non serre dans le cas o elle est
vrifie avec le signe dingalit stricte (< ou >).
Le thorme des carts complmentaires peut alors snoncer :
A loptimum, dans tout couple de contraintes duales, il y a au moins une
contrainte serre.
Ainsi, si x et u sont des solutions optimales, respectivement du primal et du dual,
on en dduit :
xj
> 0 uCj = cj
Li x < bi ui
ui
> 0
= 0
Li x = bi
uCj > cj xj
= 0
59
i = 1, . . . , n
yj uj = 0
j = 1, . . . , m
(P)
x1 + 3x2 6 96
x1 + x2 6 40
x 1 , x2 = 0
min 96u1
u1
(D)
3u1
u1
+ 40u2 + 238u3
+ u2 + 7u3 > 15
+
u2 +
4u3 > 25
u2 ,
u3 = 0
x2 = 32
x2 = 28
60