Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
L3 : Informatique
Cours 3
Méthode de simplexe
Méthode des 2 phases
Méthode de grand M (big M )
Méthode révisé du simplexe
2 @mail: nacera.bahnes@univ-mosta.dz
On a présenté dans le cours précédent une procédure graphique pour résoudre un
programme linéaire à deux(ou trois au maximum) variables. Par contre, dans la
plupart des problèmes réels, on a plus que deux variables à déterminer (deux
inconnus).
Une procédure algébrique pour résoudre les programmes linéaires avec 2 variables
ou plus est la méthode de simplexe. Une implémentation de cette procédure a
permis de résoudre des programmes avec un nombre de variables et de contraintes
important.
3 @mail: nacera.bahnes@univ-mosta.dz
Exemple (PL de problème de exercice 1 TD2)
Max Z = 600x1 + 400x2
x1 + 2x2 ≤ 700
x1 + x2 ≤ 400 Principe de M. Simplexe
3x1 + x2 ≤ 900 Passer d'une point extreme à une autre (les
x1 ≥ 0 , x2 ≥ 0 sommets du polytope) en sélectionnant le
sommet adjacent maximisant (ou minimisant)
Espace de solution réalisable : la fonction objective.
polygone OABCD
ZO = 0 , D (0,350)
ZA = 180000 , ZD = 140000 C(100,300)
ZB = 210000 , ZC = 180000
B(250,150)
O(0, 0)
A(300, 0)
4 @mail: nacera.bahnes@univ-mosta.dz
La forme standard du programme linéaire de problème de l’exercice 1 (TD2) est :
Max Z= 600x1 + 400x2 (1)
x1 + 2x2 + x3 = 700 (2)
x1 + x2 + x4 = 400 (3)
3x1 + x2 + x5 = 900 (4)
x 1, x 2 , x 3, x 4, x 5 0 (5)
L'impact de ces variables d'écart (x3, x4, x5 ) sur la fonction objectif est nul. Ceci explique
le fait que leur existence soit tout simplement liée à une mise en forme du programme
linéaire initial.
Le fait de donner la valeur des variables d'écart à l'optimum donne une idée du nombre
des ressources non utilisées. Quand une variable d’écart est nulle, on dit que la contrainte
correspondante est saturée. Elle est dite aussi restrictive car une variation du second
membre (par exemple) engendre un changement dans la valeur de la solution optimale.
Toute contrainte non saturée à l’optimum n’est pas restrictive pour le problème, c’est à
dire qu’elle n’a aucune influence sur la solution considérée.
5 @mail: nacera.bahnes@univ-mosta.dz
En premier lieu, on note que les contraintes du problème (2)-(4), forment un système de 3 équations et
de 5 variables. Or, il y a un nombre très grand (ou infini) de solutions de ce système d’équations. Donc,
une procédure algébrique, pour la résolution d’un programme linéaire doit être capable de retrouver les
solutions des systèmes d’équations où il y a plus de variables que de contraintes.
En deuxième lieu, ce ne sont pas toutes les solutions qui vérifient (2)-(4) qui sont des solutions du
programme linéaire ; ils doivent en plus satisfaire les contraintes de non négativité. Une procédure
algébrique pour résoudre les programmes linéaires doit être en mesure de choisir parmi les solutions
réalisables ceux qui maximisent la fonction objectif. La méthode de simplexe est une procédure
algébrique qui tient compte de ces trois considérations.
Pour illustrer cette procédure, supposons que x1 = 0 et x2 = 0. La solution de système d’équations est:
Les variables x3, x4 et x5 (généralement non nulles) sont dites variables de base (VB) et les variables x1, x2
(nulles) sont dites variables hors base (VHB).
6 @mail: nacera.bahnes@univ-mosta.dz
On appelle « solution de base » une solution où on choisit (n-m)
variables hors base fixés à 0 pour obtenir une solution unique.
7 @mail: nacera.bahnes@univ-mosta.dz
2) supposons que x1 = 0 et x3 = 0. . La 3) supposons que x1 = 0 et x5 = 0 . La
solution de système d’équations est solution de système d’équations est
x1+ 2x2 +x3 = 700 x2 = 350 x1+ 2x2 +x3 = 700 x3 = -1100
x1 + x 2 +x4 = 400 x4 = 50 x1 + x 2 +x4 = 400 x4 = -500
3x1 + x2 +x5 = 900 x5 = 550 3x1 + x2 +x5 = 900 x2 = 900
Les variables x2, x4 et x5 (généralement non Les variables x2, x3 et x4 (généralement non
nulles) sont dites variables de base (VB) et les
nulles) sont dites variables de base (VB) et les
variables x1, x3 (nulles) sont dites variables
variables x1, x5 (nulles) sont dites variables
hors base (VHB).
hors base (VHB).
@mail: nacera.bahnes@univ-mosta.dz 8
La solution de base (0,0, 700,400, 900) est SBR pour PL donné dans l’exercice 1 (TD2). Cette
solution correspond à un point extrême de l’ensemble des solutions réalisables qui est l’origine O.
Cette solution est une SBR parce qu’elle vérifie les contraintes de positivité.
Pour la méthode de simplexe une solution réalisable de base initiale est demandée. Une telle
solution peut être retrouvée en annulant toutes les variables de décision. Ce qui correspond dans
ce PL au point d’origine O.
9 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 … Xn b
Variables de
contraintes
droites des
Membres
bases
10 @mail: nacera.bahnes@univ-mosta.dz
PL sous la forme canonique Forme Standard
t
t Max Z c * X
Max Z c x
s .c A * X I * Ve b
s .c A x b
X 0 , Ve 0
X 0
Tableau Initial
Membres droites
des contraintes
A I
-Z C1 C2 …… Cn 0, 0 , …… 0 0
11 @mail: nacera.bahnes@univ-mosta.dz
Pas 0 : Initialisation
Déterminer une base réalisable B tq le PL ecrit sous forme canonique par rapport à cette base B
Si tous les coefficients sont négatif ou null alors Stop, la solution courante est optimale.
Sinon Choisir comme variable (VHB ) qui va entrer dans la base dont son coefficient dans la fonction
objectif le plus élevé Cs=(Max Cj telque Cj > 0)
S’il n’existe pas au moins un ais strictement positif stop le problème est non borné
Sinon calculer br/ars = min (bi/ais telque ais > 0) avec r : l’indice de la ligne correspondante à la ligne de
la variable sortante
12 @mail: nacera.bahnes@univ-mosta.dz
Pas 0 forme standard
Max Z= 600x1 + 400x2
x1 + 2x2 + x3 = 700
x1 + x2 + x4 = 400
3x1 + x2 + x5 = 900
x1, x2, x3, x4, x5 0
La solution de base initiale (0, 0, 700, 400, 900) est solution réalisable
13 @mail: nacera.bahnes@univ-mosta.dz
Pas 1: détermination de la variable entrante VB X1 X2 X3 X4 X5 b
Pas 3 Pivotage (pivot ars = a31) Pas 3 Pivotage (pivot a31 =3)
′
(1) 𝐿′𝑟 ← 𝐿𝑟 /𝑎𝑟𝑠 (1) 𝐿3 ← ( 3, 1, 0, 0, 1, 900) /3 = (1, 1/3, 0, 0 , 1/3, 300)
(2) ∀ 𝑖 ≠ 𝑟 𝐿′𝑖 ← 𝐿𝑖 − 𝑎𝑖𝑠 ∗ 𝐿′𝑠 (2) i=1 L1’ = (1, 2, 1, 0, 0, 700) – 1*(1, 1/3, 0, 0, 1/3 , 300)
= (0, 5/3, 1. 0, -1/3, 400)
(3) 𝐿′𝑍 ← 𝐿𝑍 − 𝐶𝑠 ∗ 𝐿′𝑟 i=2 L2’ = (1, 1, 0, 1, 0, 400) – 1*(1, 1/3, 0, 0, 1/3 , 300)
= (0, 2/3, 0. 1, -1/3, 100)
14 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 b
Pas 1: détermination de la variable entrante X3 0 5/3 1 0 -1/3 400
X4 0 2/3 0 1 -1/3 100
Cs= max (200)=200 s=2 donc la variable
entrante est X2 X1 1 1/3 0 0 1/3 300
-Z 0 200 0 0 -200 -180000
Pas 2: Détermination de la variable Sortante
br/ars = min (bi/ais telque ais > 0)
= min(400/5/3,100/2/3, 300/1/3)
= min(240, 150, 900)= 150 r=2
Donc la variable sortante:X4
Pas 3 Pivotage (pivot ars = a22) Pas 3 Pivotage (pivot a22 =2/3)
(1) 𝐿′𝑟 ← 𝐿𝑟 /𝑎𝑟𝑠 (1) ′ 2
𝐿2 ← ( 0, 2/3, 0, 1, −1/3, 100) /(3) = (0, 1 0, 3/2 ,-1/2, 150)
(2) ∀ 𝑖 ≠ 𝑟 𝐿′𝑖 ← 𝐿𝑖 − 𝑎𝑖𝑠 ∗ 𝐿′𝑠
(2) i=1 L1’ =(0, 5/3, 1. 0,-1/3, 400) – (5/3)* (0, 1 0, 3/2 ,-1/2, 150)
(3) 𝐿′𝑍 ← 𝐿𝑍 − 𝐶𝑠 ∗ 𝐿′𝑟 = (0, 0, 1. -5/2, 1/2,150)
i=3 L3’ = (1, 1/3, 0, 0, 1/3, 300) – (1/3)*(0, 1 0, 3/2 ,-1/2, 150)
= (1, 0, 0. -1/2, 1/2, 250)
15 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 b
X3 0 0 1 -5/2 1/2 150
Pas 1: Détermination de la variable entrante X2 0 1 0 3/2 -1/2 150
Tous les Cs sont négatifs ou nul X1 1 0 0 -1/2 1/2 250
donc la solution courante est solution -Z 0 0 0 -300 -100 -210000
optimale
STOP
16 @mail: nacera.bahnes@univ-mosta.dz
Max Z=20x1-x2 -x3 Max Z=20x1-x2 -x3
x1+ x2 ≤ 10 x1+ x 2 +x4 = 10
x2 +x3 ≤ 25 x2 +x3 +x5 = 25
x1+ x2 +x3 ≤ 30 x1+ x2 +x3 +x6 = 30
x1 , x2 , x 3 ≥ 0 x1 , x2 , x3 , x 4 , x5 , x6 ≥ 0
VB X1 X2 X3 X4 X5 X6 b bi/ais
X4 1 1 0 1 0 0 10 10/1
X5 0 1 1 0 1 0 25 /
Apres 1 itération ,
X6 1 1 1 0 0 1 30 30/1 la solution optimale
-Z 20 -1 -1 0 0 0 0
est obtenu (10,0, 0)
Z*=200
X1 1 1 0 1 0 0 10
X5 0 1 1 0 1 0 20
X6 0 0 1 -1 0 1 20
-Z 0 -21 -1 -20 0 0 -200
17 @mail: nacera.bahnes@univ-mosta.dz
Max Z=-4x1-2x2 -7x3 -20x4 Max Z=-4x1-2x2 -7x3 -20x4
-x1+ 2x2 - 2x3 -3x4 ≤ 9 -x1+ 2x2 - 2x3 -3x4 + x5 =9
4x1+ 3x2 - 6x3 ≤ 60 4x1+ 3x2 - 6x3 + x6 = 60
x1 , x2 , x 3 , x 4 ≥ 0 x1 , x2 , x 3 , x 4 , x5 , x6 ≥ 0
VB X1 X2 X3 X4 X5 X6 b bi/ais
X5 -1 2 2 -3 1 0 9
X6 4 3 -6 0 0 1 60
-Z -4 -2 -7 -20 0 0 0
Variables de base : X5 et X6
Solution de bas admissible : (0, 0, 0,0, 9,60) Avec Z*=0
La première solution de base qui réalisable est solution optimale
18 @mail: nacera.bahnes@univ-mosta.dz
Optimum non borné
Exemple1
x1 ≤ 3
x1 - x2 ≤ 2
x1 ,x2 ≥ 0
19 @mail: nacera.bahnes@univ-mosta.dz
Optimum non borné
20
@mail: nacera.bahnes@univ-mosta.dz
Cas de dégénérescence
Ce cas a lieu lorsque deux lignes ou plus sont candidates pour la détermination de
l’élément pivot
Cas cyclage
Ce cas a lieu Si les mêmes ensembles de base B vont se répéter après un nombre
réguler d’itérations la méthode du simplexe
21 @mail: nacera.bahnes@univ-mosta.dz
1ère méthode nécessite le changement de la règle de choix de
22 @mail: nacera.bahnes@univ-mosta.dz
2ème méthode pour résoudre un problème de se base sur le résultat
suivant " Résoudre un problème (min Z ) sous un ensemble de contraintes
est équivalent à résoudre un problème (max –Z) sous le même ensemble
de contraintes ". Ces deux problèmes sont équivalents dans la mesure où
ils donnent le même vecteur des solutions optimales. La seule différence
est que la valeur de la solution max Z est l’opposé de la solution de min
Z; (i.e. min Z = - max -Z).
23 @mail: nacera.bahnes@univ-mosta.dz
Min Z= - 6x1 - 8x2 - 7x3 -40x4
x1 , x2 , x3 , x4 ≥ 0
x1 , x2 , x3 , x4 , x5 , x6 ≥ 0
24 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 X6 b bi/ais
X5 9 16 12 40 1 0 36000 36000/40
X6 2 2 8 80 0 1 24000 24000/80
-Z -6 -8 -7 -40 0 0 0
-Z -5 -7 -3 0 0 1/2 12000
28 @mail: nacera.bahnes@univ-mosta.dz
Résumé de la procédure de la méthode du simplexe
(dans le cas d'un problème de maximisation sous contraintes et avec un second membre positif)
Etapes Justification
1. Formuler un programme linéaire de problème Pour obtenir une représentation mathématique du problème
réel.
2. Vérifier que les seconds membres des contraintes Ceci est nécessaire pour obtenir solution de base initiale
sont positifs réalisable
3. Ecrire le programme linéaire sous une forme Mettre toutes les contraintes sous forme d’égalité
standard
4. Construire le premier tableau de simplexe Ce tableau correspond à la solution initiale de base
5. Faire le test d’optimalité. alors on n’a pas d’intérêt à faire entrer dans la base aucune de
ces variables. Une telle introduction engendra une diminution de
Si tout les coeff dans la ligne de Z sont négatif ou
la fonction objectif.
null , la solution courante est donc optimale. (Sinon faire une autre itération)
Sinon passer à l’étape 6.
6. Choisir comme variable entrante xs dans Cette valeur indique la quantité d’augmentation de la fonction
la base celle qui admet le plus grand coeff positif objectif si on augmente la valeur de xs d’une unité.
dans la ligne de Z .
7. Choisir la variable sortante de la base La plus petite valeur de bi/ais indique le nombre maximal
celle qui admet le plus petit ratio supérieur ou d’unité de xs qu’on peut introduire avant que la variable de base
égal à zéro. de l’ième ligne ne soit égale à zéro (c-à-d VHB).
8. Construire le nouveau tableau en utilisant la Cette règle nous permet entre autre de calculer les valeurs des
nouvelles variables de base
règle de pivot
9.Retourner à l’étape 5. Pour vérifier le test de l’optimalité
29 @mail: nacera.bahnes@univ-mosta.dz
Méthode de 2 phases