Vous êtes sur la page 1sur 75

Rvision

de
lalgorithme du simplexe

Forme standard
Aprs avoir transform les contraintes dingalit en galits, nous
retrouvons le problme sous sa forme standard o certaines variables
peuvent tre des variables dcart:
min
Sujet

z = c1x1 +c2x2 +... +cnxn


a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b 2
.

a m1 x1 + a m 2 x 2 + ... + a mn x n = b m

x1 , x 2 , ..., x n 0

min z
Sujet a11 x1 + a12 x 2 + ... + a1n x n

= b1

a 21 x1 + a 22 x 2 + ... + a 2 n x n
.

= b2
.

.
.
.
a m1 x1 + a m 2 x 2 + ... + a mn x n

= bm

c1 x1 + c 2 x 2 + ... + c n x n z = 0

x1 , x 2 , ..., x n 0

Simplexe forme avec tableaux


Itration typique
Dcrivons une itration typique pour rsoudre le problme gnral avec le
simplexe forme avec tableaux
Le systme

+ a 1m +1 x m +1 + ... + a 1s x s + ... + a 1n x n = b1

x1 +
x2 +
.

+ a 2 m +1 x m +1 + ... + a 2 s x s + ... + a 2 n x n = b 2
.

x r + + a rm +1 x m +1 + ... + a rs x s + ... + a rn x n = b r
.

x m + a mm +1 x m +1 + ... + a ms x s + ... + a mn x n = b m
c m +1 x m +1 + ... + c s x s + ... + c n x n = z z

Itration typique
peut tre reprsenter dans le tableau suivant

tape 1: Choix de la variable dentre

{ }

En se rfrant la dernire ligne du tableau, soit c s = min c j


1 j 0

Si c s 0, alors la solution
courante est optimale et
lalgorithme sarrte

Variable dentre

Si c s < 0, alors xs est la


variable dentre

tape 2: Choix de la variable de sortie


xi = bi ais xs 0
Si a is 0 1 i m
le problme nest pas
born et lalgo. sarrte

Variable dentre

Si i tel que a is > 0


alors la sol. demeure ralisable
 i tel que a is > 0
xi = b i a is x s 0 x s

bi
a is

La variable dentre xs prend la valeur


b i

br
xs =
= min
: a is > 0
1

m
a is

a rs

tape 2: Choix de la variable de sortie

Variable dentre
Variable de sortie

tape 3: Pivot
Llment de pivot a rs est lintersection de la
ligne de la variable dentre xs et de la colonne
de la variable de sortie xr

Variable dentre
a rs

Variable de sortie

a rs

tape 3: Pivot
Divisons la ligne r par llment
de pivot a rs afin dobtenir la
ligne r rsultante
Variable dentre
a rs

Variable de sortie

1
a rs

tape 3: Pivot
Divisons la ligne r par llment
de pivot a rs afin dobtenir la
ligne r rsultante
Variable dentre
a rs

Variable de sortie

1
ars

ar m +1
ars

arn
ars

br
ars

tape 3: Pivot
Multiplions la ligne r rsultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramne le
coefficient de la variable dentre xs 0.

Variable dentre
a rs

Variable de sortie

1
ars

ar m +1
ars

arn
1
ars

br
ars

tape 3: Pivot
Multiplions la ligne r rsultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramne le
coefficient de la variable dentre xs 0.

Variable dentre
a rs

Variable de sortie

1
ars

ar m +1
ars

arn
1
ars

br
ars

tape 3: Pivot
Multiplions la ligne r rsultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramne le
coefficient de la variable dentre xs 0.

Variable dentre
a rs

Variable de sortie

1
ars

ar m +1
ars

arn
1
ars

br
ars

tape 3: Pivot
Multiplions la ligne r rsultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramne le
coefficient de la variable dentre xs 0.

Variable dentre
a rs

Variable de sortie

1
ars

ar m +1
ars

arn
1
ars

br
ars

Tableau rsultant
pour
amorcer la prochaine itration

Problmes quivalents
min z = 8x 6y
Sujet
=30
5x + 3y + u
2x + 3y
+ p =24
1x + 3y
+ h = 18
x, y, u, p, h 0

min z
Sujet
5x + 3y + u
=30
2x + 3y
+ p
=24
1x + 3y
+ h = 18
8x 6y
z = 0
x, y, u, p, h 0

Tableau quivalent au systme


min z = 8x 6y
Sujet
=30
5x + 3y + u
2x + 3y
+ p =24
1x + 3y
+ h = 18
x, y, u, p, h 0

= 30 5x 3y
p
= 24 2x 3y
h
= 18 1x 3y
z = 0 8x 6y

min z
Sujet
5x + 3y + u
=30
2x + 3y
+ p
=24
1x + 3y
+ h = 18
8x 6y
z = 0
x, y, u, p, h 0

= 30 5x 3y
p
= 24 2x 3y
h
= 18 1x 3y
z = 0 8x 6y

tale 1: Critre dentre

{ }

c s = min c j
1 j n

Pour dterminer la variable dentre,


nous choisissons llment le plus
petit de la dernire ligne du tableau
min {8, 6, 0, 0, 0} = 8.
x est donc la variable dentre

= 30 5x 3y
p
= 24 2x 3y
h
= 18 1x 3y
z = 0 8x 6y

tape 2: critre de sortie

xs =

br
a rs

b i

= min
: a is > 0
1i m a is

variable dentre
Pour identifier la variable de sortie
dterminons le min des quotients des
termes de droite diviss par les
lments correspondants dans la
colonne de la variable dentre
qui sont positifs:

= 30 5x 3y
p
= 24 2x 3y
h
= 18 1x 3y
z = 0 8x 6y

tape 2: critre de sortie

xs =

br
a rs

b i

= min
: a is > 0
1i m a is

variable dentre
min {30/5, 24/2, 18} = 30/5 = 6
La variable correspondante u
devient la variable de sortie

= 30 5x 3y
p
= 24 2x 3y
h
= 18 1x 3y
z = 0 8x 6y

Variable de sortie
tape 3 : Pivot
Transformation du systme ou
du tableau

variable dentre

variable de sortie

variable dentre
Ceci est quivalent

(5x + 3y + u

=30) / 5 => x + 3/5y + 1/5u

=6

En terme du tableau, ceci est quivalent diviser la ligne de la variable de


sortie par le coefficient de la variable dentre dans cette ligne

Divisons cette ligne par 5


variable de sortie

variable dentre
Ceci est quivalent

(5x + 3y + u

=30) / 5 => x + 3/5y + 1/5u

=6

En terme du tableau, ceci est quivalent diviser la ligne de la variable de


sortie par le coefficient de la variable dentre dans cette ligne

Divisons cette ligne par 5


variable de sortie

variable dentre
Le tableau qui en rsulte est le suivant
x + 3 / 5 y + 1/ 5u = 6

Divisons cette ligne par 5


variable de sortie

variable dentre
Le tableau qui en rsulte est le suivant
x + 3 / 5 y + 1/ 5u = 6

deuxime ligne
moins
2(la premire ligne)

Ceci est quivalent : p = 24 2(6 1/5u 3/5y) +2x 2x 3y


 2x + 3y + p 2 (x +3/5y + 1/5u) = 24 2(6)

2x + 3y
+ p = 24
2 (x +3/5y + 1/5u
= 6)
0x + 9/5y 2/5u + p = 12

deuxime ligne
moins
2(la premire ligne)
Le tableau devient

0 x + 9 / 5 y 2 / 5u + p = 12

deuxime ligne
moins
2(la premire ligne)
Le tableau devient

0 x + 9 / 5 y 2 / 5u + p = 12

En rptant le processus pour les autres lignes du tableau

Mthode du simplexe notation matricielle

Mthode du simplexe notation matricielle


Le problme de programmation linaire sous la forme standard
min z = c x +c x +... +c x
1 1
2 2
n n
Sujet

a11 x1 + a12 x 2 + ... + a1n x n = b1

min z = c x
Sujet Ax = b
x0
c, x R n , b R m
A matrice m n

a 21 x1 + a 22 x 2 + ... + a 2 n x n = b 2
.

a m1 x1 + a m 2 x 2 + ... + a mn x n = b m

x1 , x 2 , ..., x n 0
peut aussi scrire

Problme du restaurateur:
x y u p h
5 3 1 0 0

A = 2 3 0 1 0
1 3 0 0 1

c T = [ 8, 6, 0, 0, 0]
30
b = 24
18

min z = 8 x 6 y
Sujaet 5 x + 3 y + u
2x + 3y
1x + 3 y

+ p = 24
+ h = 18

x, y , u , p , h 0
min z = c T x
Sujet Ax = b
x0
c, x R 5 , b R 3
A matrice 3 5

= 30

Mthode du simplexe notation matricielle


min z
Sujet a11 x1 + a12 x 2 + ... + a1n x n

a 21 x1 + a 22 x 2 + ... + a 2 n x n

min z
Sujet

= b1

Ax

=b

cT x z = 0
x0
c, x R n , b R m
A matrice m n

= b2
.

.
.
.
a m1 x1 + a m 2 x 2 + ... + a mn x n

= bm

c1 x1 + c 2 x 2 + ... + c n x n z = 0

x1 , x 2 , ..., x n 0

Mthode du simplexe notation matricielle


Considrons le problme de programmation linaire sous sa forme
matricielle

min z

Sujet

Ax

=b

cT x z = 0
x0

Supposons que m n et que la matrice A est de plein rang (i.e., rang(A) =


m, ou que les lignes de A sont linairement indpendantes )
Une sous matrice B de A est une base de A si elle est mxm et non singulire
(i.e, B-1 existe)

Mthode du simplexe notation matricielle


Une sous matrice B de A est une base de A si elle est mxm et non singulire
(i.e, B-1 existe)
Pour faciliter la prsentation, supposons que la base B que nous
considrons est compose des m premires colonnes de A, et ainsi

A = [B R]
Dnotons galement

xB
x=
xR

c B
c=
c R

Le problme original peut scrire

min z
min z
Sujet

Ax

=b

cT x z = 0
x0

xB
Sujet
[ B R] x = b
R
xB
T
T
cB cR z = 0

x
R
x0

min z

min z
Sujet

BxB + RxR

=b

cBT xB + cRT xR z = 0
x B , xR 0

xB
Sujet
[ B R] x = b
R
xB
T
T
cB c R z = 0

x
R
x0

Exprimons xB en fonction de xR en utilisant les contraintes du problme

Bx B + Rx R = b
B 1 ( Bx B + Rx R ) = B 1b
B 1 Bx B + B 1 Rx R = B 1b
Ix B + B 1 Rx R = B 1b
Ainsi

Ix B = B 1 Rx R + B 1b

min z
Sujet

BxB + RxR

=b

cBT xB + cRT xR z = 0
x B , xR 0

min z
Sujet

En remplaant xB par sa valeur


en fonction de xR dans lquation
de la fonction conomique
Notons que ces deux problmes sont
quivalents car le deuxime est obtenu
du premier laide doprations
lmentaires utilisant une matrice
non singulire B-1

IxB + B 1RxR

= B 1b

cBT ( B 1RxR + B 1b) + cRT xR z = 0


xB , x R 0

min z
Sujet

IxB + B 1RxR

= B 1b

cBT ( B 1RxR + B 1b) + cRT xR z = 0


xB , xR 0
En regroupant les coefficients de xR

min z

Sujet

IxB + B 1RxR

= B 1b

0 xB + (cRT cBT B 1R) xR z = cBT B 1b


xB , xR 0

min z
Sujet

Ix B + B 1 Rx R

= B 1b

0 x B + (c TR c TB B 1 R) x R z = c TB B 1b
xB , xR 0
Le problme se traduit dans le tableau suivant

Les variables de xB (dnotes


jusquici variables dpendantes)
qui sont associes aux colonnes
de la base B, sont dnotes
variables de base

Les variables de xR (dnotes


jusquici variables
indpendantes) sont dnotes
variables hors base

Pour obtenir la solution de base associe la base B,


posons xR = 0
et alors xB = B-1b.
La solution de base est ralisable si xB 0

Puisque tout tableau du simplexe est associ une base de A constitue


des colonnes associes aux variables de base (variables dpendantes),
il sensuit que dans lalgorithme du simplexe, nous passons dune
solution de base ralisable une nouvelle solution de base ralisable
ayant une valeur plus petite ou gale.

Notion de multiplicateurs du simplexe


Considrons la dernire ligne du tableau du simplexe associ la base B
qui correspond aux vecteurs des cots relatifs des variables:

cBT

cRT

cBT = 0 = cBT cBT = cBT cBT B 1 B


cRT = cRT cBT B1R

c = cB , cR
T

= cBT , cRT cBT B 1 [ B R ] = c T cBT B 1 A

Notion de multiplicateurs du simplexe


c T = c T cBT B 1 A
Dnotons le vecteur

R m dfini par

T = cBT B 1
Alors

est le vecteur des multiplicateurs


du simplexe associ la base B.

c T = cT T A
Ou

[c1 , , cn ] = [c1, , cn ] T [ ai1 , , ain ]


c j = c j T a j

o a j dnote la jime colonne de la


matrice de contrainte A

Notion de multiplicateurs du simplexe


c j = c j T a j
Le vecteur des multiplicateurs du simplexe permet de calculer
les cots relatifs c j directement partir des donnes originales du
problme.
Les composantes i (i=1,2,,m) du vecteur des multiplicateurs peuvent tre
considrs comme des poids associs aux lignes i du tableau (ou aux
contraintes i du problme) tel que la soustraction dune combinaison
linaire des lignes avec ces poids de la dernire ligne du tableau permet
dannuler les cots relatifs des variables de base.

Sensitivit de la valeur optimale aux


modifications des termes de droite
Les multiplicateurs du simplexe associs une base optimale permettent de
mesurer leffet de modifier les termes de droite sur la valeur optimale dun
problme.
Considrons le problme original et un autre o les termes de droite sont
modifis

min z
Sujet Ax = b
cT x z = 0
x0

min z
Sujet Ax = b + b
c T x z = 0
x 0

Sensitivit de la valeur optimale aux


modifications des termes de droite
min z
Sujet Ax = b
cT x z = 0
x0

min z
Sujet Ax = b + b
c T x z = 0
x 0

Dnotons par B* une base optimale du problme original, et la solution de


base optimale correspondante

x*R = 0
x* * = B*1b = b 0
B

dont la valeur (optimale pour le problme) est donne par

z * = c T* x* * + cRT xR* = c T* B*1b = c T* b


B

Sensitivit de la valeur optimale aux


modifications des termes de droite
min z
Sujet Ax = b
cT x z = 0
x0

min z
Sujet Ax = b + b
c T x z = 0
x 0

Choisissons la valeur de b de telle sorte que


B *1 (b + b) = B *1b + B *1b 0

Donc B* demeure une base ralisable pour le nouveau problme modifi


puisque la solution de base associe est

~
x R* = 0
~
x B** = B *1 (b + b) 0

Sensitivit de la valeur optimale aux


modifications des termes de droite
Donc B* demeure une base ralisable pour le nouveau problme modifi
puisque la solution de base associe est

~
x R* = 0
~
x B** = B *1 (b + b) 0

c *T = c T *T A
*T = c T* B*1
B

De plus, puisque ni les cots cj ni la matrice A nont t modifis, alors le


vecteur des multiplicateur * reste inchang. Par consquent les cots
relatifs c j demeurent inchangs et donc non ngatifs pour le nouveau
problme.
Donc B* demeure donc une base optimale pour le nouveau problme.

cj

Sensitivit de la valeur optimale aux


modifications des termes de droite
Une solution optimale pour le nouveau problme est donc:

~
x R* = 0
~
x B** = B *1 (b + b) 0
valuons la valeur optimale du nouveau problme:

z* = c T* x* * + cRT x*R
B
B
T
*1
B*

=c B

(b + b)

= c T* B*1b + c T* B*1b
B
*

*T

= z + b
m

= z* +

i =1

i* bi

*T = cBT* B*1

z * = c T* B*1b
B

Sensitivit de la valeur optimale aux


modifications des termes de droite
valuons la valeur optimale du nouveau problme:.

z* = c T* x * * + cRT x R*
B
B
T
*1
B*

=c B

(b + b)

= c T* B*1b + c T* B*1b
B
*

= z + *T b
m

= z* +

i =1

i* bi

Ainsi, i* indique la taux de variation


unitaire de la valeur optimale de la
fonction conomique lorsque le terme
de droite bi de la contrainte i est modifi
dune quantit bi choisie de telle
sorte que la base demeure ralisable
pour le nouveau problme.

Problme du restaurateur transform en min


Transformons les contraintes dingalit du problme du restaurateur en
galit avec les variables dcart u, p et h:
min z = 8x 6y
Sujet
5x + 3y 30
2x + 3y 24
1x + 3y 18
x, y 0

min z = 8x 6y
Sujet
5x + 3y + u
=30
2x + 3y
+ p =24
1x + 3y
+ h = 18
x, y, u, p, h 0

x
x 1

y
0

z 0

u
1
4
1

4
1

12
3
2

p
0
1
0
0

h
1

4
3

4
5
12
1
2

*T = c T* B*1
B

3 *T

54

1
4
1
= [ 8 0 6]
4
1
12

z* = z * + *T b
b
1 1
3
1
3
= 54 + 0 b2 = 54 b1 + 0b2 b3
2 b
2
2
2
3

3
b1 < 0 b1 > 0 z* > z *
2

0
1
0

1
4
3

4
5
12

3
1
= 0
2
2

Mthode de rsolution graphique


Mthodes pour problme ne comportant que deux variables
Revenons au problme du restaurateur aprs lavoir
transformer en un problme de min:
min z = 8x 6y
Sujet
5x + 3y 30
2x + 3y 24
1x + 3y 18
x,y0

Domaine ralisable
Traons la droite
5x + 3y = 30
Lensemble des points qui
satisfont la contrainte
5x + 3y 30
sont sous cette droite car lorigine
satisfait cette relation

Domaine ralisable
Traons la droite
2x + 3y = 24
Lensemble des points qui
satisfont la contrainte
2x + 3y 24
sont sous cette droite car lorigine
satisfait cette relation

Domaine ralisable
Traons la droite
1x + 3y = 18
Lensemble des points qui
satisfont la contrainte
1x + 3y 18
sont sous cette droite car lorigine
satisfait cette relation

Domaine ralisable
Lensemble des points ralisables
pour le systme
5x + 3y 30
2x + 3y 24
1x + 3y 18
x,y0

Rsolution
Considrons la fonction
conomique :
z = 8x 6y.
Plus on sloigne de lorigine,
plus la valeur diminue:
x = 0 et y = 0 => z = 0

8
z
y = x
6
6

8
droites de pente
6

Rsolution
Considrons la fonction
conomique :
z = 8x 6y.
Plus on sloigne de lorigine,
plus la valeur diminue:
x = 0 et y = 0 => z = 0
x = 0 et y = 6 => z = 36

x + 3 y = 18 x = 0

x
= 0 y = 6

x + 3 y = 18

Rsolution
Considrons la fonction
conomique :
z = 8x 6y.
Plus on sloigne de lorigine,
plus la valeur diminue:
x = 0 et y = 0 => z = 0
x = 0 et y = 6 => z = 36
x = 6 et y = 0 => z = 48

5 x + 3 y = 30 x = 6

y = 0 y = 0

5 x + 3 y = 30

Rsolution
Considrons la fonction
conomique :
z = 8x 6y.
Plus on sloigne de lorigine,
plus la valeur diminue:
x = 0 et y = 0 => z = 0
x = 0 et y = 6 => z = 36
x = 6 et y = 0 => z = 48
x = 3 et y = 5 => z = 54.
Impossible daller plus loin sans
sortir du domaine ralisable.

5 x + 3 y = 30
x = 3
x = 3
x + 3 y = 18
y = 5
3
+
3
y
=
18

4x
= 12

Solution optimale:
x = 3 et y = 5
Valeur optimale:
z = 54

x + 3 y = 18
5 x + 3 y = 30

x
x 1

y
0

z 0

u
1
4
1

4
1

12
3
2

p
0
1
0
0

h
1

4
3

4
5
12
1
2

*T = c T* B*1
B

3 *T

54

1
4
1
= [ 8 0 6]
4
1
12

z* = z * + *T b
b
1 1
3
1
3
= 54 + 0 b2 = 54 b1 + 0b2 b3
2 b
2
2
2
3

3
b1 < 0 b1 > 0 z* > z *
2

0
1
0

1
4
3

4
5
12

3
1
= 0
2
2

Domaine ralisable
Lensemble des points ralisables
pour le systme
5x + 3y 30
2x + 3y 24
1x + 3y 18
x,y0

Rsolution graphique
Considrons la fonction
conomique :
z = 8x 6y.
La solution optimale:
x = 3 et y = 5 => z = 54.
Vecteur des multiplicateurs
optimaux:
T = [ 3/2, 0, 1/2]
Si b1 = 30 devient b1+b1 avec
b1<0
domaine ralisable diminue

5x + 3y 30

2x + 3y 24
1x + 3y 18

x
x 1

y
0

z 0

u
1
4
1

4
1

12
3
2

p
0
1
0
0

h
1

4
3

4
5
12
1
2

z
0

*T = c T* B*1
B

54

*T

1
4
1
= [ 8 0 6]
4
1
12

z* = z * + *T b
b
1 1
3
1
3
= 54 + 0 b2 = 54 b1 + 0b2 b3
2 b
2
2
2
3

3
b1 > 0 b1 < 0 z * < z*
2

0
1
0

1
4
3

4
5
12

3
1
= 0
2
2

Rsolution graphique
Considrons la fonction
conomique :
z = 8x 6y.
La solution optimale:
x = 3 et y = 5 => z = 54.
Vecteur des multiplicateurs
optimaux:
T = [ 3/2, 0, 1/2]

Si b1 = 30 devient b1+b1 avec


b1>0
domaine ralisable augmente

5x + 3y 30

2x + 3y 24
1x + 3y 18

x
x 1

y
0

z 0

u
1
4
1

4
1

12
3
2

p
0
1
0
0

h
1

4
3

4
5
12
1
2

*T = c T* B*1
B

3 *T

54

1
4
1
= [ 8 0 6]
4
1
12

z* = z * + *T b
b
1 1
3
1
3
= 54 + 0 b2 = 54 b1 + 0b2 b3
2 b
2
2
2
3

1
b3 < 0 b3 > 0 z* > z*
2

0
1
0

1
4
3

4
5
12

3
1
= 0
2
2

Rsolution graphique
Considrons la fonction
conomique :
z = 8x 6y.
La solution optimale:
x = 3 et y = 5 => z = 54.
Vecteur des multiplicateurs
optimaux:
T = [ 3/2, 0, 1/2]
Si b3 = 18 devient b3+b3 avec
b3<0
domaine ralisable diminue

5x + 3y 30

2x + 3y 24
1x + 3y 18

x
x 1

y
0

z 0

u
1
4
1

4
1

12
3
2

p
0
1
0
0

h
1

4
3

4
5
12
1
2

*T = c T* B*1
B

3 *T

54

1
4
1
= [ 8 0 6]
4
1
12

z* = z * + *T b
b
1 1
3
1
3
= 54 + 0 b2 = 54 b1 + 0b2 b3
2 b
2
2
2
3

b2 < 0 0b2 = 0 z* = z *

0
1
0

1
4
3

4
5
12

3
1
= 0
2
2

Rsolution graphique
Considrons la fonction
conomique :
z = 8x 6y.
La solution optimale:
x = 3 et y = 5 => z = 54.
Vecteur des multiplicateurs
optimaux:
T = [ 3/2, 0, 1/2]
Si b2 = 24 devient b2+b2 avec
b2<0
domaine ralisable ne change pas

5x + 3y 30

2x + 3y 24
1x + 3y 18