You are on page 1of 21

Programmation linéaire

Chapitre 7 : Analyse post-optimale

Ilyas Himmich
i.himmich@insea.ac.ma

3 février 2022
Motivation

Rappel des conditions d’optimalité

Variation d’un membre de droite

Variation d’un coefficient de l’objectif

2
Motivation
Étant donnée le programme linéaire suivant dont x∗ est la solution optimale.

max z = 1000x1 + 1200x2

s.c.
10x1 + 5x2 ≤ 200 Main d’oeuvre
2x1 + 3x2 ≤ 60 Matière première
x1 ≤ 34 Limite du produit 1
x2 ≤ 14 Limite du produit 2
x1 ≥ 0, x2 ≥ 0

Questions
• Quel serait l’effet d’une modification d’un membre de droite (quantité d’une res-
source) sur la solution optimale x∗ ?
• Quel serait l’effet d’une modification d’un coefficient de l’objectif (coût d’une res-
source) sur la solution optimale x∗ ?

3
Motivation

Le problème s’écrit sous sa forme standard :

max Z = 1000x1 + 1200x2

s.c.
10x1 +5x2 +e1 = 200
2x1 +3x2 +e2 = 60
x1 +e3 = 34
+x2 +e4 = 14
x1 ≥ 0, x2 ≥ 0, ei ≥ 0 i = 1, . . . , 4

4
V.B. ×1 x2 e1 e2 e3 e4 b
e4 0 0 0.1 −0.5 0 1 4
x1 1 0 0.15 −0.25 0 0 15
e3 0 0 −0.15 0.25 1 0 19
x2 0 1 −0.1 0.5 0 0 10
c̄j 0 0 −30 −350 0 0 −27000

Figure – Solution optimale et tableau final

Solution optimale
La solution optimale est x∗ = (x1 , x2 ) = (15, 10) qui propose de produire 15 tonnes du
produit 1 et 10 tonnes du produit 2 avec un profit de

Z = 1000 ∗ 15 + 1200 ∗ 10 = 27000

5
Motivation
Modification de la quantité d’une ressource bi
Pour respecter les consignes de prévention d’une pandémie, le nombre d’heures
disponible pour la main d’œuvre va diminuer. Comment cela va affecter le profit
éventuelle ? (Est ce que l’opération reste rentable ?)

Question
Sous la contrainte d’heure de main d’œuvre ≤ 200 + ∆, quelle nouvelle répartition de
produits (x1 , x2 ), l’entreprise doit choisir pour réaliser un bénéfice maximal ?

max Z = 1000x1 + 1200x2

s.c.
10x1 +5x2 +e1 = 200 + ∆
2x1 +3x2 +e2 = 60
x1 +e3 = 34
+x2 +e4 = 14
x1 ≥ 0, x2 ≥ 0, ei ≥ 0 i = 1, . . . , 4

6
Motivation
Modification d’un coût cj
Les décideurs songent à augmenter ou baisser le prix du produit 1 et ils aimeront
savoir à quel point ce plan de production resterait optimale, compte tenu de cette
modification.

Question
Pour quelle valeur de ∆ le point (x1 , x2 ) = (15, 10) restera une solution optimale du
problème ?

max Z = (c1 + ∆)x1 + 1200x2


s.c.
10x1 +5x2 +e1 = 200
2x1 +3x2 +e2 = 60
x1 +e3 = 34
+x2 +e4 = 14
x1 ≥ 0, x2 ≥ 0, ei ≥ 0 i = 1, . . . , 4

7
Rappel des conditions d'optimalité

Considérons l’exemple :
max Z = 1000x1 + 1200x2
s.c.
10x1 +5x2 +e1 = 200
2x1 +3x2 +e2 = 60
x1 +e3 = 34
+x2 +e4 = 14
x1 ≥ 0, x2 ≥ 0, ei ≥ 0 i = 1, . . . , 4

Le système matriciel Ax = b avec les variables écarts est :


 
  x1  
10 5 1 0 0 0   x2 
 200
 2 3 0 1 0 0   e1   60 
    
 1 0 0 0 1 0   e2  =  34 
 
0 1 0 0 0 1  e3  14
e4

8
Rappel des conditions d'optimalité
D’après le tableau final du simplexe :
V.B. x1 x2 e1 e2 e3 e4 B
x1 1 0 0.15 −0.25 −0 0 15
x2 0 1 −0.1 0.5 0 0 10
e3 0 0 −0.15 0.25 1 0 19
e4 0 0 0.1 −0.5 0 1 4
c̄j 0 0 −30 −350 0 0 −27000

- Les variables de base : {x1 , x2 , e3 , e4 }.


- Les variables hors base :{e1 , e2 } .
   
10 5 0 0 1 0
 2 3 0 0   0 1 
B=  1 0 1
, N= 
0   0 0 
0 1 0 1 0 0

À l’aide d’une partition par blocs selon les ensembles d’indices B et N, on peut écrire :
[ ]
[ ] xB
Ax = b ⇐⇒ B N = b ⇐⇒ BxB + NxN = b
xN

9
L’écriture matricielle de l’exemple précédant devient :
      
10 5 0 0 x1 1 0 [ ] 200
 2 3 0 0   x2   0 1  e1  60 
      
 1 0 1 0   e3  +  0 0  e2 =  34 
0 1 0 1 e4 0 0 14

On peut calculer algébriquement la solution :

Ax = b ⇐⇒ BxB + NxN = b ⇐⇒ xB + B−1 NxN = B−1 b

En conclusion :

xB = B−1 (b − NxN )
les variables hors-base doivent être nulles, xN = 0 :

xB = B−1 b

10
Rappel des conditions d'optimalité

Vecteur des coûts réduits


On a que
z = cT x = cTB xB + cTN xN
On substitue la valeur de xB = B−1 (b − NxN )
[ ]
z = cTB B−1 (b − NxN ) + cTN xN
= cTB B−1 b + cTN xN − cTB B−1 NxN
[ ]
= cTB B−1 b + cTN − cTB B−1 N xN

Le tableau du simplexe s’écrit sous forme matricielle :

V.B. xB xN B
xB I [ T B −1
N ] B−1 b
c̄j 0 cN − cTB B−1 N −cTB B−1 b

11
Rappel des conditions d'optimalité

Le tableau précédant sera donc optimale si :


→ La solution de base est réalisable,

B−1 b ≥ 0

→ Les couts réduits sont tous negatifs,

cTN − cTB B−1 N ≤ 0

12
Variation d'un membre de droite

Sous quelle condition, la base B demeure optimale ?


Analysons l’effet d’une modification du ieme coefficient du vecteur b, noté bi .
Autrement dit, il s’agit d’étudier le comportement de la solution pour le problème
modifié lorsque que l’on remplace bi par :

bi = bi + ∆ ei

Soit B la matrice de base optimale du problème originale où la solution est donnée


par xB = B−1 b.

Effet sur la réalisabilité


Il faut remarquer que le vecteur b n’apparait que dans la condition de réalisabilité
(B−1 b ≥ 0) du problème d’origine. Par conséquent, la base B demeure optimale pour
le problème modifié si :

B−1 b ≥ 0 ⇐⇒ B−1 (b + ∆ ei ) ≥ 0

13
Variation d'un membre de droite

Reprenons notre exemple :

max Z = 1000x1 + 1200x2

s.c.
10x1 +5x2 +e1 = 200
2x1 +3x2 +e2 = 60
x1 +e3 = 34
+x2 +e4 = 14
x1 ≥ 0, x2 ≥ 0, ei ≥ 0 i = 1, . . . , 4
Et étudions les 2 scénarios :
′ [ ]
b → b = 200 + ∆ 60 34 14
′ [ ]
b → b = 200 60 + ∆ 34 14

14
Vérifions d’abord les conditions d’optimalité de B = {x1 , x2 , e3 , e4 } :

Réalisabilité de xB
    
0.15 −0.25 0 0 200 15
 −0.1 0.5 0 0     10 
−1 
xB = B b =    60 = 
−0.15 0.25 1 0   34   19  ≥ 0
0.1 −0.5 0 1 14 4

Optimalité de xB
  
0.15 −0.25 0 0 1 0
 −0.1 0.5 0 0   
cTN − cTB B−1 N = [0, 0] − [1000, 1200, 0, 0]   0 1 
 −0.15 0.25 1 0   0 0 
0.1 −0.5 0 1 0 0
 
0.15 −0.25
 −0.1 0.5 
= [0, 0] − [1000, 1200, 0, 0]  
 −0.15 0.25  = −[30, 380] ≤ 0
0.1 −0.5
Donc la solution (x1 , x2 ) = (15, 10) est optimale, i.e. x = (15, 10, 19, 4, 0, 0).
15
′ [ ]
b→b = 200 + ∆1 60 34 14

       
xb ∆1 15 0.15∆1 15 + 0.15∆1
z }| {      −0.1∆1   10 − 0.1∆1 
0   10
x̃B = B−1 (b ) = B−1 b +B−1  +   

 0  =  19   −0.15∆1  =  19 − 0.15∆1 
0 4 0.1∆1 4 + 0.1∆1

On aura que x̃B ≥ 0 si et seulement si : −40 ≤ ∆1 ≤ 100. Dans ce cas la base B


demeure optimale.
[ ]
bt → b =

200 60 + ∆2 34 14

  
    
xb 0 15 −0.25∆2 15 − 0.25∆2
z }| {    10   0.5∆2   10 + 0.5∆2 
−1 ′ −1 −1  ∆2 =   = 
x̃B = B (b ) = B b +B    19  +  0.25∆2   19 + 0.25∆2 
0
0 4 −0.5∆2 4 − 0.1∆2

On aura que x̃B ≥ 0 si et seulement si : −20 ≤ ∆2 ≤ 40. Dans ce cas la base B demeure
optimale.
16
Variation d'un coef cient de l'objectif
Effet sur la condition d’optimalité
On désire trouver la condition qui assure que la base B demeure optimale si l’on
change le coût cj d’une variable xj :

cj → cj = c j + ∆

En premier, on observe que la solution xB = B−1 b reste inchangée. Mais le tableau du


simplexe peut perdre le caractère optimal. Pour cela, on doit vérifier si la condition
d’optimalité est maintenue :

c̄j ≤ 0 ∀j = 1, 2, ..., n.

Cas possibles
Il y a 2 cas à analyser :
→ xj est une variable hors-base.
→ xj est une variable de base,

17
Variation d'un coef cient de l'objectif
Cas d’une variable hors base
Si le changement affecte le coût d’une variable hors base, seul le coût réduit de cette
variable va changer.
Soit xj une variable hors base, le nouveau coût réduit de xj est donné :
′ ′
c̄j = cj − cB B−1 A.j

c̄j = cj + ∆ − cB B−1 A.j

c̄j = c̄j + ∆

Ceci permet de définir un l’intervalle de stabilité sur ∆ permettant de maintenir la


base optimale.

Condition d’optimalité

→ Si c̄j = c̄j + ∆ ≤ 0 (pour un problème de maximisation), alors la base demeure
optimale.

→ Sinon, si c̄j = c̄j + ∆ > 0, alors base n’est plus optimale. Dans ce cas, il faut pour-
suivre l’algorithme de simplexe avec xj comme variable entrante.
18
Variation d'un coef cient de l'objectif
Cas d’une variable de base
Si le changement affecte le coût d’une variable de base, tous les coûts réduits
peuvent changer.
Soit xj une variable de base, d’ordre r dans la base optimale. On a :

c j = cj + ∆

c = c + ∆ ej

cB = cB + ∆ er

Le nouveau vecteur des coûts réduits est donné :


′ ′ ′
c̄ = c − cB B−1 A

c̄ = (c + ∆ ej ) − (cb + ∆ er ) B−1 A

c̄ = (c − cb B−1 A) + ∆ (ej − er B−1 A)

c̄ = c̄ + ∆ ej − ∆ A¯r.

→ j : l’indice de la variable.
→ r : l’ordre de la variable dans la base.
→ A¯r. : la reme ligne de (B−1 A) (ligne de (B−1 A) associée à la variable de base d’ordre
r). 19
Variation d'un coef cient de l'objectif

Condition d’optimalité

→ Si c̄ = c̄ + ∆ ej − ∆ A¯r. ≤ 0 (pour un problème de maximisation), alors la base
demeure optimale.

→ Sinon, si ∃j tel que c̄j > 0, alors base n’est plus optimale. Dans ce cas, il faut
poursuivre l’algorithme de simplexe. La variable entrante est celle ayant le coût
réduit le plus grand.

Remarque

La condition c̄ = c̄ + ∆ ej − ∆ A¯r. ≤ 0 permet d définir un intervalle de stabilité pour ∆,
dans lequel ∆ peut varier sans affecter la base optimale (et la solution optimale
puisque b ne change pas).

20
Variation d'un coef cient de l'objectif

Exemple
Considérons le PL suivant et son tableau final de simplexe :

min z = x1 + 32 x2 + 3x3

 x1 + x2 + 2x3 ≥ 6
x1 + 2x2 + x3 ≥ 10

x1 , x2 , x3 ≥ 0

V.B. x1 x2 x3 e1 e2 B
x1 1 0 3 −2 1 2
x2 0 1 −1 1 −1 4
c̄j 0 0 3/2 1/2 1/2 −8

→ Donner un intervalle de stabilité de ∆, si on fait varier c3 et c1 de façon disjointe.


→ Analyser le comportement de la solution optimale et de la valeur optimale dans
les deux cas.

21

You might also like