Académique Documents
Professionnel Documents
Culture Documents
Méthode du simplexe
et
son analyse
Transformation de max en min
Impossible d’afficher l’image.
Transformation de max en min
f(w)
w
w*
– f(w)
– f(w*)
Impossible d’afficher l’image.
Transformation de max en min
• De plus,
f(w*) = max f(w) = – min – f(w) = – (–f(w*) )
min z = –8x – 6y
Sujet à
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
Domaine réalisable
• Traçons la droite
5x + 3y = 30
L’ensemble des points qui
satisfont la contrainte
5x + 3y ≤ 30
sont sous cette droite car l’origine
satisfait cette relation
Domaine réalisable
• Traçons la droite
2x + 3y = 24
• Traçons la droite
1x + 3y = 18
• Considérons la fonction
économique :
z = –8x – 6y.
• Plus on s’éloigne de l’origine,
plus la valeur diminue: x + 3 y = 18 x = 0
⇒
x = 0 et y = 0 => z = 0 x = 0 y = 6
x = 0 et y = 6 => z = – 36
x + 3 y = 18
Résolution
• Considérons la fonction
économique :
z = –8x – 6y.
• Plus on s’éloigne de l’origine,
plus la valeur diminue: 5 x + 3 y = 30 x = 6
⇒
y = 0 y = 0
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
Résolution
• Considérons la fonction
5 x + 3 y = 30
économique : x = 3 x = 3
x + 3 y = 18 ⇒ ⇒ y = 5
3 + 3 y = 18
z = –8x – 6y. 4x = 12
• Plus on s’éloigne de l’origine,
plus la valeur diminue:
x = 0 et y = 0 => z = 0 Solution optimale:
x = 3 et y = 5
x = 0 et y = 6 => z = – 36
Valeur optimale:
x = 6 et y = 0 => z = – 48 z = – 54
x = 3 et y = 5 => z = – 54.
• Impossible d’aller plus loin sans x + 3 y = 18
sortir du domaine réalisable.
5 x + 3 y = 30
Mes acétates électroniques pour IFT2505 sont disponibles sur mon site Web :
http://www.iro.umontreal.ca/~ferland
Auxiliaire d'enseignement:
El Filali, Souhaïla
Variables d’écart
min z = – 8x – 6y min z = – 8x – 6y
Sujet à Sujet à
5x + 3y ≤ 30 5x + 3y + u =30
2x + 3y ≤ 24 2x + 3y + p =24
1x + 3y ≤ 18 1x + 3y + h = 18
x, y ≥ 0 x, y, u, p, h ≥ 0
• Les contraintes constituent un système de 3 équations comportant 5
variables. Exprimons 3 des variables en fonction des 2 autres
Méthode du simplexe – forme algébrique
• u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 – 8x – 6y
• Donc la solution demeure réalisable aussi longtemps que
x ≤ min {6, 12, 18} = 6.
• Puisque l’objectif est de minimiser z, nous allons choisir la plus grande
valeur possible de x: i.e., x = 6.
• La nouvelle solution est donc
x = 6, y = 0 => u = 0, p = 12, h = 12 et z = – 48.
Nouvelle itération
• u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 – 8x – 6y
• La nouvelle solution est donc
x = 6, y = 0 => u = 0, p = 12, h = 12 et z = –48.
• Cette solution est la seule pour le système précédent lorsque y = u = 0
puisque la matrice des coefficients des variables u, p et h est non singulière.
• Par conséquent, pour retrouver une autre solution différente, il faut que y ou
u prennent une valeur positive.
• Précédemment, l’analyse était facilitée par le fait que les variables x et y qui
pouvaient être modifiées étaient à droite.
Transformation du système
x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y
z = – 48 + 8/5u – 6/5y
Nouvelle itération
• Mais l’augmentation de y est limité par les contraintes de non négativité des
variables x, p et h:
x = 6 – 1/5u – 3/5y ≥ 0
p = 12 + 2/5u – 9/5y ≥0
h = 12 + 1/5u – 12/5y ≥ 0
• x = 6 – 1/5u – 3/5y ≥ 0
p = 12 + 2/5u – 9/5y ≥0
h = 12 + 1/5u – 12/5y ≥ 0
z = – 48 + 8/5u– 6/5y
• Donc la solution demeure réalisable aussi longtemps que
y ≤ min {10, 20/3, 5} = 5.
• Nous n’avons considéré que des solutions où il n’y a que trois variables
positives!
5 5!
• Comme il y a 5 variables, il y a au plus = = 10 solutions
différentes de ce type. 3 3! 2!
• Nous allons plutôt utiliser des tableaux pour compléter les itérations de
l’algorithme du simplexe.
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – 1x – 3y
z = 0 –8x – 6y
variable d’entrée
RAPPEL: Nous utilisons l’équation où x et u apparaissent pour exprimer x
en fonction de u et y:
u = 30 – 5x – 3y => (5x = 30 – u – 3y) / 5
=> x = 6 – 1/5u – 3/5y
Ceci est équivalent à
5x + 3y + u =30
• variable de sortie
variable d’entrée
RAPPEL: Nous utilisons l’équation où x et u apparaissent pour exprimer x
en fonction de u et y:
u = 30 – 5x – 3y => (5x = 30 – u – 3y) / 5
=> x = 6 – 1/5u – 3/5y
Ceci est équivalent à
(5x + 3y + u =30) / 5
• variable de sortie
variable d’entrée
RAPPEL: Nous utilisons l’équation où x et u apparaissent pour exprimer x
en fonction de u et y:
u = 30 – 5x – 3y => (5x = 30 – u – 3y) / 5
=> x = 6 – 1/5u – 3/5y
Ceci est équivalent à
(5x + 3y + u =30) / 5 => x + 3/5y + 1/5u =6
• variable de sortie
variable d’entrée
Ceci est équivalent à
(5x + 3y + u =30) / 5 => x + 3/5y + 1/5u =6
variable d’entrée
Ceci est équivalent à
(5x + 3y + u =30) / 5 => x + 3/5y + 1/5u =6
variable d’entrée
x + 3 / 5 y + 1/ 5u = 6
• Rappel: Nous substituons l’expression de x dans les autres équations
x = 6 – 1/5u – 3/5y
p = 24 – 2x – 3y
=> p = 24 – 2(6 – 1/5u – 3/5y) – 3y
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)
deuxième ligne
moins
2(la première ligne)
Le tableau devient
0 x + 9 / 5 y − 2 / 5u + p = 12
En répétant le processus pour les autres lignes du tableau
Forme standard
x1 , x 2 , ..., x n ≥ 0
Itération typique
• Le système
x1 + + a 1m +1 x m +1 + ... + a 1s x s + ... + a 1n x n = b1
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
x1 + + a 1m +1 x m +1 + ... + a 1s x s + ... + a 1n x n = b1
x2 + + a 2 m+1 x m+1 + ... + a 2 s x s + ... + a 2 n x n = b 2
Itération typique. . . .
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
peut être représenter dans le tableau suivant c m +1 x m +1 + ... + c s x s + ... + c n x n = z − z
–
Étape 1: Choix de la variable d’entrée
–
Étape 2: Choix de la variable de sortie
Si a is ≤ 0 ∀ 1 ≤ i ≤ m
le problème n’est pas Variable d’entrée
borné et l’algo. s’arrête
Variable d’entrée
Variable de sortie
–
Étape 3: Pivot
L’élément de pivot a rs est à l’intersection de la
colonne de la variable d’entrée xs et de la ligne
de la variable de sortie xr
Variable d’entrée
a rs
Variable de sortie
a rs
a rs
–
Étape 3: Pivot
Variable d’entrée
a rs
Variable de sortie
a rs
a rs
–
Étape 3: Pivot
Divisons la ligne r par l’élément
de pivot a rs afin d’obtenir la
ligne r résultante
Variable d’entrée
a rs
Variable de sortie
1
a rs
a rs
–
Étape 3: Pivot
Divisons la ligne r par l’élément
de pivot a rs afin d’obtenir la
ligne r résultante
Variable d’entrée
a rs
Variable de sortie
1 ar m +1 arn br
1
ars ars ars ars
–
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs a rs
Variable de sortie
a rs a rs
–
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs a rs
Variable de sortie
a rs a rs
–
Étape 3: Pivot
Multiplions la ligne r résultante
par a is pour la soustraire de la
ligne i du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs a rs
Variable de sortie
a rs a rs
–
Étape 3: Pivot
Multiplions la ligne r résultante
par c s pour la soustraire de la dernière
ligne du tableau. Ceci ramène le
coefficient de la variable d’entrée xs à 0. Variable d’entrée
a rs a rs
Variable de sortie
a rs a rs
–
Tableau résultant
pour
amorcer la prochaine itération
–
Méthode du simplexe – notation matricielle
a11 … a1n b1
A = b =
Notation matricielle a
m1 amn
bm
x1
• Le problème de programmation
c T = [ c1 ,… , cn ] x =
linéaire sous la forme standard
xn
min z = c1x1 +c2x2 +...+cnxn
Sujet à a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b 2
min z = c T x
. . . .
Sujet à Ax = b
. . . .
x≥0
a m1 x1 + a m 2 x 2 + ... + a mn x n = b m
c, x ∈ R n , b ∈ R m
A matrice m × n x1 , x 2 , ..., x n ≥ 0
Problem du restaurateur
min z = −8 x − 6 y
min z = [ −8, −6,0,0,0] x Suject to 5 x + 3 y + u = 30
y
2x + 3y + p = 24
u 1x + 3 y + h = 18
p x, y , u, p, h ≥ 0
h
s.t.
x
5 3 1 0 0 y 30
2 3 0 1 0 u = 24
1 3 0 0 1 p
18
h
x , y , u, p, h ≥ 0
a11 … a1n b1
A = b =
a
Notation matricielle m1 amn bm
x1
c T = [ c1 ,…, cn ] x =
min z xn
Sujet à a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
min z
Sujet à Ax =b
. . . .
. . . .
cT x − z = 0
a m1 x1 + a m 2 x 2 + ... + a mn x n = bm
x≥0
c, x ∈ R n , b ∈ R m c1 x1 + c 2 x 2 + ... + c n x n − z = 0
A matrice m × n x1 , x 2 , ..., x n ≥ 0
Méthode du simplexe – notation matricielle
• Une sous matrice B de A est une base de A si elle est mxm et non singulière
(i.e, B-1 existe)
• Pour faciliter la présentation, supposons que la base B que nous
considérons est composée des m premières colonnes de A, et ainsi
A = [B R]
Dénotons également
xB c B
x= c=
xR c R
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
En remplaçant xB par sa valeur
min z en fonction de xR dans l’équation
de la fonction économique
Sujet à BxB + RxR =b Notons que ces deux problèmes sont
cBT xB + cRT xR − z = 0 équivalents car le deuxième est obtenu
du premier à l’aide d’opérations
x B , xR ≥ 0 élémentaires utilisant une matrice
non singulière B-1
min z
Sujet à IxB + B −1RxR = B −1b
cBT (− B −1RxR + B −1b) + cRT xR − z = 0
xB , xR ≥ 0
min z
Sujet à IxB + B −1RxR = B −1b
cBT (− B −1RxR + B −1b) + cRT xR − z = 0
xB , xR ≥ 0
−1
En regroupant les coefficients de xR cT
B B b m
min z m
m
• Une sous matrice B de A est une base de A si elle est mxm et non singulière
(i.e, B-1 existe)
• Pour faciliter la présentation, supposons que la base B que nous
considérons est composée des m premières colonnes de A, et ainsi
A = [B R]
Dénotons également
xB c B
x= c=
xR c R
x
y
xB = p xR =
h u
−8
−6
cB = 0 cR =
0 0
min z
min z
xB
Sujet à BxB + RxR =b Sujet à [ B R] x = b
R
cBT xB + cRT xR − z = 0
xB
x B , xR ≥ 0 c B cR − z = 0
T T
x
R
x≥0
min z
Sujet à
5 0 0 x 3 1 30
y
2 1 0 p + 3 0 u = 24
1 0 1 h 3 0 18
x
y
[ −8 0 0] p + [ −6 0] u − z = 0
h
x 0
p ≥ 0 y 0
u ≥ 0
h 0
Obtenons B −1 avec la méthode d'élimination de Gauss:
1
5 0 0 1 0 0 1 0 0 5 0 0
B = 2 1 0 0 1 0 2 1 0 0 1 0
1 0 1 0 0 1 1 0 1 0 0 1
1 1
5 0 0 5 0 0
1 0 0 1 0 0
− 2 1 0 − 2 1 0 = B −1
0 1 0 5 0 1 0 5
1 0 1 0 0 1
0 0 1 1
− 0 1
5
• Exprimons xB en fonction de xR en utilisant les contraintes du problème
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
1 1
5 0 0 5 0 0
5 0 0 x 3 1 30
− 2 1 0 2 1 0 p + 3 0 y = − 2 1 0 24
5 u 5
1 0 1 h 18
3 0
− 1 0 1 − 1 0 1
5 5
1 1
5 0 0 5 0 0
x 3 1 30
2 y 2
I p + −
1 0 3 0 = − 1 0 24
5 u 5
h 3 0 18
− 1 0 1 − 1 0 1
5 5
1 1
5 0 0 5 0 0
x 3 1 30
2 y 2
I p + −
1 0 3 0 = − 1 0 24
5 u 5
h 3 0 18
− 1 0 1 − 1 0 1
5 5
3 1
5 5
x 6
9 −2 y
I p + = 12
5 5 u
h 12
12 −1
5 5
En remplaçant xB par sa valeur
min z en fonction de xR dans l’équation
de la fonction économique
Sujet à BxB + RxR =b Notons que ces deux problèmes sont
cBT xB + cRT xR − z = 0 équivalents car le deuxième est obtenu
du premier à l’aide d’opérations
x B , xR ≥ 0 élémentaires utilisant une matrice
non singulière B-1
min z
Sujet à 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
x B , xR ≥ 0
1
5 0 0
30 6
2
T −1
cB B b = [ −8 0 0] − 1 0 24 = [ −8 0 0] 12 = −48
5
18 12
− 1 0 1
5
1
5 0 0
x 3 1
2 y
[0 0 0] p + [ −6 0] − [ −8 0 0] − 1 0 3 0 u − z = 48
5
h 3 0
− 1 0 1
5
1
5 0 0
x 3 1
2 y
[0 0 0] p + [ −6 0] − [ −8 0 0] − 1 0 3 0 u − z = 48
5
h 3 0
− 1 0 1
5
3 1
5 5
x
−2 y
[0 0 0] p + [ −6 0] − [ −8 0 0] 9 u − z = 48
5 5
h
12 −1
5 5
3 1
5 5
x
p + −6 0 − −8 0 0 9 −2 y
[ 0 0 0 ] [ ] [ ] − z = 48
5 5 u
h
12 −1
5 5
x
24 8 y
[0 0 0] p + [ −6 0] − − − u − z = 48
5 5
h
x
6 8 y
[ 0 0 0] p + − − z = 48
5 5 u
h
min z
Sujet à IxB + B −1RxR = B −1b
0 xB + (cRT − cBT B −1R ) xR − z = −cBT B −1b
xB , xR ≥ 0
Le problème se traduit dans le tableau suivant
3 1
5 5
x 6
9 −2 y
I p + u = 12
5
5
h 12
12 −1
5 5
x p h y u −z
3 1
x 1 0 0 0 6
5 5
9 2
p 0 1 0 − 0 12
5 5
12 1
h 0 0 1 − 0 12
5 5
6 8
−z 0 0 0 − 1 48
5 5
x
6 8 y
[ 0 0 0] p + − − z = 48
5 5 u
h
x p h y u −z
3 1
x 1 0 0 0 6
5 5
9 2
p 0 1 0 − 0 12
5 5
12 1
h 0 0 1 − 0 12
5 5
6 8
−z 0 0 0 − 1 48
5 5
x y u p h −z
3 1
x 1 0 0 0 6
5 5
9 2
p 0 − 1 0 0 12
5 5
12 1
h 0 − 0 1 0 12
5 5
6 8
−z 0 − 0 0 1 48
5 5
x p h y u −z
3 1
x 1 0 0 0 6
5 5
9 2
p 0 1 0 − 0 12
5 5
12 1
0 0 1 0 12
B −1
h −
5 5
6 8
−z 0 0 0 − 1 48
5 5
Exprimons xB en fonction de xR en utilisant les contraintes du problème
BxB + RxR = b
B −1 ( BxB + RxR ) = B −1b
En fait ceci revient à faire
B −1 Ax = B −1b.
Or si la matrice A comporte une sous matrice qui est égal
à la matrice identité I ; i.e.,
A = A I
alors B −1 Ax = B −1 A I x
= B −1 A B −1 x.
Ainsi, dans le tableau associé à la base B, nous retrouvons
l'inverse de la base B −1 sous les variables associées à la
matrice identité I dans le tableau original.
x y u p h −z
u 5 3 1 0 0 0 30
B −1 p 2 3 0 1 0 0 24
h 1 3 0 0 1 0 18
−z − 8 − 6 0 0 0 1 0
x y u p h −z
3 1
x 1 0 0 0 6
5 5
9 2
p 0 − 1 0 0 12
5 5
12 1
h 0 − 0 1 0 12
5 5
6 8
−z 0 − 0 0 1 48
5 5
Les variables de xB (dénotées Les variables de xR (dénotées
jusqu’ici variables dépendantes) jusqu’ici variables
qui sont associées aux colonnes indépendantes) sont dénotées
de la base B, sont dénotées variables hors base
variables de base
Pour obtenir la solution de base associée à la base B,
posons xR = 0
et alors xB = B-1b.
La solution de base est réalisable si xB ≥ 0
Notons que ce tableau est identique à celui utilisé pour illustrer
une itération du simplexe
Puisque tout tableau du simplexe est associé à une base de A constituée
des colonnes associées aux variables de base (variables dépendantes),
il s’ensuit que dans l’algorithme du simplexe, nous passons d’une
solution de base réalisable à une nouvelle solution de base réalisable
ayant une valeur plus petite
Critère d’optimalité
-
xi = bi ≥ 0 i = 1, 2,..., m
xi = 0 i = m + 1, m + 2,..., n
z = cB B −1b
Critère d’optimalité
−cTB B −1b