Algorithme simplexe (1)

Telechargé par Papa Moussa Nar Gueye
L’algorithme du simplexe appliqu´e `a un exemple
S. Balev
Une entreprise fabrique quatre produits. La fabrication de chaque produit ecessite une certaine
quantit´e de ressources. Les ressources consomm´ees, les stocks des ressources et les en´efices des
produits sont r´ecapitul´es dans le tableau suivant :
produit 1 produit 2 produit 3 produit 4 stock
ressource A 2 4 5 7 42
ressource B 1 1 2 2 17
ressource C 1 2 3 3 24
en´efice 7 9 18 17
On souhaite ´etablir un plan de production de fa¸con `a maximiser le chiffre d’affaires.
Appelant x1, x2, x3, x4les quantit´es respectives de produits 1, 2, 3, 4, le probl`eme admet la
mod´elisation suivante :
Maximiser z= 7x1+ 9x2+ 18x3+ 17x4
s. c. 2x1+ 4x2+ 5x3+ 7x442
x1+x2+ 2x3+ 2x417
x1+ 2x2+ 3x3+ 3x424
x1, x2, x3, x40
On reconnaˆıt l`a un probl`eme de programmation lin´eaire sous forme standard.
Introduisons trois variables d’´ecart x5, x6, x7, qui mesurent pour chaque ressource l’´ecart entre
la quantit´e initialement disponible et la quantit´e consomm´ee par le plan de fabrication donn´e par
les variables de d´ecision x1, x2, x3, x4. On obtient une formulation ´equivalente du probl`eme :
Maximiser z= 7x1+ 9x2+ 18x3+ 17x4
s. c. 2x1+ 4x2+ 5x3+ 7x4+x5= 42
x1+x2+ 2x3+ 2x4+x6= 17
x1+ 2x2+ 3x3+ 3x4+x7= 24
x1, x2, x3, x4, x5, x6, x70
Cette formulation permet d’exprimer facilement les variables d’´ecart comme fonctions affines des
variables de ecision :
x5= 42 2x14x25x37x4
x6= 17 x1x22x32x4
x7= 24 x12x23x33x4
z= 7x1+ 9x2+ 18x3+ 17x4
Dictionnaire 1
Le tableau ci-dessus est appel´e un dictionnaire. Les variables x5, x6, x7sont des variables de base
et x1, x2, x3, x4sont des variables hors-base. La solution basique associ´ee `a un dictionnaire est
obtenue en donnant la valeur 0 `a toutes les variables hors-base. La solution basique correspondant
au Dictionnaire 1 est donc x1= 0, x2= 0, x3= 0, x4= 0, entraˆınant x5= 42, x6= 17, x7= 24.
Le en´efice correspondant est z= 0. Cette solution est «le plan de production du mois d’aoˆut »
– on ne produit rien, on ne consomme aucune ressource et on ne gagne rien. N´eanmoins, c’est
une solution r´ealisable, car elle satisfait aux toutes les contraintes. On peut remarquer que cette
solution basique correspond au sommet de coordonn´ees (0,0,0,0) du poly`edre des contraintes.
En partant de cette solution basique, on cherche `a am´eliorer le en´efice. Consid´erons une
variable hors-base dont le coefficient dans la derni`ere ligne du dictionnaire es positif. Dans le
1
Dictionnaire 1 tous les coefficients de la derni`ere ligne sont positifs, donc on peut prendre n’importe
quelle variable. Choisissons, par exemple, x3. Il est ´evident que si on fait croˆıtre x3`a partir de 0,
les autres variables hors-base restant nulles, la valeur de la fonction zcroˆıt. Mais jusqu’o`u peut-on
«pousser »x3, tout en gardant x1,x2et x4`a ero ? Il faut que la solution reste ealisable. Les
contraintes sur l’augmentation de x3sont :
x5042 5x30x38.4
x6017 3x30x38.5
x7024 3x30x38
La plus restrictive de ces contraintes est x38. L’interpr´etation g´eom´etrique est la suivante :
en partant du sommet (0,0,0,0) du poly`edre des contraintes, on se d´eplace sur une arˆete de ce
poly`edre. Le premier hyperplan rencontr´e est x7= 0. On arrive alors dans un nouveau sommet, `a
l’intersection des hyperplans x1= 0, x2= 0, x4= 0, x7= 0.
Nous allons faire un changement de dictionnaire en ´echangeant les rˆoles de x3et x7. On utilise
la troisi`eme ´equation du Dictionnaire 1 pour exprimer x3en fonction de x1,x2,x4et x7:
x3= 8 1
3x12
3x2x41
3x7
On remplace ensuite x3par cette expression dans les autres ´equations du dictionnaire :
x5= 2 1
3x12
3x2+5
3x72x4
x6= 1 1
3x1+1
3x2+2
3x7
x3= 8 1
3x12
3x21
3x7x4
z= 144 + x13x26x7x4
Dictionnaire 2
La variable x7est sortie de la base et la variable x7est entr´ee en base. La nouvelle base est
x5, x6, x3. La solution basique associ´ee au Dictionnaire 2 est x1=x2=x7=x4= 0, x5= 2,
x6= 1, x3= 8. Elle correspond au sommet de coordonn´ees (0,0,8,0) du poly`edre de contraintes.
Cette solution d´efinit un plan de production beaucoup plus int´eressant : on fabrique 8 unit´es du
produit 3 (x3= 8) en consommant enti`erement la ressource C (x7= 0). Il nous reste x5= 2 unit´es
de la ressource A et x6= 1 unit´e de B. Le b´en´efice est z= 144.
Est-ce qu’on peut faire mieux ? Dans la nouvelle expression de la fonction z, nous voyons
que seule la variable x1a un coefficient positif. Nous d´ecidons de faire entrer x1en base, et
ainsi de parcourir une nouvelle arˆete du poly`edre des contraintes. On a les limites suivantes sur
l’augmentation de x1:
x50x16
x60x13
x30x124
d’o`u x13. On fait sortir x6de la base on et fait entrer x1`a sa place. On obtient le dictionnaire
suivant :
x5= 1 + x6x2+x72x4
x1= 3 3x6+x2+ 2x7
x3= 7 + x6x2x7x4
z= 147 3x62x24x7x4
Dictionnaire 3
La solution basique associ´ee x6=x2=x7=x4= 0, x5= 1, x1= 3, x3= 7, correspond
au sommet (3,0,7,0) du poly`edre des contraintes. Elle d´efinit le plan de production suivant : on
fabrique 3 unit´es du produit 1 et 7 unit´es de produit 3. Il ne nous reste qu’une unit´e de la ressource
A. Le en´efice est z= 147. De plus, tous les coefficients de la derni`ere ligne sont n´egatifs, donc on
ne peut pas se d´eplacer vers un sommet voisin en augmentant la fonction du profit. Nous avons
alors trouv´e la solution optimale du probl`eme.
2
A [0]
C [102]
I [144]
L [147]
J [145]
F [129]
B [94.5]
H [143]
K [146,5]
E [127]
D [119]
G [135]
sommet x1x2x3x4z
A 0 0 0 0 0
B 0 10.5 0 0 94.5
C 0 0 0 6 102
D 17 0 0 0 119
E 11.67 0 0 2.67 127
F 13 4 0 0 129
G 0 3 6 0 135
H 0 0 7 1 143
I 0 0 8 0 144
J 4 1 6 0 145
K 3 0 6.5 0.5 146.5
L 3 0 7 0 147
Le dessin si-dessus donne une interpr´etation eom´etrique du probl`eme. A gauche, on voit les
sommets et les arˆetes du poly`edre des contraintes. La valeur de la fonction objective est donn´ee
entre crochets. La table `a droite donne les coordonn´ees de chaque sommet. Nous avons parcouru
le chemin A-I-L.
La forme de tableaux est un formalisme plus facile `a manipuler et automatiser, mais qui effectue
les emes op´erations. Chaque dictionnaire est repr´esent´e par un tableau de la forme
B x1. . . xn+m
xB1b1α11 . . . α1,n+m
.
.
..
.
..
.
.....
.
.
xBmbmαm1. . . αm,n+m
z c1. . . cn+m
Les r`egles de manipulation des tableaux sont :
1. Initialisation.bi=bi,cj=cj,αij =aij ,z= 0.
2. Choix de colonne pivot (variable `a entrer en base).
(a) Si cj0, j= 1,...,n+m, alors STOP (la solution optimale est trouv´ee).
(b) Sinon, choisir une colonne s, telle que cs>0.
3. Choix de ligne pivot (variable `a sortir de la base).
(a) Si αis 0, i= 1,...,m, alors STOP (la fonction objective n’est pas born´ee).
(b) Sinon, choisir une ligne r, telle que
br
αrs
= min bi
αis
:i= 1, . . . , m, αis >0
4. Pivot (passage d’un tableau au tableau suivant).
(a) Transformation de la ligne pivot : elle est divis´ee par l’´el´ement pivot.
b0
r=br
αrs
;α0
rj =αrj
αrs
, j = 1,...n+m
(b) Transformation de la colonne pivot : toutes les cases sauf la case pivot deviennent z´ero.
α0
is = 0, i = 1,...,r1, r + 1,...,m
3
(c) Transformation des autres cases du tableau. On applique la r`egle suivante :
colonne pivot
ligne pivotDC
B
A0=AB×C
D
A
Formellement,
α0
ij =αij αisαrj
αrs
,b0
i=biαisbr
αrs
,c0
j=cjcsαrj
αrs
, z0=z+csbr
αrs
En appliquant l’algorithme ci-dessus sur notre exemple, on obtient
Bb x1x2x3x4x5x6x7
x542 2 4 5 7 1 0 0
x617 1 1 2 2 0 1 0
x724 1 2 3 3 0 0 1
c0 7 9 18 17 0 0 0
x52 1/3 2/3 0 2 1 0 -5/3
x61 1/3 -1/3 0 0 0 1 -2/3
x38 1/3 2/3 1 1 0 0 1/3
c144 1 -3 0 -1 0 0 -6
x51 0 1 0 2 1 -1 -1
x13 1 -1 0 0 0 3 -2
x37 0 1 1 1 0 -1 1
c147 0 -2 0 -1 0 -3 -4
4
1 / 4 100%

Algorithme simplexe (1)

Telechargé par Papa Moussa Nar Gueye
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !