Vous êtes sur la page 1sur 38

Chapitre 4:

Variantes de l’algorithme du
simplexe

1
• Pour initialiser l’algorithme du simplexe, il faut disposer d’une solution de
base réalisable initiale.
• Or une telle solution de base initiale n’est pas nécessairement disponible.
• De plus, en général, nous ne savons même pas si le domaine réalisable n’est
pas vide.
• La phase I du simplexe:
→ indique si le problème est réalisable (i.e., son domaine réalisable
n’est pas vide)
→ si oui, fournit l’information pour générer une solution de base
réalisable initiale.

2
Prenons par exemple ce problème linéaire et sa forme standard des variables
d ’écart ei dont ajoutées aux contraintes d’infériorité , une variable d ’excès si est
soustraite en cas de supériorité, et des variables artificielles ai sont encore
ajoutées aux contraintes de supériorité et d ’égalité

1000 x1  1200 x2  Z max 1000 x1  1200 x2  Z max


10 x1  5 x2  200 10 x1  5 x2  e1  200
2 x1  3 x2  60 2 x1  3 x2  a2  60
x1  12 x1  e3  12
x2  6 x2  s4  a4  6
x1 , x2  0 x1 , x2 , e1 , e3 , s3 , a2 , a4  0
3
La phase I du simplexe

Cette phase permet de trouver une solution de base réalisable initiale lorsque la
base donnée par les variables d’écart n’est pas réalisable.
D’où vient le problème ?
 j
ai , j x j  bi avec bi 0
ou
 j
ai , j x j  ei avec ei 0

Après ajout de la variable d’écart ou d’ excès , la formule devient:


xn  i  bi   j ai , j x j
ou
xn  i   j
ai , j x j  ei
Comme bi < 0 et ei > 0 la solution de base n’est pas réalisable.
4
Cas simple

• Soit le problème de programmation linéaire suivant:


En utilisant les variables
min z  c1 x1  c2 x2  cn xn d’écart
Sujet à xn+1
a11 x1  a12 x2  ...  a1n xn  b1 xn+2
a21 x1  a22 x2  ...  a2 n xn  b2 .
. . . .
.
. . . .
am1 x1  am 2 x2  ...  amn xn  bm xn+m
xj  0 j  1, 2,..., n

5
Cas simple

• Le problème devient
Les variables de base de la solution
initiale sont xn+1, xn+2,…, xn+m
min z
Sujet à
a11 x1  a12 x2  ...  a1n xn  xn 1  b1
a21 x1  a22 x2  ...  a2 n xn  xn  2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  xn  m  bm
c1 x1  c2 x2  ...  cn xn z 0
xj  0 j  1, 2,..., n, n  1, , n  m

6
Exemple

• Transformons les contraintes d’inégalité du problème en


égalité avec les variables d’écart u, p et h:

min z = – 8x – 6y min z = – 8x – 6y
Sujet à Sujet à
5x + 3y ≤ 30 5x + 3y + u =30
2x + 3y ≤ 24 2x + 3y + p =24
1x + 3y ≤ 18 1x + 3y + h = 18
x, y ≥ 0 x, y, u, p, h ≥ 0

7
Cas plus compliqué

• Considérons plutôt le problème suivant:


En utilisant les variables
min z  c1 x1  c2 x2  cn xn
d’écart
Sujet à xn+1
a11 x1  a12 x2  ...  a1n xn  b1 xn+2
a21 x1  a22 x2  ...  a2 n xn  b2 .
. . . . .
. . . .
xn+m
am1 x1  am 2 x2  ...  amn xn  bm
xj  0 j  1, 2,..., n

8
Cas plus compliqué

La solution de base où xn+1, xn+2,…, xn+m sont les


• Alors le problème devient variables de base n’est pas réalisable
car les valeurs des variables
xn+i = –bi ≤ 0 i = 1,2,…,m
min z lorsque les variables hors base sont égales à 0
Sujet à
a11 x1  a12 x2  ...  a1n xn  xn 1  b1
a21 x1  a22 x2  ...  a2 n xn  xn  2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  xn  m  bm
c1 x1  c2 x2  ...  cn xn z 0
xj  0 j  1, 2,..., n, n  1, , n  m

9
Cas plus compliqué

Cette méthode, nous propose d’ajouter une variable artificielle ti >=0 à chaque
contrainte d’égalité ou de supériorité . A la fin ces variables seront annulées

 j
ai , j x j  bi  j
ai , j x j  si  ti  bi

 j
ai , j x j  bi  j
ai , j x j  ti  bi

D’où vient l’objectif auxiliaire Wmin


La somme des ces variables positives ou nulles sera minimale si est seulement
si elles sont toutes nulle
wmin   i ti  ti  0 min(positives ou nulles)= nulles

Dans la phase I :on cherche une solution initiale suivant l’objectif auxiliaire
Wmin
Dans la phase II :on cherche une solution initiale suivant l’objectif principale Z 10
Cas général
Nous utilisons une phase
préliminaire (Phase I)

• Dans le cas général où le problème est sous la forme standard


min z  c1 x1  c2 x2  cn xn Construisons un problème artificiel
Sujet à Introduisons les variables artificielles
a11 x1  a12 x2  ...  a1n xn  b1 t1
a21 x1  a22 x2  ...  a2 n xn  b2 t2
. . . . .
. . . . .
am1 x1  am 2 x2  ...  amn xn  bm tm
xj  0 j  1, 2,..., n

11
Solution de base réalisable initiale

Nous utilisons une phase


préliminaire (Phase I)
• Les contraintes deviennent donc
a11 x1  a12 x 2  ...  a1n x n  t1  b1
a 21 x1  a 22 x 2  ...  a 2 n x n  t2  b2
. . . . . .
. . . . . .
a m1 x1  a m 2 x 2  ...  a mn x n  tm  bm
xj 0 j  1,2,..., n; ti  0 i  1,2,..., m
Les variables t1, t2,…, tm sont les variables de base
d’une solution de base réalisable de ce système
Remplaçons la fonction économique
par une nouvelle: minimiser la
somme des variables artificielles 12
Problème artificiel

• Le problème artificielle de la phase I est donc de la forme


Remplaçons la fonction économique
par une nouvelle: minimiser la
min w  t1  t2  ...  tm somme des variables artificielles
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm

xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

13
min w  t1  t2  ...  tm
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm

xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

• Ou encore, le problème artificielle de la phase I est donc de la forme


min w Résolvons ce problème avec
Sujet à l’algorithme du simplexe
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm
t1  t2  ...  tm  w  0
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

14
Problème artificiel

Générons un problème équivalent en soustrayant


chacune des m premières contraintes de celle Définissons
associée à la fonction économique m
dj  a
i 1
ij

min w
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . . m
. . .
am1 x1  am 2 x2  ...  amn xn
. . .
 tm  bm
w0  b
i 1
i

t1  t2  ...  tm  w  0
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

d1 x1  d 2 x2  ...  d n xm  w   w0
15
Problème artificiel équivalent

• Le problème équivalent est donc de la forme

min w
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm
d1 x1  d 2 x2  ...  d n xn  w   w0
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

m m
dj  a
i 1
ij w0  b i
i 1 16
Résolution du problème de la phase I

• Ce problème est résolu avec l’algorithme du simplexe.


• Les variables artificielles t1, t2 ,…, tm sont les variables de base de la solution
initiale puisque leur valeur est non négative lorsque les variables xj du
problème original sont fixées à 0.

min w
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm
d1 x1  d 2 x2  ...  d n xn  w   w0
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

17
Résultat de la phase I

• Proposition À la fin de la phase I


(i) si la valeur optimale min w de la fonction économique est
positive (i.e., min w > 0), alors le domaine réalisable du
problème original est vide (i.e., le problème original n’est
pas réalisable)
(ii) si la valeur optimale min w de la fonction économique est
nulle (i.e., min w = 0), alors le domaine réalisable du
problème original n’est pas vide (i.e., le problème original
est réalisable).
min w
Sujet à
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2
. . . . . .
. . . . . .
am1 x1  am 2 x2  ...  amn xn  tm  bm
t1  t2  ...  tm  w  0 18
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m
Résultat de la phase I

• (ii)
Si à la fin de la phase I, la valeur de min w = 0, alors il existe une solution
réalisable du problème de la phase I où toutes les variables artificielles ti
min w sont égales à 0.
Sujet à Dans ce cas, les valeurs que
a11 x1  a12 x2  ...  a1n xn  t1  b1
a21 x1  a22 x2  ...  a2 n xn  t2  b2 prennent les variables xj
. . . . . .
. . . . . . constituent une solution pour
am1 x1  am 2 x2  ...  amn xn  tm  bm le problème original.
t1  t2  ...  tm  w  0
xj  0 j  1, 2,..., n; ti  0 i  1, 2,..., m

19
Résultat de la phase I

• (ii)
Si à la fin de la phase I, la valeur de min w = 0, alors il existe une
solution réalisable du problème de la phase I où toutes les variables
artificielles ti sont égales à 0.
Dans ce cas, les valeurs que
min z  c1 x1  c2 x2  cn xn prennent les variables xj
Sujet à
a11 x1  a12 x2  ...  a1n xn  b1
constituent une solution pour
a21 x1  a22 x2  ...  a2 n xn  b2 le problème original.
. . . .
. . . .
am1 x1  am 2 x2  ...  amn xn  bm
xj  0 j  1, 2,..., n

20
Solution initiale pour poursuivre

• Dans le cas où min w est égale à 0, nous poursuivons la résolution du


problème original avec l’algorithme du simplexe en utilisant l’information du
tableau de la dernière itération de la phase I pour construire une solution de
base initiale pour le problème original.
• Considérons le tableau du simplexe de la dernière itération de la phase I

21
Tableau phase I

0 0 1
1 0 0

0 0 0
0 1 0
dj
0
0 j  1,2,...n  m
0 0
m des colonnes du tableau sont les m
vecteurs unitaires
Solution optimale de la phase I 0  où le 1 est la
↓ .  iième composante
 
d j 0 j  1,2,...n  m ei  1 
 
. 
0 
  22
Tableau phase I

d j 0 j  1,2,...n  m

m des colonnes du tableau sont les m


vecteurs unitaires
La variable sous laquelle nous
où le 1 est la
0  iième composante retrouvons le iième vecteur
.  unitaire est la variable de base
  dans la iième ligne du tableau
ei  1 
 
. 
0  23
 
Solution initiale pour poursuivre

• Deux cas différents doivent être considérés.


Cas 1: Aucune variable artificielle n’est variable de base. Donc toutes les variables de base sont des
variables originales xj.
Considérons le tableau du simplexe de la dernière itération de la phase I

24
Solution initiale pour poursuivre

Éliminons les colonnes des variables artificielles

Remplaçons la dernière ligne du tableau par la


fonction économique du problème original
c1 x1  c2 x2  ...  cn xn  z  0
25
Solution initiale pour poursuivre

• Dénotant les variables de base par x j1 , x j2 ,...,x jm,le tableau devient

bm

Pour retrouver le tableau du simplexe associé à cette base, il faut ramener

à 0 les coûts relatifs c ji des variables de base x ji


26
Solution initiale pour poursuivre

bm

c
m
Modifions la dernière ligne de ce
tableau en soustrayant chacune des c j  cj  c
i 1
ji a ij z0  ji bi
autres lignes i multipliée par c ji De sorte que
c ji  0 i  1,2,...,m
27
Solution initiale pour poursuivre
bm
• Le tableau devient donc

bm

Nous avons donc un tableau du simplexe associé à une


solution initiale de base pour le problème originale où
les variables de base sont x j1 , x j2 ,..., x jm
28
• Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable
artificielle tk est variable de base dans la ligne i

29
Solution initiale pour poursuivre

• Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable
artificielle tk est variable de base dans la ligne i.
Cette ligne du tableau à la dernière itération de la phase I est de la forme

Mais min w = 0 => tk = 0 . Ainsi b i  0

Essayons de remplacer tk par une des variables originales xj à


titre de variable de base dans la ligne i. Analysons les
coefficients des variables xj dans cette ligne.

30
Solution initiale pour poursuivre

i) Supposons qu’il existe un indice s, 1≤ s ≤ n, tel que a is  0 .


Transformons le dernier tableau de la phase I en exécutant un
pivot sur l’élément a is  0 pour que xs devienne la variable de
base dans la ligne i. Ceci ne modifie en rien la valeur de
l’objectif w puisque b i  0

31
Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable
artificielle tk est variable de base dans la ligne i

Ainsi nous obtenons une nouvelle solution de base optimale


pour la phase I où la variable xs remplace la variable tk
comme variable de base dans la ligne i
32
Solution initiale pour poursuivre

ii) Supposons que a ij  0 j  1,2,...,n . On peut alors démontrer


que la contrainte i du problème est redondante car elle peut
s’exprimer comme une combinaison linéaire des autres contraintes.
Dans ce cas, la contrainte i peut être éliminée sans modifier le
domaine réalisable.
Nous éliminons donc la ligne i du tableau.

Après avoir traité chaque ligne où la variable de base est une


variable artificielle selon i) ou ii), alors nous obtenons une autre
solution optimale de la phase I où aucune variable artificielle n’est
de base. Nous retombons alors sur le Cas 1

33
Notion de multiplicateurs du simplexe

• Considérons la dernière ligne du tableau du simplexe associé à la base B qui


correspond aux vecteurs des coûts relatifs des variables:

cBT cRT

cBT  0  cBT  cBT  cBT  cBT B 1 B

cRT  cRT  cBT B 1 R

cBT , cRT   cBT  cBT B 1 B, cRT  cBT B 1 R 

c T  cBT , cRT   cBT , cRT   cBT B 1  B, R   c T  cBT B 1 A 34


Notion de multiplicateurs du simplexe

 
 
 T    cBT   B 1 
c T  c T  cBT B 1 A m m 



m

Dénotons le vecteur   R m défini par : π est le vecteur des multiplicateurs


du simplexe associé à la base B.
 T  cBT B 1
Alors c T  cT   T A
c1, , cn   c1, , cn    T  a 1, , a n   T   1 , ,  m   a1 j 
Ou  
c j  c j   T a j a j   
 amj 
 

a j
où dénote la jième colonne de la matrice de 35
contrainte A
Considérons la base à l'itération 2 du simplexe
x y u p h z  T  cBT B 1
3 1
x 1 0 0 0 6
5 5  1 
 5 0 0 
9 2  2 
p 0  1 0 0 12  8 
5 5  T   8 0 0  1 0    0 0
 5   5 
12 1  1 
h 0  0 1 0 12 5 0 1 
5 5  

6 8
z 0  0 0 1 48 c T  cT   T A
5 5
5 3 1 0 0
 8 
 A   0 0 2
T
3 0 1 0
 5 
 1 1 
x y u p h z  3 0 0
 24 8 
  8   0 0
u 5 3 1 0 0 0 30  5 5 
p 2 3 0 1 0 0 24 c T  cT   T A
 24 8 
h 1 3 0 0 1 0 18   8  6 0 0 0   8   0 0
 5 5 
z  8  6 0 0 0 1 0 
 0 
6 8
0 0
 36
 5 5 
x y u p h z
 T  cBT B 1
1 1
x 1 0 0  0 3
Considérons maintenant 4 4  1 1 
 4 0  
la base à l′itération 3 du 1 3  1
4
  3
p 0 0  1  0 3 3
    0  
1
simplexe 4 4    8 0  6  
T
1 
 4 4   2 2
1 5  1 5 
y 0 1  0 0 3   12 0 
12 12  12 

3 1
z 0 0 0 1 54
2 2 c T  cT   T A

5 3 1 0 0
 3 1
x y u p h z  A   0   2 3
T
0 1 0
 2 2  1 1 
 3 0 0
u 5 3 1 0 0 0 30  3 1
  8  6  0  
p 2 3 0 1 0 0 24  2 2
h 1 3 0 0 1 0 18 c T  cT   T A
 3 1
z  8  6 0 0 0 1 0   8  6 0 0 0   8  6  0  
 2 2
 3 1
 0 0 0  37
2 2
Notion de multiplicateurs du simplexe

c j  c j   T a j  T  cBT B 1

• Le vecteur des multiplicateurs du simplexe π permet de calculer les coûts


c j à partir des données originales du problème.
relatifs directement

c T  cT   T A

• Les composantes πi (i=1,2,…,m) du vecteur des multiplicateurs peuvent être


considérés comme des poids associés aux lignes i du tableau (ou aux
contraintes i du problème) tel que la soustraction d’une combinaison
linéaire des lignes avec ces poids de la dernière ligne du tableau permet
d’annuler les coûts relatifs des variables de base.

38