5. Algorithme du simplexe
avec
variables bornées
Variante du simplexe pour problème avec variables bornées
• Considérons le problème de programmation linéaire avec variables bornées suivant
• Ramenons à 0 les bornes inférieures en faisant le changement de variables suivant
xj = gj – lj (i.e., gj = xj + lj )
TminSujet à
1,2,...,
où , , , , , et est une matrice
j j j
n m
c gAg h
l g q j n
g c l q R h R A m n
Variante du simplexe pour problème avec variables bornées
le problème devient
• Ramenons à 0 les bornes inférieures en faisant le changement de variables suivant
xj = gj – lj (i.e., gj = xj + lj )
Tmin ( )Sujet à ( )
1,2,...,
où , , , , , et est une matrice
j j j j
n m
c x lA x l h
l x l q j n
c x l q R h R A m n
TminSujet à
1,2,...,j j j
c gAg h
l g q j n
Variante du simplexe pour problème avec variables bornées
le problème devient
et en remplaçant: uj = qj – lj et b = h – Al
Tmin ( )Sujet à ( )
1,2,...,
où , , , , , et est une matrice
j j j j
n m
c x lA x l h
l x l q j n
g c x l R h R A m n
T TminSujet à
0 1,2,...,j j
c x c lAx b
x u j n
• Dans ce problème
puisque cTl représente une constante, nous pouvons la sortir de la minimisation sans changer la solution optimale
et dans la suite de la présentation considérer le problème sans cette constante sans perte de généralité.
Variante du simplexe pour problème avec variables bornées
T T TminSujet à
0 1,2,...,j j
c l c x c lAx b
x u j n
• Considérons la formulation explicite du problème
• Une façon de le résoudre est de le ramener sous une forme standard en introduisant des variables d’écart yj,
et d’ensuite utiliser l’algorithme du simplexe
njux
mibxa
xcz
jj
n
jijij
n
jjj
,...,2,10
,...,2,1àSujet
min
1
1
njyx
njuyx
mibxa
xcz
jj
jjj
n
jijij
n
jjj
,...,2,10,
,...,2,1
,...,2,1àSujet
min
1
1
T TminSujet à
0 1,2,...,j j
c x c lAx b
x u j n
njux
mibxa
xcz
jj
n
jijij
n
jjj
,...,2,10
,...,2,1àSujet
min
1
1
njyx
njuyx
mibxa
xcz
jj
jjj
n
jijij
n
jjj
,...,2,10,
,...,2,1
,...,2,1àSujet
min
1
1
tenir compte de façon implicite
Tableau avec lignesm n
Tableau avec lignesm
• Considérons une solution de base réalisable de ce problème.
• La présence des contraintes xj + yj = uj implique qu’au moins une des deux variables xj ou yj est variable de base, j = 1,2,…,n.
• Donc une des trois situations suivantes prévaut pour chaque j = 1,2,…,n:
a) xj = uj est variable de base et yj = 0 est variable hors base
b) xj = 0 est variable hors base et yj = uj est variable de base
c) 0 < xj < uj est variable de base et 0 < yj < uj est variable de base
njyx
njuyx
mibxa
xcz
jj
jjj
n
jijij
n
jjj
,...,2,10,
,...,2,1
,...,2,1àSujet
min
1
1
Non dégénérescence:toutes les variables de base sont positives à chaque itération
njyx
njuyx
mibxa
xcz
jj
jjj
n
jijij
n
jjj
,...,2,10,
,...,2,1
,...,2,1àSujet
min
1
1
m + n variables de base requisesil y a n variables yj
Il y a au moins m variables xj dans la base
Exactement m variables xj satisfont 0 < xj < uj.Par contradiction, si m0 m variables xj
satisfaisaient la relation, alors les m0 variables yj correspondantes seraientégalement dans la base. De plus, pour les n – m0 autres indices jxj = uj (cas a) ou bien yj = uj (cas b) seraitvérifié.Alors le nombre de variables de base serait égal à 2m0 + (n – m0) = m0 + n m + n
hors base hors ba de base
dea) ; b) ; c
base de bas
se de b;
eas) e
j j
j j
j j
yxy
x yx
La base a donc la forme suivante
0 < xj < uj 0 < yj < uj xj=uj yj=uj
1
1
min
Sujet à 1,2,...,
1, 2,...,, 0 1,2,...,
n
j j
jn
ij j i
j
j j j
j j
z c x
a x b i m
x y u j nx y j n
TminSujet à 0
, 0
z c xAx y bIx Iy ux y
m
m
n
0AI I
TminSujet à 0
, 0
z c xAx y bIx Iy ux y
La base a donc la forme suivante
0 < xj < uj 0 < yj < uj xj=uj yj=uj
1
1
min
Sujet à 1,2,...,
1, 2,...,, 0 1,2,...,
n
j j
jn
ij j i
j
j j j
j j
z c x
a x b i m
x y u j nx y j n
m
m
n
0AI I
1 1
2
3
m m n m
TminSujet à 0
, 0
z c xAx y bIx Iy ux y
1 1
2
3
1
11
0 00 0
0 0 00 0 0
0 0
où la matrice est 00
det det det det 0 0 00
det det det 0
où la matrice 0 est puisque0 0 est une matrice
B DI I
II
B DI
I n nI
II B D I
I B
m mD m n
1
et
0 est une matrice 0
Donc det det det .
Puisque est une base, alors det 0.
Par conséquent det det 0 et ainsi est non singulière.Donc est une base de .
In m
I B
B BB A
1
deta b
ad bcc d
d a bd c
La base a donc la forme suivante
m
n
0 < xj < uj 0 < yj < uj xj=uj yj=uj
Base de A
Les colonnes de la base B de Acorrespondent aux variables 0<xj<uj1 1
2
3
• Ainsi, nous pouvons développer une variante du simplexe pour résoudre directement le problème
en traitant implicitement les bornes supérieures uj. À chaque itération, nous allons considérer une solution (de base) associée à une base B de A ayant
m variables de base
n – m variables hors base
njux
mibxa
xcz
jj
n
jijij
n
jjj
,...,2,10
,...,2,1àSujet
min
1
1
JBjux jj ou0
IBjux jj 0
• À chaque itération, nous allons considérer une solution (de base) associée à une base B de A ayant
m variables de base
n – m variables hors base .
• Si on dénote les indices des variables de base IB = {j1, j2, …, jm} où ji est l’indice de la variable de base dans la iième ligne, alors
Nous retrouvons lesmêmes expressions quepour les problèmes sansbornes sauf que les variables hors base
mixabxJBj
jijiji,...,2,1
IBjux jj 0JBjux jj ou0
JBjux jj ou0
JBjux jj ou0
1
1
min
Sujet à 1,2,...,
1, 2,...,, 0 1,2,...,
n
j jjn
ij j ij
j j j
j j
z c x
a x b i m
x y u j nx y j n
Il suffit d’ajuster les critères d’entrée et de
sortie en conséquence pour retrouver la
variante du simplexe.
Nous retrouvons lesmêmes expressions quepour les problèmes sansbornes sauf que les variables hors base
0 ouj jx u j JB
Étape 1: Choix de la variable d’entrée
Le critère pour choisir la variable d’entrée est modifié pour tenir compte des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice
si , il est avantageux d’augmenter xj
si , il est avantageux de diminuer xj
JBj0et0 jj cx
0et jjj cux
Déterminons et
SoitSi , alors la solution est optimale et l’algorithme s’arrête.
Si , alors la variable xs augmente; aller à l’étape 2.1.
Si , alors la variable xs diminue; aller à l’étape 2.2
0:min1
jjJBj
s xcc
0sc
10 sss ccc et
10 sss ccc et
jjjJBjs uxcc
:max2
1 2 1 2min , max ,s s s s sc c c c c
Étape 2.1: Choix de la variable de sortie
• L’augmentation θ de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne sup. us
ii) une variable de base
décroît à 0 (dans ce cas )
iii) une variable de base
augmente pour atteindre sa
borne sup. (dans ce cas
)
Soit
rjx
0rsa
rjx
rju
0rsa
1 1
min , min : 0 , min : 0j ii i
is issi m i m
is is
u ggu a a
a a
iji jj JB
ig b a x
Si θ = ∞, alors le problème n’est pasborné inférieurement et l’algorithmes’arrête.
la valeur de la variable de base
ijx
1
Pour tout tel que 0, alors augmente
lorsque augmente de . Il faut donc que =
.
Donc min : 0
is ji
s
j i is j is j ii i i
j ii
is
j iiis
i mis
i a x
xx g a u a u g
u g
au g
aa
1
Pour tout tel que 0, alors diminue
lorsque augmente de . Il faut donc que = 0
.
Donc min : 0
is ji
s
j i is is ii
i
is
iis
i mis
i a x
xx g a a g
g
a
ga
a
11 110
0
0
0
0
0
0
j s j
j rs jr rr
j ms jm mm
s s
a
a
a
x g u
x g u
x g u
x u
Étape 2.1: Choix de la variable de sortie
• L’augmentation θ de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne sup. us
ii) une variable de base décroît à 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas )
Soit
rjx
0rsa
rjx
rju
0rsa
1 1
min , min : 0 , min : 0j ii i
is issi m i m
is is
u ggu a a
a a
JBj
jijii xabg
Si θ = us, alors l’ensemble des variables de base reste le même et la même base estutilisée à la prochaine itération. La variable xs demeure hors baseet sa valeur passe de 0 à us. Retourner à l’étape 1.
la valeur de la variable de base
ijx
Étape 2.1: Choix de la variable de sortie
• L’augmentation θ de la variable d’entrée xsest limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne sup. us
ii) une variable de base décroît à 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas )
Soit
rjx
0rsa
rjx
rju
0rsa
1 1
min , min : 0 , min : 0j ii i
is issi m i m
isis
u ggu a a
a a
i iji jj JB
g b a x
Si
alors la valeur de la variable d’entrée xs
augmente à θ. La variable d’entrée xs devient variable debase à la place de la variable de sortie qui devient égale à 0.Pivoter sur et retourner à l’étape 1
1
min : 0ir
isi m
rs is
gga
a a
rsa
rjx
la valeur de la variable de base
ijx
Étape 2.1: Choix de la variable de sortie
• L’augmentation θ de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne sup. us
ii) une variable de base décroît à 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas )
Soit
rjx
0rsa
rjx
rju
0rsa
0:min,0:min,min11
isis
ij
miis
is
i
mis a
a
gua
a
gu i
i iji jj JB
g b a x
Si
alors la valeur de la variable d’entrée xs
augmente à θ. La variable d’entrée xs devient variable debase à la place de la variable de sortie qui devient égale à .Pivoter sur et retourner à l’étape 1rsa
1
min : 0jj i ir r
isi m
rs is
u gu ga
a a
rjx
la valeur de la variable de base
ijx
rju
Étape 1: Choix de la variable d’entrée
Le critère pour choisir la variable d’entrée est modifié pour tenir compte des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice
si , il est avantageux d’augmenter xj
si , il est avantageux de diminuer xj
JBj0et0 jj cx
0et jjj cux
Déterminons et
SoitSi , alors la solution est optimale et l’algorithme s’arrête.
Si , alors la variable xs augmente; aller à l’étape 2.1.
Si , alors la variable xs diminue; aller à l’étape 2.2
0:min1
jjJBj
s xcc
0sc
10 sss ccc et
10 sss ccc et
jjjJBjs uxcc
:max2
21 ,min sss ccc
Étape 2.2: Choix de la variable de sortie
• La réduction θ de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne inf. 0
ii) une variable de base
décroît à 0 (dans ce cas )
iii) une variable de base
augmente pour atteindre sa
borne sup. (dans ce cas
)
Soit
rjx
0rsa
rjx
rju
0rsa
i ij jij JB
g b a x
1 1
min , min : 0 , min : 0ji i i
is issi m i m
is is
g u gu a a
a a
Si θ = us, alors l’ensemble des variables de base reste le même et la même base estutilisée à la prochaine itération. La variable xs demeure hors baseet sa valeur passe de us à 0. Retourner à l’étape 1.
la valeur de la variable de base
ijx
1
Pour tout tel que 0, alors diminue
lorsque diminue de . Il faut donc que = 0
.
Donc min : 0
is ji
s
j i is is ii
i
is
iis
i mis
i a x
xx g a a g
g
a
ga
a
1
Pour tout tel que 0, alors augmente
lorsque diminue de . Il faut donc que =
.
Donc min : 0
is ji
s
j i is j is j ii i i
j ii
is
j iiis
i mis
i a x
xx g a u a u g
u g
au g
aa
11 110
0
0
0
j s j
j rs jr r r
j ms jm mm
s s
a
a
a
x g u
x g u
x g u
x u
Étape 2.2: Choix de la variable de sortie
• La réduction θ de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne inf. 0 ii) une variable de base décroît à 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas )
Soit
rjx
0rsa
rjx
rju
0rsa
i ij jij JB
g b a x
1 1
min , min : 0 , min : 0ji i i
is issi m i m
is is
g u gu a a
a a
Si
alors la valeur de la variable d’entrée xs
est réduite de θ (i.e., xs← us– θ). La variable d’entrée xs devient variable debase à la place de la variable de sortie qui devient égale à 0.Pivoter sur et retourner à l’étape 1
1
min : 0ir
isi m
rs is
gga
a a
rsa
rjx
la valeur de la variable de base
ijx
Étape 2.2: Choix de la variable de sortie
• La réduction θ de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:
i) xs atteint sa borne inf. 0 ii) une variable de base décroît à 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas )
Soit
rjx
0rsa
rjx
rju
0rsa
i ij jij JB
g b a x
1 1
min , min : 0 , min : 0ji i i
is issi m i m
is is
g u gu a a
a a
Si
alors la valeur de la variable d’entrée xs
et réduite de θ (i.e., xs← us– θ). La variable d’entrée xs devient variable debase à la place de la variable de sortie qui devient égale à .Pivoter sur et retourner à l’étape 1
1
min : 0jj i ir r
isi m
rs is
u gu ga
a a
rsa
rjx
la valeur de la variable de base
ijx
rju
Références
M.S. Bazaraa, J.J. Jarvis, H.D. Sherali, “ Linear Programming and Network Flows”, 3rd edition, Wiley-Interscience (2005), p217
F.S. Hillier, G.J. Lieberman, “Introduction to Operations Research”, Mc Graw Hill (2005), Section 7.3
D. G. Luenberger, “ Linear and Nonlinear Programming ”, 2nd edition, Addison-Wesley (1984), Section 3.6
Top Related