5. Algorithme du simplexe avec variables bornées.

26
5. Algorithme du simplexe avec variables bornées

Transcript of 5. Algorithme du simplexe avec variables bornées.

Page 1: 5. Algorithme du simplexe avec variables bornées.

5. Algorithme du simplexe

avec

variables bornées

Page 2: 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

Page 3: 5. Algorithme du simplexe avec variables bornées.

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

Page 4: 5. Algorithme du simplexe avec variables bornées.

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

Page 5: 5. Algorithme du simplexe avec variables bornées.

• 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

Page 6: 5. Algorithme du simplexe avec variables bornées.

• 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

Page 7: 5. Algorithme du simplexe avec variables bornées.

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

Page 8: 5. Algorithme du simplexe avec variables bornées.

• 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

Page 9: 5. Algorithme du simplexe avec variables bornées.

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

Page 10: 5. Algorithme du simplexe avec variables bornées.

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

Page 11: 5. Algorithme du simplexe avec variables bornées.

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

Page 12: 5. Algorithme du simplexe avec variables bornées.

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

Page 13: 5. Algorithme du simplexe avec variables bornées.

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

Page 14: 5. Algorithme du simplexe avec variables bornées.

• 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

Page 15: 5. Algorithme du simplexe avec variables bornées.

• À 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

Page 16: 5. Algorithme du simplexe avec variables bornées.

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

Page 17: 5. Algorithme du simplexe avec variables bornées.

É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

Page 18: 5. Algorithme du simplexe avec variables bornées.

É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

Page 19: 5. Algorithme du simplexe avec variables bornées.

É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

Page 20: 5. Algorithme du simplexe avec variables bornées.

É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

Page 21: 5. Algorithme du simplexe avec variables bornées.

É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

Page 22: 5. Algorithme du simplexe avec variables bornées.

É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

Page 23: 5. Algorithme du simplexe avec variables bornées.

É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

Page 24: 5. Algorithme du simplexe avec variables bornées.

É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

Page 25: 5. Algorithme du simplexe avec variables bornées.

É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

Page 26: 5. Algorithme du simplexe avec variables bornées.

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