Académique Documents
Professionnel Documents
Culture Documents
CH 2 Method e Simplex e 2021
CH 2 Method e Simplex e 2021
Prof: A. El Maliki
ENCG-C.Université Hassan II
1 La méthode du simplexe
z = c1 x1 + c2 x2 + · · · + cn xn
max(ou min)
a11 x1 + a12 x2 +... a1n xn ≤ (ou ≥) b1
a21 x1 + a22 x2 +... a2n xn ≤ (ou ≥) b2
s.c .. .. .. .. ..
. . . . .
a x + a x +... a x ≤ (ou ≥) bm
m1 1 m2 2 mn n
x1 , · · · , xn ≥ 0
Interprétation économique
Un actreur économique exerce n activités avec des niveaux xi à
déterminer. Ces activités utilisent m ressources. La quantité aij de
ressource i nécessaire pour exercer l’activité j avec un niveau d’une unité.
Maximiser le profit ou minimiser le coût.
1 cj profit(ou coût) par unité d’activité j
2 bj disponibilité de la ressource j
3 aij consommation de la ressource i par l’unité d’activité j
4 xj niveau de l’activité j
A. El Maliki (ENCG-C.Université Hassan II) RO: Méthode du simplexe 3 / 36
La méthode du simplexe Les problèmes à solution dégénérée Les deux phases du simplexe
Remarques
1 Solution optimale : sommet (point extrême).
2 Identification algébrique des sommets : correspondance avec les bases
d’un système d’équations.
Forme canonique
Définition
Un programme linéaire est sous forme canonique lorsque toutes ses
contraintes sont des inégalités (par exemple ≤) et toutes ses variables sont
non-négatives.
Forme standard
Théorème
Toute solution de base réalisable correspond à un sommet du polyèdre.
n+m = (n+m)!
1 Nombre maximum de solutions de base :Cm m!n!
2 Algorithme ”bête et méchan” : énumération de toutes les bases.
3 Méthode du simplexe : partir d’une solution de base admissible et
passer à une solution de base voisine qui améliore la valeur de
l’objectif.
4 Solution voisine : changement d’une variable en base.
5 La méthode de simplexe s’exécute en 3 etapes :
Détermination de la variable entrante.
Détermination de la variable sortante.
Pivotage.
Algorithme du simplexe
Forme standard du PL :
max z= c1 x1 + c2 x2 + · · · + cn xn
a11 x1 + a12 x2 +... a1n xn +s1 = b1
a21 x1 + a22 x2 +... a2n xn +s2 = b2
s.c ... ... ... ... ....
a x + a x +... a x +s m = bm
m1 1 m2 2 mn n
x1 · · · , xn , s1 · · · , sm ≥ 0;
Algorithme du simplexe :
Efficacité du simplexe
En pratique, l’algorithme de simplexe est très utilisé car il est très efficace :
entre 3m/2 et 3m itérations en moyenne (m = nombre de contraintes)
pour converger.
← L1 s1 0 6 4 1 0 0 0 24 4
L2 s2 0 1 2 0 1 0 0 6 6
L3 s3 0 0 1 0 0 1 0 2 −
L4 s4 0 −1 1 0 0 0 1 1 −
Lz z −1 5 4 0 0 0 0 0
Comme il y a deux nombres positifs (5 et 4) dans la ligne Lz : (ligne des
coefficients de la fonction objectif), la solution de base réalisable obtenue
n’est pas optimale.
On applique la procédure de détermination de la variable entrante et celle
sortante, on trouve :
1 x entre en base (plus grand coefficient positif de z ; ligne L )
1 z
2 s sort de base (plus petit rapport positif de θ =
bi
1 i ai1 , ai1 > 0)
A. El Maliki (ENCG-C.Université Hassan II) RO: Méthode du simplexe 13 / 36
La méthode du simplexe Les problèmes à solution dégénérée Les deux phases du simplexe
Simplexe du tableau
L3 s3 0 0 1 0 0 1 0 2 2
5 1
L4 s4 0 0 3 6 0 0 1 5 3
2
Lz z −1 0 3 − 56 0 0 0 −20
Comme il y a un nombre strictement positif (2/3) dans la ligne Lz , la
solution de base réalisable obtenue n’est pas optimale.
On applique la procédure de détermination de la variable entrante et celle
sortante, on a :
1 x entre en base (plus grand coefficient positif de z ; ligne L )
2 z
2 s sort de base (plus petit rapport positif de θ =
bi
2 i ai2 , a i2 > 0)
A. El Maliki (ENCG-C.Université Hassan II) RO: Méthode du simplexe 15 / 36
La méthode du simplexe Les problèmes à solution dégénérée Les deux phases du simplexe
Simplexe du tableau
L∗2 ← 1
4 L2 = (0, 1, −1 3 3
8 , 4 , 0, 0, 2 )
3
L1 ← L1 − 32 L∗2 = (1, 32 , 16 , 0, 0, 0, 4) − 32 (0, 1, −1 3 3
8 , 4 , 0, 0, 2 )
L3 ← L3 − 1L∗2 = (0, 1, 0, 0, 1, 0, 2) − 1(0, 1, −1 3 3
8 , 4 , 0, 0, 2 )
5 ∗ −1 3
L4 5 1
← L4 − 3 L2 = (0, 3 , 6 , 0, 0, 1, 5) − 3 (0, 1, 8 , 4 , 0, 0, 32 )
5
Lz ← Lz − 23 L∗2 = (0, 32 , −5 2 −1 3
6 , 0, 0, 0, −20) − 3 (0, 1, 8 , 4 , 0, 0, 2 )
3
Simplexe du tableau
Lz z −1 0 0 − 34 − 21 0 0 −21
Comme tous les nombres de la ligne Lz sont négatifs ou nuls, la solution de
base réalisable obtenue (x1 , x2 , s1 , s2 , s3 , s4 ) = (3, 32 , 0, 0, 21 , 52 ) est optimale.
La solution optimale est donc la suivante : (x1 , x2 ) = (3, 32 ) et la valeur
maximale de la fonction objecftif est Z ∗ = max z = 21.
On a utilisé toutes les matières premières M1, M2 (s1 = 0, s2 = 0)
Remarquer : Z = Z ∗ + i (coût réduit)i xi = Z ∗ − 43 s1 − 21 s2 ≤ Z ∗
P
Debut
Tant que qu’il existe un coefficient strictement positif
dans la fonction objectif faire
debut
1. choisir la variable entrante dans la base : c’est la variable
associée au plus grand coefficit ce > 0.
Si tous les aie ≤ 0 (les valeurs dans la colonne de la
variable entrante) STOP
le problème est non borné( max z = +∞)
Sinon
2. Choisir la variable sortante xs telle que
bs bi
ase = min{ aie , aie > 0, i = 1, · · · , m}
3. Pivotage
Fin début
Fin Tant que
Si tous les ci ≤ 0, la solution optimale est trouvée.
Fin début
A. El Maliki (ENCG-C.Université Hassan II) RO: Méthode du simplexe 18 / 36
La méthode du simplexe Les problèmes à solution dégénérée Les deux phases du simplexe
L1 s1 0 4 2 1 0 0 12 3
5
← L2 s2 0 4 1 0 1 0 10 2
L3 s3 0 1 1 0 0 1 4 4
Lz z −1 5 3 0 0 0 0
On applique la technique de pivotage et on obtient le second tableau du
simplexe
L1 s1 0 0 1 1 −1 0 2 2?
1 1 5
L2 x1 0 1 4 0 4 0 2 10
3 −1 3
L3 s3 0 0 4 0 4 1 2 2?
7 −5 −25
Lz z −1 0 4 0 4 0 2
Il y a une seule variable condidate pour entrer en base : x2
Les variables condidates de sortir de la base sont s1 et s3 : choisir comme
variable sortante celle de plus petit indice, ici c’est s1 (La règle de Bland
)
Ligne VB z x1 x2 s1 ↓ s2 s3 bi θi
L1 x2 0 0 1 1 −1 0 2 −
−1 1
L2 x1 0 1 0 4 2 0 2 4
−3 1
← L3 s3 0 0 0 4 2 1 0 0
−7 1
Lz z −1 0 0 4 2 0 −16
Il y a une seule variable condidate pour entrer en base : s2
La variable condidate de sortir de la base est s3
Ligne VB z x1 x2 s1 s2 s3 bi
−1
L1 x2 0 0 1 2 0 2 2
1
L2 x1 0 1 0 2 0 −1 2
−3
L3 s3 0 0 0 2 1 2 0
Lz z −1 0 0 −1 0 −1 −16
On remarque que tous les nombres de la ligne Lz sont négatifs ou nuls. La
solution optimale est donc trouvée et donnée par (x1 , x2 ) = (2, 2) et la
valeur maximale de la fonction objectif est max z = 16.
En pratique, les dégénérescences et, plus encore, le cyclage, sont des
phénomènes rares
Début
Mettre les contraintes sous forme d’égalités ;
Rendre positif le second membre des contraintes ;
Introduire les variables artificielles ai dans les contraintes :
Xn
aij xj + ai = bi , xj , ai ≥ 0
j=1
m
X
Sous ces contraintes, résoudre le PL auxiliaire : max(z) = − ai
i=1
Si pour tout i ∈ {1, ..., m}, ai = 0 ⇔ max z = 0
Alors Résoudre le PL initial en prenant comme solution de base de départ
la solution obtenue à l’issue de la première phase
Sinon Il n’y a pas de solution rélisable
Fin.
À la fin de la phase I :
1 si la valeur optimale max z de la fonction économique est négative
(i.e., max z < 0), alors le problème original n’est pas réalisable
2 si la valeur optimale max z de la fonction économique est nulle i.e., le
problème original est réalisable. Dans ce cas, la résolution du
problème original avec l’algorithme du simplexe se poursuit en
utilisant l’information du dernier tableau de la phase I.
La phase II reprendra l’objectif original. Le tableau de la phase II s’obtient
en modifiant le dernier tableau de la phase I de la façon suivante :
On raye les variables artificielles ;
On exprime la fonction-objectif z en fonction des variables hors base
du dernier tableau de la phase I, en excluant les variables artificielles
Première phase :
Le premier tableau du phase I :
Ligne VB z x1 ↓ x2 s1 s2 s3 a1 a2 bi
L1 a1 0 1 1 −1 0 0 1 0 6
← L2 a2 0 (1) 0 0 −1 0 0 1 4
L3 s3 0 0 1 0 0 1 0 0 3
Lz z −1 2 1 −1 −1 0 0 0 10
x1 entre en base et a2 sort de la base, on élimine a2 du problème.
On applique la technique de pivotage et on obtient le second tableau du
phase I
← L1 a1 0 0 (1) −1 1 0 1 2
L2 x1 0 1 0 0 −1 0 0 4
L3 s3 0 0 1 0 0 1 0 3
Lz z −1 0 1 −1 1 0 0 2
a1 sort et x2 entre en base, on élimine a1 .
On applique la technique de pivotage et on obtient le troisième tableau du
phase I.
Ligne VB z x1 x2 s1 s2 s3 bi
L1 x2 0 0 1 −1 1 0 2
L2 x1 0 1 0 0 −1 0 4
L3 s3 0 0 0 1 −1 1 1
Lz z −1 0 0 0 0 0 0
la première phase est achevée puisque ci = 0, i = 1, · · · , 5.
Une solution de base réalisable est donc :
x = (x1 , x2 , s1 , s2 , s3 ) = (4, 2, 0, 0, 1).
Dans le dernier tableau, les deux variables ajoutées a1 et a2 sont sorties de
la base. Donc a1 = 0 et a2 = 0, ce qui était l’objectif. On a donc trouvé
un point de départ pour résoudre le problème original
Deuxième phase :
Le PL se formule sous la forme équivalente suivante :
max z= 5x1 + 7x2
x 2 − s1 + s2
= 2
x1 − s2 = 4
s.c
s 1 − s 2 + s3 = 1
x1 , x2 , s1 , s2 , s3 ≥ 0
Ligne VB z x1 x2 s1 ↓ s2 s3 bi
L1 x2 0 0 1 −1 1 0 2
L2 x1 0 1 0 0 −1 0 4
L3 s3 0 0 0 (1) −1 1 1
Lz z −1 0 0 7 −2 0 −34
s1 entre en base et s3 sort de base.
Ligne VB z x1 x2 s1 s2 s3 bi
L1 x2 0 0 1 0 0 1 3
L2 x1 0 1 0 0 −1 0 4
L3 s1 0 0 0 1 −1 1 1
Lz z −1 0 0 0 5 −7 −41
Conclusion :La colonne de s2 ne comporte que des nombres ≤ 0, le
problème est donc non borné