Vous êtes sur la page 1sur 30

‫جاهعــة عبد الحويد ابن باديس‬

UNIVERSITE ABDELHAMID IBN BADIS MOSTAGANEM


‫هستغانن‬
FACULTE DES SCIENCES EXACTES ET DE L’INFORMATIQU ‫كلية العلوم الدقيقة و األعالم األلي‬
DEPARTEMENT DE MATHEMATIQUES ET INFORMATIQUE ‫قسن الرياضيات و األعالم األلي‬

 L3 : Informatique

Cours 3

Responsable de la matière :BAHNES NACERA


nacera.bahnes@univ-mosta.dz
 Résolution graphique

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.

 Algorithme de simplexe proposé par G. Dantzig, 1947 : procédure itératif


qui consiste a passer d'un solution à une autre (les solutions sont les sommets
du polytope) en sélectionnant le sommet adjacent maximisant (ou minimisant) la
fonction objective.

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

un sommet de polygone (point


extrême représente la solution
optimale

ZO = 0 , D (0,350)
ZA = 180000 , ZD = 140000 C(100,300)
ZB = 210000 , ZC = 180000
B(250,150)

La solution de base initiale

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:

x1+ 2x2 +x3 = 700 x3 = 700

x1 + x2 +x4 = 400 x4 = 400

3x1 + 4x2 +x5 = 900 x5 = 900

 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.

 Généralement, si on a un programme linéaire standard constitué de


n variables et m contraintes (n  m) alors une solution de base
(extrême) est obtenue, en annulant (n-m) variables et en résolvant
les m contraintes pour déterminer les valeurs des autres m variables.

 On appelle « solution de base réalisable » (SBR) une solution de base


qui vérifier les contraintes de positivité.

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).

Cette solution n’est pas une SBR parce qu’elle


Cette solution est une SBR parce qu’elle vérifie
les contraintes de positivité. ne vérifie pas les contraintes de positivité.

Solution de base réalisable Solution de base non réalisable

@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.

 Un sommet du polygone correspond à la solution de base réalisable dans la méthode algébrique.

 Une solution de base où on fixe x1 et x2 à zéro (x1 = x2 = 0), ainsi on a :


 x1+ 2x2 +x3 = 700 x3 = 700

 x1 + x2 +x4 = 400  x4 = 400

3x1 + 4x2 +x5 = 900 x5 = 900

 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.

 A partir de ce point la méthode de simplexe va générer successivement des solutions de base


réalisables pour notre système d’équations en s’assurant que la valeur de la fonction objectif est
en train d’augmenter jusqu'à localiser la solution optimale du problème qui est un point extrême
de l’espace des solutions réalisables (donc une solution de base réalisable).

9 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 … Xn b
Variables de

contraintes
droites des
Membres
bases

Coefficients des variables dans les


membres gauches des équations

-Z Les coefficients de la fonction objectif 0

n : nombre de variables (variables de décision + variables d’écart


m : nombre de contraintes

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

VB Variables de décision variables d’écarts b


X1 X2 ……. Xn-m Xn-m+1 …. Xn
Variables de bases

Membres droites
des contraintes
A I

-Z C1 C2 …… Cn 0, 0 , …… 0 0

11 @mail: nacera.bahnes@univ-mosta.dz
 Pas 0 : Initialisation

 Standardiser les contraintes

 Déterminer une base réalisable B tq le PL ecrit sous forme canonique par rapport à cette base B

 Pas 1 : Choix de la variable entrante

 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)

soit s l’indice de la variable entrante

 Pas 2 : Détermination de la variable sortante

 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

 Pas 3 : Pivotage (appliquer une itération de la méthode G-J avec un pivot=ars)

 Pas 4 : Retour au pas 1

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

 Une solution de base où on fixe x1 et x2 à zéro (x1 = x2 = 0), ainsi on a :

 x3 = 700 x4 = 400 x5 = 900

 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

Cs= max (600,400)=600  s=1 donc la variable X3 1 2 1 0 0 700


entrante est X1 X4 1 1 0 1 0 400
X5 3 1 0 0 1 900
Pas 2: Détermination de la variable Sortante -Z 600 400 0 0 0 0
br/ars = min (bi/ais telque ais > 0)
=min(700/1,400/1, 900/3)= 300  r=3
Donc la variable sortante:X5

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)

(3) 𝐿𝑧 ′ = (600, 400, 0, 0, 0, 0) – 600∗(1, 1/3, 0, 0, 1/3 , 300)


= (0, 200, 0. 0, −200, −180000)

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)

(3) 𝐿𝑧 ′ = (0, 200, 0, 0, −200, −180000) – 200∗(0, 1 0, 3/2 ,−1/2, 150)


= (0, 0, 0. −300, −100, −210000)

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

 Max Z= 5x1 + 2x2

x1 ≤ 3

x1 - x2 ≤ 2

x1 ,x2 ≥ 0

19 @mail: nacera.bahnes@univ-mosta.dz
 Optimum non borné

 Considérons le PL suivant sous forme canonique

 Exemple2 Max Z =x1+25x2 Exemple 3:


x1 - x2 ≤0
Max Z= x1+2x2
-2x1 + x2 ≤ 2
5x1 -10x2 ≤ 20
-x1 + 2x2 ≤ 5
x1 - x2 ≤ 10 x1 - 4x2 ≤ 4
x1 , x2≥ 0 x1 , x2≥ 0
 En construisant le tableau initial de simplexe, Après 2 itérations, il n’y aura
aucun ais strictement positif
 s=2

 Tous les ais ≤ 0  pas de solution optimale fini

 La méthode géométrique montre qu’il n’a pas de


l’optimum 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

la variable entrante. On va utiliser la règle inverse. C’est-à-

dire la variable entrante est celle à laquelle on associe la plus

petite valeur (négative) de cj.

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

9x1 + 16x2 + 12x3 +40x4 ≤ 36000

2x1 - 2x2 + 8x3 +80x4 ≤ 24000

x1 , x2 , x3 , x4 ≥ 0

 Min Z= - 6x1 - 8x2 - 7x3 -40x4

9x1 + 16x2 + 12x3 +40x4 + , x5 = 36000

2x1 + 2x2 + 8x3 +80x4 + , x6 = 24000

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

Pas 1: détermination de la variable entrante

Cs= min (-6, -8, -7,-40)=-40  s=4 donc la


Variables de base : X5 et X6 variable entrante est X4

Solution de bas admissible :


(0, 0, 0, 0, 36000, 24000) Pas 2: Détermination de la variable Sortante
Avec Z* = 0 br/ars = min (bi/ais telque ais > 0)
=min(36000/40,24000/80)= 300  r=2
Donc la variable sortante:X6

Pas 3 Pivotage (pivot ars = a24)


(1) 𝐿′𝑟 ← 𝐿𝑟 /𝑎𝑟𝑠
(2) ∀ 𝑖 ≠ 𝑟 𝐿′𝑖 ← 𝐿𝑖 − 𝑎𝑖𝑠 ∗ 𝐿′𝑠
(3) 𝐿′𝑍 ← 𝐿𝑍 − 𝐶𝑠 ∗ 𝐿′𝑟
25 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 X6 b bi/ais

X5 8 15 8 0 1 -1/2 24000 24000/15

X4 1/40 1/40 1/10 1 0 1/80 300 300/1/40

-Z -5 -7 -3 0 0 1/2 12000

Pas 1: détermination de la variable entrante


Variables de base : X4 et X5 Cs= min (-5, -7, -3)=-7  s=2 donc la
variable entrante est X2
Solution de bas admissible :
(0, 0, 0, 300, 24000,0) Pas 2: Détermination de la variable Sortante
Avec Z*=-12000 br/ars = min (bi/ais telque ais > 0)
=min(24000/15,300/1/40)= 1600  r=1
Donc la variable sortante:X5

Pas 3 Pivotage (pivot ars = a12)


(1) 𝐿′𝑟 ← 𝐿𝑟 /𝑎𝑟𝑠
(2) ∀ 𝑖 ≠ 𝑟 𝐿′𝑖 ← 𝐿𝑖 − 𝑎𝑖𝑠 ∗ 𝐿′𝑠
(3) 𝐿′𝑍 ← 𝐿𝑍 − 𝐶𝑠 ∗ 𝐿′𝑟
26 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 X6 b bi/ais

X2 8/15 1 8/15 0 1/15 -1/30 1600 1600/8/15

X4 7/600 0 13/150 1 -1/600 1/75 260 260/7/600

-Z -19/15 0 11/15 0 7/15 4/15 23200

Pas 1: détermination de la variable entrante


Variables de base : X4 et X2 Cs= min (-19/15)=-19/15  s=1 donc la
variable entrante est X1
Solution de bas admissible :
(0, 1600, 0, 260, 0,0) Pas 2: Détermination de la variable Sortante
Avec Z=-23200 br/ars = min (bi/ais telque ais > 0)
=1600/8/15  r=1
Donc la variable sortante:X2

Pas 3 Pivotage (pivot ars = a11)


(1) 𝐿′𝑟 ← 𝐿𝑟 /𝑎𝑟𝑠
(2) ∀ 𝑖 ≠ 𝑟 𝐿′𝑖 ← 𝐿𝑖 − 𝑎𝑖𝑠 ∗ 𝐿′𝑠
(3) 𝐿′𝑍 ← 𝐿𝑍 − 𝐶𝑠 ∗ 𝐿′𝑟
27 @mail: nacera.bahnes@univ-mosta.dz
VB X1 X2 X3 X4 X5 X6 b bi/ais

X1 1 15/8 1 0 1/8 -1/16 3000

X4 0 -7/320 3/40 1 -1/320 9/640 225

-Z 0 19/8 2 0 5/8 3/16 27000

Pas 1: détermination de la variable entrante


Variables de base : X1 et X4
Tous les Cj sonnt + ou nul  la solution
courant est solution optimale
Solution de bas admissible :
(3000, 0, 0, 225, 0, 0)
Avec Z*=-27000

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

Méthode de Grand (M)

Vous aimerez peut-être aussi