3 Chapitre3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 29

01/10/2021

Résolution d’un
Programme Linéaire
avec la méthode de simplexe

Plan du chapitre 3
I- Mise en œuvre de l’algorithme du simplexe
Exemple introductif :
problème de maximisation avec contraintes ≤
– A) Forme standard
– B) Bases et solutions de base : définition et correspondance par
rapport aux solutions de base trouvées graphiquement
Initialisation : Solution réalisable de base de départ
à Premier tableau
– C) notion de voisinage :
Solution réalisable de base voisine
Notion de meilleure valeur
à 1er et 2ème critères de Dantzig
à Colonne Pivot, Ligne Pivot et Nombre pivot
– D) Critère d’arrêt
II- Exemples de minimisation avec contraintes ≤
III- Résolution de PL quelconques
IV- Cas particuliers
V- Interprétation des résultats générés par TORA

1
01/10/2021

Introduction

ØLes problèmes de la programmation


linéaire d’une certaine utilité
pratique contiennent un nombre
beaucoup plus élevé que 2 variables
de décision. L’algorithme du
simplexe est une méthode qui peut
résoudre n’importe quel PL

I- Mise en œuvre de
l’Algorithme du simplexe
L’algorithme de simplexe (G. B. Dantzig, 1947) est un algorithme itératif
permettant de résoudre un problème de programmation linéaire. Dans sa
version la plus classique, la méthode comporte 3 étapes :

Etape1 : Mettre le PL sous forme standard et s’assurer que le second


membre b est positif
Etape2 : trouver une solution réalisable de base de départ et développer
le premier tableau de simplexe
Etape3 : A partir d’une solution réalisable de base du PL, l’algorithme
cherche une solution réalisable de base voisine dont la valeur est meilleure.

La méthode s’arrête lorsqu’il n ‘est plus possible d’améliorer la valeur de la


solution de base courante qui est alors optimale.

Remarque : En mathématique, et plus particulièrement en géométrie, un


simplexe est une généralisation du triangle à une dimension quelconque.
(Un tétraèdre est un 3-simplexe)

2
01/10/2021

C1 : -2 x1 + x2 ≤ 1
C2 : 2x1 + x2 ≤ 2
C3 : x1 + 2x2 ≤ 12
x2 (D 1)

G Grâce à la résolution graphique :


(D 2) L’ensemble des solutions
réalisables : le polyèdre OABCD
La solution Optimale : Le point C

H Quelle est la solution réalisable de base


évidente de départ ???
(D 3) J Q
àO
Quel est le chemin que va suivre
C l’algorithme du simplexe, sachant
B
qu’on va s’arrêter en C ??
Région à ODC ou bien OABC
D
Réalisable
I
K 0
F A E x1
5

Démarche de l’algorithme du simplexe dans le cas


de n variables

3
01/10/2021

• La mise en œuvre de l’algorithme du simplexe se


fait simplement sous forme d’une série de
tableaux.
• Pour cela on a besoin de définir :
• La forme standard d’un PL
• La solution réalisable de base de départ
à Premier tableau
• La notion de meilleure valeur de la solution de base voisine
à 1er critère de Dantzig à Colonne Pivot
• La notion de deux solutions réalisables de base voisines
à 2ème critère de Dantzig à Ligne Pivot
• La notion du nombre pivot et pivotage
à Obtention d’une série de tableaux
• La notion du critère d’arrêt
à Dernier tableau

A- Forme Standard d’un


Programme Linéaire :
D’une manière générale, un programme linéaire prend la
forme matricielle suivante :
Max Z = C * X
AX ≤ b
X≥0
Où :
Z : réel
C : Vecteur ligne des coefficients économiques de la fo à n valeurs
X : Vecteur colonne des variables de décision à n valeurs
A(m,n) : Matrice des coefficients techniques des contraintes à m
lignes et n colonnes
b : Vecteur colonne des coefficients ressources du second membre à
m valeurs

4
01/10/2021

Max(Min) Z = c1 x1 + c2 x2 +…+ cn xn

s.c a11 x1 + a12 x2 +…+ a1n xn ≥ (= ou ≤)b1


a21 x1 + a22 x2 +…+ a2 n xn ≥ (= ou ≤)b2
!
am1 x1 + am2 x2 +…+ amn xn ≥ (= ou ≤)bm
x1 ≥ 0, x2 ≥ 0, …, xn ≥ 0

Maximiser Z = cx
s.c: Ax ≤ b
x≥0
où:
# x & # b &
% 1 ( % 1 (
% x2 ( % b2 (
% ( % (
x =% . (, c = ( c1, c2 ,..., cn ), b = % . (
% . ( % . (
% x ( % b (
% n ( % m (
$ ' $ '
# a a12 .. .. a1n &
% 11 (
% a21 a22 .. .. a2 n (
% (
A = ( aij , i = 1,..., n, j = 1,..., m ) = % . (
% . (
% a am 2 amn ((
% m1
$ '10

5
01/10/2021

Définition : La forme standard


Un PL est dit sous forme standard lorsque :
toutes les contraintes sont écrites sous forme d’égalité et
toutes les variables sont positives
Max Z = C * X
AX = b
X≥0
§ La mise sous forme standard, nécessite l’introduction de
variables d’écart appelées « s » (Slack variables)
§ A chaque inégalité doit correspondre une variable d’écart
§ Ces variables d’écart ont une contribution nulle à la
fonction objectif (en effet, ne pas saturer un marché ou
encore ne pas utiliser les machines à 100%, ne rapporte
aucun bénéfice : elles auront donc le coefficient 0 dans la fo)
§ X est donc formé
de variables de décision VD : x1,..xn et
de variables d’écarts VE : s1,.. sm

Exemple 1 introductif
Une société cherche à décider les quantités à fabriquer
de deux types P1 et P2. Les prix de vente unitaires sont
respectivement de 1 dinar pour P1 et de 3 dinars pour
P2. La différence respective entre les quantités de P2 et le
double des quantités de P1 ne doit pas excéder 1
Chaque unité de P1 nécessite 2 unités de matières
premières et 1 heure ouvrier. Tandis que chaque unité
de P2 nécessite 1 unité de matières premières et 2 heures
ouvrier. Tous les jours, la société dispose de 12 unités de
matières première et de 3 ouvriers qui travaillent chacun
4 heures par jour.
Modéliser ce problème sous forme d’un programme
linéaire.

6
01/10/2021

Programme Linéaire de l’exemple


introductif de production
2 variables de décision :
X 1 Le nombre de P1 à fabriquer
X 2 Le nombre de P2 à fabriquer
La fonction objectif
Max Z = 1 X 1 + 3 X 2
3 Contraintes fonctionnelles :
-2X 1 + X 2 ≤ 1 (contrainte de production)
2 X 1 + X 2 ≤ 12 (Quantité de MP )
1 X 1 + 2X 2 ≤ 12 (Nb heures ouvrier )
2 contraintes de signe
X1 ≥ 0 ; X2 ≥ 0

01/10/2021

Max Z = C * X
Ecriture matricielle : AX ≤ b
X ≥ 0
x1
X : Vecteur colonne à 2 variables
x2
(n=2 : nombre de variables)
C (1,3) : Vecteur ligne à 2 valeurs
1
b : 12 Vecteur colonne à 3 valeurs
12
(m=3 : nombre de contraintes)
-2 1
A : 2 1 Matrice (m,n) des coefficients techniques
1 2 à m=3 lignes et n=2 colonnes

7
01/10/2021

La forme standard :
Max Z = x1 + 3x2 + 0 s1 + 0 s2 + 0 s3
-2x1 + x2 + s1 = 1
2x1 + x2 + s2 = 12
x1 + 2x2 + s3 = 12
x1 , x2 ≥ 0 ;
s1 , s2 ,s3 ≥ 0

B- Bases et solutions de base


1- Cherchons les différentes bases du PL associé à
note exemple :

Ceci revient à résoudre un système à 3 équations et 5


variables .
On annule à chaque fois 2 (c.-à-d. 5-3) variables et on
fait la résolution du système à 3 équations et à 3
variables. Il y aura 10 solutions et donc 10 bases ( C )
2
5

Remarque : On retrouvera les 10 solutions de base :


O,A,B,C,D,E,G,H,J,K lors de la résolution graphique
(les points intersections de deux contraintes)

8
01/10/2021

Recherche des différentes bases


Le système à résoudre est :
-2x1 + x2 + s1 = 1
2x1 + x2 + s2 = 12
x1 + 2x2 + s3 = 12
On annule à chaque fois 2 variables :
X1=0 X1=0 X1=0 X1=0 X2=0 X2=0 X2=0 S1=0 S1=0 S2=0
X2=0 s1=0 S2=0 S3=0 S1=0 S2=0 S3=0 S2=0 S3=0 S3=0

• x1=0, x2=0
On aura alors s1=1 , s2=12 , s3=12
C’est le point 0 qui à l’ensemble des solutions

réalisables.

s1,s2,s3 : sont appelées variables de base (XB)


x1,x2 : sont appelés variables hors base (XH)
s1
s2 XB
On peut noter alors 0 s3
x1 XH
x2

On dit que la base (s1,s2,s3) est une Base réalisable

9
01/10/2021

Interprétation économique
Les variables d’écart :
S1=1 : La différence de production demandé est bien inférieur ou
égale à 1
S2 =12 : La ressource MP est abondante (totalement inutilisée)
S3=12 : la ressource ouvrier est abondante (totalement inutilisée)

Les variables de décision :


X1=0 : Pas de production de P1
X2=0 : Pas de production de P2

Le profit :
ZO=0 : Profit nul

• x1=0, s1=0
On aura alors x2=1 , s2=12 , s3=10
C’est le point D qui à l’ensemble des solutions réalisables.

On note :
BD =(x2,s2,s3) : la base associée au point D
HD=(x1,s1) : la hors-base associée au point D
x2,s2,s3 : sont appelées variables de base (XB)
x1,s1 : sont appelés variables hors base (XH)
x2
s2 XB
On peut noter alors D s3
x1 XH
s1

On dit que la base (x2,s2,s3) est une Base réalisable

10
01/10/2021

Interprétation économique
Les variables d’écarts :
S1=0 : La différence de production demandée est exactement égale à 1
(c’est à dire que la contrainte est satisfaite au sens stricte)
S2 =11 : La ressource MP est en excès (partiellement inutilisée)
S3=10 : la ressource ouvrier est en excès (partiellement utilisée)

Les variables de décision :


X1=0 : Pas de production de P1
X2=1 : On produit une unité de P2

Le profit :
ZD=3 : Je réalise un profit de 3 DT

• x1=0, s2=0
On aura alors x2=12 , s1=-11 , s3=-12
C’est le point G qui à l’ensemble des solutions réalisables.

On note :
BG =(x2,s1,s3) : la base associée au point G
HG=(x1,s2) : la hors-base associée au point G
x2,s1,s3 : sont appelées variables de base (XB)
x1,s2 : sont appelés variables hors base (XH)
x2
s1 XB
On peut noter alors G s3
x1 XH
s2

On dit que la base (x2,s1,s3) est une Base non réalisable


Et donc pas d’interprétation économique pour ce point !

11
01/10/2021

On fait de même pour les autres bases et on trouve :


0 A B C D E G H J K

S1=1 X1=6 X1=4 X1=2 X2=1 X1=12 X2=12 X2=6 X1 =11/4 X1=-1/2
S2=12 S1=13 X2=4 X2=5 S2=11 S1=25 S1=-11 S1=-5 X2=13/2 S2=13
S3=12 S3=6 S1=5 S2=3 S3=10 S2=-12 S3=-12 S2=6 S3=-15/4 S3=25/2

X1=0 X2=0 S2=0 S1=0 X1=0 X2=0 X1=0 X1=0 S1=0 X2=0
X2=0 S2=0 S3=0 S3=0 S1=0 S3=0 S2=0 S3=0 S2=0 S1=0

Z0=0 ZA=6 ZB=16 ZC=17 ZD =3


Bases réalisables Bases non réalisables : Il est inutile de calculer Z
Et on peut faire une interprétation et de faire une interprétation économique
économique

Remarque : (On ne traite pas ici le cas de dégénérescence)


Les variables non nulles sont appelées variables de Base : XB
Les variables nulles sont appelées variables Hors base : XH
La base optimale est celle qui réalise le maximum de profit, et il s’agit
donc de la base BC = (x1,x2,s2)

Remarque
Il est bien sur inutile d’énumérer à chaque
fois les différentes bases d’un PL et de les
classer en bases réalisables et bases non
réalisables et de chercher la base optimale
car le nombre de points extrêmes peut être
très élevé en cas de PL de grande taille.
Il suffit de définir :
Le tableau de simplexe
La notion de voisinage
La notion de meilleure valeur

12
01/10/2021

2- Premier tableau de simplexe


L’algorithme de simplexe démarre par une solution initiale
évidente qui n’est autre que le point 0

Essayons de récapituler toutes les informations de notre PL et


de ce point O dans un tableau :
L’opérateur du PL MAX
Les variables de décision VD : x1, x2
Les variables d’écarts VE : s 1,s 2,s 3
Les coefficients dans la fo Cj : 1,3,0,0,0
Les variables de base(non nulles) XB : s 1,s 2,s 3
Les valeurs des variables de base bi : 1,12,12

Tableau de simplexe à l’origine


VD VE
cj 1 3 0 0 0
MAX X1 X2 s1 s2 s3 b RT

s1 0 -2 1 1 0 0 1
XB s2 0 2 1 0 1 0 12

s3 0 1 2 0 0 1 12

zj
Z =
cj - zj

On remarque que la matrice formée par les vecteurs associés


aux variables de base est l’identité : I 3

13
01/10/2021

C- Deux solutions de base adjacentes


1- Changement de base

0 et A sont voisins, d’ailleurs on remarque que les


deux bases associées sont égales à une variable prés :
B 0 =(s1,s2,s3) et B A=(x1,s1,s3)
En passant de 0 à A, on fait sortir la VB s2 de la
base et on la remplace par x1 (qui en fait était une
VHB de 0) : on dit qu’on fait un changement de base.
Ensuite, en suivant le même raisonnement, on passe
de A à B ; puis de B à C :
O (s1,s2,s3) – A(s1,x1,s3) – B(s1,x1,x2) – C (s2,x1,x2)

De même :
0 et D sont voisins, d’ailleurs on remarque que les
deux bases associées sont égales à une variable prés :
B0=(s1,s2,s3) et BD=(x2,s2,s3)
En passant de 0 à D, on fait sortir la VB s1 de la base
et on la remplace par x2 (qui en fait est une VHB de 0) :
on dit qu’on fait un changement de base.
Ensuite, en suivant le même raisonnement, on passe de
DàC:
O (s1,s2,s3) – D (x2,s2,s3) – C (x2,s2,x1)

14
01/10/2021

Sur quel critère est fait ce changement ?


Quel chemin va-t-on choisir : 0-A-B-C ou
bien le chemin O-D-C ??

Remarque : Ce changement n’est toléré que


lorsque les deux points sont voisins (par
exemple, on ne peut pas passer directement
de A(x1,s1,s3) à C(x1,x2,s2))

2- Coût réduit ou encore valeur marginale


Le coefficient z j : correspond au coût d’opportunité d’introduction d’une unité de
x j dans la solution. Il est calculé en multipliant chaque élément a ij de la colonne de xj
avec son coefficient dans la fonction objectif et en faisant la somme des résultats.
Par exemple, pour x 1 , Une augmentation d'une unité de x1 réduit s2 de 2 unités et s3
de 1 unité. Comme s1, s2 et s3 ont une contribution nulle à la fonction objectif, la
réduction des si n'a pas d'effet sur la valeur de Z. Donc, la diminution totale des
profits par unité d'augmentation de x1 est donnée par: 0∗(-2)+0∗2+0∗1=0.
On continue le calcul des zj de la même manière

cj 1 3 0 0 0
MAX X1 X2 s1 s2 s3 b RT

s1 0 -2 1 1 0 0 1

s2 0 2 1 0 1 0 12

s3 0 1 2 0 0 1 12

zj 0 0 0 0 0
Z =
cj - zj

15
01/10/2021

Le coefficient cj-zj ou encore coût réduit de la variable hors


base xj correspond à l’augmentation de la valeur de la
fonction objectif associée à une augmentation d’une unité
de la valeur de la variable xj.

On choisira alors la variable entrante : celle qui a le plus


grand cj-zj positif

1 er critère de Dantzig : Choix d’une colonne entrante ou


encore choix de la variable entrante

Objectif : Trouver une colonne hors base aj telle que


l’augmentation de la valeur de la variab le xj qui lui est associée (et
qui est actuellement nulle dans la solution de base) augmente le
plus la valeur de la solution du problème
On cherche alors la colonne hors base ayant le coût réduit le plus
grand positif possible. Cette colonne est appelée : colonne pivot
Remarque : pour un problème de minimisation, on aurait cherché
le coût réduit le plus petit négatif possible pour diminuer le plus
possible la valeur de la fonction objectif

16
01/10/2021

Tableau de simplexe à l’origine


cj 1 3 0 0 0
b RT
MAX x1 x2 s1 s2 s3

s1 0 -2 1 1 0 0 1

s2 0 2 1 0 1 0 12

s3 0 1 2 0 0 1 12

zj 0 0 0 0 0
Z = 0
Cj-zj 1 3 0 0 0
Remarques :
1) En fait , dans le premier tableau, on choisit comme
variable entrante celle qui a le plus grand cj dans la fonction
objectif
2) Les variables s1,s2 et s3 sont déjà dans la base, donc leur
coût réduit est nul !!

2ème critère de Dantzig : Choix d’une colonne sortante ou


encore choix de la variable sortante

Objectif : Etant donné une solution réalisable de base et une


colonne hors base aj dont le coût réduit est le plus grand positif,
trouver une colonne de base ar telle que l’échange avec aj
aboutisse à une nouvelle solution de base adjacente encore
réalisable.
Pour choisir la colonne ar qui quitte la base B, il faut calculer le
ratio test RT=bi/aj tel que aj > 0 et choisir la plus petite valeur
positive. La ligne contenant cette plus petite valeur positive est
appelée ligne pivot.
Remarque : pour un problème de minimisation, on calcule le
même ratio test

17
01/10/2021

Tableau de simplexe à l’origine


cj 1 3 0 0 0
b RT
MAX x1 x2 s1 s2 s3

s1 0 -2 1 1 0 0 1 1

s2 0 2 1 0 1 0 12 12
Lp
s3 0 1 2 0 0 1 12 6

zj 0 0 0 0 0
Z = 0
Cj-zj 1 3 0 0 0
L1 est la ligne pivot :
X2 rentre dans la base et on choisit le min entre :
1/1 ; 12/1 ; 12/2 à 1 donc s1 quitte la base. probablement le
tableau suivant correspondra au point D

3- Nombre Pivot et Pivotage

Le nombre pivot ajr : est l’intersection de :

• La colonne pivot aj: La colonne hors base


ayant le plus grand coût réduit positif
et de
• La ligne pivot Lp : la ligne ayant le plus petit
ratio test positif

18
01/10/2021

Pivotage : C’est une suite d’opérations élémentaires sur les


lignes du tableau permettant de transformer une colonne aj
hors base en une colonne de base. Plus précisément,
pivoter autour du nombre pivot ajr revient à :
1) Diviser la ligne pivot Lp par le nombre pivot ajr : On
obtient alors une nouvelle ligne qu’on appelle L’p
(ce qui revient à isoler la variable xr dans la jème équation)
2) Effectuer le changement : Li – aj L’p
(ce qui revient à éliminer la variable xr des autres
équations)

Tableau de simplexe à l’origine


cj 1 3 0 0 0
b RT
MAX x1 x2 s1 s2 s3
Lp
s1 0 -2 1 1 0 0 1 1
s2 0 2 1 0 1 0 12 12 X2 S1
1 1
s3 0 1 2 0 0 1 12 6
1 0
zj 0 0 0 0 0 2 0
Z = 0
Cj-zj 1 3 0 0 0

1 : c’est l’intersection de la colonne pivot et de la ligne pivot. Il s’agit


alors du nombre pivot
On divise la ligne pivot L1 par 1 à L’1 =L1
On effectue les changements suivants : L2 – 1 *L’1 et L3 - *2L’1
Z= 1*0 + 12*0 + 6*0 = 0

19
01/10/2021

2èmeTableau de simplexe
cj 1 3 0 0 0
b RT
MAX x1 x2 s1 s2 s3

x2 3 -2 1 1 0 0 1 X
s2 0 4 0 -1 1 0 11 11/4
Lp X1 S3
s3 0 5 0 -2 0 1 10 2
-2 0
zj -6 3 3 0 0 4 0
Z = 3
Cj-zj 7 0 -3 0 0 5 1

X1, rentre en base : c’est la colonne pivot et L3 est la nouvelle ligne Pivot
5 : c’est l’intersection de la colonne pivot et de la ligne pivot. Il s’agit alors du
nombre pivot
On divise la ligne pivot Lp par 5 à L’p=Lp/5
On effectue les changements suivants : L1 –(- 2)* L’p et L2 – 4 L’p
Il s’agit bien du point D
Z =3*1 + 0*11 + 0* 10 = Z 0 + (cj-zj)x2 *x2 = 0 + 3 *1 =3 (le produit du coût réduit de x2 dans le tableau
précèdent par la nouvelle valeur de x2 dans le tableau courant)

3èmeTableau de simplexe
cj 1 3 0 0 0
b RT
MAX x1 x2 s1 s2 s3

x2 3 0 1 1/5 0 2/5 5

s2 0 O 0 3/5 1 -4/5 3

x1 1 1 0 -2/5 0 1/5 2

zj 1 3 1/5 0 7/5
Z = 17
Cj-zj 0 0 -1/5 0 -7/5

Il s’agit bien du point C (d’ailleurs c’est la solution optimale)


Qui va rentrer dans la base ? s1 ou s3 ?
Z =3*5 + 0 *3 +1*2 = 3 + 7 *2 ( voir le tableau précédent)

20
01/10/2021

4- Critère d’arrêt

Il faut que tous les coûts réduits cj-zj des variables


hors base xj soient négatifs ou nuls

c.à.d. : on ne peut plus améliorer encore la valeur de


la fonction objectif

Donc le 3ème tableau obtenu satisfait le critère d’arrêt


et il s’agit bien du tableau optimal

Remarque : Pour un problème de minimisation , il faut que


tous les coûts réduits soient positifs ou nuls

II- Exemples avec minimisation


Min Z = -25 X1 - 15 X2
2X1 + 2X2 ≤ 240
3X1 + X2 ≤ 140
X1, X2 ≥ 0 Min x1 x2 s1 s2 b RT
Cj -25 -15 0 0
s1 0 2 2 1 0 240 120
s2 0 3 1 0 1 140 140/3
zj 0 0 0 0 Z=0
Cj - z j -25 -15 0 0

Ce tableau correspond au point O :


La base : (s1,s2)

Variable entrante : x1 : c’est celle qui a un coût réduit le plus grand négatif
variable sortante : s2 : c’est celle qui a le plus petit ratio test
Nouvelle base : (s1,x1)

On divise la ligne L2 par 3


On effectue le changement : L1 -2L’2

21
01/10/2021

Min x1 x2 s1 s2 b RT
Cj -25 -15 0 0
s1 0 O 4/3 1 -2/3 440/3 110
x1 -25 1 1/3 0 1/3 140/3 140
zj -25 -25/3 0 -25/3 Z=-3500/3
Cj - z j 0 -20/3 0 25/3

Ce tableau correspond au point C :

La base : (s1,x1)
Variable entrante : x2 c’est celle qui a un coût réduit le plus grand négatif ;
variable sortante : s1 c’est celle qui a le plus petit ratio test
Nouvelle base : (x2,x1)

On divise la ligne L1 par 4/3 à L’1 = 3/4 L1


On effectue le changement : L2 – 1/3 L’1

Min x1 x2 s1 s2 b RT
Cj -25 -15 0 0
x2 -15 0 1 3/4 -1/2 110
x1 -25 1 0 -1/4 1/2 10
zj - 25 - 15 -5 -5 Z= -1900
Cj - z j 0 0 5 5

Ce tableau correspond au point B : C’est le tableau optimal

La base : (x2,x1) est optimale puisque tous les cj-zj sont positifs ou nuls. On ne peut
plus diminuer encore plus la fonction objectif

22
01/10/2021

III- Résolution d’un PL sous


forme quelconque
1- Les variables de décision et le second membre
POSITIFS
Pour appliquer l’algorithme de simplexe, toutes les
variables doivent être positives. Il faut également
s’assurer que le second membre est positif
q Si le second membre est négatif, alors multiplier la
contrainte par -1
q Si la variable est négative alors multiplier x par -1
q Si la variable x est libre (sans signe) alors poser
x = x’-x ’’
où x’ et x’’ >=0

2- Exercice d’application
Faites les changements nécessaires afin de pouvoir appliquer
l’algorithme de simplexe

a) Max Z = -6X1 - 3X2


-X1 -X2 ≤ 28
X1- 2X2 ≥ -22
X1 ≥ 0 , X2 ≤ 0

b) Min Z = -6X1 - 3X2 + 2X3


-X1 -X2 + X3 ≤ 28
X1- 2X2 + 2X3 ≥ -22
X1 ≥ 0 ; X2 ≤ 0

23
01/10/2021

3- Les variables artificielles


Considérons l’exemple La forme standard s’écrit
Max Z = -6X1 - 3X2 + 2X3
Max Z = -6X1 - 3X2 + 2X3 +0 S1 + 0 S2
-X1 -X2 + X3 ≤ - 28 X1 + X2 - X3 –S1 = 28
X1- 2X2 + 2X3 ≥ 22 X1- 2X2 + 2X3 –S2= 22
X1,X2,X3 ≥ 0 X1,X2,X3 ≥ 0 ; S1, S2 ≥ 0

Solution initiale évidente ?


S1= - 28 IMPOSSIBLE car valeurs négatives
S2= - 22

On ne peut pas trouver une solution initiale évidente à chaque


fois qu’on est face à des contraintes de type >= ou même =

d’où l’introduction de variables artificielles

Le PL s’écrit alors :
Max Z = -6X1 - 3X2 + 2X3 +0S1 + 0 S2 – M a1 –Ma2

X1 + X2 - X3 –S1 + a1= 28
X1- 2X2 + 2X3 –S2 + a2= 22
X1,X2,X3 ≥ 0 ; S1, S2 ≥ 0 ; a1, a2 ≥ 0

24
01/10/2021

4- La méthode du grand M ou des pénalités


On utilise la méthode des grands M lorsque le PL a quelques
contraintes de type >= (ou = ); c’est à dire lorsque la solution
initiale évidente est non réalisable (puisqu’il y aura des valeurs
négatives)
On introduit alors les variables artificielles dans les contraintes et
on leur attribue les coefficients –M, très négatifs dans la fonction
objectif.(ainsi si une variable artificielle n ‘est pas nulle, elle
donnera à la fo une valeur très mauvaise car négative)
Le but est d’obtenir, en itérant l’algorithme de simplexe, une
base sans variables artificielles.
En maximisant la fo, on aura tendance à faire sortir les variables
artificielles de la base
Remarque : Dans le cas d’un PL de minimisation, on attribue les
coefficients +M aux variables artificielles dans la fo

Max x1 x2 x3 s1 s2 a1 a2 b RT
Cj -6 -3 2 0 0 -M -
M
a1 -M 1 1 -1 -1 O 1 0 28 28
a2 -M 1 -2 2 0 -1 0 1 22 22
zj -2M M -M M M -M -
M X
Cj - zj -6+2M -3-M 2+M -M -M 0 O

On divise la ligne L2 par 1


On effectue les changements suivants : L1 – L2

25
01/10/2021

Max x1 x2 x3 s1 s2 a1 a2 b RT
Cj -6 -3 2 0 0 -M -M
a1 -M O 3 -3 -1 1 1 -1 6 2
x1 -6 1 -2 2 0 -1 0 1 22 X
zj -6 -3M+12 -3M-12 M - -M M-6
M+6 X
Cj - zj 0 3M-15 -3M+14 -M M-6 0 -
2M+
6

On divise la ligne L1 par 3 à L’1


On effectue les changements suivants : L2 + 2 L’1

Max x1 x2 x3 s1 s2 a1 a2 b
Cj -6 -3 2 0 0 -M -M
x2 -3 0 1 -1 -1/3 1/3 1/3 -1/3 2
x1 -6 1 0 0 -2/3 -1/3 2/3 1/3 26
zj -6 -3 3 5 1 -5 -1 Z = -162
Cj - zj 0 0 -1 -5 -1 -M+5 -M+1

Tous les cj-zj sont négatifs ou nuls, le tableau est donc optimal.
La solution optimale est donnée par :
X1=26
X2=2
X3=s1=s2=0
Et Z= -162

26
01/10/2021

Remarques :
1) Dans Z on associe aux variables artificielles -M en cas
d’une maximisation et M en cas d’une minimisation.
2) Les coefficients d’une variable artificielle relative à
une contrainte de type ‘≥’ sont opposés à ceux de la
variable d’écart correspondante, et ceci au niveau de
toutes les itérations.
3) Les coefficients d’une variable artificielle relative à
une contrainte de type ‘=’ sont égales à ceux de la
variable d’écart correspondante, et ceci au niveau de
toutes les itérations. (donc a=s pour une contrainte de
type =)
4) Si une variable artificielle quitte la base, elle n’aura
plus la possibilité d’entrer une 2ème fois dans la base.
On peut simplifier du tableau toute variable
artificielle quittant la base.

5) Il existe d’autres méthodes pour la résolution des PL avec contraintes de


type ≥ :
la méthode des deux phases :
La première phase à pour but d’éliminer les variables artificielles .
Pour cela , on choisit comme coefficients dans la foncti on objectif : 0 pour les
variables de décision et des variables d’écart et -1 pour les variables
artificielles pour un problème de max (1 si problème de min). L’optimum
sera atteint alors si les variables artificielles valent 0.

La deuxième phase : quand il n’ya plus de variables artificielles dans


la base, on travaille avec les coefficients initiaux du PL. On démarre
l’algorithme avec la solution obtenue dans la phase 1.

L’algorithme dual de simplexe :


Il évite la phase 1 puisqu’il peut démarrer avec une solution non réalisable
de base
Très utilisé lors de la ré optimisation quand on perd la réalisabilité de la
solution
Quand m>n, il vaut mieux utiliser le dual de simplexe car la complexité de
l’algorithme est (m+log(n)) (donc il est préférable d’avoir la plus grande
valeur entre m et n dans le log

27
01/10/2021

IV- Cas particuliers


Solution Vide Solution rejetée vers
l’infini

Max Z = 2X1 + X2 Max Z = 2X1 + 3X2


X1 + X2 ≥ 4
3X1 + 4X2 ≤ 12
3X1- X2 ≥ 12
X1+ X2 ≥ 5 X2 ≥ 1
X1,X2 ≥ 0 X1,X2 ≥ 0
Tous les cj-zj ≤ 0 , le tableau
est optimal mais il y a Pas de vecteur sortant : tous les
toujours des variables ratios test sont négatifs ou infinis
artificielles dans la base du
tableau final

Solution Multiple Solution dégénérée


Min Z = X1 - 3X2
Min Z = 2X1 + 2X2 X1 +3X2 ≤ 30
X1+ X2 ≥ 3 X1 + 2X2 ≤ 20
X2 ≤ 10
X1 - 2X2 ≤ 4
X1,X2 ≥ 0
4X1 +9X2 ≤ 36
X1,X2 ≥ 0 Dans le tableau final, il y a une
variable de base nulle (ou dans l’avant
Tous les cj-zj ≤ 0 , le tableau dernier tableau il y a égalité entre les
est optimal et il y a une deux ratio test à choisir)
variable hors base à coût
réduit nul.

28
01/10/2021

Résumé : Application de
l’algorithme du Simplexe
Le second membre doit être positif, sinon multiplier la contrainte par -1
Comment obtenir la forme standard ?
Les variables doivent être positives.
Si x <= 0 on pose x’ = -x
Si x est libre on pose x = x’ – x’’ avec x’ et x’’ >=0 (d’ailleurs dans la
résolution, l’un des deux sera nul et les deux colonnes sont opposées dans le
tableau)

Les contraintes doivent être de type =


Contrainte de type <= +s (rajouter l’écart pour atteindre l’égalité)
Contrainte de type >= -s +a (retrancher le surplus pour atteindre
l’égalité et rajouter une variable artificielle pour permettre l’application de
l’algorithme de simplexe)
Contrainte de type = +a (ajouter une variable artificielle pour
permettre l’application de l’algorithme du simplexe)

V- TORA
• Pour la lecture de l’output, il faut noter que la
ligne Z(max) correspond à l’opposé de la ligne
des couts réduits habituellement calculés

• La valeur de la solution est la même par


contre !!

29

Vous aimerez peut-être aussi