Documente Academic
Documente Profesional
Documente Cultură
variables (simplexe)
1
Programme linéaire à plusieurs variables (simplexe)
La méthode graphique devient dicile à réaliser lorsqu'il y a 3 variables, et impossible s'il y a plus de 3 variables. Il
faut donc trouver une autre méthode : celle du simplexe. Sous sa forme la plus générale, le modèle de programmation
linéaire est le modèle d'optimisation suivant :
n
fonction objectif
X
minimiser (ou maximiser) z(x) = cj xj
i=1
Les nombres cj , aij , bi sont les paramètres du modèle, ils sont connus avant la résolution. Les variables de décision
xj sont indéterminés à priori.
Dénition 1.2 On appelle :
point réalisable tout point x qui satisfait aux contraintes,
espace réalisable ou polyhèdre des contraintes l'ensemble des points réalisables,
solution optimale un point réalisable qui optimise (maximise ou minimise) z(x)
valeur optimale la valeur de z(x) atteinte pour toute solution optimale.
2 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
La manipulation de systèmes d'inéquations n'est pas aisée. En eet, la multiplication par un nombre négatif change
le signe de l'inégalité et la somme de deux lignes peut être fausse.
Exemple 1.1 Regardons cela sur 2 exemples :
1. −3x + 2 ≤ 4 ⇔ 3x − 2 ≥ 4
2. Si on a
x+y >3 −y > −1 (L1 − L2 ) y<1
alors on devrait avoir c'est à dire
x + 2y > 4 y>1 (L2 − L1 ) y>1
Or une seule de ces inégalités peut être exacte...
C'est pourquoi, an de résoudre ce système, on commence par transformer les inéquations du sysème en équations,
en ajoutant de nouvelles variables appelés variables d'écart. On obtient le système :
x1 ≥ 0
..
.
xn ≥ 0
e1 ≥0
..
.
ep ≥0
a11 x1 + · · · + a1n xn + e1 = b1
..
.
a x + · · · + apn xn + ep = bp
1p 1
max(c1 x1 + · · · + cn xn )
On notera Z la fonction objectif : Z = c1 x1 + · · · + cn xn .
On va considérer ce système sous forme de tableau an de le résoudre :
x1 x2 ··· xn e1 e2 ··· ep
e1 a11 a12 ··· a1n 1 0 0 0 b1
e2 a21 a22 ··· a2n 0 1 0 0 b2
.. .. ..
. . .
ep ap1 ap2 ··· apn 0 0 ··· 1 bp
−Z c1 c2 ··· cp 0 0 ··· 0 0
Les variables correspondant à des coecients non nuls de la fonction objectif sont des variables hors base. Elles ne
gurent pas dans la première colonne. La solution de base est x1 = · · · = xn = 0 et e1 = b1 , · · · , ep = bp . Dans ce
cas, la fonction économique vaut 0, les variables xi sont hors base.
−a1 x1 − a2 x2 − · · · − an xn ≤ −b
3 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
x1 x2 x3 e1 e2 e3 e4
e1 1 1 0 1 0 0 0 1
e2 0 1 0 0 1 0 0 2
e3 3 4 0 0 0 1 0 12
e4 1 0 1 0 0 0 1 3
−Z 3 −1 1 0 0 0 0 0
Le plus grand coecient positif de la fonction économique est c1 = 3. La colonne pivot est donc la première
colonne. La variable x1 est donc entrante.
2. Choix de la ligne pivot
La variable entrante va prendre la place d'une des variables de base, appelé variable sortante. Il faut maintenant
trouver quelle valeur maximum peut prendre cette variable entrante an de maximiser la fonction objectif. Pour
4 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
cela, chaque coecient de la dernière colonne est divisé par le coecient correspondant de la colonne pivot : si
la colonne pivot est
a1i
a2i
..
. ,
api
ci
on calcule les rapports
bj
pour j = 1, · · · , p lorsque aij > 0.
aji
On obtient de cette façon, pour chaque contrainte prise séparement, la valeur maximal que peut prendre la
variable entrante. On sélectionne le plus petit rapport positif, correspondant à la contrainte la plus forte : on
cherche l'indice k tel que
bk bj
0≤ ≤ en ne considérant les j que si aij > 0.
aki aji
La k -ième ligne est la ligne pivot, et aki est le pivot : la ligne pivot est la ligne k telle que bk
aki soit positif et
minimal.
La variable correspondant à cette ligne est la variable sortante.
Exemple 1.3 Si on considère l'exemple précédent, on avait le tableau suivant :
x1 x2 x3 e1 e2 e3 e4
e1 1 1 0 1 0 0 0 1
e2 0 1 0 0 1 0 0 2
e3 3 4 0 0 0 1 0 12
e4 1 0 1 0 0 0 1 3
−Z 3 −1 1 0 0 0 0 0
La première colonne est la colonne pivot. Les seuls coecients positifs non nuls de cette colonne sont a11 = 1,
bj
a31 = 3 et a41 = 1. Calculons les rapports a1j correspondants. On a
b1 1
= =1
a11 1
b3 12
= =4
a31 3
b4 3
= =3
a41 1
Le plus petit rapport est le premier, donc la ligne pivot est la première. Le pivot associé est a11 = 1. La variable
entrante est x1 et la variable sortante est e1 .
5 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
Autre exemple
On considère le programme linéaire suivant
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
3x1 + 2x2 + 4x3 + 3x4 ≤ 70
7x1 + 8x2 + 10x3 + 12x4 ≤ 120
x1 + x2 + x3 + x4 ≤ 15
max(6x1 + 112 x2 + 7x3 + 8x4 )
La solution correspondante est x4 = 10, e1 = 40 et e3 = 5, les autres variables étant nulles. La fonction économique
vaut 80.
On cherche le pivot, et on le trouve sur la première colonne, trosième ligne. La variable entrante est donc x1 et la
variable sortante est e3 :
x1 x2 x3 x4 e1 e2 e3
e1 0 −1 1 0 1 0 −3 25 on eectue L1 ← L1 − 3L3
x4 0 − 53
3
3
5 1 0 1
5 − 75 3 on eectue L2 ← L2 − 75 L3
x1 1 4
5
2
5 0 0 − 15 12
5 12 on eectue L3 ← 12
5 L3
−Z 0 9
− 10 − 65 0 0 − 25 − 36
15 −96 on eectue L4 ← L4 − 165 L3
Ce tableau est le dernier car tous les coecients de la dernière ligne sont négatifs. La solution optimale correspondante
est x1 = 12, x4 = 3, e1 = 25. La fonction économique vaut en ce point 96.
6 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
Autre présentation
On peut ne pas garder les variables de la base dans la première colonne. La solution correspondante est alors
dénie par les coecients nuls de la fonction objectif. Les autres variables seront nulles.
On considère le programme linéaire suivant
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
3x1 + 2x2 + 4x3 + 3x4 ≤ 70
7x1 + 8x2 + 10x3 + 12x4 ≤ 120
x1 + x2 + x3 + x4 ≤ 15
max(6x1 + 11 2 x2 + 7x3 + 8x4 )
x1 x2 x3 x4 e1 e2 e3
3 2 4 3 1 0 0 70
7 8 10 12 0 1 0 120
1 1 1 1 0 0 1 15
11
6 2 7 8 0 0 0 0
La solution correspondante est e1 = 70, e2 = 120, e3 = 15 (les coecients de la dernière ligne sont nuls) et
x1 = x2 = x3 = x4 = 0. On obtient ensuite
x1 x2 x3 x4 e1 e2 e3
5 3
4 0 2 0 1 0 0 40
7 2 5 1
12 3 6 1 0 12 0 10
5 1 1 1
12 3 6 0 0 − 12 1 5
4 1
3 6 − 23 0 0 − 32 0 −80
La solution correspondante est x4 = 10, e1 = 40 et e3 = 5, les autres variables étant nulles. La fonction économique
vaut 80.
Le dernier tableau est :
x1 x2 x3 x4 e1 e2 e3
0 −1 1 0 1 0 −3 25
0 − 53
3
3
5 1 0 1
5 − 75 3
4 2
1 5 5 0 0 − 51 12
5 12
9
0 − 10 − 65 0 0 − 52 36
− 15 −96
Ce tableau est le dernier car tous les coecients de la dernière ligne sont négatifs. La solution optimale correspondante
est x1 = 12, x4 = 3, e1 = 25. La fonction économique vaut en ce point 96.
7 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
1.2.6 Exercices
Exercice 1.2 Résoudre le programme
x1 , x2 , x3 ≥ 0
x1 ≤ 100
x2 ≤ 150
x1 + x2 + 2x3 ≤ 200
2x1 + x2 + x3 ≤ 300
max(3x1 + 4x2 + 2x3 )
1.3.1 Dénition
Si on compare le problème (P1) :
Pn
maximiser z1 = j=1 cj xj
Pn
avec j=1 aij xj ≤ bi pour i = 1, · · · , m
primal dual
variables :x1 , x2 variables :y1 , y2 , y3 , y4
contraintes : contraintes :
a11 x1 + a12 x2 ≤ b1
a21 x1 + a22 x2 ≤ b2 a11 y1 + a21 y2 + a31 y3 + a41 y4 ≥ c1
a31 x1 + a32 x2 ≤ b3 a12 y1 + a22 y2 + a32 y3 + a42 y4 ≥ c2
a41 x1 + a42 x2 ≤ b4
fonction économique : fonction économique :
z1 = c1 x1 + c2 x2 z2 = b1 y1 + b2 y2 + b3 y3 + b4 y4
8 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
primal.
Si on considère le programme linéaire suivant :
2 variables indépendantes x1 et x2
4 contraintes :
2x1 + x2 ≤ 1 000
x1 + x2 ≤ 800
x1 ≤ 400
x2 ≤ 700
fonction économique : z1 = 20x1 + 30x2 à maximiser
4 variables indépendantes y1 , y2 , y3 et y4
2 contraintes :
2y1 + y2 + y3 ≥ 20
y1 + y2 + y4 ≥ 30
fonction économique : z2 = 1 000y1 + 800y2 + 400y3 + 700y4 à minimiser
La solution optimale qui donne z1 = 23 000 est x1 = 100, x2 = 700, e1 = 100, e2 = 0, e3 = 300 et e4 = 0.
En regardant la dernière ligne du tableau, on trouve les valeurs correspondant à la solution optimale du problème
dual : y2 = 20 et y4 = 10, qui nous donne le bon résultat : z2 = 800 × 20 + 700 × 10 = 23 000.
On remarque que le dual du dual est le problème initial.
1.3.2 Exercices
Exercice 1.4 Résoudre
u1 ≥ 0, u1 ≥ 0, u3 ≥ 0, u4 ≥ 0
u1 + u2 + 2u3 ≥ 30
2u1 + u2 + u3 + u4 ≥ 20
minimiser 80u1 + 50u2 + 80u3 + 35u4
1.4 Applications
Exercice 1.5 Une usine produit deux modèles de machines, l'une que l'on appellera modèle A exige 2 kg de matière
première et de 30 heures de fabrication et donne un bénéce de 7 euros. L'autre que l'on appellera B exige 4 kg de
matière première et de 15 heures de fabrication et donne un bénéce de 6 euros . On dispose de 200 kg de matière
première et de 1200 h de travail. Quelle production doit on avoir pour obtenir un bénéce maximal ?
Exercice 1.6 L'entreprise Duralumin fabrique des pièces en inox, de trois types A, B et C ; elles sont fabriquées
par lot de 50 dans un grand atelier où sont rassemblées une machine de découpe de l'inox, une emboutisseuse et
une polisseuse ; chaque machine fonctionne 120 heures par mois. Les caractéristiques de fabrication sont rassemblées
9 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
Exercice 1.7 Dans une cafétéria, on sert 2 sortes de désserts glacés, à base de cocktails exotiques, de glace et de
fruits conts : la créole et la tropicale. La créole nécessite 8cl de cocktail exotique, 2dl de glace et 15g de fruits
conts. La tropicale nécessite 5cl de cocktail exotique, 2dl de glace et 25g de fruits conts. Chaque jour, l'atelier de
patisserie peut préparer 1600 cl de cocktail exotique, 520 dl de glace et 5 kg de fruits conts. Une créole est vendue
1,2 euros et une tropicale 1 euro. Maximisez le prot.
Exercice 1.8 Un agriculteur peut utiliser 2 type d'engrais E1 et E2 pour épandre sur ses cultures. Les besoins par
an et par hectare sont de 60 kg de potasse, 120 kg de calcium et 90 kg de nitrates.
Pour une même quantité, les 2 types d'engrais coutent la même chose. Leur composition pour 10 kg est de :
produit E1 : 1 kg de potasse, 3 kg de calcium, 3 kg de nitrates et 3 kg de produit neutre
produit E2 : 2 kg de potasse, 2 kg de calcium, 1 kg de nitrates et 5 kg de produit neutre
Question : Comment fertiliser les cultures à moindre coût ?
Exercice 1.9 La Société des Scieries Vosgienne (SSV) souhaite s'apprivisionner en bois de diérentes essences
courantes. Compte tenu de la demande actuelle en bois scié, elle souhaite acquérir au moins 200m3 de chêne, au
moins 160 m3 de hêtre et au moins 300m3 de sapin.
Les prix au m3 sur la marché traditionnel sont de 140 euros pour le chêne, 90 euros pour le hêtre et 70 euros pour
le sapin.
Mais la SSV peut aussi proter des ores de certains exploitants forestiers dont les forêts ont été dévastées par la
tempête du 26 décembre 1999 et qui proposent par lots, à moindre coût, du bois de qualité équivalente.
Trois ores ont été sélectionnées :
ore A : lots de 15m3 de chêne, 15m3 de hêtre, 20m3 de sapin. Prix d'un lot : 3 840 euros.
ore B : lots de 16m3 de chêne, 8m3 de hêtre, 24m3 de sapin. Prix d'un lot : 3 960 euros.
ore C : lots de 9m3 de chêne, 24m3 de hêtre, 12m3 de sapin. Prix d'un lot : 2 880 euros.
1. Déterminez le prix et la quantité de bois que souhaite acquérir la SSV, si elle se fournit sur le marché traditionnel
et achète les quantités minimales qu'elle désire acquérir.
2. L'objectif des questions suivantes est de déterminer si la SSV a intérêt à se fournir sur la marché traditionnel
ou à proter des ores sélectionnées. On supposera dans ce qui suit qu'elle choisit d'acheter uniquement des
lots A,B et C.
(a) En notant respectivement a, b et c les quantités de lots A, B et C à acheter pour obtenir la quantité de bois
désirée, écrire la forme canonique du programme P , établissant les contraintes et la fonction économique
Z à minimiser pour satisfaire la SSV.
0
(b) Écrire, sous forme canonique puis sous forme standard, le programme P , dual du programme P . On
0
notera x, y et z les variables duales, e1 , e2 , e3 les variables d'écart du programme dual et Z la fonction
économique du programme dual.
0
(c) Établir les deux premiers tableaux permettant de résoudre le programme P par la méthode du simplexe.
Indiquez soigneusement les variables entrantes et sortantes dans le premier tableau.
(d) Le troisième tableau est le suivant :
x y z e1 e2 e3 R
5
e1 4 0 0 1 − 85 5
− 12 165
13 1 1
z 20 0 1 0 20 − 60 150
1 1 1
y 20 1 0 0 − 40 20 45
0
Z −3 0 0 0 −11 −3 −52 200
10 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
i. Montrez que ce tableau correspond à l'optimum, et déterminez les nombres de lots A, B et C que la
SSV doit acheter pour minimiser ses coûts.
ii. Indiquez le prix minimum à payer par la SSV pour satisfaire ses besoins. Quel est alors, en pourcentage,
le rabais obtenu par rapport au prix du marché traditionnel ?
iii. Si la SSV désire acheter le nombre de lots A,B et C lui permettant de minimiser ses coûts, la quantité
de bois acheté correspond-elle exactement à la quantité souhaitee ?
11 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
En appliquant l'algorithme du simplexe, on obtient les tableaux suivants (le pivot est en rouge)
x1 x2 x3 e1 e2 e3
e1 2 −1 2 1 0 0 7
e2 2 −4 0 0 1 0 12
e3 −4 3 8 0 0 1 10
−Z 2 1 1 0 0 0 0
La solution de base est alors x1 = x2 = x3 = 0, e1 = 7, e2 = 12, e3 = 10, Z = 0.
x1 x2 x3 e1 e2 e3
x1 1 − 12 1 1
2 0 0 7
2
e2 0 −3 −2 −1 1 0 5
e3 0 1 12 2 0 1 24
−Z 0 2 −1 −1 0 0 −7
La solution est alors x2 = x3 = e1 = 0, x1 = 72 , e2 = 5, e3 = 24 et Z = 7.
x1 x2 x3 e1 e2 e3
1 1 31
x1 1 0 7 2 2 2 2
e2 0 0 34 5 1 3 77
x2 0 1 12 2 0 1 24
−Z 0 0 −25 −5 0 −2 −55
La solution est alors e1 = e3 = x3 = 0, x1 = 31
2 , x2 = 24, e2 = 77 et Z = 55. C'est la solution optimale car tous les
coecients de la fonction économique sont négatifs ou nuls.
Solution 1.2 En ajoutant les variables d'écart, on s'intéresse au système suivant :
x1 , x2 , x3 , e1 , e2 , e3 , e4 ≥ 0
x1 + e1 = 100
x2 + e2 = 150
x1 + x2 + 2x3 + e3 = 200
2x1 + x2 + x3 + e4 = 300
max(3x1 + 4x2 + 2x3 )
En appliquant l'algorithme du simplexe, on obtient les tableaux suivants (le pivot est en rouge)
x1 x2 x3 e1 e2 e3 e4
e1 1 0 0 1 0 0 0 100
e2 0 1 0 0 1 0 0 150
e3 1 1 2 0 0 1 0 200
e4 2 1 1 0 0 0 1 300
−Z 3 4 2 0 0 0 0
La solution de base est alors x1 = x2 = x3 = 0, e1 = 100, e2 = 150, e3 = 200, e4 = 300, Z = 0.
x1 x2 x3 e1 e2 e3 e4
e1 1 0 0 1 0 0 0 100
x2 0 1 0 0 1 0 0 150
e3 1 0 2 0 −1 1 0 50
e4 2 0 1 0 −1 0 1 100
−Z 3 0 2 −3 0 0 0 −600
12 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
x1 x2 x3 e1 e2 e3 e4
e1 0 0 −2 1 1 −1 −1 50
x2 0 1 0 0 1 0 0 150
x1 1 0 2 0 −1 1 0 50
e4 0 0 −3 0 −1 −2 1 50
−Z 0 0 −4 0 −1 −3 0 −750
La solution optimale est x1 = 50, x2 = 150, x3 = 0, Z = 750, e1 = 50, e2 = 0, e3 = 0, e4 = 50 (tous les coecients de
la fonction objectif sont nuls).
Soit x la quantité d'articles A et y la quantité d'articles B fabriqués en trois semaines. On s'intéresse donc au
programme linéaire suivant :
c'est-à-dire
maximiser 30x + 20y
x ≥ 0, y ≥ 0
x + 2y ≤ 80
x + y ≤ 50
2x + y ≤ 80
y ≤ 35
13 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
Le pivot est sur la première colonne, troisième ligne. x est donc la variable entrante et e3 la variable sortante :
x y e1 e2 e3 e4
3
e1 0 2 1 0 − 12 0 40
1
e2 0 2 0 1 − 12 0 10
1 1
x 1 2 0 0 2 0 40
e4 0 1 0 0 0 1 35
−Z 0 5 0 0 −15 0 −1 200
Le pivot est maintenant sur la deuxième colonne, deuxième ligne. La variable entrante est y et la variable sortante
est e2 :
x y e1 e2 e3 e4
e1 0 0 1 −3 1 0 10
y 0 1 0 2 −1 0 20
x 1 0 0 −1 1 0 30
e4 0 0 0 −2 1 1 15
−Z 0 0 0 −10 −10 0 −1 300
Les coecients de la dernière ligne étant tous négatifs, l'algorithme s'arrète. La solution optimale est donc x = 30,
y = 20, e1 = 10, e4 = 15 et e2 = e3 = 0. Les contraintes deux et trois sont donc saturées. On retrouve bien les
solutions obtenues par la méthode graphique.
x y e1 e2 e3 e4
e1 0 0 1 −3 1 0 10
y 0 1 0 2 −1 0 20
x 1 0 0 −1 1 0 30
e4 0 0 0 −2 1 1 15
−Z 0 0 0 −10 −10 0 −1300
Solution 1.5 Soit x le nombre d'appareils de modèle A et y le nombre d'appareils de modèle B. On s'intéresse donc
au système suivant :
x ≥ 0, y ≥ 0
2x + 4y ≤ 200
30x + 15y ≤ 1200
max(7x + 6y)
14 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
15 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
On obtient
x1 e3 e1 ∗ ∗ ∗
1 2
x3 6 0 1 3 0 − 31 40
4
e2 3 0 0 − 321 1
3 80
4
x2 3 1 0 − 320 4
3 80
−Z −37 0 0 −18 0 −36 −6 480
La solution optimale est donc obtenue en x1 = 0, x2 = 80, x3 = 40. Le bénéce est alors de 6 480 euros.
On a donc x = 120 créoles et y = 128 tropicales. Le prot est alors de 272 euros (et il reste 24 dl de glace)
Solution 1.8 Soit x et y les quantités d'engrais E1 et E2 utilisées par an et par hectare. On veut alors :
x + 2y ≥ 60
3x + 2y ≥ 120
3x + y ≥ 90
min(x + y)
16 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
0
(b) le dual P est donc
0
maximiser Z = 200x + 160y + 300z
x ≥ 0, y ≥ 0, z ≥ 0
15x + 15y + 20z ≤ 3 840
avec
16x + 8y + 24z ≤ 3 960
9x + 24y + 12z ≤ 2 880
x y z e1 e2 e3
e1 15 15 20 1 0 0 3 840
e2 16 8 24 0 1 0 3 960
e3 9 24 12 0 0 1 2 880
0
−Z 200 160 300 0 0 0 0
La variable entrante est donc z et la variable sortante est e2 . On obtient alors :
x y z e1 e2 e3
5 25
e1 3 3 0 1 − 56 0 540
2 1 1
z 3 3 1 0 24 0 165
e3 1 20 0 0 − 12 1 900
0
−Z 0 60 0 0 −12, 5 0 −49 500
17 A. Fredet
Programme linéaire à plusieurs variables (simplexe)
x y z e1 e2 e3 R
5
e1 4 0 0 1 − 85 5
− 12 165
13 1 1
z 20 0 1 0 20 − 60 150
1 1 1
y 20 1 0 0 − 40 20 45
0
Z −3 0 0 0 −11 −3 −52 200
i. L'optimum est atteint au troisième tableau car tous les coecients de la fonction économique sont
0
négatifs ou nuls. Le maximum de P est alors de 52 200 euros. C'est également le minimum du
problème primal P . En dernière ligne du tableau 3, on lit que les valeurs des variables réeles du
primal permettant d'atteindre l'optimum sont a = 0, b = 11 et c = 3. Pour minimiser ses coûts, la
SSV doit donc acheter 0 lot A, 11 lots B et 3 lots C. Le prix correpondant est 52 200 euros, ce uqi
est plus intéressant qu'au marché traditionnel.
ii. On cherche le rabais r tel que 1 + r = 63 400 .
52 200
On trouve r ≈ 0, 1767. Le rabais est donc de 17,67%.
iii. On a achete 3m de chêne en trop (cela se lit dans la première colonne de la dernière ligne du
3
tableau 3).
18 A. Fredet