Vous êtes sur la page 1sur 137

Recherche Opérationnelle

M. El Ossmani
ENSAM–Meknès

2022–2023
Chapitre 3 :
Résolution des programmes linéaires
La méthode du simplexe
1. Présentation de la méthode du simplexe
I Développée initialement par George Dantzig en 1947.
I Outil principal de résolution des problèmes de programmation
linéaire.
I Il existe plusieurs formulations de cette méthode :
I méthode des tableaux,
I méthode algébrique (délicate dès que le nombre des variables
et des contraintes est important).
I Méthode exacte et itérative pour résoudre des problèmes
linéaires de grande taille :
I Elle consiste à suivre un certain nombre d’étapes (itérations)
avant d’obtenir la solution d’un problème donné,
I Elle permet de trouver la solution exacte en un nombre fini
d’étapes.
I Explore les sommets de la région admissible en améliorant à
chaque itération la valeur du critère.
I Basée sur l’algèbre des matrices.
2. Notions générales
2.1 Rappels
Un programme linéaire s’écrit généralement sous la forme :


 max (ou min) z = c1 x1 + c2 x2 + ... + cn xn
a11 x1 + a12 x2 + ... + a1n xn {≤, =, ≥} b1





 a21 x1 + a22 x2 + ... + a2n xn {≤, =, ≥} b2

.. ⇐⇒


 .




 am1 x1 + am2 x2 + ... + amn xn {≤, =, ≥} bm
x1 ≥ 0, . . . , xn ≥ 0

n

 X



 max / min z = cj xj


 j=1
Xn


 aij xj {≤, =, ≥} bi i = 1, m
j=1



xj ≥ 0

 j = 1, n
En utilisant la formulation matricielle :

T
 max / min z = c x

Ax {≤, =, ≥} b
 x ≥0

c = (c1 , c2 , ..., cn ) ∈ Rn , b = (b1 , b2 , ..., bm ) ∈ Rm


 
a11 a12 ··· a1n

 a21 a22 ··· a2n 

A= .. .. .. ..  matrice de type (m , n)

 . . . .


am1 am2 · · · amn
n
X
et cT x = cj xj .
j=1

aij (i = 1, m ; j = 1, n) : coefficients techniques ;


bi (i = 1, m) : seconds membres des contraintes ;
cj (j = 1, n) : coefficients de la fonction économique ;
xj (j = 1, n) : variables de décision (niveaux d’activité).
2.2 Forme canonique d’un PL

I Maximisation de la fonction objectif


I Toutes les contraintes sont des inégalités du type ≤
I Toutes les variables sont positives
n

 X



 max z = cj xj


 j=1
Xn


 aij xj ≤ bi i = 1, m
j=1



xj ≥ 0

 j = 1, n

I Forme matricielle

T
 max z = c x

Ax ≤ b
 x ≥0

Exemple :

 max z = 6x1 + 7x2 + 8x3

 1x1 + 2x2 + 1x3 ≤ 100

 
 max z = c T x

3x1 + 4x2 + 2x3 ≤ 120

(P1 ) ⇐⇒ Ax ≤ b
2x1 + 6x2 + 4x3 ≤ 200
x ≥0

 
1x1 + 0x2 + 1x3 ≤ 150




x1 , x2 , x3 ≥ 0

avec
   
1 2 1 100    
 3 4 2   120  6 x1
A=  7  ; x =  x2 
 2 6 4  ; b =  200  ; c =
  
8 x3
1 0 1 150
A de type (4 , 3),
m = 4 (contraintes) et n = 3 (variables de décision).
2.3 Forme standard d’un PL

I Maximisation de la fonction objectif


I Toutes les contraintes sont de type égalités (=)
I Toutes les variables sont positives
n

 X



 max z = cj xj


 j=1
Xn


 aij xj = bi i = 1, m
j=1



xj ≥ 0

 j = 1, n

I Forme matricielle

T
 max z = c x

Ax = b
 x ≥0

2.4 Passage entre les formes

1. min f ⇐⇒ max − f
Par exemple : minimiser x1 + 2x2 revient à maximiser −x1 − 2x2
car : f (x ∗ ) = min{ f (x ) , x ∈ X } ⇐⇒ f (x ∗ ) ≤ f (x ) , ∀x ∈ X
⇐⇒ −f (x ∗ ) ≥ −f (x ), ∀x ∈ X ⇐⇒ −f (x ∗ ) = max{ −f (x ) , x ∈ X }

2. ax ≥ b ⇐⇒ −ax ≤ −b

ax ≤ b
3. ax = b ⇐⇒
ax ≥ b

ax + y = b
4. ax ≤ b ⇐⇒ y est dite variable d’écart
y ≥0

ax − y = b
5. ax ≥ b ⇐⇒
y ≥0
6. x ≤ 0 ⇐⇒ −x ≥ 0
x = x+ − x− x + = max(x , 0)

7. x quelconque ⇐⇒ avec
x+ , x− ≥ 0 x − = max(−x , 0)
Propriété
Tout programme linéaire peut être mis sous la forme canonique et
sous la forme standard.
Propriété
Tout programme linéaire peut être mis sous la forme canonique et
sous la forme standard.

Remarques
1. Le passage entre la forme canonique et la forme standard se
fait par les transformations précédentes.
2. La forme canonique est utilisée pour la méthode graphique.
3. Tandis que la forme standard permet une résolution
matricielle et sera utilisée pour la méthode de simplexe.
Exemple : forme canonique → forme standard


 min 5x1 − 3x2
 x1 − x2 ≥ 2



Soit le problème : (P2 ) 2x + 3x ≤ 4
1 2
−x




 1 + 6x2 = 10
x1 , x2 ≥ 0

Exemple : forme canonique → forme standard


 min 5x1 − 3x2
 x1 − x2 ≥ 2



Soit le problème : (P2 ) 2x + 3x ≤ 4
1 2
−x




 1 + 6x2 = 10
x1 , x2 ≥ 0

En introduisant les variables d’écart x3 ≥ 0 et x4 ≥ 0 dans la


première et la deuxième contrainte, on met (P2 ) sous la forme
équivalente :
Exemple : forme canonique → forme standard


 min 5x1 − 3x2
 x1 − x2 ≥ 2



Soit le problème : (P2 ) 2x + 3x ≤ 4
1 2
−x




 1 + 6x2 = 10
x1 , x2 ≥ 0

En introduisant les variables d’écart x3 ≥ 0 et x4 ≥ 0 dans la


première et la deuxième contrainte, on met (P2 ) sous la forme
équivalente : 

 max −5x1 + 3x2
 x1 − x2 − x3 = 2



(P20 ) 2x1 + 3x2 + x4 = 4
−x1 + 6x2 = 10





x1 , x2 , x3 , x4 ≥ 0

(P20 ) est la forme standard de (P2 ).


3. Bases, variables de base et solution de base
Soit Ax = b un système d’équations linéaires avec :
A matrice de type (m , n), m ≤ n et rang(A) = m.
Le système est donc sous-déterminé c-à-d le nombre m d’équations
est inférieur au nombre n d’inconnues notées x1 , . . . , xn .
En plus, il existe au moins une sous-matrice de A notée B carrée
inversible de type (m , m) (d’ordre m).
3. Bases, variables de base et solution de base
Soit Ax = b un système d’équations linéaires avec :
A matrice de type (m , n), m ≤ n et rang(A) = m.
Le système est donc sous-déterminé c-à-d le nombre m d’équations
est inférieur au nombre n d’inconnues notées x1 , . . . , xn .
En plus, il existe au moins une sous-matrice de A notée B carrée
inversible de type (m , m) (d’ordre m).

Définitions
I On appelle base toute sous-matrice carrée B inversible de type
(m , m) extraite de A.
I Les variables associées aux colonnes de B sont dites variables
de base, les autres variables hors base.
I Par extension, on appellera également base la liste ordonnée
des variables de base ou de leurs indices (notée B).
Exemple :
Soit le système linéaire :
(
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
Ce système peut s’écrire Ax =
b , avec
 :
! x1 !
0 1 2 2  x 
 2  1
A= , x =  et b =
1 1 2 3  x3  1
x4
Exemple :
Soit le système linéaire :
(
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
Ce système peut s’écrire Ax =
b , avec
 :
! x1 !
0 1 2 2  x 
 2  1
A= , x =  et b =
1 1 2 3  x3  1
x4
A est de type (2 , 4) (2 équations et 4 variables).
!
1 2
La sous-matrice B = est inversible.
1 3
Ainsi B est une base.
Les variables de base associés à B sont x2 et x4 .
Les variables hors base associés à B sont x1 et x3 .
Remarques
I Une base est une matrice inversible et donc les variables de
base correspondent aux colonnes linéairement indépendantes
de la matrice A.
Remarques
I Une base est une matrice inversible et donc les variables de
base correspondent aux colonnes linéairement indépendantes
de la matrice A.
I Par conséquent, on peut avoir plusieurs bases dans une
matrice A.
En effet, on peut le remarquer dans l’exemple précédent :
!
0 1
est aussi une base et correspond alors aux variables
1 1
de base x1 et x2 .
Remarques
I Une base est une matrice inversible et donc les variables de
base correspondent aux colonnes linéairement indépendantes
de la matrice A.
I Par conséquent, on peut avoir plusieurs bases dans une
matrice A.
En effet, on peut le remarquer dans l’exemple précédent :
!
0 1
est aussi une base et correspond alors aux variables
1 1
de base x1 et x2 .
!
1 2
n’est pas une base (car non inversible).
1 2
Remarques
I Une base est une matrice inversible et donc les variables de
base correspondent aux colonnes linéairement indépendantes
de la matrice A.
I Par conséquent, on peut avoir plusieurs bases dans une
matrice A.
En effet, on peut le remarquer dans l’exemple précédent :
!
0 1
est aussi une base et correspond alors aux variables
1 1
de base x1 et x2 .
!
1 2
n’est pas une base (car non inversible).
1 2
I Avec les conditions précédentes, le système Ax = b admet
une infinité de solutions.
Le système de l’exemple précédent :
(
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
admet une infinité de solutions.
 
! x1 !
0 1 2 2  x2  1
On a : A = , x =  et b =
 
1 1 2 3  x3  1
x4
! !
1 2 3 −2
B= est une base et B −1 =
1 3 −1 1
Ax = b ⇐⇒ B −1 A x = B −1 b
! ! !
3 −2 0 1 2 2 −2 1 2 0
B −1 A = =
−1 1 1 1 2 3 1 0 0 1
! ! !
3 −2 1 1
B −1 b = =
−1 1 1 0
Donc le système est équivalent à :
 
  x1   
−2 1 2 0  x2  1 −2x1 + x2 + 2x3 = 1
 = ⇐⇒
1 0 0 1  x3  0 x1 + x4 = 0
x4

x2 = 1 + 2x1 − 2x3
⇐⇒
x4 = −x1
Donc le système est équivalent à :
 
  x1   
−2 1 2 0  x2  1 −2x1 + x2 + 2x3 = 1
 = ⇐⇒
1 0 0 1  x3  0 x1 + x4 = 0
x4

x2 = 1 + 2x1 − 2x3
⇐⇒
x4 = −x1

Le système précédent est équivalent au système de départ Ax = b mais


exprimé dans la base B.
Donc le système est équivalent à :
 
  x1   
−2 1 2 0  x2  1 −2x1 + x2 + 2x3 = 1
 = ⇐⇒
1 0 0 1  x3  0 x1 + x4 = 0
x4

x2 = 1 + 2x1 − 2x3
⇐⇒
x4 = −x1

Le système précédent est équivalent au système de départ Ax = b mais


exprimé dans la base B.
En fixant des valeurs arbitraires pour x1 et x3 , on obtient les solutions
correspondantes pour x2 et x4 .
Donc le système est équivalent à :
 
  x1   
−2 1 2 0  x2  1 −2x1 + x2 + 2x3 = 1
 = ⇐⇒
1 0 0 1  x3  0 x1 + x4 = 0
x4

x2 = 1 + 2x1 − 2x3
⇐⇒
x4 = −x1

Le système précédent est équivalent au système de départ Ax = b mais


exprimé dans la base B.
En fixant des valeurs arbitraires pour x1 et x3 , on obtient les solutions
correspondantes pour x2 et x4 .
En particulier, pour x1 = 0 et x3 = 0, on obtient la solution x2 = 1 et
x4 = 0.
Donc le système est équivalent à :
 
  x1   
−2 1 2 0  x2  1 −2x1 + x2 + 2x3 = 1
 = ⇐⇒
1 0 0 1  x3  0 x1 + x4 = 0
x4

x2 = 1 + 2x1 − 2x3
⇐⇒
x4 = −x1

Le système précédent est équivalent au système de départ Ax = b mais


exprimé dans la base B.
En fixant des valeurs arbitraires pour x1 et x3 , on obtient les solutions
correspondantes pour x2 et x4 .
En particulier, pour x1 = 0 et x3 = 0, on obtient la solution x2 = 1 et
x4 = 0.
On dit alors que cette solution est la solution de base associée à la base
B.
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
!
P
 
P xB
A= B N et x = où N est la sous-matrice de A
xN
correspondant aux variables hors base,
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
!
P
 
P xB
A= B N et x = où N est la sous-matrice de A
xN
correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
!
P
 
P xB
A= B N et x = où N est la sous-matrice de A
xN
correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
xN vecteur de Rn−m formé par les variables hors base.
Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
!
P
 
P xB
A= B N et x = où N est la sous-matrice de A
xN
correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
xN vecteur de Rn−m formé par les variables hors base.
On a donc :

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


Généralisation :
Soit Ax = b un système d’équations linéaires tel que A matrice de
type (m , n), m ≤ n . Soit B de type(m , m) une base de A.
Après permutation des colonnes de A de manière à ce que celles de
B soient en premier, on obtient :
!
P
 
P xB
A= B N et x = où N est la sous-matrice de A
xN
correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
xN vecteur de Rn−m formé par les variables hors base.
On a donc :

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

Pour déterminer toutes les solutions du système, on choisit donc


arbitrairement les valeurs de xN (paramètres) et on calcule les
valeurs correspondantes de xB .
Définitions
I On appelle solution de base (associée à la base B), la solution
particulière obtenue en prenant xN = 0.
xB est déterminée de façon unique par :

BxB = b ⇐⇒ xB = B −1 b

I Une solution de base est dite réalisable si xB ≥ 0 (toutes les


variables de base sont positives), autrement dit : B −1 b ≥ 0.
I Une solution de base est dite dégénérée si au moins une
variable de base est nulle. (le vecteur xB admet au moins une
composante nulle).
Définitions
I On appelle solution de base (associée à la base B), la solution
particulière obtenue en prenant xN = 0.
xB est déterminée de façon unique par :

BxB = b ⇐⇒ xB = B −1 b

I Une solution de base est dite réalisable si xB ≥ 0 (toutes les


variables de base sont positives), autrement dit : B −1 b ≥ 0.
I Une solution de base est dite dégénérée si au moins une
variable de base est nulle. (le vecteur xB admet au moins une
composante nulle).

Remarque :
Dans le cas d’un programme linéaire sous forme standard avec les
contraintes Ax = b , x ≥ 0, une solution de base réalisable
correspond géométriquement à un sommet du polyèdre des
contraintes.
Définitions
I On appelle solution de base (associée à la base B), la solution
particulière obtenue en prenant xN = 0.
xB est déterminée de façon unique par :

BxB = b ⇐⇒ xB = B −1 b

I Une solution de base est dite réalisable si xB ≥ 0 (toutes les


variables de base sont positives), autrement dit : B −1 b ≥ 0.
I Une solution de base est dite dégénérée si au moins une
variable de base est nulle. (le vecteur xB admet au moins une
composante nulle).

Remarque :
Dans le cas d’un programme linéaire sous forme standard avec les
contraintes Ax = b , x ≥ 0, une solution de base réalisable
correspond géométriquement à un sommet du polyèdre des
contraintes.
4. Méthode du simplexe en tableaux

4.1 Exemple :
Considérons le problème déjà étudié (Exemple 1, Chapitre 1).
Rappelons le programme linéaire qui modélise ce problème :
max z = 3x1 + 5x2



x1 ≤ 4




(P)  2x2 ≤ 12


 3x1 + 2x2 ≤ 18
x1 ≥ 0 ; x2 ≥ 0

où
x1 est le nombre de châssis du produit 1 (châssis en aluminium),
x2 est le nombre de châssis du produit 2 (châssis en bois).
La forme standard du programme linéaire (P) s’écrit :
La forme standard du programme linéaire (P) s’écrit :


 max z = 3x1 + 5x2 + 0e1 + 0e2 + 0e3
 1 + 0x2 + 1e1 + 0e2 + 0e3 = 4
1x


(PS) 0x1 + 2x2 + 0e1 + 1e2 + 0e3 = 12
 1 + 2x2 + 0e1 + 0e2 + 1e3 = 18
3x



x1 ≥ 0 ; x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0

où ei est la variable d’écart associée à la ième contrainte.


La forme standard du programme linéaire (P) s’écrit :


 max z = 3x1 + 5x2 + 0e1 + 0e2 + 0e3
 1 + 0x2 + 1e1 + 0e2 + 0e3 = 4
1x


(PS) 0x1 + 2x2 + 0e1 + 1e2 + 0e3 = 12
 1 + 2x2 + 0e1 + 0e2 + 1e3 = 18
3x



x1 ≥ 0 ; x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0

où ei est la variable d’écart associée à la ième contrainte.


Le système linéaire des contraintes associé à (PS) peut s’écrire :

Ãx̃ = b̃
x̃ ≥ 0
 
  x1  
1 0 1 0 0 
 x2 
 4
à =  0 2 0 1 0  ; x̃ = 
 e1  ; b̃ =  12 

3 2 0 0 1  e2  18
e3
La forme standard du programme linéaire (P) s’écrit :


 max z = 3x1 + 5x2 + 0e1 + 0e2 + 0e3
 1 + 0x2 + 1e1 + 0e2 + 0e3 = 4
1x


(PS) 0x1 + 2x2 + 0e1 + 1e2 + 0e3 = 12
 1 + 2x2 + 0e1 + 0e2 + 1e3 = 18
3x



x1 ≥ 0 ; x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0

où ei est la variable d’écart associée à la ième contrainte.


Le système linéaire des contraintes associé à (PS) peut s’écrire :

Ãx̃ = b̃
x̃ ≥ 0
 
  x1  
1 0 1 0 0  x2 
  4
à =  0 2 0 1 0  ; x̃ =   e1  ; b̃ =
  12 
3 2 0 0 1  e2  18
e3
z = c̃ x̃ = 3x1 + 5x2 + 0e1 + 0e2 + 0e3 avec c̃ = (3 , 5 , 0 , 0 , 0)
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Cela signifie qu’au départ on a :
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Cela signifie qu’au départ on a :
x1 = 0 ; x2 = 0 ; e1 = 4 ; e2 = 12 ; e3 = 18
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Cela signifie qu’au départ on a :
x1 = 0 ; x2 = 0 ; e1 = 4 ; e2 = 12 ; e3 = 18
Autrement dit : on ne produit rien au départ
Choix de la solution de base réalisable initiale :
 
1 0 0
Une base initiale est donnée par la matrice : I =  0 1 0 
 
0 0 1
Elle correspond aux variables de base e1 , e2 , e3
et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Cela signifie qu’au départ on a :
x1 = 0 ; x2 = 0 ; e1 = 4 ; e2 = 12 ; e3 = 18
Autrement dit : on ne produit rien au départ
et z = 3x1 + 5x2 + 0e1 + 0e2 + 0e3 = 0.
Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0
Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0

Variables de base : e1 , e2 , e3 Variables hors base : x1 , x2


Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0

Variables de base : e1 , e2 , e3 Variables hors base : x1 , x2


Solution de base : (x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0

Variables de base : e1 , e2 , e3 Variables hors base : x1 , x2


Solution de base : (x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
La dernière ligne donne les valeurs marginales (ou taux de
substitution) des variables hors base. Elle correspond à la valeur
de −z donc la marge bénéficiaire initiale z = 0.
Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0

Variables de base : e1 , e2 , e3 Variables hors base : x1 , x2


Solution de base : (x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
La dernière ligne donne les valeurs marginales (ou taux de
substitution) des variables hors base. Elle correspond à la valeur
de −z donc la marge bénéficiaire initiale z = 0.
La solution n’est pas optimale.
Tableau initial :
Le premier tableau du simplexe (tableau initial) s’écrit :

Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
−z 3 5 0 0 0 0

Variables de base : e1 , e2 , e3 Variables hors base : x1 , x2


Solution de base : (x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
La dernière ligne donne les valeurs marginales (ou taux de
substitution) des variables hors base. Elle correspond à la valeur
de −z donc la marge bénéficiaire initiale z = 0.
La solution n’est pas optimale.On recherche donc une solution de
base meilleure : d’où une autre itération.
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
I Une augmentation de 1 unité de x2 ferait croı̂tre la fonction objectif
de 5.
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
I Une augmentation de 1 unité de x2 ferait croı̂tre la fonction objectif
de 5.
On a intérêt à augmenter la valeur de la fonction objectif le plus
rapidement possible donc à augmenter la variable ayant le plus grand
coefficient strictement positif (cas de maximisation) de la dernière ligne :
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
I Une augmentation de 1 unité de x2 ferait croı̂tre la fonction objectif
de 5.
On a intérêt à augmenter la valeur de la fonction objectif le plus
rapidement possible donc à augmenter la variable ayant le plus grand
coefficient strictement positif (cas de maximisation) de la dernière ligne :
x2 variable entrante dans la base.
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
I Une augmentation de 1 unité de x2 ferait croı̂tre la fonction objectif
de 5.
On a intérêt à augmenter la valeur de la fonction objectif le plus
rapidement possible donc à augmenter la variable ayant le plus grand
coefficient strictement positif (cas de maximisation) de la dernière ligne :
x2 variable entrante dans la base.
Règle générale pour la variable entrante dans la base :
Itération du simplexe :
On augmente la fonction objectif en faisant entrer une variable dans la
base prenant la place d’une variable qui va sortir de la base.
Choix de la variable entrante dans la base :
I Une augmentation de 1 unité de x1 ferait croı̂tre la fonction objectif
de 3.
I Une augmentation de 1 unité de x2 ferait croı̂tre la fonction objectif
de 5.
On a intérêt à augmenter la valeur de la fonction objectif le plus
rapidement possible donc à augmenter la variable ayant le plus grand
coefficient strictement positif (cas de maximisation) de la dernière ligne :
x2 variable entrante dans la base.
Règle générale pour la variable entrante dans la base :
On sélectionne la variable hors base ayant le plus grand coefficient
strictement positif dans la dernière ligne (x2 dans notre cas).
Choix de la variable sortante de la base :
Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Une première idée est de pousser x2 le plus loin possible tant que les
variables de base restent positives.
Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Une première idée est de pousser x2 le plus loin possible tant que les
variables de base restent positives.
Supposons qu’on augmente x2 en maintenant x1 hors base ( x1 = 0),
alors :
Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Une première idée est de pousser x2 le plus loin possible tant que les
variables de base restent positives.
Supposons qu’on augmente x2 en maintenant x1 hors base ( x1 = 0),
alors :

e1 = 4 
 e2 = 12 − 2x2 ≥ 0


2x2 + e2 = 12

⇐⇒ e3 = 18 − 2x2 ≥ 0
2x2 + e3 = 18
x2 ≥ 0

 
x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0


 x2 ≤ 12/2 = 6
⇐⇒ x2 ≤ 18/2 = 9 =⇒ 0 ≤ x2 ≤ min{12/2 , 18/2} = 12/2 = 6
x2 ≥ 0

Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Une première idée est de pousser x2 le plus loin possible tant que les
variables de base restent positives.
Supposons qu’on augmente x2 en maintenant x1 hors base ( x1 = 0),
alors :

e1 = 4 
 e2 = 12 − 2x2 ≥ 0


2x2 + e2 = 12

⇐⇒ e3 = 18 − 2x2 ≥ 0
2x2 + e3 = 18
x2 ≥ 0

 
x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0


 x2 ≤ 12/2 = 6
⇐⇒ x2 ≤ 18/2 = 9 =⇒ 0 ≤ x2 ≤ min{12/2 , 18/2} = 12/2 = 6
x2 ≥ 0

Ainsi, la valeur limite que x2 peut prendre est x2 = 6. La deuxième


contrainte sera alors saturée (e2 = 0) :
Choix de la variable sortante de la base :
La question qui se pose est : jusqu’à quelle limite doit-on augmenter x2 ?
Une première idée est de pousser x2 le plus loin possible tant que les
variables de base restent positives.
Supposons qu’on augmente x2 en maintenant x1 hors base ( x1 = 0),
alors :

e1 = 4 
 e2 = 12 − 2x2 ≥ 0


2x2 + e2 = 12

⇐⇒ e3 = 18 − 2x2 ≥ 0
2x2 + e3 = 18
x2 ≥ 0

 
x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0


 x2 ≤ 12/2 = 6
⇐⇒ x2 ≤ 18/2 = 9 =⇒ 0 ≤ x2 ≤ min{12/2 , 18/2} = 12/2 = 6
x2 ≥ 0

Ainsi, la valeur limite que x2 peut prendre est x2 = 6. La deuxième


contrainte sera alors saturée (e2 = 0) : e2 variable sortante de la base.
Règle générale pour la variable sortante de la base :
Règle générale pour la variable sortante de la base :
On effectue le rapport des seconds membres des contraintes aux
coefficients strictement positifs correspondants à la variable entrante,
puis on sélectionne la variable de la base ayant le plus petit rapport
positif dans la colonne R (e2 dans notre cas).
Règle générale pour la variable sortante de la base :
On effectue le rapport des seconds membres des contraintes aux
coefficients strictement positifs correspondants à la variable entrante,
puis on sélectionne la variable de la base ayant le plus petit rapport
positif dans la colonne R (e2 dans notre cas).

Tableau 1

Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4/0 = ∞
← e2 0 2 0 1 0 12 12/2 = 6
e3 3 2 0 0 1 18 18/2 = 9
−z 3 5 0 0 0 0

x2 variable entrante dans la base.


e2 variable sortante de la base.
Règle générale pour la variable sortante de la base :
On effectue le rapport des seconds membres des contraintes aux
coefficients strictement positifs correspondants à la variable entrante,
puis on sélectionne la variable de la base ayant le plus petit rapport
positif dans la colonne R (e2 dans notre cas).

Tableau 1

Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4/0 = ∞
← e2 0 2 0 1 0 12 12/2 = 6
e3 3 2 0 0 1 18 18/2 = 9
−z 3 5 0 0 0 0

x2 variable entrante dans la base.


e2 variable sortante de la base.
Le coefficient à l’intersection de la colonne de la variable entrante
et la ligne de la variable sortante s’appelle pivot (2 dans notre cas).
Pour obtenir le tableau 2, on effectue des pivotages.
Pour obtenir le tableau 2, on effectue des pivotages.
Règles de calcul :
Pour obtenir le tableau 2, on effectue des pivotages.
Règles de calcul :
1. Les coefficients hors ligne et colonne du pivot sont obtenus par la règle :
Cpivot
Nv = Av − ( × Lpivot)
Pivot

I Nv : nouvelle valeur
I Av : ancienne valeur
I Cpivot : colonne du pivot
I Lpivot : ligne du pivot

2. Les coefficients de la colonne du pivot (sauf le pivot) sont nuls.


3. Les coefficients de la ligne du pivot sont divisés par le pivot.
Tableau 1

Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4/0 = ∞
← e2 0 2 0 1 0 12 12/2 = 6
e3 3 2 0 0 1 18 18/2 = 9
−z 3 5 0 0 0 0

Tableau 2

Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
−z 3 0 0 −5/2 0 −30

Variable entrante dans la base : x1


Variable sortante de la base : e3
Pivot : 3
Tableau 2

Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
−z 3 0 0 −5/2 0 −30

Tableau 3

Base x1 x2 e1 e2 e3 s.m
e1 0 0 1 1/3 −1/3 2
x2 0 1 0 1/2 0 6
x1 1 0 0 −1/3 1/3 2
−z 0 0 0 −3/2 −1 −36
Tous les coefficients de la dernière ligne (coefficients de la fonction
objectif) sont négatifs ou nuls : on ne peut plus augmenter la fonction
objectif. Le tableau 3 est optimal et l’algorithme du simplexe s’arrête.
Tous les coefficients de la dernière ligne (coefficients de la fonction
objectif) sont négatifs ou nuls : on ne peut plus augmenter la fonction
objectif. Le tableau 3 est optimal et l’algorithme du simplexe s’arrête.
On a donc : x1∗ = 2 ; x2∗ = 6 et zmax = 36.
Interprétation économique :
Tous les coefficients de la dernière ligne (coefficients de la fonction
objectif) sont négatifs ou nuls : on ne peut plus augmenter la fonction
objectif. Le tableau 3 est optimal et l’algorithme du simplexe s’arrête.
On a donc : x1∗ = 2 ; x2∗ = 6 et zmax = 36.
Interprétation économique :
L’entreprise doit produire 2 châssis de type 1 (en aluminium) et 6 châssis
de type 2 (en bois) pour réaliser un profit maximal de 36 UM.
A l’optimum les variables de base sont x1∗ = 2 x2∗ = 6 et e1∗ = 2 et les
variables hors base sont e2∗ = e3∗ = 0.

I La première contrainte n’est pas saturée : il reste 2 heures par


semaine disponibles dans l’atelier 1 (sous-emploi).
I La deuxième et la troisième contrainte sont saturées : il ne reste
plus de capacité disponible dans les ateliers 2 et 3 (plein emploi).

En effet :
4 − x1∗ = 4 − 2 = 2
12 − 2x2∗ = 12 − 2 × 6 = 0
18 − (3x1∗ + 2x2∗ ) = 18 − (3 × 2 + 2 × 6) = 0.
Remarques :

I La forme du tableau présente l’avantage de préserver la


structure du programme linéaire. En plus, elle met en évidence
les opérations matricielles (résolution des systèmes linéaires
par exemple) mis en œuvre durant la résolution.
Remarques :

I La forme du tableau présente l’avantage de préserver la


structure du programme linéaire. En plus, elle met en évidence
les opérations matricielles (résolution des systèmes linéaires
par exemple) mis en œuvre durant la résolution.
I Les variables de base se distinguent par le fait qu’elles forment
une matrice identité dans le système des contraintes et
n’interviennent pas dans la fonction objectif. les variables hors
base sont les variables restantes et leur coefficients dans la
fonction objectif sont représentés par les coûts réduits
Remarques :

I La forme du tableau présente l’avantage de préserver la


structure du programme linéaire. En plus, elle met en évidence
les opérations matricielles (résolution des systèmes linéaires
par exemple) mis en œuvre durant la résolution.
I Les variables de base se distinguent par le fait qu’elles forment
une matrice identité dans le système des contraintes et
n’interviennent pas dans la fonction objectif. les variables hors
base sont les variables restantes et leur coefficients dans la
fonction objectif sont représentés par les coûts réduits
I Rappelons que, une fois le choix du pivot établi, le passage
d’un tableau simplexe au tableau suivant s’effectue
manuellement en utilisant les règles de calculs :
I Les coefficients de la ligne du pivot sont divisés par le pivot.
I Les coefficients de la colonne du pivot (sauf le pivot) sont nuls.
I Les autres coefficients sont obtenus par la règle du rectangle.
Définition
1. Une solution de base xB associée à la base B est dite non
dégénérée si :
xB = B −1 b > 0
c-à-d le second membre du système réduit b̄ > 0
autrement dit, si toutes les variables de base sont strictement
positives.
Dans le cas contraire, on dit que la solution de base est dégénérée.

2. Un programme linéaire est non dégénéré si toute solution de base


réalisable est non dégénérée.
4.3 Problèmes particuliers :
Dans le paragraphe précédent, nous avons fait les deux hypothèses
suivantes :
1. La connaissance d’une solution de base réalisable initiale.
2. Le programme linéaire est non dégénéré.
En général, ces hypothèses ne sont pas toujours vérifiées.
Détermination d’une base réalisable initiale :
Pour déterminer une base initiale réalisable, considérons tout
d’abord le cas où le PL est donné sous la forme canonique :


 max z = c1 x1 + c2 x2 + ... + cn xn
a11 x1 + a12 x2 + ... + a1n xn ≤ b1





 a21 x1 + a22 x2 + ... + a2n xn ≤ b2

(PC ) ..


 .




 am1 x1 + am2 x2 + ... + amn xn ≤ bm
x1 ≥ 0, . . . , xn ≥ 0

En introduisant des variables d’écart (e1 , ..., em ) , nous obtenons le
PL sous forme standard :


 max z = c1 x1 + c2 x2 + ... + cn xn + 0e1 + ... + 0en
a 11 x1 + a12 x2 + ... + a1n xn + e1 = b1





 a21 x1 + a22 x2 + ... + a2n xn + e2 = b2

(PS) ..


 .




 am1 x1 + am2 x2 + ... + amn xn + em = bm
x1 ≥ 0, . . . , xn ≥ 0, e1 ≥ 0, . . . , em ≥ 0

En posant
 
à = A Im ; x̃ = (x1 , ..., xn , e1 , ..., em )T ; c̃ = (c1 , ..., cn , 0, ..., 0)T

où Im est la matrice identité d’ordre m.


(PS) s’écrit alors sous la forme matricielle :

T
 max z̃ = c̃ x̃

Ãx̃ = b
 x̃ ≥ 0

Comme Im est inversible on a une solution de base initiale :

B = Im ; N = A ; xB = B −1 b = b ; xN = x = 0

Si b ≥ 0 alors cette solution est en plus réalisable.


Le problème se pose dans le cas contraire c-à-d celui où il existe au
moins un indice j tel que bj < 0.
Dans ce cas, xB = b, xN = x = 0 est une solution de base mais
non réalisable et il faut procéder à une première étape qui consiste
à déterminer une solution de base réalisable de départ : c’est la
phase I de la méthode du simplexe.
Problème de dégénérescence :
Dans le cas où le PL est dégénéré, on peut rencontrer les situations
suivantes :

I Lors de la détermination de la variable entrante, nous sommes en


présence d’au moins deux variables hors base ayant le même et le
plus élevé coefficient strictement positif dans la dernière ligne.
I Lors de la détermination de la variable sortante, nous sommes en
présence d’au moins deux variables de base ayant le même et le plus
petit rapport positif dans la dernière colonne.
I il est possible, après un certain nombre d’itérations, de retrouver le
tableau de départ (problème de cyclage).

Plusieurs remèdes au cyclage dans les cas dégénérés sont utilisés, le plus
connu c’est la règle de Bland :
Lorsque plusieurs variables sont susceptibles d’entrer ou de sortir de la
base, on choisit toujours la variable xr ayant le plus petit indice r .
Exemples :
T1
Base x1 x2 x3 x4 x5 x6 s.m R
x5 4 7 0 0 1 4 4 4/7
x4 2 8 0 1 0 3 0 0
x3 -2 9 1 0 0 2 0 0
−z -5 2 0 0 0 5 -3

Variables candidates à enter dans la base : x2


Variables candidates à sortir de la base : x4 et x3 . On choisit donc
x3 .

T2

Base x1 x2 x3 e1 e2 e3 s.m R
← e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
−z 2 3 1 0 0 1 0
T3

Base x1 x2 x3 e1 e2 e3 s.m
e1 1 2 5 1 0 0 3
e2 3 1 3 0 1 0 10
e3 2 8 1 0 0 1 8
−z 3 3 2 0 0 0 0

T4

Base x1 x2 e1 e2 s.m
e1 0 -2 1 -1 20
x1 1 0 0 2,5 3
−z 0 16 0 -3 -32

Tous les coefficients de la colonne de la variable entrante x2 sont


négatifs ou nuls : zmax = +∞
Un autre cas particulier : infinité de solutions optimales
Si à la fin des itérations, une variable est hors base avec un
coefficient nul dans la dernière ligne du tableau optimal, alors on a
une arête (face,...) optimale. Les autres sommets optimaux
peuvent être obtenus en faisant rentrer cette variable dans la base.
Considérons, par exemple, le tableau optimal suivant :

Base x1 x2 e1 e2 s.m
x1 1 0 1 1 3
x2 0 1 -1 -2 2
−z 0 0 -1 0 -8

On fait entrer e2 dans la base et x1 sera alors la variable sortante.


Ainsi, on obtient une autre solution optimale :

Base x1 x2 e1 e2 s.m
e2 1 0 1 1 3
x2 2 1 1 0 8
−z 0 0 1 0 -8
4.4 Simplexe avec minimisation de l’objectif :
Dans le cas de minimisation de l’objectif, les itérations et
l’optimalité de la méthode du simplexe sont déterminés par les
critères suivants :
I Critère de la variable entrante : On choisit la variable hors
base ayant le coût réduit le plus négatif.
I Critère de la variable sortante : le même que dans le cas de
maximisation, puisque ce critère est lié à la réalisabilité des
variables.
I Critère d’optimalité : L’algorithme du simplexe s’arrête
quand tous les coûts réduits des variables hors base
(coefficients de la dernière ligne du tableau simplexe) sont
tous positifs ou nuls.
Les critères précédents découlent de la propriété suivante :
minimiser z = c1 x1 + ... + cn xn revient à maximiser −z .
Exemple :
Soit le problème :


 min −x1 − 2x2
 −3x1 + 2x2 ≤ 2



(PM) −x1 + 2x2 ≤ 4
x1 + x2 ≤ 5





x1 , x2 ≥ 0

En rajoutant les variables d’écart on obtient la forme standard :




 min −x1 − 2x2
 −3x1 + 2x2 + e1 = 2



(PMS) −x1 + 2x2 + e2 = 4




 x1 + x2 + e3 = 5
x1 , x2 , e1 , e2 , e3 ≥ 0

On remarque que tous les termes du second membre (2, 4 et 5)


sont positifs. Dans notre cas, l’obtention d’une solution de base
réalisable initiale est triviale. Elle correspond aux variables de base
e1 , e2 , e3 et variables hors base x1 , x2 .
La solution de base réalisable initiale est :
Les contraintes de (PMS) peuvent être représentées par le
système : (
Ãx̃ = b̃
x̃ ≥ 0
 
  x1  
−3 2 1 0 0 
 x2 
 2
à =  −1 2 0 1 0  ; x̃ =  e1  ; b̃ = b =  4 
     
 
1 1 0 0 1  e2  5
e3
z = c̃ T x̃ = −x1 − 2x2 + 0e1 + 0e2 + 0e3 avec
c̃ = (x1 , x2 , 0 , 0 , 0)T
Une 
base initialeest donnée par la matrice identité :
1 0 0
I= 0 1 0  . La solution de base réalisable initiale est :
 
0 0 1
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 2 , 4 , 5)
Tableau 1

Base x1 x2 e1 e2 e3 s.m R
← e1 -3 2 1 0 0 2 1
e2 -1 2 0 1 0 4 2
e3 1 1 0 0 1 5 5
−z -1 -2 0 0 0 0

x2 variable entrante dans la base.


e1 variable sortante de la base.

Tableau 2

Base x1 x2 e1 e2 e3 s.m R
x2 -3/2 1 1/2 0 0 1 −2/3
← e2 2 0 -1 1 0 2 1
e3 5/2 0 -1/2 0 1 4 8/5
−z -4 0 1 0 0 2
Tableau 3

Base x1 x2 e1 e2 e3 s.m R
x2 0 1 -1/4 3/4 0 5/2 10
x1 1 0 -1/2 1/2 0 1 -2
← e3 0 0 3/4 -5/4 1 3/2 2
−z 0 0 -1 2 0 6

Tableau 4
Base x1 x2 e1 e2 e3 s.m
x2 0 1 0 1/3 1/3 3
x1 1 0 0 -1/3 2/3 2
e1 0 0 1 -5/3 4/3 2
−z 0 0 0 1/3 4/3 8

Tous les coefficients de la dernière ligne sont positifs ou nuls : le


tableau 4 est optimal et
x1∗ = 2 ; x2∗ = 3 ; e∗1 = 2 ; e∗2 = e∗3 = 0 ; z∗ = −8
5. Initialisation de la méthode du simplexe

Jusqu’ici nous avons vu comment trouver une solution de base réalisable


initiale lorsque le programme linéaire de départ est sous forme canonique :

 max z = c T x
Ax ≤ b
x ≥0

alors en ajoutant une variable d’écart ei à chaque contrainte pour la


transformer en une égalité, la matrice à qui correspond
 à l’ensemble des
contraintes Ãx = b prend la forme : Ã = A Im
avec x̃ = (x1 , ..., xn , e1 , ..., em )T et Im est la matrice identité d’ordre m.
Le passage en forme standard permet d’avoir une base initiale
B0 = {ei , i = 1...m} facilement.
Si le second membre est positif alors cette base est réalisable et
correspond à l’origine : xN = (x1 , ..., xn ) = 0 et xB = (e1 , ..., em ).
Mais dans le cas général on peut avoir les situations suivantes :
I L’une des m contraintes possède un second membre bi
négatif, alors il y a violation de la contrainte de positivité pour
la variable d’écart concernée (ei = bi < 0).
Mais dans le cas général on peut avoir les situations suivantes :
I L’une des m contraintes possède un second membre bi
négatif, alors il y a violation de la contrainte de positivité pour
la variable d’écart concernée (ei = bi < 0).
I Le problème contient déjà des contraintes d’égalité alors ces
dernières n’ont pas besoin de l’adjonction de variables d’écart
et il n’existe pas de sous-matrice identité dans la matrice Ã.
Mais dans le cas général on peut avoir les situations suivantes :
I L’une des m contraintes possède un second membre bi
négatif, alors il y a violation de la contrainte de positivité pour
la variable d’écart concernée (ei = bi < 0).
I Le problème contient déjà des contraintes d’égalité alors ces
dernières n’ont pas besoin de l’adjonction de variables d’écart
et il n’existe pas de sous-matrice identité dans la matrice Ã.
Il est alors nécessaire de mettre en place une procédure pour
obtenir une matrice identité comme matrice de base initiale et qui
correspond à une solution de base initiale réalisable. En général,
une telle procédure est basée sur l’adjonction de variables
artificielles.
Mais dans le cas général on peut avoir les situations suivantes :
I L’une des m contraintes possède un second membre bi
négatif, alors il y a violation de la contrainte de positivité pour
la variable d’écart concernée (ei = bi < 0).
I Le problème contient déjà des contraintes d’égalité alors ces
dernières n’ont pas besoin de l’adjonction de variables d’écart
et il n’existe pas de sous-matrice identité dans la matrice Ã.
Il est alors nécessaire de mettre en place une procédure pour
obtenir une matrice identité comme matrice de base initiale et qui
correspond à une solution de base initiale réalisable. En général,
une telle procédure est basée sur l’adjonction de variables
artificielles.
On distingue deux méthodes principales pour l’initialisation du
simplexe :
I La méthode du grand M.
I La méthode des deux phases.
Méthode du grand M :
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =

Etapes :
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =

Etapes :

1. On rajoute une variable d’écart e1 à la 1 ère contrainte (pour avoir l’égalité).


Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =

Etapes :

1. On rajoute une variable d’écart e1 à la 1 ère contrainte (pour avoir l’égalité).


2. On rajoute en plus deux variables artificielles a1 et a2 aux 2 contraintes.
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =

Etapes :

1. On rajoute une variable d’écart e1 à la 1 ère contrainte (pour avoir l’égalité).


2. On rajoute en plus deux variables artificielles a1 et a2 aux 2 contraintes.
3. Pour s’assurer que ces variables artificielles sortent de la base (c’est-à-dire
a1 = a2 = 0) avant d’atteindre la solution optimale : On peut leur associer un
grand coût −M dans la fonction objectif.
Méthode du grand M :
Considérons le PL suivant :

 max z = x1 + x2
2x1 + x2 ≥ 4
(P1 )
 x1 + 2x2 = 6
x1 , x2 ≥ 0

On remarque que les termes du second membre sont tous positifs, mais
I la 1 ère contrainte est de type ≥
I la 2 ème contrainte est de type =

Etapes :

1. On rajoute une variable d’écart e1 à la 1 ère contrainte (pour avoir l’égalité).


2. On rajoute en plus deux variables artificielles a1 et a2 aux 2 contraintes.
3. Pour s’assurer que ces variables artificielles sortent de la base (c’est-à-dire
a1 = a2 = 0) avant d’atteindre la solution optimale : On peut leur associer un
grand coût −M dans la fonction objectif.

Alors : si ces variables restent dans la base elles vont causer une diminution
importante de la valeur de la fonction objectif. Ce qui nous contraint à les faire
sortir le plutôt possible de la base.
On obtient alors le PL :


 max z = x1 + x2 −Ma1 − Ma2

 2x + x − e + a = 4
1 2 1 1

 x1 + 2x2 + a 2 = 6


x1 , x2 , e1 , a1 , a2 ≥ 0

qui est sous forme standard.


On remarque que les contraintes du dernier problème peuvent
s’écrire : (
Ãx̃ = b̃
x̃ ≥ 0
 
x1
!  x2  !
2 1 −1 1 0   4
à = ; x̃ =  e1  ; b̃ = b =
 
1 2 0 0 1   6
 a1 
a2
La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant
exprimer les variables de base en fonction des variables hors base.
La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant
exprimer les variables de base en fonction des variables hors base.
( (
2x1 + x2 − e1 + a1 = 4 a1 = 4 − 2x1 − x2 + e1

x1 + 2x2 + a2 = 6 a2 = 6 − x1 − 2x2
La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant
exprimer les variables de base en fonction des variables hors base.
( (
2x1 + x2 − e1 + a1 = 4 a1 = 4 − 2x1 − x2 + e1

x1 + 2x2 + a2 = 6 a2 = 6 − x1 − 2x2

La fonction objectif devient alors :


La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant
exprimer les variables de base en fonction des variables hors base.
( (
2x1 + x2 − e1 + a1 = 4 a1 = 4 − 2x1 − x2 + e1

x1 + 2x2 + a2 = 6 a2 = 6 − x1 − 2x2

La fonction objectif devient alors :

z = x1 + x2 −Ma1 − Ma2
= x1 + x2 − M(4 − 2x1 − x2 + e1 ) − M(6 − x1 − 2x2 )
z = (3M + 1)x1 + (3M + 1)x2 − Me1 − 10M
La solution de base initiale est donnée par :

I Variables de base : a 1 = 4 ; a2 = 6
I Variables hors base : x1 = x2 = e1 = 0
Pour établir le premier tableau du simplexe, il faut maintenant
exprimer les variables de base en fonction des variables hors base.
( (
2x1 + x2 − e1 + a1 = 4 a1 = 4 − 2x1 − x2 + e1

x1 + 2x2 + a2 = 6 a2 = 6 − x1 − 2x2

La fonction objectif devient alors :

z = x1 + x2 −Ma1 − Ma2
= x1 + x2 − M(4 − 2x1 − x2 + e1 ) − M(6 − x1 − 2x2 )
z = (3M + 1)x1 + (3M + 1)x2 − Me1 − 10M

Notons aussi que : si x1 = x2 = e1 = 0 alors z = z̄ = −10M.


Nous pouvons maintenant démarrer le simplexe avec le tableau
suivant :

Tableau 1

Base x1 x2 e1 a1 a2 s.m R
← a1 2 1 -1 1 0 4 2
a2 1 2 0 0 1 6 6
−z 3M+1 3M+1 -M 0 0 10 M
Nous pouvons maintenant démarrer le simplexe avec le tableau
suivant :

Tableau 1

Base x1 x2 e1 a1 a2 s.m R
← a1 2 1 -1 1 0 4 2
a2 1 2 0 0 1 6 6
−z 3M+1 3M+1 -M 0 0 10 M

x1 et x2 candidates à entrer dans la base. En appliquant la règle de


Bland, x1 entrante et a1 sort de la base.
Nous pouvons maintenant démarrer le simplexe avec le tableau
suivant :

Tableau 1

Base x1 x2 e1 a1 a2 s.m R
← a1 2 1 -1 1 0 4 2
a2 1 2 0 0 1 6 6
−z 3M+1 3M+1 -M 0 0 10 M

x1 et x2 candidates à entrer dans la base. En appliquant la règle de


Bland, x1 entrante et a1 sort de la base.

Tableau 2

Base x1 x2 e1 a1 a2 s.m R
x1 1 1/2 -1/2 1/2 0 2 4
← a2 0 3/2 1/2 -1/2 1 4 8/3
−z 0 (3M+1)/2 (M+1)/2 -(3M+1)/2 0 -2 + 4M
Tableau 3

Base x1 x2 e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
← x2 0 1 1/3 -1/3 2/3 8/3 8
−z 0 0 1/3 -M-1/3 -M-1/3 -10/3
Tableau 3

Base x1 x2 e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
← x2 0 1 1/3 -1/3 2/3 8/3 8
−z 0 0 1/3 -M-1/3 -M-1/3 -10/3

Tableau 4
Base x1 x2 e1 a1 a2 s.m
x1 1 2 0 0 1 6
e1 0 3 1 -1 2 8
−z 0 -1 0 -M -M-1 -6
Tableau 3

Base x1 x2 e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
← x2 0 1 1/3 -1/3 2/3 8/3 8
−z 0 0 1/3 -M-1/3 -M-1/3 -10/3

Tableau 4
Base x1 x2 e1 a1 a2 s.m
x1 1 2 0 0 1 6
e1 0 3 1 -1 2 8
−z 0 -1 0 -M -M-1 -6

Le tableau 4 est optimal et x1∗ = 6 ; x2∗ = 0 ; e1∗ = 8 ; zmax = 6.


Tableau 3

Base x1 x2 e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
← x2 0 1 1/3 -1/3 2/3 8/3 8
−z 0 0 1/3 -M-1/3 -M-1/3 -10/3

Tableau 4
Base x1 x2 e1 a1 a2 s.m
x1 1 2 0 0 1 6
e1 0 3 1 -1 2 8
−z 0 -1 0 -M -M-1 -6

Le tableau 4 est optimal et x1∗ = 6 ; x2∗ = 0 ; e1∗ = 8 ; zmax = 6.


On remarque que chaque variable artificielle (a1 et a2 ) a été mise
hors base de telle sorte que leurs valeurs sont nulles dans le tableau
optimal.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
p
X
I Remplacer la fonction objectif par z = max c T x − M ai
i=1
où M est une constante positive assez grande.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
p
X
I Remplacer la fonction objectif par z = max c T x − M ai
i=1
où M est une constante positive assez grande.
I En pratique, on n’est pas obligé de donner une valeur à M.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
p
X
I Remplacer la fonction objectif par z = max c T x − M ai
i=1
où M est une constante positive assez grande.
I En pratique, on n’est pas obligé de donner une valeur à M.
I Chaque fois que M est comparé à un nombre, il sera toujours considéré comme
plus grand.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
p
X
I Remplacer la fonction objectif par z = max c T x − M ai
i=1
où M est une constante positive assez grande.
I En pratique, on n’est pas obligé de donner une valeur à M.
I Chaque fois que M est comparé à un nombre, il sera toujours considéré comme
plus grand.
I Si la méthode du simplexe se termine avec une solution (x ∗ , a∗ ) telle que
a∗ = (a1∗ , ..., ap∗ ) = 0, alors x ∗ est une solution optimale du problème de départ.
Principe du Méthode grand M

En général, la méthode du grand M (”big M”, ”Méthode M”) consiste à :


I Introduire des variables artificielles ai , (i = 1, ..., p) dans les contraintes qui
posent un problème pour la réalisabilité de la base initiale.
Ce qui permet de faire apparaı̂tre une sous-matrice identité dans la matrice à de
la forme standard.
p
X
I Remplacer la fonction objectif par z = max c T x − M ai
i=1
où M est une constante positive assez grande.
I En pratique, on n’est pas obligé de donner une valeur à M.
I Chaque fois que M est comparé à un nombre, il sera toujours considéré comme
plus grand.
I Si la méthode du simplexe se termine avec une solution (x ∗ , a∗ ) telle que
a∗ = (a1∗ , ..., ap∗ ) = 0, alors x ∗ est une solution optimale du problème de départ.
I Si la méthode du simplexe se termine avec une solution (x ∗ , a∗ ) telle que
a∗ 6= 0 (c-à-d qu’au moins une variable artificielle est encore dans la base dans
le tableau optimal), alors le problème est non réalisable.

Vous aimerez peut-être aussi