Vous êtes sur la page 1sur 90

Programmation Linéaire

Optimisation
Alain Faye
Programmation linéaire
Résolution

1
Contenu
• Définition d’un programme linéaire
• Résolution graphique
• Algorithme du simplexe
• Méthode des tableaux
• Méthode des 2 phases
• Utilisation du « solveur » Excel
• Conclusion
• Annexes

2
Forme générale d’un PL
𝑛
min / max 𝑧 = 𝑓 𝑥 = ෍ 𝑐𝑗 𝑥𝑗
𝑗=1
s.c.
𝑛
෍ 𝑎𝑖𝑗 𝑥𝑗 ≤ 𝑏𝑖 𝑖 ∈ 𝑀≤
𝑗=1
𝑛
෍ 𝑎𝑖𝑗 𝑥𝑗 ≥ 𝑏𝑖 𝑖 ∈ 𝑀≥
𝑗=1
𝑛
෍ 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖 𝑖 ∈ 𝑀=
𝑗=1
𝑥𝑗 ≥ 0 𝑗 = 1, … , 𝑛

On peut soit minimiser soit maximiser l’objectif z


M≤ indices des contraintes d’inégalités de type ≤
M≥ indices des contraintes d’inégalités de type ≥
M= indices des contraintes d’égalité
Chacun de ces ensembles peut être vide
On peut toujours se ramener si besoin à des variables sans signe
en posant xj = xj+ - xj- avec xj+ ≥ et xj- ≥0
3
Résolution d’un PL
• 2 variables : résolution graphique
• n2 variables : algorithme du simplexe

4
Un peu d’analyse
développement d’une fonction f autour d’un point x(0)
𝑓 𝑥 = 𝑓 𝑥 (0) + 𝛻𝑓 𝑥 (0)  𝑥 − 𝑥 (0) + ⋯
𝑓
𝑥1
𝛻𝑓 𝑥 = ⋮ gradient de f
𝑓
𝑥𝑛

Cas f linéaire:
𝑓 𝑥 = 𝑐𝑥 = 𝑐1 𝑥1 + ⋯ + 𝑐𝑛 𝑥𝑛
𝑐1
𝛻𝑓 𝑥 = ⋮
𝑐𝑛
𝑐𝑥 = 𝑐𝑥 (0) + 𝑐 𝑥 − 𝑥 (0)

5
Direction de déplacement
On considère f linéaire : 𝑓 𝑥 = 𝑐𝑥

A partir de x(0) on se déplace dans une direction d : x=x(0)+d 


𝑐 𝑥 (0) + 𝛼𝑑 = 𝑐𝑥 (0) + 𝛼𝑐𝑑

• Si d = c= gradient de f
𝑐 𝑥 (0) + 𝛼𝑐 = 𝑐𝑥 (0) + 𝛼𝑐𝑐 = 𝑐𝑥 (0) + 𝛼 𝑐 2
La valeur de la fonction augmente quand on s’éloigne de x(0)

• Si d = c = opposé du gradient de f
𝑐 𝑥 (0) − 𝛼𝑐 = 𝑐𝑥 (0) − 𝛼𝑐𝑐 = 𝑐𝑥 0 − 𝛼 𝑐 2
La valeur de la fonction diminue quand on s’éloigne de x(0)

6
Exemple

Soit 𝑓 𝑥 = 𝑥1 + 2𝑥2
0
Le point 𝑥 (0) =
0
1
• Déplacement dans le sens du gradient 𝑑 = 𝛻𝑓 =
2
1
𝑥 (0) + 𝛼𝑑 = 𝛼
2
(0)
𝑓 𝑥 + 𝛼𝑑 = 𝛼 + 2 2𝛼 = 5α

1
• Déplacement dans le sens opposé au gradient 𝑑 = −𝛻𝑓 = −
2
1
𝑥 (0) + 𝛼𝑑 = −𝛼
2
(0)
𝑓 𝑥 + 𝛼𝑑 = −𝛼 + 2 −2𝛼 = −5α

7
Résolution graphique d’un PL
min 𝑧 = −𝑥1 − 2𝑥2
𝑥1 + 𝑥2 ≤ 3
𝑥1 ≤2
s.c.
−𝑥1 + 𝑥2 ≤ 1
𝑥1 0 , 𝑥2 ≥ 0

8
On trace l’ensemble des solutions réalisables

x2
min 𝑧 = −𝑥1 − 2𝑥2
𝑥1 + 𝑥2 ≤ 3 3

𝑥1 ≤2
s.c.
−𝑥1 + 𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1

x1
0 1 2 3

9
On minimise l’objectif z sur le domaine tracé

x2
min 𝑧 = −𝑥1 − 2𝑥2
𝑥1 + 𝑥2 ≤ 3 3

𝑥1 ≤2
s.c.
−𝑥1 + 𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1
1
−𝛻𝑧 =
2
x1
0 1 2 3

L’opposé du gradient de z est une direction de descente


Pour minimiser pousser la droite z=0 z=0
dans la direction opposée au gradient de z

10
Déplacement maximum en restant dans le domaine

x2
min 𝑧 = −𝑥1 − 2𝑥2
𝑥1 + 𝑥2 ≤ 3 3

𝑥1 ≤2
s.c.
−𝑥1 + 𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1
z = -5

x1
0 1 2 3

pousser au maximum en restant dans le domaine


Le dernier point = (1 , 2)
D’où z = -5

11
Bilan de la résolution graphique
• On se déplace selon une direction de descente
(si on minimise)
• Direction de montée si on maximise
• L’optimum est atteint en un point extrême du
domaine (l’ensemble des solutions réalisables)
• Pratique pour n=2 variables
• Pour n=3 faire des dessins en 3 dimensions
• et n4 ?

12
Résultats généraux
• Représentation paramétrique des polyèdres
• Résultats sur la minimisation d’une forme
linéaire

13
Représentation paramétrique des polyèdres

Polyèdre : ensemble des solutions d’un système d’inégalités linéaires

P = {x : Ax≤b}

Point extrême de P = point de P qui ne peut pas s’exprimer comme


combinaison convexe de 2 points distincts de P

Polyèdre borné (i.e. ne contient pas de points infiniment « grands »)

xP  xConv(Ext P) (l’enveloppe convexe des points extrêmes de P)

 x = σ𝑥 𝑖∈𝐸𝑥𝑡 𝑃 𝑖 𝑥 𝑖 avec 𝑖 ≥ 0 𝑖 , σ𝑖 𝑖 = 1

14
Représentation paramétrique des polyèdres

Polyèdre non borné

Rayons de P = Q = {d: Ad ≤0}


Q un cône convexe c’est-à-dire si d1 , d2  Q alors α1d1+ α2d2  Q  α1, α2 ≥ 0

Rayon extrême est un rayon qui ne peut pas s’exprimer comme


combinaison positive de 2 rayons distincts de P

Représentation paramétrique de P

xP  xConv(Ext P) + Cône(Ray P)


l’enveloppe convexe des points extrêmes de P +
l’enveloppe conique des rayons extrêmes de P

 x = σ𝑥 𝑖∈𝐸𝑥𝑡 𝑃 𝑖 𝑥 𝑖 + σ𝑑𝑗 ∈𝑅𝑎𝑦 𝑃 𝛼𝑗 𝑑 𝑗 avec 𝑖 ≥ 0 𝑖 , σ𝑖 𝑖 = 1 , α𝑗 ≥ 0 𝑗

15
Représentation paramétrique: un exemple
2𝑥1 ≥ 𝑥2
x2
𝑥1 − 𝑥2 ≤ 1
𝑃 = 𝑥 +𝑥 ≥1
1 2
𝑥1 ≥ 12 3

2𝑥1 ≥ 𝑥2 2
𝑥 − 𝑥2 ≤ 0
𝑄= 1 P
𝑥1 + 𝑥2 ≥ 0
𝑥1 ≥ 0 1

x1
0 1 2 3
1 1
2 1
Points extrêmes de P= 2 , 1 ,
1 2
0
1 1
Rayons extrêmes de Q= , . Ce sont des vecteurs
2 1

16
Minimisation d’une forme linéaire sur un polyèdre

Soit le problème min z=cx sous contrainte xP={x : Ax≤b}

Cas P borné
L’optimum est atteint en un point extrême
Démonstration:
Soit 𝑥 ∗ = 𝑎𝑟𝑔𝑚𝑖𝑛 𝑐𝑥 𝑖 ∶ 𝑥 𝑖 ∈ 𝐸𝑥𝑡 𝑃
xP  x = σ𝑥 𝑖 ∈𝐸𝑥𝑡 𝑃 𝑖 𝑥 𝑖 avec 𝑖 ≥ 0 𝑖 , σ𝑖 𝑖 = 1
cx = σ𝑥 𝑖∈𝐸𝑥𝑡 𝑃 𝑖 𝑐𝑥 𝑖 ≥ σ𝑥 𝑖∈𝐸𝑥𝑡 𝑃 𝑖 𝑐𝑥 ∗ = 𝑐𝑥 ∗
x* est bien un minimiseur de la forme linéaire cx

Cas P non borné


• Soit l’optimum est non borné (-)
• Soit l’optimum est atteint en 1 point extrême
Démonstration:
Si dQ tel que cd<0 alors soit xP alors x+αdP α>0 et c(x+αd)=cx +αcd - 
quand α + 
Sinon (d Q cd≥0) on peut ne considérer que les points de P dans Conv(Ext P)
et on est ramené au cas précédent (P borné). 17
Algorithme du simplexe
• Mise sous forme standard
• Base , solution de base
• Critère d’optimalité d’une solution de base
• Déplacement d’une solution de base à une autre
• Validité de l’algorithme
• Méthode des tableaux : disposition pratique des
calculs
• Recherche d’une base initiale: méthode des 2
phases

18
Forme standard
min 𝑧 = 𝑐𝑥 s.c. 𝐴𝑥 = 𝑏 , 𝑥 ≥ 0

On se ramène à la forme standard en rajoutant des variables d’écart

min 𝑧 = −𝑥1 − 2𝑥2 min 𝑧 = −𝑥1 − 2𝑥2

𝑥1 + 𝑥2 ≤ 3 𝑥1 + 𝑥2 + 𝑥3 =3
𝑥1 ≤2  𝑥1 + 𝑥4 =2
s.c. s.c.
−𝑥1 + 𝑥2 ≤ 1 −𝑥1 + 𝑥2 + 𝑥5 = 1
𝑥1 0 , 𝑥2 ≥ 0 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0

19
Caractérisation des points extrêmes du polyèdre sous forme standard

P = {x≥0 : Ax=b }

A matrice m lignes et n colonnes (n>m) de rang m


On peut toujours partitionner les colonnes de A de sorte que A=(B N) où
B matrice carrée (m×m) inversible

Théorème
𝑥𝐵
xExt P  x= 𝑥 avec xB=B-1b≥0 et xN=0 et B matrice carrée (m×m) inversible
𝑁
extraite de A

Il y a donc au plus autant de points extrêmes que de façons de partitionner A


en (B N) avec B inversible

20
Base, solution de base
m contraintes , n variables m<n
B matrice carrée (m lignes m colonnes) formée de colonnes de A
B inversible
Quitte à permuter des colonnes, A se décompose en 2 matrice B et N A=[B N]
xB variables de base , xN variable hors-base
Ax = b  BxB + NxN = b
1 1 1 0 0
𝐴= 1 0 0 1 0
−1 1 0 0 1
𝑥1 + 𝑥2 + 𝑥3 =3
𝑥1 + 𝑥4 =2 Variables de base x3 , x4 , x5 , hors-base x1 , x2
−𝑥1 + 𝑥2 + 𝑥5 = 1 x3 x4 x5 x1 x2
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0 1 0 0 1 1
𝐵= 0 1 0 ,𝑁= 1 0
0 0 1 −1 1

Il y a de nombreuses bases possibles


21
Solution de base
xB variables de base , xN variable hors_base
Ax = b  BxB + NxN = b  xB + B-1NxN = B-1 b

Solution de base:
on fixe xN= 0 , alors xB = B-1 b

𝑥1 + 𝑥2 + 𝑥3 =3
x1 = x2 = 0 alors solution unique
𝑥1 + 𝑥4 =2
x3 = 3, x4 = 2, x5 = 1
−𝑥1 + 𝑥2 + 𝑥5 = 1
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0

22
Coûts réduits
xB variables de base , xN variable hors_base
Ax = b  BxB + NxN = b  xB + B-1NxN = B-1 b

fonction z s’écrit : z = cx  z = cBxB + cNxN

On exprime z en fonction de xN uniquement en éliminant xB :

z = cB (B-1 b - B-1 NxN) +cN xN = cB (B-1 b) + (cN - cB B-1 N) xN

Coûts réduits = coefficients des variables hors-base = cN - cB B-1 N

𝑧 = −𝑥1 − 2𝑥2
Variables de base x3 , x4 , x5 , hors-base x1 , x2
c3 = 0 c4 = 0 c5 = 0, hors-base c1 = -1 c2 = -2
coûts réduits = cN - cB B-1 N = [-1 -2]

23
Sol. de base n°1 : var. en base x3, x4, x5
Optimum atteint ?

On est sur la solution de base


x1 = x2 = 0
x3 = 3, x4 = 2, x5 = 1
et z = – x1 – 2x2 = 0
On voit que si on augmente x2 (de coefficient -2) la valeur de z va diminuer.
De combien peut-on l’augmenter ? Il faut que les variables restent 0

On voit sur le système que la valeur max est 1


𝑥1 + 𝑥2 + 𝑥3 =3 (par la 3è contrainte)
𝑥1 + 𝑥4 =2 Et quand x2=1 nécessairement x5=0, x3=2 x4=2
−𝑥1 + 𝑥2 + 𝑥5 = 1
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0 Ce point est une autre solution de base:
variables de base x2=1, x3=2, x4 =2,
hors base x1 =0, x5=0
Et z = -2
24
Sol. de base n°2 : var. en base x2, x3, x4
Optimum atteint ?
Calculons les coûts réduits pour la nouvelle base: variables en base x2, x3, x4
c’est-à-dire exprimons z en fonction des variables hors-base x1 , x5
Pour cela exprimons d’abord les variables de base en fonction des hors-base
x3 x4 x2 x1 x5 x1 x5
1 0 1 1 0 1 0 −1 2 −1 2
−1 −1 −1
𝐵= 0 1 0 ,𝑁= 1 0 ,𝐵 = 0 1 0 ,𝐵 𝑁= 1 0 ,𝐵 𝑏 = 2
0 0 1 −1 1 0 0 1 −1 1 1
2𝑥1 + 𝑥3 −𝑥5 = 2
Ce qui donne le système: ൞ 𝑥1 + 𝑥4 =2
−𝑥1 𝑥2 + 𝑥5 = 1
Ensuite on exprime z en fonction des variables hors-base donc on remplace
x2=1-x5 +x1(dernière ligne) et z = -x1-2(1-x5 +x1) = -2 -3x1 + 2x5

z = -2 sur la sol. de base x2=1, x3=2, x4 =2, x1 =0, x5=0

25
Sol. de base n°2 : var. en base x2, x3, x4
Optimum non atteint
2𝑥1 + 𝑥3 −𝑥5 = 2
On a le système: ൞ 𝑥1 + 𝑥4 =2
−𝑥1 𝑥2 + 𝑥5 = 1

z en fonction des variables hors-base z = -2 -3x1 + 2x5

On voit que si on augmente x1 (de coefficient -3) la valeur de z va diminuer.


De combien peut-on l’augmenter ? Les variables doivent rester 0
On voit sur le système que la valeur max est 1 (première équation)
Et quand x1=1 nécessairement x3=0, x4=1, x2=2

Ce point est une autre solution de base:


variables de base x1=1 x2=2, x4 =1,
hors base x3 =0, x5=0
Et z = -5
26
Sol. de base n°3 : var. en base x1, x2, x4
Optimum atteint ?
Calculons les coûts réduits pour la nouvelle base: variables en base x1, x2, x4
c’est-à-dire exprimons z en fonction des variables hors-base x3 , x5
Pour cela exprimons d’abord les variables de base en fonction des hors-base
x1 x4 x2 x3 , x 5 1 −1 1 −1
2
0
1 0 1 1 0 2 2 2 1
−1 1 −1 1
𝐵= 1 1 0 , 𝑁 = 0 0 , 𝐵 −1 = 2
1 2
, 𝐵−1 𝑁 = 2 2
,𝐵 −1 𝑏 = 1
−1 0 1 0 1 1 1 1 1 2
0
2 2 2 2
𝑥
𝑥1 +𝑥23 − 5
2
= 1
𝑥 𝑥
Ce qui donne le système: − 3
2
+𝑥4 + 25 = 1
𝑥3 𝑥
𝑥2 + 2
= 2
+ 25

Ensuite on exprime z en fonction des variables hors-base donc on remplace


x1=1-½x3+ ½ x5 (première ligne) x2=2-½x3-½ x5 (dernière ligne)
et z = -(1-½x3+ ½ x5)-2(2-½x3-½ x5 ) = -5 +3/2x3 + ½ x5

z = -5 sur la sol. de base x1=1, x2=2, x4 =1, x3 =0, x5=0


27
Sol. de base n°3 : var. en base x1, x2, x4
Optimum atteint

z = -5 + 3/2x3 + ½ x5

z = -5 sur la sol. de base x1=1, x2=2, x4 =1, x3 =0, x5=0

Les coefficients des variables x3 , x5 sont 0


Donc on ne peut plus diminuer la valeur de z.

La solution est optimale.

28
Validité de l’algorithme du simplexe
Théorème
Soit une base B telle que B-1b>0.
∗ 𝑥𝐵∗ 𝐵 −1
𝑏 est optimale ssi les coûts réduits
Alors la solution de base 𝑥 = ∗ =
𝑥𝑁 0
−1
𝑐𝑁 − 𝑐𝐵 𝐵 𝑁 sont ≥ 0

Démonstration
Sens suffisant 
Soit x0 t.q. Ax=b (x est une solution quelconque réalisable).
cx=cx*+c(x-x*). Montrons que c(x-x*)≥0
𝑐 𝑥 − 𝑥 ∗ = 𝑐 − 𝑐𝐵 𝐵−1 𝐴 + 𝑐𝐵 𝐵−1 𝐴 𝑥 − 𝑥 ∗ = 𝑐 − 𝑐𝐵 𝐵−1 𝐴 𝑥 − 𝑥 ∗ + 𝑐𝐵 𝐵−1 𝐴 𝑥 − 𝑥 ∗

Le dernier terme 𝑐𝐵 𝐵−1 𝐴 𝑥 − 𝑥 ∗ = 𝑐𝐵 𝐵−1 𝑏 − 𝑏 = 0


Le premier terme 𝑐 − 𝑐𝐵 𝐵 −1 𝐴 𝑥 − 𝑥 ∗ = 𝑐 − 𝑐𝐵 𝐵−1 𝐴 𝑥 − 𝑐 − 𝑐𝐵 𝐵−1 𝐴 𝑥 ∗
𝑐 − 𝑐𝐵 𝐵−1 𝐴 𝑥 ≥ 0 car 𝑐 − 𝑐𝐵 𝐵−1 𝐴 ≥ 0 et 𝑥 ≥ 0
−1 ∗ −1 −1 𝑥𝐵∗ −1 𝑥𝐵∗
𝑐 − 𝑐𝐵 𝐵 𝐴 𝑥 = 𝑐𝐵 − 𝑐𝐵 𝐵 𝐵 ; 𝑐𝑁 − 𝑐𝐵 𝐵 𝑁 = 0 ; 𝑐𝑁 − 𝑐𝐵 𝐵 𝑁 =0
𝑥𝑁∗ 0

Note : la démonstration reste valide si B-1b a des coordonnées nulles

29
Optimalité du simplexe
Démonstration
Sens nécessaire 
Supposons j t.q. 𝑐𝑗 − 𝑐𝐵 𝐵 −1 𝐴𝑗 < 0
Alors on peut faire décroître l’objectif.
Considérons
−𝐵 −1 𝐴𝑗 𝐵 −1 𝑏 −𝐵 −1 𝐴𝑗
𝑥𝜃 = 𝑥 + 

= +
𝑒𝑗 0 𝑒𝑗
𝑐𝑥𝜃 = 𝑐𝑥 ∗ + 𝜃 −𝑐𝐵 𝐵−1 𝐴𝑗 + 𝑐𝑗
Donc si >0 alors 𝑐𝑥𝜃 < 𝑐𝑥 ∗ et x* pas optimal
Il faut que x satisfasse les contraintes
• Ax=b est vérifié 
• x 0 ? La partie contraignante est la partie haute de x
𝐵 −1 𝑏 − 𝜃𝐵 −1 𝐴𝑗 ≥ 0 (1)
Si B-1b>0, on peut toujours trouver >0 t.q. l’inégalité (1) est vérifiée
𝐵 −1 𝑏 𝑖
𝜃 = min −1
: 𝑖 𝑡. 𝑞. 𝐵 −1 𝐴𝑗 𝑖 > 0
𝐵 𝐴𝑗 𝑖

30
Base dégénérée: base B réalisable telle que B-1b≥0 a au moins une coordonnée
nulle

Quand on est sur une base dégénérée on peut passer à une autre base
(adjacente) sans que pour autant l’objectif z ne change de valeur.
En fait, dans ce cas on reste sur le même point.

On peut alors cycler c’est-à-dire revenir sur une base déjà parcourue. En
pratique, ceci est très rare. Cependant, il existe des méthodes pour s’en
prévenir (règle de Bland).

Quand on est sur une base dégénérée on peut avoir des coûts réduits < 0 et
pourtant être en présence d’une solution optimale. Voir l’exemple suivant.

31
Exemple dégénérescence
1
Soit le problème min 𝑧 = −𝑥1 − 𝑥2
2
𝑥1 + 𝑒1 = 1
𝑥2 + 𝑒2 = 1
s.c.
𝑥1 +𝑥2 +𝑒3 = 2
𝑥1 , 𝑥2 , 𝑒1 , 𝑒2 , 𝑒3 ≥ 0
𝑥1 1
𝑥2 1
Base x1 , x2 , e1 – Hors base e2 , e3 . On est sur le point 𝑒1 = 0
𝑒2 0
𝑒3 0
z = -3/2 + e3 – e2/2

On fait rentrer e2 de coût réduit <0 et e1=0 sort de la base

Base x1 , x2 , e2 – Hors base e1 , e3


z = -3/2 + e1/2 + e3/2
Cette fois les coûts réduits ≥0 indiquent qu’on est à l’optimum
et on est toujours sur le même point.
32
Bilan
• Une solution de base correspond à un point
extrême de l’ensemble des solutions
réalisables
• On passe de solution de base en solution de
base voisines (une seule var. de base change)
• On s’arrête en consultant les coûts réduits:
– Minimisation: coûts réduits0 on stoppe
– Maximisation: coûts réduits0 on stoppe

33
Algorithme du simplexe
Méthode des tableaux

34
Méthodes des tableaux
• On met les coefficients du problème dans un
tableau
• Chaque tableau correspond à une solution de
base
• Chaque ligne du tableau correspond à une
contrainte
• La dernière ligne représente la fonction objectif z
• Le passage d’un tableau au suivant c’est-à-dire
d’une solution de base à une solution de base
voisine se fait simplement (sans calculer B-1)

35
Rappel : vocabulaire, notation
Soit le problème: min 𝑧 = 𝑐𝑥 s.c. 𝐴𝑥 = 𝑏 , 𝑥 ≥ 0

• B est une matrice carrée extraite de A par sélection de colonnes de A


(nombre de lignes de B = nombre de lignes de A)

• B est inversible

• Sélectionner une colonne de A revient à sélectionner une variable.


Les variables sélectionnées pour construire B sont dites en base.

Une colonne j de A sera notée Aj

36
Base voisine
B et B ne diffèrent que par une colonne.
s variable (col.) sortante , r variable (col.) entrante

𝑎1𝑠 𝑎1𝑟
⋮ ⋮
B= 𝑎𝑟𝑠 , B= 𝑎𝑟𝑟
⋮ ⋮
𝑎𝑚𝑠 𝑎𝑚𝑟

On a alors:

1 0 𝑦1 0 0 𝑎1𝑟 𝑦1
0 ⋱ ⋮ 0 ⋮ ⋮
B-1B= 0 0 𝑝 0 où B-1 𝑎𝑟𝑟 = 𝑝
0 ⋮ ⋮
⋮ ⋱ 0
0 0 𝑦𝑚 0 1 𝑎𝑚𝑟 𝑦𝑚

37
Base voisine
Inversons B-1B
1 𝑦1 0
−1 1 −𝑦𝑝1 0
0 ⋱ 0 0 ⋱ 0
1
(B-1B)-1= 0 𝑝 0 = 0 𝑝
0
0 ⋱ 0 0 ⋱ 0
0 𝑦𝑚 1 0
𝑦𝑚
− 𝑝 1

Alors B-1= (B-1B)-1 B-1 se calcule simplement par pré-multiplication de B-1


par la matrice P=(B-1B)-1

P est simple à obtenir dès que l’on connait le produit de B-1 par
la colonne r de la matrice A

38
Exemples
𝑥1 + 𝑥2 + 𝑥3 =3
ቐ 𝑥1 + 𝑥4 =2
−𝑥1 + 𝑥2 + 𝑥5 = 1

B avec var. de base ={x3 , x4 , x5} , B avec var. de base ={x3 , x4 , x2}
1 0 0 1 0 1 1 1 0 −11 1 0 −1
B= 0 1 0 , B= 0 1 0 , B-1A2= 0 , p=1, P= 0 1 0 , B-1= P B-1 = 0 1 0
0 0 1 0 0 1 1 0 0 11 0 0 1

B avec var. de base ={x3 , x4 , x2} , B avec var. de base ={x1 , x4 , x2}
1
1 0 1 1 0 1 2 2
0 0
B= 0 1 0 , B= 1 1 0 , B-1A1= 1 , p=2, P= −12 1 0 , B-1= P B-1
0 0 1 −1 0 1 −1 1
0 1
2
1
2
0 −12
= −12 1 12
1
2
0 12 39
Passer d’un tableau à l’autre: pivotage

• Itération i, on a B-1Ax = B-1b

• Itération i+1 , on veut B-1Ax = B-1b

Or B-1 = PB-1 et donc on veut PB-1Ax = PB-1b

Donc il suffit de pré-multiplier le tableau précédent par P

40
Passer d’un tableau à l’autre : pivotage
col. r
𝑦1
1 −𝑦𝑝1 0

0 ⋱ 0
P= 0
1
0 𝑝 =
𝑝

0 ⋱ 0 ⋮
𝑦𝑚
0 − 𝑝 1 𝑦𝑚

Le tableau courant est pré-multiplié par P


La ligne du pivot est divisée par le pivot p

41
Passer d’un tableau à l’autre : pivotage
col. r
𝑦1
1 −𝑦𝑝1 0

0 ⋱ 0
P= 0
1
0 𝑝 =
𝑝

0 ⋱ 0 ⋮
𝑦𝑚
0 − 𝑝 1 𝑦𝑚

Le tableau courant est pré-multiplié par P


La ligne 1 du tableau devient la ligne 1 – la ligne du pivot multipliée par y1/p

42
Passer d’un tableau à l’autre : pivotage
col. r
𝑦1
1 −𝑦𝑝1 0

0 ⋱ 0
P= 0
1
0 𝑝 =
𝑝

0 ⋱ 0 ⋮
𝑦𝑚
0 − 𝑝 1 𝑦𝑚

Le tableau courant est pré-multiplié par P


La ligne m du tableau devient la ligne m – la ligne du pivot multipliée par ym/p

43
Passer d’un tableau à l’autre : pivotage
col. r
0

1 =


0

On peut vérifier que après avoir pré-multiplié le tableau courant par P


il apparaît une colonne de la matrice identité dans la colonne r du tableau

44
Tableau initial : base initiale x3, x4, x5
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

Zone bleu = contraintes


Zone verte = fonction objectif z

45
Variable entrant en base
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

Coût réduit le plus petit = -2  x2 rentre en base

46
Variable sortant de base
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

Coût réduit le plus petit = -2  x2 rentre en base

Qui sort ? Min { 3/1, ….}

47
Variable sortant de base
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

Coût réduit le plus petit = -2  x2 rentre en base

Qui sort ? Min { 3/1, 1/1 }

48
Variable sortant de base
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

Coût réduit le plus petit = -2  x2 rentre en base

Qui sort ? Min { 3/1, 1/1 } = 1 qui correspond à x5

Ratios du second membre sur les coefficients>0 de la col. x2 (en zone bleue)
min 31 , 11 = 1 qui correspond à x5

49
Changement de base : pivotage
Base x1 x2 x3 x4 x5
x3 1 1 1 0 0 = 3
x4 1 0 0 1 0 = 2
x5 -1 1 0 0 1 = 1
-1 -2 0 0 0 = 0+z

• Ligne du pivot = ligne de la variable qui sort ici x5 (ligne rose)


On la divise par le pivot entouré en rouge

• Une ligne i (autre que ligne du pivot)


Soit air le coef. à l’intersection de la ligne i et col. rentrante ici x2
On la remplace par ligne i – air  nouvelle ligne du pivot

50
Nouveau tableau : base x3, x4, x2
Base x1 x2 x3 x4 x5
x3 2 0 1 0 -1 = 2
x4 1 0 0 1 0 = 2
x2 -1 1 0 0 1 = 1
-3 0 0 0 2 = 2+z

On voit qu’il apparait une colonne de la matrice identité


sous la variable x2

51
Variable entrant en base
Base x1 x2 x3 x4 x5
x3 2 0 1 0 -1 = 2
x4 1 0 0 1 0 = 2
x2 -1 1 0 0 1 = 1
-3 0 0 0 2 = 2+z

Coût réduit le plus petit = -3  x1 rentre en base

52
Variable sortant de base
Base x1 x2 x3 x4 x5
x3 2 0 1 0 -1 = 2
x4 1 0 0 1 0 = 2
x2 -1 1 0 0 1 = 1
-3 0 0 0 2 = 2+z

Coût réduit le plus petit = -3  x1 rentre en base

Variable de base qui va s’annuler et sortir de base ?


Ratios du second membre sur les coefficients>0 de la col. x1 (en zone bleue)
min 22 , 21 = 1 qui correspond à x3

53
Changement de base : pivotage
Base x1 x2 x3 x4 x5
x3 2 0 1 0 -1 = 2
x4 1 0 0 1 0 = 2
x2 -1 1 0 0 1 = 1
-3 0 0 0 2 = 2+z

• Ligne du pivot = ligne de la variable qui sort ici x3 (ligne rose)


On la divise par le pivot entouré en rouge

• Une ligne i (autre que ligne du pivot)


Soit air le coef. à l’intersection de la ligne i et col. rentrante ici x1
On la remplace par ligne i – air  nouvelle ligne du pivot

54
Nouveau tableau : base x1, x4, x2
Base x1 x2 x3 x4 x5
x1 1 0 ½ 0 -½ = 1
x4 0 0 -½ 1 ½ = 1
x2 0 1 ½ 0 ½ = 2
0 0 3/ 0 ½ = 5+z
2

Tous les coûts réduits 0 (ligne verte)


STOP
La solution se lit dans le second membre pour les var. de base
Les var. hors-base sont nulles
La solution est x1=1, x4=1, x2=2, x3=x5=0
55
Un autre exemple
min 𝑧 = −𝑥1 − 2𝑥2
−𝑥1 + 𝑥2 ≤ 1
−𝑥1 + 2𝑥2 ≤ 3
s.c.
𝑥1 − 2𝑥2 ≤ 1
𝑥1 0 , 𝑥2 ≥ 0

56
On trace l’ensemble des solutions réalisables

x2
min 𝑧 = −𝑥1 − 2𝑥2
−𝑥1 + 𝑥2 ≤ 1 3

−𝑥1 + 2𝑥2 ≤ 3
s.c.
𝑥1 − 2𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1

x1
0 1 2 3

57
On minimise l’objectif z sur le domaine tracé

x2
min 𝑧 = −𝑥1 − 2𝑥2
−𝑥1 + 𝑥2 ≤ 1 3

−𝑥1 + 2𝑥2 ≤ 3
s.c.
𝑥1 − 2𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1
1
−𝛻𝑧 =
2
x1
0 1 2 3

L’opposé du gradient de z est une direction de descente


Pour minimiser pousser la droite z=0
dans la direction opposée au gradient de z

58
Déplacement maximum en restant dans le domaine

x2
min 𝑧 = −𝑥1 − 2𝑥2
−𝑥1 + 𝑥2 ≤ 1 3

−𝑥1 + 2𝑥2 ≤ 3
s.c.
𝑥1 − 2𝑥2 ≤ 1 2
𝑥1 0 , 𝑥2 ≥ 0
1

x1
0 1 2 3

On peut pousser la droite tant que l’on veut


sans quitter l’ensemble des solutions réalisables
Optimum non borné = -

59
Appliquons l’algorithme du simplexe

min 𝑧 = −𝑥1 − 2𝑥2


−𝑥1 + 𝑥2 + 𝑥3 =1
−𝑥1 + 2𝑥2 + 𝑥4 =3
s.c.
𝑥1 − 2𝑥2 + 𝑥5 = 1
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0

Mise sous forme standard: variables d’écart x3, x4, x5 et =

60
Tableau initial : base x3, x4, x5

Base x1 x2 x3 x4 x5
x3 -1 1 1 0 0 = 1
x4 -1 2 0 1 0 = 3
x5 1 -2 0 0 1 = 1
-1 -2 0 0 0 = 0+z

x2 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x2 (en zone bleue)
min 11 , 32 = 1 correspond à x3
x3 va sortir de base

61
Tableau suivant : base x2, x4, x5

Base x1 x2 x3 x4 x5
x2 -1 1 1 0 0 = 1
x4 1 0 -2 1 0 = 1
x5 -1 0 2 0 1 = 3
-3 0 2 0 0 = 2+z

x1 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x1 (en zone bleue)
min 11 = 1 correspond à x4
x4 va sortir de base

62
Tableau suivant : base x2, x1, x5

Base x1 x2 x3 x4 x5
x2 0 1 -1 1 0 = 2
x1 1 0 -2 1 0 = 1
x5 0 0 0 1 1 = 4
0 0 -4 3 0 = 5+z

x3 va rentrer en base
Dans la colonne x3 (zone bleue) tous les coefficients  0 : -1 , -2 , 0
x3 peut augmenter indéfiniment
Optimum non borné

63
Les deux conditions d’arrêt de
l’algorithme du simplexe
• Problème de minimisation
1. Coûts réduits 0  STOP optimum trouvé
2. Une variable xi de coût réduit <0 et telle que les
coefficients dans la colonne xi sont 0  STOP
optimum non borné -
• Problème de maximisation
1. Coûts réduits  0  STOP optimum trouvé
2. Une variable xi de coût réduit >0 et telle que les
coefficients dans la colonne xi sont 0  STOP
optimum non borné +
64
Méthodes des 2 phases
Trouver une base initiale et résoudre le problème

65
Base initiale
Jusqu’à maintenant, la base initiale était donnée par les variables d’écart.
Pas toujours possible.
min 𝑧 = −𝑥1 − 2𝑥2
2𝑥1 + 𝑥2 ≥ 2
𝑥 + 2𝑥2 ≥ 2
s.c. 1
𝑥1 + 𝑥2 ≤ 3
𝑥1 , 𝑥2 ≥ 0

Ajout variables d’écart


2𝑥1 + 𝑥2 − 𝑥3 =2
𝑥1 + 2𝑥2 − 𝑥4 =2
𝑥1 + 𝑥2 + 𝑥5 = 3
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0

Base x3 , x4 , x5 . Sol. de base pas réalisable : x3=-2, x4=-2, x5=3, x1=x2=0


car 2 variables <0
66
Recherche d’une base réalisable:
résolution du problème auxiliaire
- On ajoute des variables artificielles sur les contraintes où c’est nécessaire
c’est-à-dire sur les contraintes où les var. d’écart sont précédées du signe –
- On minimise ensuite la somme des variables artificielles afin de les rendre nulles

min 𝑧 ′ = 𝑎1 + 𝑎2
2𝑥1 + 𝑥2 − 𝑥3 + 𝑎1 =2
𝑥1 + 2𝑥2 − 𝑥4 + 𝑎2 = 2
s.c.
𝑥1 + 𝑥2 + 𝑥5 =3
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , 𝑎1 , 𝑎2 ≥ 0

On a la base a1, a2, x5. Sol. de base réalisable a1=2, a2=2, x5=3, x1=x2=x3=x4=0

On résout le problème avec cette base de départ.


Si on trouve a1=a2=0 (hors-base)
alors on a une base réalisable formée par 3 variables du problème de départ. 67
Méthode des 2 phases
• Phase 1
– Résolution du problème auxiliaire
– Si les variables artificielles se sont annulées
Alors on a une base de départ pour le problème initial,
aller en phase 2
Sinon le problème initial n’a pas de solution réalisable
(domaine vide) STOP
• Phase 2
– Résoudre le problème initial en partant de la base
trouvée en phase 1

68
Phase 1: tableau initial
Base x1 x2 x3 x4 x5 a1 a2
a1 2 1 -1 0 0 1 0 = 2
a2 1 2 0 -1 0 0 1 = 2
x5 1 1 0 0 1 0 0 = 3
-3 -3 1 1 0 0 0 = -4 + z’

Il faut exprimer 𝑧 ′ = 𝑎1 + 𝑎2 en fonction des variables hors-base


On remplace a1 et a2 par leur expression en fonction des variables x1, x2, x3, x4
donnée dans les deux premières ligne
On obtient la ligne verte

69
Phase 1-Tableau initial : base a1, a2, x5

Base x1 x2 x3 x4 x5 a1 a2
a1 2 1 -1 0 0 1 0 = 2
a2 1 2 0 -1 0 0 1 = 2
x5 1 1 0 0 1 0 0 = 3
-3 -3 1 1 0 0 0 = -4 + z’

x1 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x1 (en zone bleue)
min 22 , 21 , 31 = 1 correspond à a1
a1 va sortir de base

70
Phase 1-Tableau suivant : base x1, a2, x5

Base x1 x2 x3 x4 x5 a2
x1 1 ½ -½ 0 0 0 = 1
a2 0 3/ ½ -1 0 1 = 1
2

x5 0 ½ ½ 0 1 0 = 2
0 -3 /2 -½ 1 0 0 = -1 + z’

x2 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x2 (en zone bleue)
1 1 2 2
min 1/2
, 3/2 , 1/2 = correspond à a2
3
a2 va sortir de base

71
Phase 1-Tableau final : base x1, x2, x5

Base x1 x2 x3 x4 x5
x1 1 0 -2 /3 1/
3 0 = 2/
3

x2 0 1 1/ -2 /3 0 = 2/
3 3

x5 0 0 1/ 1/ 1 = 5/
3 3 3

0 0 0 0 0 = 0 + z’

Les variables artificielles sont hors-base


On a maintenant une base pour le problème initial

72
Phase 2: tableau initial
Base x1 x2 x3 x4 x5
x1 1 0 -2 /3 1/
3 0 = 2/
3

x2 0 1 1/ -2 /3 0 = 2/
3 3

x5 0 0 1/ 1/ 1 = 5/
3 3 3

0 0 0 -1 0 = 2 +z

Il faut exprimer 𝑧 = −𝑥1 − 2𝑥2 en fonction des variables hors-base x3, x4


On remplace x1 et x2 par leurs expressions en fonction de x3, x4
qui sont données en ligne 1 et 2 du tableau
On obtient la ligne verte

73
Phase 2-Tableau initial : base x1, x2, x5

Base x1 x2 x3 x4 x5
x1 1 0 -2 /3 1/
3 0 = 2/
3

x2 0 1 1/ -2 /3 0 = 2/
3 3

x5 0 0 1/ 1/ 1 = 5/
3 3 3

0 0 0 -1 0 = 2 +z

x4 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x4 (en zone bleue)
2/3 5/3
min 1/3
, 1/3 = 2 correspond à x1
x1 va sortir de base

74
Phase 2-Tableau suivant : base x4, x2, x5

Base x1 x2 x3 x4 x5
x4 3 0 -2 1 0 = 2
x2 2 1 -1 0 0 = 2
x5 -1 0 1 0 1 = 1
3 0 -2 0 0 = 4 +z

x3 va rentrer en base
Ratios du second membre sur les coefficients>0 de la col. x3 (en zone bleue)
min 11 = 1 correspond à x5
x5 va sortir de base

75
Phase 2-Tableau final : base x4, x2, x3

Base x1 x2 x3 x4 x5
x4 1 0 0 1 2 = 4
x2 1 1 0 0 1 = 3
x3 -1 0 1 0 1 = 1
1 0 0 0 2 = 6 +z

Tous les coûts réduits 0 (ligne verte)


STOP
La solution se lit dans le second membre pour les var. de base
Les var. hors-base sont nulles
La solution est x4=4, x2=3, x3=1, x1=x5=0
76
Utilisation du « solveur » Excel

77
Installation du solveur
• Cliquer sur l’onglet Fichier
• Cliquer sur Options (une fenêtre va s’ouvrir)
• Cliquer sur Compléments
• Cliquer sur Complément Solveur à droite (il va
devenir bleu)
• Cliquer sur OK en bas à droite

78
Définition d’un programme linéaire
• On définit dans une feuille Excel
– Une case par variable
– Une case pour l’objectif z
– Une case pour le membre gauche de chaque
contrainte
– Une case pour le membre droit de chaque
contrainte

79
Ici on voit la définition de l’objectif z

80
Ici on voit la définition du membre gauche de la contrainte 3

81
Accéder au solveur
• Cliquer sur l’onglet Données
• Il apparait en haut à droite Solveur
• Cliquer sur Solveur
• Un menu s’ouvre pour lui indiquer où se
trouve dans la feuille Excel
– L’objectif, si on le maximise ou minimise
– Les variables
– Les contraintes , le sens des contraintes

82
On clique sur solveur et on renseigne où sont l’objectif, les variables,
membres gauche et droit des contraintes , le sens des contraintes,
si on maximise ou minimise
Choix variables >=0 ou pas et choix méthode Simplex PL
On appuie sur résoudre

83
Conclusion
• PL modèle de nombreux problèmes: économie,
production, …
• Résolution efficace par l’algorithme du simplexe
et la méthode des tableaux
• D’autres algorithmes existent : points intérieurs,
méthodes des ellipsoïdes
• Il existe des « solveurs » libres ou payants
• PLNE (nombres entiers) problème discret résolu
par procédures arborescentes (B&B) mais la PL
est utilisée, et donc le simplexe, dans ces
procédures
84
Annexes
• Démonstration de la validité de l’algorithme
du simplexe en utilisant les conditions KKT

85
Conditions de Karush-Kuhn-Tucker
Soit le programme mathématique suivant
min 𝑓(𝑥)
𝑔𝑖 𝑥 ≤ 0 𝑖∈𝐼
s.c. ൝
ℎ𝑗 𝑥 = 0 𝑗∈𝐽
Avec 𝐼 ensemble (fini) d’indices des contraintes d’inégalité
Avec 𝐽 ensemble (fini) d’indices des contraintes d’égalité

𝑓, 𝑔𝑖 𝑖 ∈ 𝐼, ℎ𝑗 𝑗 ∈ 𝐽 , fonctions de classe C1

Conditions nécessaires d’optimalité (Karush-Khun-Tucker)


Si x* « qualifié » est un minimiseur local alors il existe 𝑖 ≥ 0 𝑖 ∈ 𝐼 tels que

𝛻𝑓 𝑥 ∗ + ෍ 𝑖 𝛻𝑔𝑖 𝑥 ∗ + ෍ 𝜇𝑗 𝛻ℎ𝑗 𝑥 ∗ = 0 (𝑐1)


𝑖∈𝐼 𝑗∈𝐽
𝑖 𝑔𝑖 𝑥 ∗ = 0 𝑖 ∈ 𝐼 (𝑐2)

(c1) est la généralisation de f(x)=0 (f désigne le gradient de f)


(c2) sont les conditions de complémentarité : une contrainte non saturée gi(x)<0  i=0
i iI j jJ sont appelés « multiplicateurs de Lagrange » 86
Conditions nécessaires
qualification des solutions de base réalisables non-dégénérées

𝑥𝐵∗ 𝐵 −1 𝑏
𝑥∗
Soit une solution de base = ∗ = t.q. B-1b>0 (non-dégénérée)
𝑥𝑁 0
Alors x* est qualifié : il vérifie la qualification de l’indépendance linéaire.

Démonstration
Considérons les contraintes saturées.
Parmi les contraintes d’inégalité x0 seules celles relatives aux variables hors-base
sont saturées x*N=0 car x*B>0 .
Ecrivons la matrice des contraintes saturées en mettant à gauche les colonnes relatives
aux variables de base et à gauche les colonnes relatives aux variables hors-base

𝐵 𝑁
0 𝐼
Cette matrice est de rang m car B et l’identité I sont inversibles.
Et les lignes sont linéairement indépendantes.

87
Conditions nécessaires
Théorème 1
Soit une base B telle que B-1b>0 (non dégénérée).
𝑥𝐵∗ −1
Si la solution de base 𝑥 = ∗ = 𝐵 𝑏 est optimale alors les coûts réduits

𝑥𝑁 0
−1
𝑐𝑁 − 𝑐𝐵 𝐵 𝑁 sont ≥ 0

Démonstration
x* est qualifié (cf page précédente) donc les conditions KKT sont nécessaires.
Elles s’écrivent dans le cas de notre PL:
il existe ≥0 associé aux contraintes -x≤0 et  associé aux contraintes b-Ax=0 tels que
c-A+=0 (cPL1)
x*=0 (cPL2)
B associé aux contraintes -xB ≤ 0 est nécessairement nul car x*B= B-1b > 0
Les conditions (cPL1) sur les indices de variables en base donne:
cB - B - B = 0  cB = B   = cBB-1
Les conditions (cPL1) sur les indices de variables en hors-base donne:
cN -N - N = 0  cN - cBB-1 N - N = 0  cN - cBB-1 N = N ≥ 0

88
Conditions de Karush-Kuhn-Tucker

Conditions suffisantes d’optimalité

Les conditions de KKT (c1) et (c2) sont des conditions suffisantes d’optimalité globale
dans le cas de programme convexe où f, gi iI sont convexes et hj jJ affines

C’est-à-dire qu’un point x* qui vérifie (c1) et (c2) est optimum global dans le cas convexe

Vérifier (c1) et (c2) c’est savoir exhiber les multiplicateurs ,  qui satisfont (c1) et (c2) avec x*

La programmation linéaire est un programme mathématique convexe

89
Conditions suffisantes
Théorème 2
Soit une base B réalisable (B-1 b≥0) avec coûts réduits cN - cB B-1 N ≥0
Alors le point défini par xB=B-1 b et xN=0 est optimum.

Démonstration
On utilise les conditions de Kuhn-Tucker-Tucker.
c-A-=0 (1)
x=0 (2)
Avec ≷0 associé aux contraintes b-Ax=0
et ≥0 associé aux contraintes -x≤0

En prenant =cBB-1 et  = c-A = c - cBB-1A, (1) est vérifié et on a


• Pour les colonnes hors-base : N = cN - cBB-1N ≥0
• Pour les colonnes en base : B = cB - cBB-1B = 0
Donc les signes de  sont respectés (≥0)
𝑥𝐵 𝑥𝐵
De plus 𝑥 = 𝐵 𝑁 𝑥 = 0 𝑁 =0
𝑁 0
Donc les conditions de complémentarité (2) sont satisfaites

Donc x satisfait les conditions de KKT. Comme on a un problème linéaire donc


convexe, les conditions de KKT sont des conditions suffisantes d’optimalité globale.
90

Vous aimerez peut-être aussi