Vous êtes sur la page 1sur 35

Université d’Adrar

Faculté des sciences et technologies

Département de Mathématique et Informatique

3 ème Année Informatique


Option: SI

Module :
Programmation linéaire

Méthode du Simplexe 

1
INTRODUCTION

On a vu que pour résoudre un programme linéaire à deux


variables on utilise la procédure graphique. Par contre,
dans la plupart des problèmes réels, on a plus que deux
variables à déterminer. Une procédure algébrique pour
résoudre les programmes linéaires avec plus de deux
variables fera l’objet de cette recherche. C'est la méthode
de simplexe.

2
INTRODUCTION

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.
Dans l’exemple précédent, les différentes itérations de la méthode
du simplexe seront comme suit:
1ière itération A 2iéme Itération B
3ième Itération
C Terminer
Début O D
Algorithme du simplexe

Principe de l’algorithme

Le principe de l’algorithme est le suivant:


 Déterminer une première solution de base réalisable
 Cheminer de solution de base réalisable en solution de base
réalisable en augmentant à chaque itération la valeur de la fonction
économique
 Arrêter la procédure lorsqu’il n’est plus possible d’accroitre la valeur
de la fonction économique, la dernier solution de base réalisable
obtenue est des lors solution optimale.

4
Définition:
Un vecteur X qui vérifier les contrainte est appelé solution réalisable du
PL.
Une solution réalisable X* est optimale si CX*= max , pour tous
solutions réalisable
Une solution réalisable X est dite de base si (n-m) de des composons
sont nulles

Principe:
Quant l’ensemble des solution réalisable du PL est un polyèdre
convexe, la solution optimale est un sommet de ce polyèdre, pour
l’attendre, seules les sommets doivent être examiné. Donc pour
attendre l’optimun, il suffit d’axaminer les solutions de base réalisable.

5
La méthode du simplexe
Représentation de la méthode du simplexe par les
tableaux
Pour simplifier et mieux organiser les calculs effectués par cette
méthode nous utilisons une représentation des différentes étapes
par des tableaux, appelés, tableaux du simplexe
Le premier tableau du simplexe reprend les éléments du
programme S

n
Max Z   c j x j
j 1
n
 a ij x j  bi bi  0
j 1
xj 0 j  1,..., n
On supposera que les variables de base sont x1, x2, …, xn et les
variables hors base sont xn+1, xm+2, …, xn
La méthode du simplexe
Posons:
 b1   a1 j 
   
.  . 
  m m
P0   .  Pj  .  j  1,..., n Z j   a ij c i Z0   c jx j
  i 1 i 1
.  . 
   
 bm   a mj 
 
Le premier tableau du simplexe est:
c1 c2… cm cm+1 … cn
Base CB P0 P1 P2 … Pm Pm+1 … Pn
x1 c1 b1 1 0 … 0 a1,m+1 … a1,n
. . . 0 1 … 0 . … .
. . . . 0 … 0 . … .
. . . . . … 0 . … .
xm cm bm 0 0 … 1 am,m+1 … am,n
ZJ c 1 c2 … cm Zm+1 … Zn
J -Z0 0 0 … 0 cm+1-Zm+1 … cn-Zn
La méthode du simplexe
Principe de la méthode: Démarrer d’une solution de base réalisable (tableau du
simplexe) à une autre solution de base réalisable (tableau du simplexe) de
meilleure valeur de Z. Cette transformation consiste à faire entrer (selon un critère
d’entrée) une variable hors base dans la base et à faire sortir (selon un critère de
sortie) une variable de base hors base.

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 r 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 {j / j > 0, j J}.

Critère de sortie: La variable xs qui doit sortir de la base est telle que: bs/asr = Min

{bi/air , air >0} asr: est appelé pivot

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


tous les coefficients j , j J sont négatifs ou nuls
La méthode du simplexe
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
asj(k+1) = asj (k)/ asr
Autres éléments:
aij (k+1) = aij (k) – ari(k)*asj(k) / asr(k)
Elément
Ancien correspondant
Elément à la colonne
-- pivot
Nouvel
Elément Elément
corresponda
nt à la ligne Pivot
pivot
= *
La méthode du simplexe
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}, le 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 le variable sortante xs par
bs/asr = Min {bi/air , air >0}
(6) Renouvellement du tableau par les formules données ci haut
Résumé de la procédure de la méthode du simplexe

Etapes Justification
1. Formuler un programme linéaire pour le problème réel. Pour obtenir une représentation mathématique du problème

2. Vérifier que le second membre du programme linéaire Ceci est nécessaire pour obtenir comme variable de base
est positif initiale l’origine
3. Ecrire le programme linéaire sous une forme standard Mettre toutes les contraintes sous forme d’égalité

4. Construire le premier tableau de simplexe Ce tableau correspond à la solution initiale de base

5. Choisir comme variable entrante dans la base celle qui La valeur de cj-zj indique la quantité d’augmentation de la
admet le plus grand effet net positif cj-zj. fonction objectif si on augmente la valeur de xj d’une unité.

6. Choisir la variable sortante de la base celle qui admet le La plus petite valeur de Qi/aij indique le nombre maximal
plus petit ratio supérieur à zéro. d’unité de xj qu’on peut introduire avant que la variable de base
de l’ième ligne ne soit égale à zéro.

7. Construire le nouveau tableau en utilisant la règle de Cette règle nous permet entre autre de calculer les valeurs des
pivot nouvelles variables de décision

8. Faire le test d’optimalité. Si Si (cj-zj)  0 alors on n’a pas d’intérêt à faire entrer dans la base
(cj-zj)  0 pour toutes les variables (hors base), la solution aucune de ces variables. Une telle introduction engendra une
obtenue est donc optimale. Sinon retourner à l’étape 5. diminution de la fonction objectif.

11
Organigramme de l’Algorithme du simplexe

12
PL à minimun

Même procédure, mais on remplace

-Z0 et Cj – Zj

Par Z0 et Zj-Cj

13
Organigramme
de
l’Algorithme du
simplexe

14
La méthode Simplexe

Le modèle général des tableaux de simplexe est :

15
Tableaux de simplexe

16
Tableaux de simplexe

 La 1ère colonne contient la liste des vecteurs de base (à l’étape

considéré)

 La 2ème colonne contient les coefficients économiques associés aux

variable de base.

 La troisième colonne contient les valeurs prises par ces variables

(solutions de base correspondante)

17
Ligne de pivot:

La ligne de pivot transformé est déduit par division de tous ses éléments par le
pivot
Ailleur (autre ligne)
Afin d’avoir d’autre nombre transformé il suffet d’appliqué la règle courant
a: valeur de départ
Alors la transformation de a

a’=a -
b .c
x p ----a---------b—
Tout ligne et col possède un zéro dans la col du
xp
----c---------------
pivot reste inchangé
Pivot

18
Mise sous forme standard

La mise sous forme standard consiste à introduire des variables supplémentaires


(une pour chaque contrainte) de manière a réécrire les inégalités ( ) sous la forme
d'égalités. Chacune de ces variables représente le nombre de ressources non
utilisés. On les appelle variable d'écart.
La forme standard s'écrit donc :

19
La méthode de simplexe

La méthode de simplexe commence par l'identification d'une solution réalisable de


base et ensuite, elle essaye de trouver d'autres solutions réalisables de base
jusqu’à atteindre à la solution optimale donc c’est une méthode itératif, elle
commence d’un point et passe a un autre voisine.
Généralement si le programme linéaire satisfait ces deux propriétés :
1- Parmi les variables du problème standard, il y a m variables qui apparaissent
avec un coefficient non nul dans chaque contraintes (dans notre exemple : S1, S2,

S3 et S4).
2- Les valeurs du second membre des contraintes (les composants du vecteur b)
sont positives.


20
La méthode de simplexe

* Soit les programmes linéaire P1 et P2


P1{ Max f = CX P2 { Min f =- CX

aX  b AX  b

Une solution optimale pour P1 est l’est pour P2

21
Exemple

le problème suivent(prob1) :

Max 100 x1  200 x 2


s .c . x1  x 2  150
4 x1  2 x 2  440
x1  4 x 2  480
x1  90
x1  0 , x 2  0

La forme standard du programme linéaire de (prob1) est :

22
Exemple

Max 100x1 + 200x2 (1)


On ajoute quatre
s. c x1 + x2 + S1 = 150 (2)
variable d’écarts
4x4x
x1 + 1 +2
2xS2 3+=S480
+ 2 = 440 (4) (3) S1,S2,S3,S4
x1 + S 4 = 90 (5)
x1, x2, S1, S2, S3, S4 0 (6)

On dispose d'une solution de base réalisable de départ :


x = (0, 0, 150, 440, 480,90) ,
x1=0, x2=0 S1 = 150 2 = 440 S2 = 440
S3 = 480 S4 = 90

le tableau de simplexe initial est le suivant :


x1 x2 S1 S2 S3 S4

0 S1 150 1 1 1 0 0 0
0 S2 440 4 2 0 1 0 0
0 S3 480 1 4 0 0 1 0

0 S4 90 1 0 0 0 0 1
100 200 0 0 0 0
23
Exemple

x1 x2 S1 S2 S3 S4
0 S1 150 1 1 1 0 0 0
0 S2 440 4 2 0 1 0 0
0 S3 480 1 4 0 0 1 0
0 S4 90 1 0 0 0 0 1
cj - z j 100 200 0 0 0 0

X1 x2 S1 S2 S3 S4
0 S1 150 1 1 1 0 0 0
0 S2 440 4 2 0 1 0 0
0 S3 480 1 4 0 0 1 0
0 S4 90 1 0 0 0 0 1
100 200 0 0 0 0

Le max(100,200) >0

Min((150/1, 480/2, 480/4, 90/0)= 480/4


/(1,2,4,0) >0 24
Exemple

x1 x2 S1 S2 S3 S4
0 S1
0 S2
200 x2
0 S4
100 200 0 0 0 0

x1 x2 S1 S2 S3 S4
0 S1
0 S2
200 x2 120 1/4 1 0 0 1/4 0
0 S4
100 200 0 0 0 0

x1 x2 S1 S2 S3 S4
0 S1 0 1 0 0
0 S2 0 0 1 0
200 x2 120 1/4 1 0 0 1/4 0
0 S4 0 0 0 1
100 200 0 0 0 0

25
Exemple

x2

x2

26
Exemple

• La nouvelle solution réalisable de base est


x1 = 0
x2 = 120 100 200 0 0 0 0
S1 = 30 x1 x2 S1 S2 S3 S4
S2 = 200 S1 30 3/4 0 1 0 -1/4 0
S3 = 0
S2 200 7/2 0 0 1 -1/2 0
S4 = 90
x2 120 1/4 1 0 0 1/4 0
S4 90 1 0 0 0 0 1
50 0 0 0 -50 0

100 200 0 0 0 0

x1 x2 S1 S2 S3 S4

x1 40 1 0 4/3 0 -1/3 0

S2 60 0 0 -14/3 1 2/3 0

x2 110 0 1 -1/3 0 1/3 0

S4 50 0 0 -4/3 0 1/3 1

27
Exemple

Cette nouvelle solution


x1 = 40
x2 = 110
S1 = 0
S2 = 60
S3 = 0
100 200 0 0 0 0
S4 = 50
x1 x2 S1 S2 S3 S4

100 x1 40 1 0 4/3 0 -1/3 0

0 S2 60 0 0 14/3 1 2/3 0

200 x2 110 0 1 -1/3 0 1/3 0

0 S4 50 0 0 -4/3 0 1/3 1

0 0 -100/3 0 -100/3 0

28
Exemple 2:

Soit à résoudre le problème linéaire suivant sous sa forme canonique:

Min z = - 2 x1 - 3 x2 + 8

- x1 - 2 x2 ≥ -10
- 2x1 - x2 ≥ - 20
x1 - 3 x2 ≥ - 16
x1 ≥ 0 et x2 ≥ 0.

.
29
Il est équivalent au problème suivant :
Min z = - 2 x1 - 3 x2 + 8
x1 + 2 x2 ≤ 10
2 x1 + x2 ≤ 20
- x1 + 3x2 ≤ 16
x1 ≥ 0,…, x2 ≥ 0.
Sous une forme standard, il s'écrira (après l’ajout de 3 variables d’écart
X3,x4,x5):
Min z = - 2 x1 - 3 x2 + 8
x1 + 2 x2 + x3 = 10
2 x1 + x2 + x4 = 20
- x1 + 3x2 + x5 = 16
x1 ≥ 0,…, x5 ≥ 0.
30
B1 = (a3, a4, a5) est une base de départ. HB1 = (a1, a2) est la hors base.
On dispose d'une solution de base réalisable de départ :
x = (0, 0, 10, 20, 16) et z( x ) = 8. Elle n'est pas optimale car a1 = - 2 < 0 et
a2 = -3<0
Déterminons min { aj, aj < 0, j = 1, 2 } = - 3 = a2 ( le choix de la colonne pivot
ou de la variable rentrante).
x2 rentre dans la base.
Déterminons le min positive {10/2, 20/1, 16/3} =10/2

x3 sort de la base. On fera une opération de pivotage de la manière suivante :

Variable 1 X1 X2 X3 X4 X5
de base

-Z=X0 -8 -2 -3 0 0 0
X3 10 1 2 1 0 0
X4 20 2 1 0 1 0
X5 16 -1 3 0 0 1
31
B2 = (a2, a4, a5) est une nouvelle base. HB2 = (a1, a3) est la hors base.
Après des calculs, on obtiendra le tableau suivant :

Variable 1 X1 X2 X3 X4 X5
de base

-Z=X0 7 -1/2 0 3/2 0 0


X2 5 1/2 1 1/2 0 0
X4 15 3/2 0 -1/2 1 0
X5 1 -5/2 0 -3/2 0 1

32
La nouvelle solution x = (0, 5, 0, 15, 1) et z( x) = -7.
Elle n'est pas optimale car a1 = - 1/2 < 0 et a3 = 3/2 > 0.
Déterminons min{ aj, aj < 0, j = 1, 3 } = - 1/2 = a1 ( le choix de la colonne pivot o
de la variable rentrante). x1 rentre dans la base.
Déterminons le min positive ={5/(1/2),15/(3/2)}

x2 sort de la base. On fera une opération de pivotage de la manière suivante :


B3 = (a1, a4, a5) est une nouvelle base. HB3 = (a2, a3) est la hors base.

33
Variable 1 X1 X2 X3 X4 X5
de base

-Z=X0 12 0 1 2 0 0
X1 10 1 0 0
X4 0 0 1 0
X5 26 0 0 1

La nouvelle solution x* = x = (10, 0, 0, 0, 26) avec z(x*) = -12, est optimale,


de base réalisable et dégénérée.
La base optimale sera B*3 = (a1, a4, a5) et HB*3 = (a2, a3) est la hors base.

34
Exercice 3:

Soit le PL suivant :

Max Z =x1 +3x2

X1+X2  14
-2X1+3X2  12
2X1-X2  12
x1,x2 0

35