Vous êtes sur la page 1sur 121

3.

Variantes de l’algorithme
du
simplexe
Les deux phases du simplexe

• 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.
Cas simple

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

min z = c1 x1 + c2 x2 + cn xn En utilisant les variables


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
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
Problème du restaurateur transformé en min

• Transformons les contraintes d’inégalité du problème du restaurateur 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
• Les contraintes constituent un système de 3 équations comportant 5
variables. Exprimons 3 des variables en fonction des 2 autres
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
Cas plus compliqué

• Alors le problème devient La solution de base où xn+1, xn+2,…, xn+m sont les
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
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

Construisons un problème artificiel


min z = c1 x1 + c2 x2 + cn xn
Sujet à Introduisons les variables
a11 x1 + a12 x2 + ... + a1n xn = b1 artificielles
a21 x1 + a22 x2 + ... + a2 n xn = b2 t1
. . . . t2
. . . . .
.
am1 x1 + am 2 x2 + ... + amn xn = bm
tm
xj ≥ 0 j = 1, 2,..., n
Solution de base réalisable initiale

• 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
Probème artificiel Nous utilisons une phase
préliminaire (Phase I)

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

Construisons un problème artificiel


min z = c1 x1 + c2 x2 + cn xn
Sujet à Introduisons les variables
a11 x1 + a12 x2 + ... + a1n xn = b1 artificielles
a21 x1 + a22 x2 + ... + a2 n xn = b2 t1
. . . . t2
. . . . .
.
am1 x1 + am 2 x2 + ... + amn xn = bm
tm
xj ≥ 0 j = 1, 2,..., n
Remplaçons la fonction économique
par une nouvelle: minimiser la
somme des variables artificielles
Problème artificiel

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

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
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

Résolvons ce problème avec


min w l’algorithme du simplexe
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
xj ≥ 0 j = 1, 2,..., n; ti ≥ 0 i = 1, 2,..., m
Problème artificiel
Générons un problème équivalent en soustrayant Définissons
chacune des m premières contraintes de celle m
associée à la fonction économique dj =− ∑a
i =1
ij

min w w0 = ∑b
i =1
i
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
xj ≥ 0 j = 1, 2,..., n; ti ≥ 0 i = 1, 2,..., m

d1 x1 + d 2 x2 + ... + d n xm − w = − w0
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
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
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
xj ≥ 0 j = 1, 2,..., n; ti ≥ 0 i = 1, 2,..., m
la valeur optimale min w de la fonction économique est   la valeur optimale min w de la fonction économique est 
 positive (i.e., min w > 0) ⇒ ¬ , ⇐
   positive (i.e., min w > 0) 
[ le domaine réalisable du problème original est vide] ¬ [ le domaine réalisable du problème original est vide ]

la valeur optimale min w de la fonction économique n'est 


 pas positive (i.e., min w = 0) , ⇐
• Preuve  
[ le domaine réalisable du problème original n'est pas vide]
(i) (Preuve par contraposée)
Si le domaine réalisable du problème original n’est pas vide,
min z = c1 x1 + c 2 x 2 + c n x n
Sujet à
a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
. . . .
. . . .
a m1 x1 + a m 2 x 2 + ... + a mn x n = bm
xj ≥0 j = 1,2,..., n
Résultat de la phase I

• Preuve
(i) (Preuve par contraposée)
Si le domaine réalisable du problème original n’est pas vide, substituons
min z = c1 x1 + c 2 x 2 + c n x n ces valeurs des variables xj dans le
Sujet à problème de la phase I
a11 x1 + a12 x 2 + ... + a1n x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
. . . .
. . . .
a m1 x1 + a m 2 x 2 + ... + a mn x n = bm
xj ≥0 j = 1,2,..., n
Résultat de la phase I

• Preuve
(i) (Preuve par contraposée)
Si le domaine réalisable du problème original n’est pas vide, substituons
ces valeurs des variables xj dans le
problème de la phase I
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
xj ≥ 0 j = 1, 2,..., n; ti ≥ 0 i = 1, 2,..., m
Résultat de la phase I

• Preuve
(i) (Preuve par contraposée)
Si le domaine réalisable du problème original n’est pas vide, substituons
ces valeurs des variables xj dans le
min w
problème de la phase I
Sujet à pour obtenir une solution
a11 x1 + a12 x2 + ... + a1n xn + t1 = b1
a21 x1 + a22 x2 + ... + a2 n xn + t2 = b2
réalisable où toutes les variables
. . . . . . ti sont égales à 0 et où la
. . . . . .
am1 x1 + am 2 x2 + ... + amn xn + tm = bm
valeur de la fonction
t1 + t2 + ... + tm − w = 0 économique w = 0.
xj ≥ 0 j = 1, 2,..., n; ti ≥ 0 i = 1, 2,..., m
Résultat de la phase I

• Preuve
(i) (Preuve par contraposée)
Si le domaine réalisable du problème original n’est pas vide, substituons
ces valeurs des variables xj dans le
min w problème de la phase I
Sujet à
pour obtenir une solution
a11 x1 + a12 x 2 + ... + a1n x n + t1 = b1
a 21 x1 + a 22 x 2 + ... + a 2 n x n + t2 = b2 réalisable où toutes les variables
. . . . . . ti sont égales à 0 et ainsi ayant
. . . . . . une valeur de la fonction
a m1 x1 + a m 2 x 2 + ... + a mn x n + tm = bm
économique w = 0. Donc si
t1 + t 2 + ... + t m − w = 0
min w > 0, alors le problème
xj ≥0 j = 1,2,..., n; ti ≥ 0 i = 1,2,..., m
original n’a pas de solution.
Résultat de la phase I

• (ii)
Si à la fin de la phase I, la valeur de min w = 0,
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
. . . . . . le problème original.
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
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
Sujet à prennent les variables xj
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
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
Tableau phase I

0 0 1
1 0 0
⋮ ⋮ ⋮
0 0 0
⋮ ⋮ ⋮
0 1 0
d j
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 
 
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 ième composante retrouvons le iième vecteur
.  i
unitaire est la variable de base
  dans la iième ligne du tableau
ei = 1 
 
. 
0
 
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
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 + c 2 x 2 + ... + c n x n − z = 0
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


Solution initiale pour poursuivre

bm

Modifions la dernière ligne de ce m

tableau en soustrayant chacune des c j = cj − ∑c ji a ij z0 = ∑c ji bi


i =1
autres lignes i multipliée par c ji De sorte que
c ji = 0 ∀i = 1,2,..., m
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
• Cas 2: Certaines variables de base sont des variables artificielles.
Supposons que la variable artificielle tk est variable de base dans la ligne i
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 bi = 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.
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
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
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
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−1R

 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


Notion de multiplicateurs du simplexe

c T = c T − cBT B −1 A

Dénotons le vecteur π ∈ R m défini par


π T = cBT B −1 π est le vecteur des multiplicateurs
Alors du simplexe associé à la base B.
c T = cT − π T A
Ou
[c1 ,… , cn ] = [c1,… , cn ] − π T [ ai1 ,… , ain ]
c j = c j − π T a• j

où a• j dénote la jième colonne de la


matrice de contrainte A
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
0

1 
h 0 − 0 1 0 12 −5
 
5 5
6 8
−z 0 − 0 0 1 48 c T = cT − π T A
5 5
5 3 1 0 0
 8 
T
π A =  − 0 0 2 3 0 1 0
 5  1 3 0 0 1 
x y u p h −z 
 24 8 
=  −8 − − 0 0
u 5 3 1 0 0 0 30  5 5 
T T T
p 2 3 0 1 0 0 24 c = c −π 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

 5 5 
x y u p h −z
π T = cBT B −1
1 1
x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π = [ −8 0 − 6 ]  −
T
1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  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
T
π A = − 0 −  2 3 0 1 0
 2 2  1 3 0 0 1 

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 
 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 relatifs c j directement à partir des données originales du
problème.

• 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.
x y u p h −z
π T = cBT B −1
1 1
x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π = [ −8 0 − 6 ]  −
T
1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  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
T
π A = − 0 −  2 3 0 1 0
 2 2  1 3 0 0 1 

−u3 / 2 5 3 1 0 0 0 30  3 1
=  −8 − 6 − 0 − 
p0 2 3 0 1 0 0 24  2 2
c T = cT − π T A
h1 / 2 1
− 3 0 0 1 0 18
 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 
 2 2
Sensitivité de la valeur optimale aux
modifications des termes de droite
• Les multiplicateurs du simplexe associés à une base optimale permettent de
mesurer l’effet de modifier les termes de droite sur la valeur optimale d’un
problème.
• Considérons le problème original et un autre où les termes de droite sont
modifiés
min z min zɶ
Sujet à Ax = b Sujet à Axɶ = b + ∆b
cT x − z = 0 c T xɶ − zɶ = 0
x≥0 xɶ ≥ 0
Sensitivité de la valeur optimale aux
modifications des termes de droite

min z min zɶ
Sujet à Ax = b Sujet à Axɶ = b + ∆b
cT x − z = 0 c T xɶ − zɶ = 0
x≥0 xɶ ≥ 0

• Dénotons par B* une base optimale du problème original, et la solution de


base optimale correspondante
x*R = 0
x* * = B*−1b = b ≥ 0
B

dont la valeur (optimale pour le problème) est donnée par


z * = c T* x* * + cRT xR* = c T* B*−1b = c T* b
B B B B
Sensitivité de la valeur optimale aux
modifications des termes de droite

min z min zɶ
Sujet à Ax = b Sujet à Axɶ = b + ∆b
cT x − z = 0 c T xɶ − zɶ = 0
x≥0 xɶ ≥ 0

• Choisissons la valeur de ∆b de telle sorte que


B *−1 (b + ∆b) = B *−1b + B *−1∆b ≥ 0

• Donc B* demeure une base réalisable pour le nouveau problème modifié


puisque la solution de base associée est
~
x R* = 0
~
x B** = B *−1 (b + ∆b) ≥ 0
Sensitivité de la valeur optimale aux
modifications des termes de droite

• Donc B* demeure une base réalisable pour le nouveau problème modifié


puisque la solution de base associée est
~ c *T = c T − π *T A
x R* = 0
~
x B** = B *−1 (b + ∆b) ≥ 0 π *T = c T* B*−1
B

• De plus, puisque ni les coûts cj ni la matrice A n’ont été modifiés, alors le


vecteur des multiplicateur π* reste inchangé. Par conséquent les coûts
relatifs c j demeurent inchangés et donc non négatifs pour le nouveau
problème.

Par conséquent, B* demeure une base optimale pour le nouveau problème


cj

Sensitivité de la valeur optimale aux


modifications des termes de droite

• Cette solution est optimale pour le nouveau problème.


~
x R* = 0
~
x B** = B *−1 (b + ∆b) ≥ 0
• Évaluons la valeur optimale du nouveau problème: π *T = cBT* B*−1

zɶ* = c T* xɶ* * + cRT xɶ*R


B B
T *−1
=c B (b + ∆b)
B*
= c T* B*−1b + c T* B*−1∆b
B B
* *T
= z + π ∆b
m
= z* + ∑i =1
π i* ∆bi
Sensitivité de la valeur optimale aux
modifications des termes de droite

• Évaluons la valeur optimale du nouveau problème:.

zɶ* = c T* xɶ * * + cRT xɶ R*
B B
=c B T *−1
(b + ∆b) Ainsi, π i* indique la taux de variation
B* unitaire de la valeur optimale
= c T* B*−1b + c T* B*−1∆b lorsque le terme de droite bi de la
B B
= z + π *T ∆b
* contrainte i est modifié d’une quantité
m ∆bi choisie de telle sorte que la base
= z* + ∑i =1
π i* ∆bi demeure réalisable pour le nouveau
problème.
x y u p h −z
π *T = c T* B*−1
1 1
B

x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π *T = [ −8 0 − 6]  − 1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  12 
12 12
3 1
−z 0 0 0 1 54
2 2

zɶ* = z * + π *T ∆b
 ∆b 
 3 1 1  3 1
= −54 +  − 0 −  ∆b2 = −54 − ∆b1 + 0∆b2 − ∆b3
 2 2   ∆b  2 2
 3

3
∆b1 < 0 ⇒ − ∆b1 > 0 ⇒ zɶ* > z *
2
Domaine réalisable

• L’ensemble des points réalisables


pour le système
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
Résolution graphique

• Considérons la fonction 5 30 + ∆b1


5 x + 3 y = 30 + ∆b1 ⇔ y = − x +
économique : 3 3
z = –8x – 6y.
• La solution optimale:
x = 3 et y = 5 => z = – 54.
• Vecteur des multiplicateurs 5x + 3y ≤ 30
optimaux:
πT = [ – 3/2, 0, – 1/2]
• Si b1 = 30 devient b1+∆b1 avec
2x + 3y ≤ 24
∆b1<0
1x + 3y ≤ 18
domaine réalisable diminue
x y u p h −z
π *T = c T* B*−1
1 1
B

x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π *T = [ −8 0 − 6]  − 1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  12 
12 12
3 1
−z 0 0 0 1 54
2 2

zɶ* = z * + π *T ∆b
 ∆b 
 3 1 1  3 1
= −54 +  − 0 −  ∆b2 = −54 − ∆b1 + 0∆b2 − ∆b3
 2 2   ∆b  2 2
 3

3
∆b1 > 0 ⇒ − ∆b1 < 0 ⇒ zɶ * < z*
2
Résolution graphique

• Considérons la fonction 5 30 + ∆b1


5 x + 3 y = 30 + ∆b1 ⇔ y = − x +
économique : 3 3
z = –8x – 6y.
• La solution optimale:
x = 3 et y = 5 => z = – 54.
• Vecteur des multiplicateurs 5x + 3y ≤ 30
optimaux:
πT = [ – 3/2, 0, – 1/2]
• Si b1 = 30 devient b1+∆b1 avec 2x + 3y ≤ 24
∆b1>0 1x + 3y ≤ 18
domaine réalisable augmente
x y u p h −z
π *T = c T* B*−1
1 1
B

x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π *T = [ −8 0 − 6]  − 1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  12 
12 12
3 1
−z 0 0 0 1 54
2 2

zɶ* = z * + π *T ∆b
 ∆b 
 3 1 1  3 1
= −54 +  − 0 −  ∆b2 = −54 − ∆b1 + 0∆b2 − ∆b3
 2 2   ∆b  2 2
 3

1
∆b3 < 0 ⇒ − ∆b3 > 0 ⇒ zɶ* > z*
2
Résolution graphique

• Considérons la fonction 1 18 + ∆b3


x + 3 y = 18 + ∆b3 ⇔ y = − x +
économique : 3 3
z = –8x – 6y.
• La solution optimale:
x = 3 et y = 5 => z = – 54.
• Vecteur des multiplicateurs 5x + 3y ≤ 30
optimaux:
πT = [ – 3/2, 0, – 1/2]
• Si b3 = 18 devient b3+∆b3 avec
2x + 3y ≤ 24
∆b3<0
1x + 3y ≤ 18
domaine réalisable diminue
x y u p h −z
π *T = c T* B*−1
1 1
B

x 1 0 0 − 0 3
4 4  1
0 −
1 
 4 4 
1 3  1   3
p 0 0 − 1 − 0 3 π *T = [ −8 0 − 6]  − 1 −
3 1
 =  − 0 − 
4 4  4 4   2 2
1 5  1 5 
 − 12 0 
y 0 1 − 0 0 3  12 
12 12
3 1
−z 0 0 0 1 54
2 2

zɶ* = z * + π *T ∆b
 ∆b 
 3 1 1  3 1
= −54 +  − 0 −  ∆b2 = −54 − ∆b1 + 0∆b2 − ∆b3
 2 2   ∆b  2 2
 3

∆b2 < 0 ⇒ 0∆b2 = 0 ⇒ zɶ* = z *


Résolution graphique

• Considérons la fonction 2 24 + ∆b2


2 x + 3 y = 24 + ∆b2 ⇔ y = − x +
économique : 3 3
z = –8x – 6y.
• La solution optimale:
x = 3 et y = 5 => z = – 54.
• Vecteur des multiplicateurs 5x + 3y ≤ 30
optimaux:
πT = [ – 3/2, 0, – 1/2]
• Si b2 = 24 devient b2+∆b2 avec
2x + 3y ≤ 24
∆b2<0
1x + 3y ≤ 18
domaine réalisable ne change pas
c = cT − π T A

−1
A=B A a• s = B −1a• s
Forme révisée du simplexe

• Dans cette variante de l’algorithme du simplexe, nous exploitons les


multiplicateurs du simplexe pour permettre de faire le pivot sur un tableau
de dimension réduite.

• Nous considérons le problème de programmation linéaire sous sa forme


standard

min z
Sujet à Ax = b
cT x − z = 0
x≥0
Forme révisée du simplexe

• Les données du problème

min z
Sujet à Ax = b
cT x − z = 0
x≥0

peuvent être résumées dans le tableau suivant


• Construisons un nouveau tableau à partir de ce dernier en ajoutant une
matrice identité mxm à côté de la matrice A des contraintes
et en lui associant un vecteur de m composantes égales à 0 dans la dernière
ligne du tableau
• Supposons que nous résolvions le problème avec l’algorithme du simplexe
et que nous fassions également les pivots sur la partie additionnelle du
tableau à chaque itération.
• Considérons une solution de base réalisable dont la base B est constituée
des m premières colonnes de A.
• Pour faciliter la présentation représentons le tableau augmenté sous une
forme matricielle équivalente:
xR
• Le tableau du simplexe associé à la base B peut être retrouvé
en multipliant les m premières lignes du tableau par B-1
et en ramenant les coûts relatifs des variables de base à 0
xR
B-1

−z
−z

• Considérant maintenant la représentation explicite du tableau augmenté à


cette itération

−z

La matrice B-1 se retrouve à l’endroit où était la


matrice identité dans le tableau des données originales
1 −z
Dénotons par π = [π1, π2,…, πm]T le vecteur des multiplicateurs
associés à la base B. Alors
c j = c j − π T a• j ∀j = 1, 2,..., n + m
En particulier, pour i = 1,2,…,m, puisque cn+i = 0 et a •n +i = ei

c n+i = 0 − π T ei = −π i
−z
Ce tableau s’écrit donc sous la forme

B-1 inverse
de la base

Multiplicateurs
changés de signe
−z
La partie suivante de ce tableau

−z

contient toute l’information nécessaire pour compléter


une itération du simplexe.
−z

Critère d’entrée: Pour déterminer la variable d’entrée ou vérifier si


la solution actuelle est optimale, il faut déterminer les coûts relatifs

c j = c j − π T a• j ∀j = 1, 2,..., n
−z

Critère de sortie: Pour compléter cette étape, il faut connaître a •s


Or
a •s = B −1 a•s
−z

Si ais ≤ 0 ∀i = 1,… , m, Si ∃ i tel que ais > 0


alors le problème n'est pas alors la solution demeure réalisable ⇔
borné inférieurement et ∀i tel que ais > 0
l'algorithme s'arrête bi
bi − ais xs ≥ 0 ⇔ xs ≤
ais
La variable d'entrée prend la valeur
br  bi 
xs = = min  : ais > 0 
air 1≤i ≤ m  ais 
La variable de sortie est celle de la ligne r.
−z

Pivot: Il suffit de compléter le pivot uniquement sur les colonnes du


tableau précédent. En effet nous aurons alors toute l’information
nécessaire pour compléter la prochaine itération.
En pivotant sur l’élément ars
−z

+1

−z
Problème du restaurateur:
x y u p h −z
u 5 3 1 0 0 0 30
1 p 2 3 0 1 0 0 24
u 1 0 0 0 30 5 0 0 0 6 1 3 0 0 1 0 18
5 h
−z − 8 − 6 0 0 0 1 0
2
p 0 1 0 0 24 2 − 1 0 0 12
5
1
h 0 0 1 0 18 1 − 0 1 0 12
5
8
−z 0 0 0 1 0 −8 0 0 1 48
5

cx = −8 − 0 = −8
cy = −6 − 0 = −6 1 0 0  5  5 
cu = 0−0 = 0 ai x = B −1ai x = 0 1 0   2  =  2 
0 0 1 1  1 
cp = 0−0 = 0     
ch = 0−0 = 0
 30 24 18  30
Min  , ,  = ⇒ u variable de sortie
x variable d'entrée 5 2 1 5
Problème du restaurateur:
x y u p h −z
u 5 3 1 0 0 0 30
1 3 1 1
x 0 0 0 6 0 − 0hp 312 3 0 1 0 0 24

5 5 4 4 3 0 0 1 0 18
−z − 8 − 6 0 0 0 1 0
2 9 1 3
p− 1 0 0 12 − 1 − 0 3
5 5 4 4
1 12 1 5
h− 0 1 0 12 − 0 0 5
5 5 12 12
8 6 3 1
−z 0 0 1 48 − 0 1 54
5 5 2 2

cx = −8 − ( −8 + 0 + 0 ) = 0  1  3 
 24  6  5 0 0  5 
c y = −6 −  − + 0 + 0 = −  2   3  9 
 5  5
ai y = B −1ai y =  − 1 0   3 =  
 8  8  5   3  5 
cu = 0 −  − + 0 + 0  =
 5  5  1     12 
cp = 0 − 0 = 0  − 5 0 1  
  5
ch = 0 − 0 = 0  
 6 12 12 
y variable d'entrée Min  , ,  = 5 ⇒ h variable de sortie
 3 9 12 
 5 5 5 
Problème du restaurateur:
x y u p h −z

1 1 u 5 3 1 0 0 0 30
x 0 − 0 3 p 2 3 0 1 0 0 24
4 4 h 1 3 0 0 1 0 18
1 3 −z − 8 − 6 0 0 0 1 0
p 1 − 0 3
4 4
1 5
y− 0 0 5
12 12
3 1
−z 0 1 54
2 2

 15 1 
cx = −8 −  − + 0 −  = 0 
 2 2 
 9 3 
cy = −6 −  − + 0 −  = 0 
 2 2

 3  3 
cu = 0 −  − + 0 + 0 =  ⇒ solution optimale
 2  2 
cp = 0−0 = 0 
 1 1 
ch = 0 −0 + 0 −  = 
 2 2 


Variante du simplexe pour
problème avec variables bornées

• Considérons le problème de programmation linéaire avec variables bornées


suivant

min c T g
Sujet à Ag = h
lj ≤ g j ≤ qj j = 1, 2,..., n

où g , c, l , q ∈ R n , h ∈ R m , et A est une matrice m × n

• Ramenons à 0 les bornes inférieures en faisant le changement de variables


suivant
xj = gj – lj (i.e., gj = xj + lj )
Variante du simplexe pour
problème avec variables bornées
le problème devient min c T g
Sujet à Ag = h
min c T ( x + l ) lj ≤ g j ≤ qj j = 1, 2,..., n
Sujet à A( x + l ) = h
lj ≤ xj + lj ≤ qj j = 1, 2,..., n

où c, x, l , q ∈ R n , h ∈ R m , et A est une matrice m × n

• Ramenons à 0 les bornes inférieures en faisant le changement de variables


suivant
xj = gj – lj (i.e., gj = xj + lj )
Variante du simplexe pour
problème avec variables bornées
le problème devient
min c T ( x + l )
Sujet à A( x + l ) = h
lj ≤ xj + lj ≤ qj j = 1, 2,..., n

où g , c, x, l ∈ R n , h ∈ R m , et A est une matrice m × n

et en remplaçant: uj = qj – lj et b = h – Al

min c T x + c T l
Sujet à Ax = b
0 ≤ xj ≤ uj j = 1, 2,..., n
Variante du simplexe pour
problème avec variables bornées

• Dans ce problème
min c T x + c T l
Sujet à Ax = b
0 ≤ xj ≤ uj j = 1, 2,..., n

puisque cTl représente une constante, nous pouvons éliminer ce terme de la


fonction économique sans changer la solution optimale
et dans la suite de la présentation considérer ce problème sans perte de
généralité.
min c T x + c T l
Sujet à Ax = b
0 ≤ xj ≤ uj j = 1, 2,..., n

• Considérons la formulation explicite du problème


n n
min ∑∑
minz =z = c j xc jj x j
j =1 j =1
n n
Sujet à à
Sujet ∑∑a ax ij x=jb
j =1
ij j i =i =bi1,2,...,im= 1,2,..., m
j =1
0 ≤ x j x≤ u+j y = ju= 1,2,...,j n= 1,2,..., n
j j j

xj , yj ≥0 j = 1,2,..., n
• Une façon de le résoudre est de le ramener sous une forme standard en
introduisant des variables d’écart yj,
et d’ensuite utiliser l’algorithme du simplexe
n
min z = ∑c x
j =1
j j Tableau avec m + n lignes
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m

xj + yj =uj j = 1,2,..., n
xj , yj ≥0 j = 1,2,..., n

n
min z = ∑c x
j =1
j j Tableau avec m lignes

n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m

0≤ xj ≤uj j = 1,2,..., n

tenir compte de façon implicite


n
min z = ∑c x
j =1
j j

n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m
Non dégénérescence:
xj + yj =uj j = 1,2,..., n toutes les variables de
base sont positives à
xj , yj ≥0 j = 1,2,..., n chaque itération

• Considérons une solution de base réalisable de ce problème.


• La présence des contraintes xj + yj = uj implique qu’au moins une des deux
variables xj ou yj est variable de base, j = 1,2,…,n.
• Donc une des trois situations suivantes prévaut pour chaque j = 1,2,…,n:
a) xj = uj est variable de base et yj = 0 est variable hors base
b) xj = 0 est variable hors base et yj = uj est variable de base
c) 0 < xj < uj est variable de base et 0 < yj < uj est variable de base
n a) x j de base; y j hors base
min z = ∑c x
j =1
j j
b) x j hors base; y j de base
c) x j de base; y j de base
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m

xj + yj =uj j = 1,2,..., n
xj , yj ≥0 j = 1,2,..., n
m + n variables de base requises Exactement m variables xj satisfont
il y a n variables yj 0 < xj < uj.
Par contradiction, si m0 ≠ m variables xj
satisfaisaient la relation, alors les
⇓ m0 variables yj correspondantes seraient
Il y a au moins m variables xj également dans la base.
dans la base De plus, pour les n – m0 autres indices j
xj = uj (cas a) ou bien yj = uj (cas b) serait
vérifié.
Alors le nombre de variables de base
serait égal à
2m0 + (n – m0) = m0 + n ≠ m + n
n
min z = ∑c x j j
La base a donc la forme suivante j =1
n
Sujet à ∑a x
j =1
ij j = bi i = 1, 2,..., m

xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n

min z = c T x
Sujet à Ax + 0 y = b
Ix + Iy = u
x, y ≥ 0
m
 A 0
 I I 

0 < xj < uj 0 < yj < uj xj=uj yj=uj


n
min z = ∑c x j j
La base a donc la forme suivante j =1
n
Sujet à ∑a x
j =1
ij j = bi i = 1, 2,..., m

xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n

min z = c T x
Sujet à Ax + 0 y = b
Ix + Iy = u
x, y ≥ 0
m
1 1  A 0
 I I 

n
2

0 < xj < uj 0 < yj < uj xj=uj yj=uj


B 0 D 0 
 I1 I1 0 0 
Ξ=  a b 
 0 0 I 0  det 
2
 = ad − bc
0 0 0 I 3   c d 
 B 0 D 0 = d ( a − bd −1c )
I 
= 1  où la matrice I est n × n
 0 I 
 0 

  I1  
 −1   
( )
det ( Ξ ) = det ( I ) det ( B ) − det [ 0 D 0] I 0 
0  
  
{ ( )}
= det ( I ) det ( B ) − det 0ɶ
où la matrice 0ɶ est m × m puisque
[0 D 0] est une matrice m × n et
 I1 
 0  est une matrice n × m
0 
 

Donc det ( Ξ ) = det ( I ) det ( B ) .


Puisque Ξ est une base, alors det ( Ξ ) ≠ 0.
Par conséquent det ( B ) = det ( Ξ ) ≠ 0 et ainsi B est non singulière.
Donc B est une base de A.
La base a donc la forme suivante

m
Base de A
Les colonnes de
la base B de A
correspondent
aux variables
1 1 0<xj<uj

n
2

0 < xj < uj 0 < yj < uj xj=uj yj=uj


• Ainsi, nous pouvons développer une variante du simplexe pour résoudre
directement le problème
n
min z = ∑c
j =1
jxj

n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m

0≤ xj ≤uj j = 1,2,..., n
en traitant implicitement les bornes supérieures uj. À chaque itération, nous
allons considérer une solution (de base) associée à une base B de A ayant
m variables de base 0 < xj < uj j ∈ IB
n – m variables hors base x j = 0 ou u j j ∈ JB
n
min z = ∑c x
j =1
j j

n
Sujet à ∑a x
j =1
ij j = bi i = 1, 2,..., m

xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n
• À chaque itération, nous allons considérer une solution (de base) associée à
une base B de A ayant
m variables de base 0 < xj < uj j ∈ IB

n – m variables hors base x j = 0 ou u j j ∈ JB .

• Si on dénote les indices des variables de base IB = {j1, j2, …, jm} où ji est
l’indice de la variable de base dans la iième ligne, alors
x j = 0 ou u j j ∈ JB
x ji = b i − ∑a
j∈JB
ij x j i = 1,2,..., m

Nous retrouvons les


mêmes expressions que
pour les problèmes sans
bornes sauf que les
variables hors base
x j = 0 ou u j j ∈ JB
Nous retrouvons les Il suffit d’ajuster les critères d’entrée et de
mêmes expressions que sortie en conséquence pour retrouver la
pour les problèmes sans
bornes sauf que les
variante du simplexe.
variables hors base
x j = 0 ou u j j ∈ JB
Étape 1: Choix de la variable d’entrée

Le critère pour choisir la variable d’entrée est modifié pour tenir compte
des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice j ∈ JB
si x j = 0 et c j < 0, il est avantageux d’augmenter xj
si x j = u j et c j > 0 , il est avantageux de diminuer xj

{
Déterminons c s1 = min c j : x j = 0 et
j∈JB
} {
c s2 = max c j : x j = u j
j∈JB
}
Soit { }
c s = min c s1 ,−c s2
Si c s ≥ 0 , alors la solution est optimale et l’algorithme s’arrête.

Si cs < 0 et cs = cs1 , alors la variable xs augmente; aller à l’étape 2.1.

Si c s < 0 et c s < c s1 , alors la variable xs diminue; aller à l’étape 2.2


Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable la variable de
Soit g i = b i − ∑ a ij x j
d’entrée xs est limitée par la j∈JB
base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
 1≤ i ≤ m  a is  1≤ i ≤ m  − a is 
i) xs atteint sa borne sup. us
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa
borne sup. u jr (dans ce cas
a rs < 0 )
Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable la variable de
Soit g i = b i − ∑ a ij x j
d’entrée xs est limitée par la j∈JB
base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
 1≤ i ≤ m  a is  1≤ i ≤ m  − a is 
i) xs atteint sa borne sup. us
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa Pour tout i tel que ais > 0, alors x ji diminue
borne sup. u jr (dans ce cas lorsque xs augmente de θ . Il faut donc que
) x ji =gi − aisθ ≥ 0 ⇔ aisθ ≤ gi
a rs < 0
g
⇔ θ≤ i.
ais
 gi 
Donc θ ≤ Min  : ais > 0 
 is
1≤ i ≤ m a

Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable la variable de
Soit g i = b i − ∑ a ij x j
d’entrée xs est limitée par la j∈JB
base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
 1≤ i ≤ m  a is  1≤ i ≤ m  − a is 
i) xs atteint sa borne sup. us
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa Pour tout i tel que ais < 0, alors x ji augmente
borne sup. u jr (dans ce cas lorsque xs augmente de θ . Il faut donc que
x ji =gi − aisθ ≤ u ji ⇔ − aisθ ≤ u ji − gi
a rs < 0 )
u ji − gi
⇔ θ≤ .
−ais
 u ji − gi 
Donc θ ≤ Min  : ais < 0 
1≤ i ≤ m
 − a is 
Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable la variable de
Soit g i = b i − ∑ a ij x j
d’entrée xs est limitée par la j∈JB
base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
 1≤ i ≤ m  a is  1≤ i ≤ m  − a is 
i) xs atteint sa borne sup. us
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa
borne sup. u jr (dans ce cas Si θ = ∞, alors le problème n’est pas
borné inférieurement et l’algorithme
a rs < 0 ) s’arrête.
Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable Soit g i = b i − ∑ a ij x j la variable de
d’entrée xs est limitée par la j∈JB base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
i) xs atteint sa borne sup. us  1≤ i ≤ m  a is  1≤ i ≤ m  − a is 
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa
Si θ = us, alors l’ensemble des variables
borne sup. u jr (dans ce cas de base reste le même et la même base est
a rs < 0 ) utilisée à la prochaine itération.
La variable xs demeure hors base
et sa valeur passe de 0 à us.
Retourner à l’étape 1.
Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable Soit g i = b i − ∑ a ij x j la variable de
d’entrée xsest limitée par la j ∈ JB base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0  , min  : a is < 0 
i) xs atteint sa borne sup. us  1≤ i ≤ m
 a is  1≤ i ≤ m
 − a is 
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa g  gi 
= min  : a is > 0 
r
θ =
Si
borne sup. u jr (dans ce cas a rs 1≤ i ≤ m
 a is 
a rs < 0 ) alors la valeur de la variable d’entrée xs
augmente à θ.
La variable d’entrée xs devient variable de
base à la place de la variable de sortie x jr.
Pivoter sur a rs et retourner à l’étape 1
Étape 2.1: Choix de la variable de sortie
la valeur de
• L’augmentation de la variable Soit g i = b i − ∑ a ij x j la variable de
d’entrée xs est limitée par la j ∈ JB base x ji
première des trois situations
  gi   u ji − g i 
suivantes qui se produit: θ = min u s , min  : a is > 0 , min  : a is < 0
 1≤i ≤ m  a is  1≤ i ≤ m 
 − a is 
i) xs atteint sa borne sup. us
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs > 0 )
iii) une variable de base x jr
augmente pour atteindre sa u −g jr u − g ji 
Si = min  : a < 0
r i
θ =
borne sup. u jr (dans ce cas −a  −a
rs
1≤ i ≤ m

is
is

a rs < 0 ) alors la valeur de la variable d’entrée xs


augmente à θ.
La variable d’entrée xs devient variable de
base à la place de la variable de sortie x jr .
Pivoter sur a rs et retourner à l’étape 1
Étape 1: Choix de la variable d’entrée

Le critère pour choisir la variable d’entrée est modifié pour tenir compte
des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice j ∈ JB
si x j = 0 et c j < 0, il est avantageux d’augmenter xj
si x j = u j et c j > 0 , il est avantageux de diminuer xj

{
Déterminons c s1 = min c j : x j = 0 et
j∈JB
} {
c s2 = max c j : x j = u j
j∈JB
}
Soit { }
c s = min c s1 ,−c s2
Si c s ≥ 0 , alors la solution est optimale et l’algorithme s’arrête.

Si cs < 0 et cs = cs1 , alors la variable xs augmente; aller à l’étape 2.1.

Si c s < 0 et c s < c s1 , alors la variable xs diminue; aller à l’étape 2.2


Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g = bi −
i
∑a ij
xj la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g   u ji −g 
suivantes qui se produit: θ = min u s , min 
i
: a is < 0  , min 
i
: a is > 0 
 1≤ i ≤ m
 − a is  1≤ i ≤ m
 a is 
i) xs atteint sa borne inf. 0
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa
borne sup. u jr (dans ce cas
a rs > 0 )
Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g  u − g 
suivantes qui se produit: θ = min u , min 
s
: a < 0  , min 
i
is
:a
ji i
is
> 0 
  −a
1≤ i ≤ m
  a
1≤ i ≤ m

i) xs atteint sa borne inf. 0 is is

ii) une variable de base x jr


décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa Pour tout i tel que ais < 0, alors x ji diminue
borne sup. u jr (dans ce cas lorsque xs diminue de θ . Il faut donc que
a rs > 0 ) x ji =gi − ais ( −θ ) ≥ 0 ⇔ − aisθ ≤ gi
g
⇔ θ≤ i .
− ais
 gi 
Donc θ ≤ Min  : ais < 0 
 is
1≤ i ≤ m − a

Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g  u − g 
suivantes qui se produit: θ = min u , min 
s
: a < 0  , min 
i
is
ji
: a > 0 
i
is
  −a
1≤ i ≤ m
  a
1≤ i ≤ m

i) xs atteint sa borne inf. 0 is is

ii) une variable de base x jr


décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa Pour tout i tel que ais > 0, alors x ji augmente
borne sup. u jr (dans ce cas lorsque xs diminue de θ . Il faut donc que
x ji =gi − ais ( −θ ) ≤ u ji ⇔ aisθ ≤ u ji − gi
a rs > 0 )
u ji − gi
⇔ θ≤ .
ais
 u ji − gi 
Donc θ ≤ Min  : ais > 0 
1≤ i ≤ m
 ais 
Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g  u − g 
suivantes qui se produit: θ = min u , min 
s
: a < 0  , min 
i
is
ji
: a > 0 
i
is
  −a
1≤ i ≤ m
  a
1≤ i ≤ m

i) xs atteint sa borne inf. 0 is is

ii) une variable de base x jr


décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa
Si θ = us, alors l’ensemble des variables
borne sup. u jr (dans ce cas de base reste le même et la même base est
a rs > 0 ) utilisée à la prochaine itération.
La variable xs demeure hors base
et sa valeur passe de us à 0.
Retourner à l’étape 1.
Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g  u − g 
suivantes qui se produit: θ = min u , min s
: a < 0  , min 
i
is
ji
:a
i
is
> 0 
  −a
1≤ i ≤ m
  a
1≤ i ≤ m

i) xs atteint sa borne inf. 0 is is

ii) une variable de base x jr


décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa g  gi 
Si θ = r
= min  : a < 0 
borne sup. u jr (dans ce cas − a rs 1≤ i ≤ m
 is− a
is

a rs > 0 ) alors la valeur de la variable d’entrée xs
est réduite de θ (i.e., xs← us– θ).
La variable d’entrée xs devient variable de
base à la place de la variable de sortie x jr .
Pivoter sur a rs et retourner à l’étape 1
Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
  g  u − g 
suivantes qui se produit: θ = min u , min 
s
: a < 0  , min 
i
:a is
ji i
is
> 0 
  −a
1≤ i ≤ m
  a 1≤ i ≤ m

i) xs atteint sa borne inf. 0 is is

ii) une variable de base x jr


décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa u −g u − g 
Si θ = jr
= min 
r
: a < 0 
ji i

borne sup. u jr (dans ce cas a  a 


1≤ i ≤ m
is
rs is

a rs > 0 ) alors la valeur de la variable d’entrée xs


et réduite de θ (i.e., xs← us– θ).
La variable d’entrée xs devient variable de
base à la place de la variable de sortie x jr .
Pivoter sur a rs et retourner à l’étape 1
Étape 3: Pivot
L’élément de pivot a rs est à l’intersection de la
ligne de la variable d’entrée xs et de la colonne
de la variable de sortie xr
Variable d’entrée
a rs

Variable de sortie

a rs


Tableau résultant
pour
amorcer la prochaine itération


Problème du restaurateur

• L’ensemble des points réalisables


pour le système
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
x≤4
0 0
x y u p h −z bi gi
u 5 3 1 0 0 0 30 30 gi = b i − ∑ a ij x j
j∈JB

p 2 3 0 1 0 0 24 24
h 1 3 0 0 1 0 18 18
−z − 8 − 6 0 0 0 1 0

Critère d'entrée Solution devient:


cs1 = min {−8, −6} ; cs2 = −∞ x = 4, y = 0, u = 10, p = 16,
cs = min {−8, ∞} = −8 h = 14, z = −32
x variable d'entrée qui augmente Poursuivons avec la même base

Critère de sortie
  30 24 18     gi   u ji − gi 
min  4, min  , ,  , ∞  = 4 θ = min u s , min  : a is > 0  , min  : a is < 0 
 5 2 1   1≤ i ≤ m
 a is  1≤ i ≤ m
 − a is 
x = 4 atteint sa borne supérieure
4 0
x y u p h −z bi gi
Solution devient:
u 5 3 1 0 0 0 30 10
x = 4, y = 0, u = 10, p = 16,
p 2 3 0 1 0 0 24 16 h = 14, z = −32
h 1 3 0 0 1 0 18 14
−z − 8 − 6 0 0 0 1 0 gi = b i − ∑ a ij x j
j∈JB
Problème du restaurateur

• L’ensemble des points réalisables


pour le système
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
x≤4
4 0
x y u p h −z bi gi
Solution devient:
u 5 3 1 0 0 0 30 10
x = 4, y = 0, u = 10, p = 16,
p 2 3 0 1 0 0 24 16 h = 14, z = −32
h 1 3 0 0 1 0 18 14
−z − 8 − 6 0 0 0 1 0 gi = b i − ∑ a ij x j
j∈JB

Critère d'entrée
cs1 = min {−6} ; cs2 = max {−8}
Changement de base:
cs = min {−6,8} = −6
y remplace u comme variable
y variable d'entrée qui augmente de base.

Critère de sortie
 10 16 14   10   gi   u ji − gi 
min ∞, min  , ,  , ∞  = θ = min u s , min  : a is > 0  , min  : a is < 0 
 3 3 3  3  1≤ i ≤ m
 a is  1≤ i ≤ m
 − a is 
u devient variable de sortie
4 0
x y u p h −z bi gi
Solution devient:
5 1 10 10
y 1 0 0 0 10 x = 4, y = , u = 0, p = 6,
3 3 3 3
p −3 0 −1 1 0 0 −6 6 h = 4, z = −52
h −4 0 −1 0 1 0 − 12 4
−z 2 0 2 0 0 1
gi = b i − ∑ a ij x j
j∈JB

x y u p h −z bi gi
u 5 3 1 0 0 0 30 10
p 2 3 0 1 0 0 24 16
h 1 3 0 0 1 0 18 14
−z − 8 − 6 0 0 0 1 0
Problème du restaurateur

• L’ensemble des points réalisables


pour le système
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
x≤4
4 0
x y u p h −z bi gi
Solution devient:
5 1 10 10
y 1 0 0 0 10 x = 4, y = , u = 0, p = 6,
3 3 3 3
p −3 0 −1 1 0 0 −6 6 h = 4, z = −52
h −4 0 −1 0 1 0 − 12 4 gi = b i − ∑ a ij x j
−z 2 0 2 0 0 1 j∈JB

Critère d'entrée
cs1 = min {2} ; cs2 = max {2} Changement de base:
cs = min {2, −2} = −2 x remplace h comme variable
x variable d'entrée qui diminue de base.

Critère de sortie
  10  
 ∞ −      u ji 

g −g
6 4 3  = 1 θ = min u s , min  i
: a is < 0  , min 
i
: a is > 0 
min  4, min  ,  , min    1≤ i ≤ m
 − a is  1≤ i ≤ m
 a is 
  3 4   5 
  3  
h devient variable de sortie
0 0
x y u p h −z bi gi
1 5
y 0 1 − 0 0 5 5 Solution devient:
12 12
1 3 x = 3, y = 5, u = 0, p = 3,
p 0 0 − 1 − 0 3 3 h = 0, z = −54
4 4
1 1
x 1 0 0 − 0 3 3 gi = b i − ∑ a ij x j
4 4 j∈JB

3 1
−z 0 0 0 1 54
2 2

x y u p h −z bi gi
5 1 10
y 1 0 0 0 10
3 3 3
p −3 0 −1 1 0 0 −6 6
h −4 0 −1 0 1 0 − 12 4
−z 2 0 2 0 0 1
Problème du restaurateur

• L’ensemble des points réalisables


pour le système
5x + 3y ≤ 30
2x + 3y ≤ 24
1x + 3y ≤ 18
x,y≥0
x≤4
0 0
x y u p h −z bi gi
1 5
y 0 1 − 0 0 5 5
12 12
1 3
p 0 0 − 1 − 0 3 3
4 4
1 1
x 1 0 0 − 0 3 3 Solution devient:
4 4 x = 3, y = 5, u = 0, p = 3,
3 1 h = 0, z = −54
−z 0 0 0 1 54
2 2
Critère d'entrée
3 1 1
cs1 = min  ,  = ; cs2 = −∞
2 2 2
1  1
cs = min  , ∞  =
2  2
Solution actuelle est optimale.

Vous aimerez peut-être aussi