2
Méthode du simplexe
3
Algorithme du simplexe(méthode algébrique)
𝑀𝑎𝑥 𝑍 = 4𝑥 + 5𝑦
2𝑥 + 𝑦 ≤ 8
𝑥 + 2𝑦 ≤ 7
𝑦 ≤3
𝑥 ,𝑦 ≥ 0
4
Algorithme du simplexe(méthode algébrique)
La forme standard du PL
𝑀𝑎𝑥 𝑍 = 4𝑥 + 5𝑦
2𝑥 + 𝑦 + 𝑒1 = 8
𝑥 + 2𝑦 + 𝑒2 = 7
𝑦 + 𝑒3 = 3
𝑥 , 𝑦 , 𝑒1 , 𝑒2 , 𝑒3 ≥ 0
5
Algorithme du simplexe(méthode algébrique)
1ière itération:
Exprimons les variables de base VB et la fonction objectif
en fonction des variables hors base VHB
𝑒1 = 8 − 2𝑥 − 𝑦
𝑒2 = 7 − 𝑥 − 2𝑦 (1)
𝑒3 = 3 − 𝑦
𝑍 = 4𝑥 + 5𝑦
Solution de base réalisable ( 𝑥 = 0 , 𝑦 = 0, 𝑒1 = 8 , 𝑒2 = 7 , 𝑒3 = 3) Z =0
6
Algorithme du simplexe(méthode algébrique)
Pour augmenter la valeur de Z nous devons faire rentrer la variable
hors base 𝒚 (coefficient le plus élevé dans Z) dans la base et faire
sortir une variable de base hors base.
En gardant 𝑥 =0 et remplaçant sa valeur dans (1) et en utilisant la non
négativité des variables, on obtient:
𝑒1 = 8 − 𝑦 ≥ 0 𝑦≤8
𝑒2 = 7 − 2𝑦 ≥ 0 ⟹ 𝑦 ≤ 3.5 ⟹ 𝑦≤3
𝑒3 = 3 − 𝑦 ≥ 0 𝑦≤3
C’est la variable de base 𝒆𝟑 qui sort ( elle devient variable hors base)
La nouvelle base est : (𝑥 = 0 , 𝑒3 =0) VHB , et {𝑒1 , 𝑒2 , 𝑦 } VB
7
Algorithme du simplexe(méthode algébrique)
2ième itération:
Exprimons les variables de base et la fonction objectif en
fonction des variables hors base , on obtient :
𝑒1 = 8 − 2𝑥 − 3 + 𝑒3
𝑒2 = 7 − 𝑥 − 2(3 − 𝑒3 )
𝑦 = 3 − 𝑒3
𝑒1 = 5 − 2𝑥 + 𝑒3
𝑒2 = 1 − 𝑥 + 2𝑒3 (2)
𝑦 = 3 − 𝑒3
𝑍 = 4𝑥 + 5(3 − 𝑒3 )
𝑍 = 15 + 4𝑥 − 5𝑒3
8
Algorithme du simplexe(méthode algébrique)
La variable candidate à entrer en base est x.
En gardant e3=0 dans (2), on obtient:
𝑒1 = 5 − 2𝑥 ≥ 0 ⟹ 𝑥 ≤ 2,5
𝑒2 = 1 − 𝑥 ≥ 0 ⟹ 𝑥 ≤ 1
𝑦 =3≥0
C’est la variable de base 𝒆𝟐 qui sort ( elle devient variable hors base)
La nouvelle base est : (𝑒2 = 0 , 𝑒3 =0) VHB , et {𝑒1 , 𝑥, 𝑦 } VB
3ième itération:
Exprimons les variables de base et la fonction objectif en fonction des
variables hors base on obtient :
𝑒1 = 5 − 2( 1 − 𝑒2 +2𝑒3 ) + 𝑒3
𝑥 = 1 − 𝑒2 +2𝑒3
𝑦 = 3 − 𝑒3
9
Algorithme du simplexe(méthode algébrique)
𝑒1 = 3 + 2𝑒2 − 3𝑒3
(3)
𝑥 = 1 − 𝑒2 +2𝑒3
𝑦 = 3 − 𝑒3
𝑍 = 15 + 4(1 − 𝑒2 + 2𝑒3 ) − 5𝑒3
𝑍 = 19 − 4𝑒2 + 3𝑒3
10
Algorithme du simplexe(méthode algébrique)
• C’est la variable de base 𝒆𝟏 qui sort ( elle devient variable hors base)
• La nouvelle base est : (𝑒2 = 0 , 𝑒1 =0) VHB , et {𝑒3 , 𝑥, 𝑦 } VB
4ième itération:
Exprimons les variables de base et la fonction objectif en fonction des
variables hors base on obtient :
1 2
𝑒3 = 1 − 𝑒1 + 𝑒2
3 3
1 2
𝑥 = 1 − 𝑒2 +2(1 − 𝑒1 + 𝑒2 )
3 3
1 2
𝑦 = 3 − 1 + 𝑒1 − 𝑒2
3 3
11
Algorithme du simplexe(méthode algébrique)
1 2
𝑒3 = 1 − 𝑒1 + 𝑒2
3 3
1 2
𝑥 = 3 + 𝑒2 − 𝑒1 (4)
3 3
1 2
𝑦 = 2 + 𝑒1 − 𝑒2
3 3
1 2
𝑍 = 19 − 4𝑒2 + 3(1 − 𝑒1 + 𝑒2 )
3 3
𝑍 = 22 − 2𝑒2 − 𝑒1 )
La solution optimale est atteinte car tous les coefficients des VHB dans la
fonction objectif sont négatifs
12
Algorithme du simplexe(méthode des tableaux)
13
Algorithme du simplexe(méthode des tableaux)
Reprenons le même exemple précédent ( méthode algébrique)
𝑀𝑎𝑥 𝑍 = 4𝑥 + 5𝑦
2𝑥 + 𝑦 + 𝑒1 = 8
𝑥 + 2𝑦 + 𝑒2 = 7
𝑦 + 𝑒3 = 3
𝑥 , 𝑦 , 𝑒1 , 𝑒2 , 𝑒3 ≥ 0
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 2 1 1 0 0 8
0 e2 1 2 0 1 0 7
0 e3 0 1 0 0 1 3
14
Algorithme du simplexe(méthode des tableaux)
Critère d’entrée: Soit I l’ensemble des indices des variables de Base et J
ceux des variables hors base.
La variable hors base xr de coefficient j dans la fonction objectif le
plus élevé est la variable candidate à entrer en base. En cas d’égalité
on fait un choix arbitraire.
En d’autres termes: r= Max {Cj – Zj / Cj – Zj > 0, j J }.
Critère de sortie: La variable xs qui doit sortir de la base est telle que:
s = Min {bi/aij , aij >0 i I } 𝜃𝑠 = 𝑏𝑠 /𝑎𝑠𝑗
𝒂𝒔𝒋 : est appelé pivot
15
Algorithme du simplexe(méthode des tableaux)
Renouvellement du tableau du simplexe
Le nouveau tableau s’obtient par les formules suivantes:
Ligne pivot: (celle qui contient le pivot)
Nouvel élément= Ancien élément / pivot
Colonne pivot : tous les elements à 0 sauf le pivot
Autres éléments:
𝒂𝒊𝒋 = 𝒂𝒊𝒋 − (𝒂𝒊𝒓 ∗ 𝒂𝒋𝒔 )/𝒂𝒔𝒓
Nouveau = ancien – ( projection_ligne_pivot*projection_colonne pivot)/pivot
16
Algorithme du simplexe(méthode des tableaux)
Algorithme du Simplexe
(0) Mettre le programme linéaire sous sa forme standard
(1) Recherche d’une solution de base réalisable de départ
(2) Construire le premier tableau du simplexe
(3) Tester si j 0 , j {1, …, n}
Si oui, terminer la solution courante est optimale
Si non, aller en (4)
(4) Soit r= Max {j / j > 0, j J}, la variable xr entre en base
Tester Si air 0 r {1, …, m}
Si oui, le problème ne possède pas de solution optimale finie
Si non, aller en (5)
(5) Déterminer la variable sortante xs par
s = Min {bi/aij , aij >0 } 𝜃𝑠 = 𝑏𝑠 /𝑎𝑠𝑗
(6) Renouvellement du tableau par les formules données ci haut
17
Algorithme du simplexe(méthode des tableaux)
1ere itération
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 2 1 1 0 0 8 8
0 e2 1 2 0 1 0 7 7/2
0 e3 0 1 0 0 1 3 3
Zj 0 0 0 0 0 Z=0
Cj – Zj 4 5 0 0 0
m i = bi /aij m
Zj = (Cj * aij) j: colonne pivot Z = (bi * Ci)
i=1 i=1
18
Algorithme du simplexe(méthode des tableaux)
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 2 0 1 0 -1 5 8-(3*1)/1
0 e2 1 0 0 1 -2 1
0 Y 0 1 0 0 1 3
2eme itération
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 2 0 1 0 -1 5 5/2
0 e2 1 0 0 1 -2 1 1
5 Y 0 1 0 0 1 3 -
Zj 0 5 0 0 5 Z=15
Cj – Zj 4 0 0 0 -5
19
Algorithme du simplexe(méthode des tableaux)
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 0 0 1 -2 3 3
4 X 1 0 0 1 -2 1
5 Y 0 1 0 0 1 3
3eme itération
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e1 0 0 1 -2 3 3 1
4 X 1 0 0 1 -2 1 -
5 Y 0 1 0 0 1 3 3
Zj 4 5 0 4 -3 Z=19
Cj – Zj 0 0 0 -4 3
20
Algorithme du simplexe(méthode des tableaux)
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e3 0 0 1/3 -2/3 1 1
4 X 1 0 2/3 -1/3 0 3
5 Y 0 1 -1/3 2/3 0 2
Arrêt de l’algorithme
Cj 4 5 0 0 0
VB X Y e1 e2 e3 b
0 e3 0 0 1/3 -2/3 1 1
4 X 1 0 2/3 -1/3 0 3
5 Y 0 1 -1/3 2/3 0 2
Zj 4 5 1 2 0 Z=22
Cj – Zj 0 0 -1 -2 0
Exemple
Max Z = 24X1 + 20X2 Max Z = 24X1 + 20X2
Sc X1 + X2 ≤ 30 Sc X1 + X2 + e1 = 30
X1 + 2 X2 ≥ 40 X1 + 2 X2 – e2 = 40
X1 ≥ 0, X2 ≥ 0 X1 ≥ 0, X2 ≥ 0, e1 ≥ 0, e2 ≥ 0
1 1 1 0 X1 = X2=0 (HB)
A= ➔
1 2 0 -1 e1=30 & e2=-40
solution de base mais non réalisable
22
Méthode à deux phases
Considérons le programme linéaire mis sous la forme standard
(PLA) 𝑀𝑖𝑛 𝑍 = σ𝑚
𝑖=1 𝑦𝑖 𝑀𝑎𝑥 𝑍 = − σ𝑚
𝑖=1 𝑦𝑖
𝐴𝑋 + 𝑦 = 𝑏 Ou bien 𝐴𝑋 + 𝑦 = 𝑏
𝑋 ,𝑦 ≥ 0 𝑋 ,𝑦 ≥ 0
𝒆𝟏 , 𝒆𝟐 Variables d’ecarts
A1 Variable artificielle
1 1 1 0 0 1 0 1 1 0
A= 𝐴𝐵 = 𝐴𝐻𝐵 =
1 2 0 -1 1 0 1 1 2 -1
Solution de base réalisable X =(0, 0, 30, 0, 40)
24
Méthode à deux phases
1ere phase
Tous les coefficients des vars hors base et des
variables de base == 0
Max Z = - A1 Sauf les coefficients des variables artificielles
Sc X1 + X2 + e1 = 30
X1 + 2 X2 – e2 + A1 = 40
X1 ≥ 0, X2 ≥ 0, e1 ≥ 0, e2 ≥ 0, A1 ≥ 0
Cj 0 0 0 0 -1
VB X1 X2 e1 e2 A1 b
0 e1 1 1 1 0 0 30 30
-1 A1 1 2 0 -1 1 40 20
Zj -1 -2 0 1 -1
Cj – Zj 1 2 0 -1 0 Z= - 40
25
Méthode à deux phases
1ere phase
Cj 0 0 0 0 -1
VB X1 X2 e1 e2 A1 b 𝜃
0 e1 1 1 1 0 0 30 30
-1 A1 1 2 0 -1 1 40 20
0 e1 ½ 0 1 ½ -½ 10
0 X2 ½ 1 0 -½ ½ 20
Zj 0 0 0 0 0
Cj – Zj 0 0 0 0 -1 Z=0
26
Méthode à deux phases
2eme phase
Max Z = 24X1 + 20X2
Sc X1 + X2 + e1 = 30
X1 + 2 X2 – e2 = 40
X1 ≥ 0, X2 ≥ 0, e1 ≥ 0, e2 ≥ 0
Cj 24 20 0 0
VB X1 X2 e1 e2 b Ɵ
0 e1 ½ 0 1 ½ 10 20
20 X2 ½ 1 0 -½ 20 40
Zj=somme 10 20 0 -10
(Cj*aij)
Cj - Zj 14 0 0 10 Z=400
27
Méthode à deux phases
2eme phase
Cj 24 20 0 0
VB X1 X2 e1 e2 b
0 e1 ½ 0 1 ½ 10
20 X2 ½ 1 0 -½ 20
24 X1 1 0 2 1 20
20 X2 0 1 -1 -1 10
Cj – Zj 0 0 -28 -4 Z=680
28