Vous êtes sur la page 1sur 28

Chapitre3 : Méthode Primale de

Résolution d’un Programme


Linéaire
Introduction

Nous avons résolu des cas de programmes linéaires simples :


deux variables et trois ou cinq contraintes. Au fur et à mesure
que le nombre des contraintes s’accroît, la méthode graphique
s’avère de plus en plus difficile à mettre en oeuvre.
En présence de trois variables, nous devons faire appel à une
représentation graphique dans l’espace, exercice très délicat . . .
Or Dans la pratique, les programmes linéaires comportent
plusieurs dizaines de variables et de contraintes. Ainsi, le recours
à une méthode générale devient indispensable

2
Méthode du simplexe

Cette technique a été développée par DANTZIG (1948).

Condition d’utilisation: Disposer d’une solution de base


réalisable de départ

Principe: Passer d’une solution de base réalisable (point


extrême) à une autre solution de base réalisable (point
extrême) de meilleure valeur de la fonction objectif. Dans le
cas où nous ne pouvons pas améliorer la valeur de la fonction
objectif alors la solution courante est optimale.

3
Algorithme du simplexe(méthode algébrique)

Soit le programme linéaire (PL) en forme sous forme canonique


suivant :

𝑀𝑎𝑥 𝑍 = 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

La solution de base réalisable de départ est: 𝑥 = 0 , 𝑦 = 0 (VHB) variables


hors base
𝑒1 = 8 , 𝑒2 = 7 , 𝑒3 = 3 (VB) variables de base

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

On prendra y = min{8/1 , 7/2 , 3/1}

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

Solution de base réalisable ( 𝑥 = 0 , 𝑒3 = 0 , 𝑒1 = 5 , 𝑒2 = 1 , 𝑦 = 3) Z =15

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

Solution de base réalisable ( 𝑥 = 𝟏 , 𝑦 = 𝟑, 𝑒1 = 3 , 𝑒2 = 0 , 𝑒3 = 0) Z =19

La variable candidate à entrer en base est 𝒆𝟑

En gardant e2=0 dans (3), on obtient:


𝑒1 = 3 − 3𝑒3 ≥ 0 ⟹ 𝑒3 ≤ 1
𝑥 = 1 + 2𝑒3 ≥ 0
𝑦 = 3 − 𝑒3 ≥ 0 ⟹ 𝑒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 )

Solution de base réalisable ( 𝑥 = 3 , 𝑦 = 2, 𝑒1 = 0 , 𝑒2 = 0 , 𝑒3 = 1) Z =22

La solution optimale est atteinte car tous les coefficients des VHB dans la
fonction objectif sont négatifs

Solution optimale ( 𝑥 ∗ , 𝑦 ∗ ) = 3,2 𝑍 = 22

12
Algorithme du simplexe(méthode des tableaux)

La méthode algébrique, de résolution des programmes linéaires,


devient compliquée et nécessite une très grande attention dès
que le nombre des variables et de contraintes est important.

Il est possible d’adopter une représentation sous forme de


tableaux qui facilite considérablement les calculs.

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

Critère d’arrêt: Pour un problème de maximisation, l’algorithme


s’arrête lorsque tous les coefficients Cj – Zj , j J sont négatifs ou nuls

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

Remaque : si pour un 𝑎𝑖𝑗 quelconque , si projection_ligne_pivot=0,


Ou projection_colonne_pivot =0 , 𝑎𝑖𝑗 reste inchangé

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

Solution optimale ( 𝑥 ∗ , 𝑦 ∗ ) = 3,2 𝑍 = 22


21
Algorithme du simplexe
Contraintes sous forme <= & >= & =

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

𝑀𝑎𝑥 𝑍 = 𝑐𝑋 X désigne le vecteur variables du PLS ainsi que les


(PLS) 𝐴𝑋 = 𝑏 variables d’ecart
𝑋 ≥0
Associons à ce programme (PLS) le programme auxiliaire suivant:

(PLA) 𝑀𝑖𝑛 𝑍 = σ𝑚
𝑖=1 𝑦𝑖 𝑀𝑎𝑥 𝑍 = − σ𝑚
𝑖=1 𝑦𝑖
𝐴𝑋 + 𝑦 = 𝑏 Ou bien 𝐴𝑋 + 𝑦 = 𝑏
𝑋 ,𝑦 ≥ 0 𝑋 ,𝑦 ≥ 0

y désigne le vecteur variables artificielles


On rajoute à la contrainte n’ayant pas de variable de base une variable
artificielle
Principe:
- Phase 1: Résoudre le programme linéaire auxiliaire (PLA). Si ce problème possède une
solution optimale finie , alors cette une solution est de base réalisable de départ pour le
programme linéaire (PLS).
- Phase 2: Résoudre (PLS) en utilisant comme solution de base réalisable celle trouvée
en phase 1.
23
Méthode à deux phases
Exemple

Max Z = 24X1 + 20X2


Sc X1 + X2 + e1 = 30
X1 + 2 X2 – e2 + A1 = 40
X1 ≥ 0, X2 ≥ 0, e1 ≥ 0, e2 ≥ 0, A1 ≥ 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

Variable 𝑋2 entrante dans la base et la variable 𝐴1 sortante

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

Solution optimale = ( 𝑋1∗ , 𝑋2∗ ) = ( 20,10)

28

Vous aimerez peut-être aussi