Cours PL - Chapitre3 - Simplexe
Cours PL - Chapitre3 - Simplexe
IS 3
L
PL
u r
p o
écrit le : 2024
TABLE DES MATIÈRES
1
CHAPITRE 3
MÉTHODE PRIMALE DE RÉSOLUTION
D’UN PROGRAMME LINÉAIRE.
tel que :
2
Définition 3.1.2 Forme canonique mixte
Pn
max(min) f (x) = c 1 ∗ x 1 + ... + c n ∗ x n = cj xj
j=1
s.c.
Pn
∀i ∈ I1 , aij xj ≤ bi
contraintes inégalités
j=1
Pn
∀i ∈ I2 , aij xj = bi contraintes égalités
j=1
∀j ∈ J1 , xj ≥ 0 contraintes signes
∀j ∈ J2 ,
xj signes quelconques
Avec I = I1 ∪ I2 ensemble des indices des contraintes, tel que :
card(I) = m ⇒ m contraintes.
et J = J1 ∪ J2 ensemble des indices des variables, tel que :
card(J) = n ⇒ n variables.
Ce qui fait on aura :
A = (H|Im )
avec :
– Im matrice identité de taille m
– H matrice de taille (n − m)
Lemme 3.1.6
min Z = − max(−Z)
Cette formule réduit les procédures itératives dans l’algorithme qui sera éléboré pour
résoudre le P LS . (La compléxité de l’algorithme sera réduite)
Comme sur MatLab, la méthode de simplexe, qui a pour instruction linprog est dévelopée
que pour un problème de maximisation.
La forme standard du problème P LM est déterminée selon les variations des contraintes,
mais le principe est le même, il faut transformer l’inéquation en équation.
a11 ∗ x1 + a12 ∗ x2 ≤ b1
a11 ∗ x1 + a12 ∗ x2 + e1 = b1
e1 = b1 − (a11 ∗ x1 + a12 ∗ x2 )
Connaitre les valeurs des variables d’écart est utile lors de l’interprétation à donner
après voir déterminer la solution optimale.
Variable d’excédent :
a31 ∗ x1 + a32 ∗ x2 ≥ b3
a31 ∗ x1 + a32 ∗ x2 − e2 = b3
e2 = b3 − (a31 ∗ x1 + a32 ∗ x2 )
Résumé :
Exemple 3.1.8
9 ∗ x1 − 5 ∗ x2 ≤ −12
−5 ∗ x1 + 2 ∗ x2 = −4
−3 ∗ x1 − 11 ∗ x2 ≥ −2
x1 , x2 ≥ 0
Une solution de base est dite dégénérée si son nombre de variables positives est
inférieur au nombre de contraintes, ou explicitement, si au moins une VB est nulle.
Exemple 3.2.6
Soit le système :
x1 − x2 + x3 = 1
x1 + x2 + x3 = 1
La solution :
1 1
x1 = (V B), x2 = 0 (V HB), x3 = (V B)
2 2
est solution de base, tandis que la solution :
Le simplexe est un algorithme itérative, il démarre par un point initial, qui sera dans ce
cas de figure, la première solution de base réalisable, qui n’est qu’un des points extrêmes
de la région des solutions réalisables. A partir de cette première solution réalisable, l’al-
gorithme va passer vers une autre solution réalisable (point extrême adjacent au premier
point de départ) en s’assurant chaque fois qu’un tel passage nous permet d’accroı̂tre la
fonction économique (max) ou la décroı̂tre (min).
Donc pour trouver cette première solution de base, il faut trouver les variables de base
qui seront différentes des variables principales, dans notre cas on aura m = 3 variables
de bases (selon le nombre de contraintes) et n = 2 variables hors base (selon le nombre
des variables de décision).
On remarque que la 2eme contrainte n’a pas de variable de base la représentant ce qui
contredit le nombre de variables de base qu’il faut pour avoir une solution de base ad-
missible, et la 3eme contrainte contredit la convention imposée sur bi qui doit être positif
∀i = 1, 2.
2. On remarque que (x1 , x2 , x3 ) = (2, −1, 0) n’est pas une solution réalisable x2 ≤ 0
ce qui fait les deux points extrêmes de la région définie par le système S sont ( 21 , 0, 12 )
et (0, 31 , 23 )
3. Si on a la fonction objectif à minimiser Z = −3 ∗ x1 − 2 ∗ x2 − x3 sur la région (S),
le min est atteint au point x∗ = ( 21 , 0, 12 ) avec Z ∗ = Z(x∗ ) = −2
Remarque 3.2.9 Puisque les P LM et le P LSM sont équivalents, donc quand on trouvera
l’optimum, les variables artificielles doivent être nulles, sinon les contraintes originales
ne seraient pas respectées.
Par exemple, si la solution optimale est telle que t1 ≥ 0, ceci implique que la deuxième
contrainte de P LM est :
a21 ∗ x1 + a22 ∗ x2 ≤ b2
qui est une contradiction avec :
a21 ∗ x1 + a22 ∗ x2 = b2
Afin de remedier à ce problème, on va introduire dans la fonction objectif pour chaque
variable artificielle ajoutée le coefficien −M pour un problème à maximum, +M pour un
problème à minimum où M est une valeur très grande telle que l’infini !
Les pénalités ont pour objet de provoquer l’élimination des variables artificielles au fil
des itérations. Normalement, à l’optimum (s’il existe) les variables artificielles sont hors
base. Si celles-ci sont à l’optimum dans la base, avec une valeur non nulle, le programme
n’a pas de solution.
Conclusion 1 Maintenant on peut déduire la forme standard avec la méthode des pénalités :
1. d’un problème mixte de maximisation comme suit :
max Z = c1 ∗ x1 + c2 ∗ x2 − M ∗ t1 − M ∗ t2
s.c. a11 ∗ x1 + a12 ∗ x2 + e1 = b1
(P LSM ) a21 ∗ x1 + a22 ∗ x2 + t1 = b2
a31 ∗ x1 + a32 ∗ x2 − e2 + t2 = b3
x1 , x2 , e1 , e2 , t1 , t2 ≥ 0
c(k) est l’effet sur Z de l’accroissemnt unitaire donné à la variable hors base x(k) et
e(k)
Base x1 x2 e1 e2 e3 bi
e1 a11 a12 1 0 0 b1
e2 a21 a22 0 1 0 b2
e3 a31 a32 0 0 1 b3
ci c1 c2 0 0 0 z0
Ce premier tableau est appelé le tableau initial de la méthode de simplexe (k=0) avec la
solution de base initiale réalisable :
0
Solbase =(x1 ,x2 ,e1 ,e2 ,e3 )=(0,0, b1 , b2 , b3 )
et
z0 = 0
3.4.2 Tableau simplexe pour une forme mixte | Méthode des pénalités
Soit le problème mixte dans R2 avec m = 3 contraintes :
max (min) Z = c1 ∗ x1 + c2 ∗ x2
s.c.
a11 ∗ x1 + a12 ∗ x2 ≤ b1
(P LM ) a21 ∗ x1 + a22 ∗ x2 = b2
a31 ∗ x1 + a32 ∗ x2 ≥ b3
x1 , x2 ≥ 0
Base x1 x2 e1 e2 t1 t2 bi
e1 a11 a12 1 0 0 0 b1
t1 a21 a22 0 0 1 0 b2
t2 a31 a32 0 -1 0 1 b3
ci [c1 + (-)(a21 + a31 ) ∗ M ] [c2 + (-)(a22 + a32 ) ∗ M ] 0 -(+)M 0 0 +(-)M ∗ (b2 + b3 )
avec la solution de base initiale réalisable :
0
Solbase =(x1 ,x2 ,e1 ,e2 ,t1 ,t2 ) =(0,0, b1 , 0, b2 , b3 )
3.4.3 Etape de la PL
1. Ecrire le modèle (Modélisation).
2. Transformation du système de contraintes en un système d’équation.
3. Création d’une première solution de base.
4. Début de la procédure itérative
5. Calculer les coèfficients c(k)
6. Critère d’optimalité
7. Si oui arrêter, afficher solution
8. Sinon calcul itérative et aller à l’étape 6
3.4.4 Conditions pour choisir une nouvelle variable de base (variable en-
trante)
ck sont les coefficients qui expriment la modification globale apportée à la fonction
objectif (accroissement ou décroissement) unitaire donner à la valeur hors base xj .
Si le PL est une maximisation donc le choix de la nouvelle variable de base est celle dont
son coefficient c( k) est le plus grand positif, sinon si c’est un PL de minimisation elle sera
choisie quand son coefficient c(k) est le plus petit négatif.
Ce qui fait d’après le critère d’optimalité on peut déduire le test d’arrêt de l’algo-
rithme :
Par contre si l’algorithme recontre une base dégénérée dans une itération donnée, alors
on peut rencontrer un éventuel cyclage de l’algorithme, c.-à-d. on retrouve une base déjà
rencontrée (repasser par un sommet déjà calculer ne vérifiant pas le critère d’arrêt) et
on itère indéfiniment.
Pour traiter les cas de dégénérescence, on peut appliquer la règle de Bland (1977)
qui assure l’arrêt de l’algorithme en un nombre fini d’itérations. Aussi quand plusieurs
variables sont susceptibles d’entrer à ou de sortir de la base, on choisit toujours celle qui
a l’indice le plus petit.
Comme les variables artificielles n’ont aucun sens économique, le (PfL) sera équivalent
à :
min Ze = −(a21 + a31 ) ∗ x1 − (a22 + a32 ) ∗ x2 + e2 + b2 + b3 ⇐= 1 et 2
s.c. a11 ∗ x1 + a12 ∗ x2 + e1 = b1
(PfL) a21 ∗ x1 + a22 ∗ x2 + t1 = b2
a31 ∗ x1 + a32 ∗ x2 − e2 + t2 = b3
x1 , x2 , e1 , e2 , t1 , t2 ≥ 0
t1 = −x1 − 2 ∗ x2 + e2 + 2 ⇐= 2
+ t2 = −x1 + e3 + 1 ⇐= 3
− − − − −− −− − − − − − − − − − − − − − − − − − − − − −
t1 + t2 = −2 ∗ x1 − 2 ∗ x2 + e2 + e3 + 3
bi
Base x1 x2 e1 e2 e3 t1 t2 bi CP
e1 1 1 1 0 0 0 0 5 5 e(0)
L 1
(0)
t1 1 2 0 -1 0 1 0 2 2 L2
e
t2 1 0 0 0 -1 0 1 1 1 e(0)
L 3
(0)
−Ze -2 -2 0 1 1 0 0 -3 L4
e
V.Bnew ←− x1 −→ j = 1(règle de Bland) (0)
ce qui fait le pivot est p(0) = a31 = 1
V.H.Bnew ←− t2 −→ i = 3
2- Itération k=1 :
bi
Base x1 x2 e1 e2 e3 t1 t2 bi CP
e1 0 1 1 0 1 0 -1 4 5 e(1)
L =Le(0) − a(0) L e(1)
1 1 11 3
t1 0 2 0 -1 1 1 1 1 1/2 e(1)
L =Le(0) − a(0) L e(1)
2 2 21 3
(1) e(0) /a(0)
x1 1 0 0 0 -1 0 1 1 L3
e =L 3 31
−Ze 0 -2 0 1 -1 0 2 -1 e(1)
L e (0)
= L4 − a41 L
(0) e (1)
4 3
V.Bnew ←− x2 −→ j = 2 (1)
ce qui fait le pivot est p(1) = a22 = 2
V.H.Bnew ←− t1 −→ i = 2
3- Itération k=2 :
Base x1 x2 e1 e2 e3 t1 t2 bi
e1 0 0 1 1/2 1/2 -1/2 -1/2 7/2 e(2)
L =Le(1) − a(1) L e(2)
1 1 12 2
(2) e(1) /a(1)
x2 0 1 0 -1/2 1/2 1/2 -1/2 1/2 L2
e =L 2 22
x1 1 0 0 0 -1 0 1 1 e(2)
L e (1)
= L3 − a32 L
(1) e (2)
3 2
(2) (1) (1) e (2)
−Ze 0 0 0 0 0 1 1 0 L4
e = L4 − a42 L2
e
Pour démarrer la PII il faut optimiser cette fois ci la fonction objectif du modèle
original et éliminer du dernier tableau de la PI les deux colonnes associées aux
variables artificielles t1 et t2
4- Tableau initial de la phase II Itération k=3 : La ligne −Z des valeurs margi-
nales du premier tableau de la pahse II est bien sûr modifiée puisqu’on n’a plus la
même fonction économique.
Base x1 x2 e1 e2 e3 bi
e1 0 0 1 1/2 1/2 7/2 L1
x2 0 1 0 -1/2 1/2 1/2 L2
x1 1 0 0 0 -1 1 L3
−Zprimal 1 2 0 0 0 0 L4
−Z 0 0 0 1 0 -2 L5 = L4 − (L3 + 2L2 ) (∗)
Pour trouver ces valeurs, On peut procéder de deux manières :
1. Indirectement, il suffit d’écrire le système des contraintes du dernier tableau de
la PI et remplacer dans la fonction objectif du problème primal, c-à-d. :
bi
Base x1 x2 e1 e2e3 bi CP
(3)
e1 0 0 1 1/2
1/2 7/2 7 L1
(3)
x2 0 1 0 -1/2
1/2 1/2 L2
(3)
x1 1 0 0 0 -1 1 L3
(3)
−Z 0 0 0 1 0 -2 L4
V.Bnew ←− e2 −→ j = 4 (3)
ce qui fait le pivot est p(3) = a14 = 1/2
V.H.Bnew ←− e1 −→ i = 1
5- Itération k=4 :
Base x1 x2 e1 e2 e3 bi
(4) (3) (3)
e2 0 0 2 1 1 7 L1 = L1 /a14
(4) (3) (3) (4)
x2 0 1 1 0 1 4 L2 = L2 − a24 L1
(4) (3) (3) (4)
x1 1 0 0 0 -1 1 L3 = L3 − a34 L1
(4) (3) (3) (4)
−Z 0 0 -2 0 -1 -9 L4 = L4 − a44 L1
On remarque que le critère d’optimalité est satsfait, par conséquence la solution de
base obtenue de la phase II est la solution optimale du programme linéaire original.
x∗ = (1, 4)
et
Z∗ = 9