Chap 3
Chap 3
23 Avril 2020
2 / 45
Programme linéaire sous forme standard
xB + A−1 −1
B AN x N = AB b
B b et xN := 0
xB := A−1
Démonstration.
partir de y, z ∈ X on a
AB yB + AN yN = b ⇒ yB = A−1
B b ⇒ yB = xB
AB zB + AN zN = b ⇒ zB = A−1B b zB = xB
On obtient y = z = x en contradiction avec l'hypothèse que x n'est
pas un sommet de X .
9 / 45
Base et Solution de base réalisable
Pourquoi la méthode du simplexe ?
Théorème
Soit B une base réalisable. Si c̄N ≥ 0, alors B est optimale.
Démonstration.
Soit x ∈ X . Donc Ax = b et x ≥ 0. En écrivant Ax = AB xB + AN xN , on
obtient xB = A−1
B b − AB AN xN . On a
−1
= c> −1
B AB b + c̄N xN
xB AB b
Soit x∗ = = la solution associée à la base B . Alors
0Rn−m 0Rn−m
Corollaire
Soit B0 une base réalisable et x0 la solution de base
correspondante. S'il existe un indice j tel que c̄j < 0, alors
1 soit l'optimum de z c'est −∞,
2 soit il existe une autre base B1 et une autre solution de
base x1 tel que z(x1 ) < z(x0 ) (x1 est meilleure que x0 ).
Démonstration.
A−1
Soit x0 = B0 b la solution de base associée à B0 et j tel que c̄j < 0. Soit
0Rn−m
xB 0
x=
x N0
, avec xN0 = θej et θ > 0, (ej nul sauf la composante j égale 1 ) . On a
Ax = b ⇒ xB0 = A−1B0 b − AB0 AN0 xN0 = AB0 b − θAB0 AN0 ej .
−1 −1 −1
>
z(x) = cT
B0 xB0 + cN0 xN0
−1 −1
= c> > >
B0 AB0 b − cB0 AB0 AN0 xN0 + cN0 xN0
−1 −1
= c> > >
B0 AB0 b + (cN0 − cB0 AB0 AN0 )xN0
−1
= c> 0
B0 AB b + θc̄N0 ej = z(x ) + θc̄j
12 / 45
Conditions d'optimalité
b̄i
xiB0 ≥ 0 ⇐⇒ b̄i − θāij ≥ 0 ⇐⇒ θ ≤ .
āij
b̄i
Donc il faut donc que θ ≤ min | āij > 0 . Pour ces valeurs de θ > 0,
i∈B0 āij
le point x déni
précédemment est meilleur pour z . Le meilleur point étant
b̄i b̄i
pour θ = min | āij > 0 . Si θ = ā 0 alors la composante i0 de x est
i∈B0 āij i0 j
Remarque
Si deux indices vérient θ = āii0j = āii1j , alors la base B1 va
b̄ b̄
1
0 1
être dégénérée ( xB1 comporte des composantes nulles)
puisque xi1 = 0, avec i1 un indice de base, et donc A−1 B1 b a
au moins une composante nulle.
2 Si B0 était dégénérée, alors on aura θ = 0 et le changement
de base de B0 à B1 ne fait pas varier z ; z(x0 ) = z(x1 ).
3 Le corollaire précédent montre que si inf z(x) > −∞, alors
x∈X
en partant d'une base B0 réalisable et de la solution de base
correspondante, on peut construire, en l'absence de
dégénérescence, une suite de bases réalisables dont les
solutions de bases correspondantes font diminuer z
strictement. Après un nombre ni d'étapes on trouvera
l'optimum.
15 / 45
Conditions d'optimalité
Algorithm 1 Simplexe
1. Choisir une base réalisable B0 et poser k = 0.
2. Al'étape
k on a une base B et la solution de base correspondante
A−1
B b . On calcule b̄ = A−1 b
x= B et c̄N = c> > −1
N − cB AB AN .
0
3. Si c̄N ≥ 0, STOP, le minimum est atteint. Sinon il existe un indice e
tel que c̄e < 0. Soit ae la colonne de A d'indice e. Calculer āe := A−1
B ae .
xB = b̄
La solution de base associée à B est : xN = 0
z = z̄
On peut représenter le programme précédent (3) par le tableau
suivant appelé tableau du simplexe :
x SB x1 ··· xj ··· xn SB
xB A−1
B A b̄ = xB A−1
B A1 ··· A−1
B Aj ··· A−1
B An b̄
-1 c̄> −z̄ -1 c̄1 ··· c̄j ··· c̄n −z̄
coût.
Explication du contenu de tableau : on met dans la 1ère colonne du tableau les variables
de base xB , dans la dernière case on écrit −1 c-à-d lorsque on arrive à la solution optimale on
prend l'opposé de la valeur situe dans la dernière case de tableau à droite. On met dans la
2ème colonne toutes les variables x = (x1 , · · · , xn ), puis A−1
B
A, après c̄> . Dans la dernière
colonne on met la solution de base (SB) b̄, et −z̄ est l'opposé la valeur de la solution de base.
18 / 45
Méthode des tableaux : Algorithme du simplexe
Remarques
Tout coecient négatif de c̄> N peut faire oce de variable
entrante. D'après une règle de Dantzig on choisit la
variable hors-base de coût réduit le plus négatif (plus forte
descente).
Soit āj la colonne de A−1 B AN correspondant à la variable
entrante. On regarde les coecients strictement positifs de
āj et parmi ceux-là, on choisit la variable sortante xi telle
que āb̄iji soit le plus petit possible.
19 / 45
Méthode des tableaux : Algorithme du simplexe
Exercice
Soit le programme linéaire suivant :
min −10x1 − 12x2 − 12x3
s.c. x1 + 2x2 + 2x3 ≤ 20
2x1 + x2 + 2x3 ≤ 20
2x1 + 2x2 + x3 ≤ 20
x1 , x2 , x3 ≥ 0.
( simplexe a besoin toujours d'écrire le PL sous forme standard)
xB \x x1 x2 x3 x4 x5 x6 SB
x4 1 2 2 1 0 0 20
x5 2 1 2 0 1 0 20
x6 2 2 1 0 0 1 20
-1 −10 −12 −12 0 0 0 0
22 / 45
Méthode des tableaux : Algorithme du simplexe
si i = s
( āsj
ā0ij = āse
āij −
āie āsj
āse si i 6= s
si i = s
(
b̄s
b̄0i = āse
b̄i − āie b̄s
āse si i 6= s
āsj c̄e
c̄0j = c̄j −
āse
26 / 45
Méthode des tableaux : Algorithme du simplexe
Pivotage
xB \x x1 x2 x3 x4 x5 x6 SB
1 1
x2 2
1 1 2
0 0 10
3
x5 2
0 1 −1 1 0 10
x6 1 0 −1 −1 0 1 0
-1 −4 0 0 6 0 0 120
On a c̄>
N = −4, 0, 6 . La solution de base n'est pas optimale : il
-1 −4 0 0 6 0 0 120 ā61
= 1
=0
variable x6 sort de base.
-1 0 0 −4 2 0 4 120
x3 entre en base et x5 sort de base.
28 / 45
Méthode des tableaux : Algorithme du simplexe
xB \x x1 x2 x3 x4 x5 x6 SB
−13 −3 2
x2 0 1 0 2 5 5
4
2 −3
x3 0 0 1 5 5 5
4
2 2
x1 1 0 0 4 5 5
4
-1 0 0 0 22 8
5
8
5
136
x
Ax + e = b ⇔ A I =b
e
x
les variables sont ∈ Rn+m , x = (x1 , · · · , xn ) et
e
e = (xn+1 , · · · , xn+m ).
Alors on peut considérer B = {n + 1, · · · , n + m} (les indices des
variables d'écart ), et la matrice associée à cette base est AB = Im ,
ainsi que AB est inversible (l'identité I est inversible ) A−1
B = Im = Im .
−1
Si ce n'est pas le cas (le problème n'est pas sous forme canonique ou b 0 ), par
exemple le problème est dénie comme (3), dans ce cas on va
passer par une phase préliminaire (phase I) pour construire une
base initiale. Pour ce faire, on considère un problème auxiliaire
min 0> x + e> y
s.c. Ax + y = b (P La )
x, y ≥ 0.
Théorème
le système (3) a une solution réalisable x0 si et seulement si le
point (x0 , 0) est solution optimale du programme (P La ) et son
coût optimal est nul ( = 0).
Démonstration.
Soit x0 une solution de (3). Alors le point (x0 , 0) avec y = 0
vérie Ax + y = b, de plus, c'est une solution optimale du
problème (P La ) car la fonction objective e> y = e> 0 = 0 ≥ 0.
Vice-versa, si le point (x0 , 0) est solution optimale du problème
(P La ), il vérie Ax0 + 0 = b donc Ax0 = b, ainsi x0 est une
solution réalisable de (3).
34 / 45
Technique pour trouver une solution réalisable : Via un problème auxilliaire
Remarques :
On peut supposer b ≥ 0(au besoin en multipliant les
contraintes égalité par −1).
Après la résolution de (P La ) les variables y sont nulles à
l'optimum. Elles sont :
soit hors base ( B est réalisable pour (3))
Exemple
On considère le programme linéaire suivant :
min x1 + x2 + x3
s.c. x1 + 2x2 + 3x3 = 3
−x1 + 2x2 + 6x3 = 2
4x2 + 9x3 = 5
3x3 + x4 = 1
x1 , x2 , x3 , x4 ≥ 0.
On introduit les variables articielles y1 , y2 , y3 et y4 positives, on obtient le
problème auxiliaire
min y1 + y2 + y3 + y4
s.c. x1 + 2x2 + 3x3 + y1 = 3
−x1 + 2x2 + 6x3 + y2 = 2
4x2 + 9x3 + y3 = 5
3x3 + x4 + y4 = 1
x1 , x2 , x3 , x4 , y1 , y2 , y3 , y4 ≥ 0.
37 / 45
Technique pour trouver une solution réalisable : Via un problème auxilliaire
y \ x, y x1 x2 x3 x4 y1 y2 y3 y4 SB
3
y1 1 2 3 0 1 0 0 0 3 3
=1
2
y2 −1 2 6 0 0 1 0 0 2 6
= 13
5
y3 0 4 9 0 0 0 1 0 5 9
= 0.55
1
y4 0 0 3 1 0 0 0 1 1 3
= 0.33
−1 0 −8 −21 −1 0 0 0 0 −11
Le 2ème tableau de (P La )
B \ x, y x1 x2 x3 x4 y1 y2 y3 y4 SB
y1 1 2 0 −1 1 0 0 −1 2
y2 −1 2 0 −2 0 1 0 −2 0
y3 0 4 0 −3 0 0 1 −3 2
1 1 1
x3 0 0 1 3
0 0 0 3 3
−1 0 −8 0 6 0 0 0 7 −4
B \ x, y x1 x2 x3 x4 y1 y2 y3 y4 SB
2
y1 1 2 0 −1 1 0 0 −1 2 2
=1
0
y2 −1 2 0 −2 0 1 0 −2 0 2
=0
2
y3 0 4 0 −3 0 0 1 −3 2 4
= 0.5
1 1 1
x3 0 0 1 3
0 0 0 3 3
−1 0 −8 0 6 0 0 0 7 −4
39 / 45
Technique pour trouver une solution réalisable : Via un problème auxilliaire
Le 3ème tableau de (P La )
B \ x, y x1 x2 x3 x4 y1 y2 y3 y4 SB
y1 2 0 0 1 1 −1 0 1 2
−1 1
x2 2
1 0 −1 0 2
0 −1 0
y3 2 0 0 1 0 −2 1 1 2
1 1 1
x3 0 0 1 3
0 0 0 3 3
−1 −4 0 0 −2 0 4 0 −1 −4
B \ x, y x1 x2 x3 x4 y1 y2 y3 y4 SB
2
y1 2 0 0 1 1 −1 0 1 2 1
=2
−1 1
x2 2
1 0 −1 0 2
0 −1 0
2
y3 2 0 0 1 0 −2 1 1 2 1
=2
1 1 1 1/3
x3 0 0 1 3
0 0 0 3 3 1/3
=1
−1 −4 0 0 −2 0 4 0 −1 −4
40 / 45
Technique pour trouver une solution réalisable : Via un problème auxilliaire
Le 4ème tableau de (P La )
B \ x, y x1 x2 x3 x4 x1 y2 y3 y4 SB
1 1 −1 1
x1 1 0 0 2 2 2
0 2
1
−3 1 1 −3 1
x2 0 1 0 4 4 4
0 4 2
y3 0 0 0 0 −1 −1 1 0 0
1 1 1
x4 0 0 1 3
0 0 0 3 3
−1 0 0 0 0 2 2 0 1 0
x1 1 0 . 0 .
x2 0 1 . 0 .
x4 0 0 3 1 1
−1 0 0 . 0 .
xB \ x x1 x2 x3 x4 SB
−3 1
x1 1 0 2 0 2
9 5
x2 0 1 4 0 4
x4 0 0 3 1 1
1
−1 0 0 4 0 − 74
Prétraitement
Mettre le problème sous forme standard
Prémultiplier les contraintes (2nd membre positif)
Phase 1 : Problème auxiliaire
Introduire une variable auxiliaire y par contrainte
Construire le tableau initial du problème auxiliaire
Résoudre le problème auxiliaire
Faire sortir les variables auxiliaires y de la base
Supprimer les contraintes redondantes (pivots tous nuls sur
une ligne)
Supprimer les colonnes correspondant aux variables
auxiliaires y (base ne contenant que des variables x)
Phase 2 : Problème initial
Calculer la dernière ligne du tableau (coûts réduits, coût)
Résoudre le problème initial