Vous êtes sur la page 1sur 45

La méthode du simplexe

1) Algorithme du simplexe
 Cet algorithme permet de déterminer la
solution optimale, si elle existe, d’un
problème de programmation linéaire à n
variables.
 Le principe de la méthode est de
transformer les contraintes qui sont des
inéquations en équations en ajoutant des
variables positives que l’on appelle
variables d’écart. Puis on transforme ce
système d’équations linéaires jusqu’à
trouver la solution optimale.
2) Les étapes de la méthode
 Première étape : La formulation
mathématique du problème
 Deuxième étape : Mise sous forme
standard du problème
 Troisième étape : Application de
l’algorithme du simplexe
3) La formulation mathématique du
problème (1)

 A partir de l’énoncé du problème qui est


donné en langage naturel, il faut obtenir
sa formulation mathématique. C’est la
phase de modélisation.
 Il faut déterminer et décrire avec
précision les variables du problème
(unités et périodes de temps de
l’observation).
 Il faut déterminer et classer les
contraintes en vérifiant l’homogénéité des
unités.
3) La formulation mathématique du
problème (2)

 Il faut déterminer la fonction


économique (ou objectif) et donner
le type d’optimisation recherchée
(maximum ou minimum)
 Les contraintes et la fonction
économique doivent être linéaires
par rapport aux variables du
problème sinon l’algorithme du
simplexe n’est pas applicable.
4) Mise sous forme standard du
problème

 Un problème de programmation
linéaire est dit sous forme
standard s’il vérifie les
conditions suivantes :
 Les variables du problème doivent
toutes être positives.
 Le type d’optimisation doit être une
recherche de maximum.
 Les contraintes sont des
contraintes d’égalité.
4-a) Transformation des variables
 Si une variable x est négative, on pose
 y = -x. La nouvelle variable y est positive
et les contraintes et la fonction
économique restent bien linéaires après
avoir remplacé l’ancienne variable x par –
y.
4-a) Transformation des variables
 Si une variable x est de signe
quelconque, on pose x = x1-x2 où x1 et
x2 sont deux nouvelles variables
positives. Les contraintes et la fonction
économique restent bien linéaires après
avoir remplacé l’ancienne variable x par
x1-x2.
4-a) Transformation des variables
 Si le type d’optimisation est une
recherche de minimum pour la fonction
économique Z, on procède à un
changement de fonction économique en
considérant –Z (qui est toujours une
fonction linéaire des variables).
 On a la propriété min(Z) = - Max(-Z).
4-b) Transformation des inégalités en
égalités

 Pour cela, il faut ajouter des


variables dites variables d’écart
qui doivent être également
positives.
 On suppose qu’initialement les
variables sont : x1, x2, … , xn
Cas d’une contrainte
de type  ou 

 Au départ on a la contrainte :
 a1x1 + a2x2 + …. + anxn  b
 On ajoute une variable d’écart e
positive, la contrainte devient :
 a1x1 + a2x2 + …. + anxn + e = b
 Les nouvelles variables sont :
x1, x2, … , xn, e
Cas d’une contrainte
de type  ou 

 Au départ on a la contrainte :
 a1x1 + a2x2 + …. + anxn  b
 On retranche une variable d’écart e
positive, la contrainte devient :
 a1x1 + a2x2 + …. + anxn - e = b
 Les nouvelles variables sont :
x1, x2, … , xn, e
Exemple
 Forme canonique du programme
linéaire :
2x+y ≤ 800
x+2y ≤ 700
y ≤ 300
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Forme standard
 Le problème est mis sous forme
standard en ajoutant trois variables
d’écart positives, e1, e2, e3.
2x+y+e1 = 800
x+2y+e2 = 700
y+e3 = 300
x 0, y 0, e1 0, e2 0, e3 0
Max(30000x+40000y)
Tableau du simplexe

Variables 2ème Ratio


x y e1 e2 e3
en base membre

e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0
Variables en base et hors-base
 On distinguera les variables dites « en base » et
les variables dites « hors base ». Les variables
hors base ont toujours une valeur nulle, les
variables en base sont celles pour lesquelles ne
figurent qu’un seul 1 sur leur colonne, les autres
coefficients sont nuls sur la colonne.
 Au départ Base={ e1, e2, e3}
 HorsBase={ x,y}
 Les coefficients de la fonction économique sont
appelés taux marginaux de substitution (ou TMS).
Ici 30000 et 40000.
Remarque 1
 Si la fonction économique a dans son
expression un coefficient constant, il faut
le faire figurer dans l’avant-dernière
colonne (celle des seconds membres)
avec le signe opposé.
 C’est dans cette même cellule que l’on
trouvera l’opposé de la valeur de la
fonction économique pour la solution en
cours et donc l’opposé de l’optimum
quand il sera atteint.
Remarque 2
 On remarque, dans le tableau
initial, que pour chaque variable en
base on a un seul un sur la colonne
et les autres coefficients sont nuls.
A chaque étape, le tableau devra
répondre à cette exigence.
Constitution du tableau
 Quand le problème est mis sous forme
standard, on peut appliquer l’algorithme du
simplexe. Les différentes équations linéaires
sont placées dans un tableau. Chaque équation
est une ligne du tableau, la dernière ligne est
réservée pour la fonction économique.
 Les colonnes correspondent aux variables du
problème. A droite du tableau l’avant dernière
colonne contient les seconds membres des
équations. La dernière colonne contient ce que
l’on appelle les ratios qui seront expliqués plus
loin.
5) Application de l’algorithme du simplexe

 Les calculs qui sont effectués sont


des calculs de combinaisons
linéaires sur les lignes du tableau.
 On suppose comme cela est signalé
dans la remarque ci-dessus que
toutes les variables d’écart ont un
coefficient 1.
 On recherche un maximum de la
fonction économique.
Départ de l’algorithme
 Au départ, on a une solution
réalisable du problème en
considérant que les variables d’écart
sont égales aux seconds membres
et que les autres variables sont
nulles.
 Cette solution respecte bien les
contraintes de positivité et les
égalités sont satisfaites
Principe de l’algorithme
 A chaque étape de l’algorithme, on choisit
une variable hors base que l’on appelle
variable entrante et une variable en base
que l’on appelle variable sortante afin
d’améliorer la solution précédente.
 Puis on transforme le tableau pour le
remettre sous sa forme standard. En
effet, les colonnes des variables en base
ne doivent avoir qu ‘un seul 1 et des 0
ailleurs.
 Cette transformation se fait par
combinaison linéaire des lignes.
Choix de la variable entrante
 On choisit celle dont le TMS est
strictement positif et le plus
grand possible.
 Si tous les TMS sont négatifs ou
nuls, l’optimum est atteint.
L’algorithme s’arrête
Choix de la variable sortante
 Après avoir choisi la variable entrante, on
calcule pour chaque ligne représentant
une contrainte, le ratio qui est le rapport
entre le coefficient du deuxième membre
de la contrainte et le coefficient sur la
colonne de la variable entrante.
 Ce ratio peut être infini si le coefficient est
nul.
 La variable sortante est celle dont le
ratio est le plus petit strictement
positif.
Transformation du tableau
 Après choix de la variable entrante et de
la variable sortante, on transforme le
tableau.
 L’intersection de la colonne de la variable
entrante et de la ligne de la variable
sortante s’appelle le pivot.
 Il faut transformer le tableau par
combinaisons linéaires sur les lignes pour
faire apparaître un 1 sur le pivot et des 0
ailleurs sur la colonne de la nouvelle
variable en base.
Fin de l’algorithme
 L’optimum est atteint lorsque tous les TMS sont
négatifs. Les variables hors base sont nulles. Les
valeurs des variables en base se lisent
directement sur le tableau puisque leur coefficient
est 1 et que les autres variables qui ont un
coefficient non nuls sur la même ligne sont hors
base.
 La valeur de l’optimum est l’opposé de la valeur
qui figure sur la ligne de la fonction économique à
l’avant dernière colonne. On vérifiera cette valeur
en remplaçant les valeurs des variables dans la
fonction économique.
Méthode appliquée à l’exemple
2ème
Base x y e1 e2 e3 Ratio
membre

e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0

A ce stade les variables en base sont e1, e2 et e3. On remarque que pour
chaque variable en base on a un seul 1 sur la colonne et que les autres
coefficients sont nuls.
Base={e1, e2, e3}
Les variables hors base sont x et y.
HorsBase={x, y}
Remarques sur le tableau initial
 On admettra qu’à chaque étape, les
variables hors base sont nulles. Les
variables en base se calculent dans le
tableau en tenant compte du fait que
les variables hors base sont nulles.
 Avec ce tableau initial, on a une solution
intermédiaire (au départ) :
 x=0 et y=0 (car ces variables sont hors
base)
 e1=800, e2=700, e3=300. En effet,
chaque ligne du tableau correspond à une
égalité.
Remarques sur le tableau initial
 La valeur de Z est l’opposé de la case
2ème membre de la ligne de Z. On
peut la recalculer, par vérification, avec la
formule Z=30000x+40000y. Initialement
on a donc :
 Z=0 (puisque x et y sont nuls)
 On n’est pas à l’optimum car les TMS
(Taux Marginaux de Substitution :
coefficients de Z) ne sont pas tous
négatifs ou nuls.
Variable entrante
2ème Ratio
Base x y e1 e2 e3
membre

e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0

Variable entrante = Celle qui correspond au plus grand TMS


strictement positif (taux marginal de substitution) coefficient >0
de la fonction objectif. Ici y est la variable entrante.
Calcul des ratios
2ème Ratio
Base x y e1 e2 e3
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

On calcule les ratios en divisant pour chaque variable de la base


(pour chaque ligne), le coefficient du second membre par le
coefficient de la colonne de la variable entrante.
Variable sortante
2ème Ratio
Base x y e1 e2 e3
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

Variable sortante = Celle correspondant au plus petit ratio strictement


positif (coefficient du 2ème membre/coefficient colonne de la variable entrante).
Ici e3 est la variable sortante.
Transformation du tableau
 Pivot = intersection variable
entrante et sortante
 Dans la colonne du pivot : Il faut
mettre un 1 à la place du pivot et
un 0 ailleurs. En effet, il s’agit de la
nouvelle variable en base.
Faire apparaître un 1 sur le pivot

 Si le pivot n’est pas égal à 1, il faut


diviser toute la ligne par le pivot.
 Ici le pivot est déjà à 1.
Faire apparaître des 0 sur le reste de la
colonne de la nouvelle variable en
base

 Il faut retrancher à 2ème Ratio


Base x y e1 e2 e3
chaque ligne un membre

certain nombre de e1 2 1 1 0 0 800 800/1

fois la ligne du e2 1 2 0 1 0 700 700/2

pivot pour faire e3 0 1 0 0 1 300 300/1

apparaître un 0.
Z 30000 40000 0 0 0 0

pivot Pour la ligne de e1, il faut


lui retrancher la ligne du
pivot. On remplace la ligne
L1 par L1-L3
Autres transformations
 Pour la ligne de e2, il faut lui
retrancher deux fois la ligne du
pivot.. On remplace L2 par L2-2L3
 Pour la ligne de Z, il faut lui
retrancher 40000 fois la ligne du
pivot.. On remplace L4 par L4 –
40000L3
Tableau 2
Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 2 0 1 0 -1 500

e2 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 30000 0 0 0 -40000 -12000000

L’optimum n’est pas atteint (1 TMS est >0)


Variable entrante, ratios et variable
sortante du tableau 2
Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 2 0 1 0 -1 500 500/2=2
50

e2 1 0 0 1 -2 100 100/1=1
00

y 0 1 0 0 1 300 300/0=

Z 30000 0 0 0 -40000 -12000000

Variable entrante x et sortante e2


Transformations sur le tableau 2
 Le pivot est déjà à 1.
 Il faut remplacer L1 par L1 - 2*L2
 L3 ne doit pas être changée (il y a
déjà un 0)
 L4 doit être remplacée par L4 –
30000*L2
Tableau 3
Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 0 0 1 -2 3 300

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

L’optimum n’est pas atteint (1 TMS est >0)


Variable entrante, ratios et variable
sortante du tableau 3

Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 0 0 1 -2 3 300 =300/3=1
00

x 1 0 0 1 -2 100 =-100/2=-
50

y 0 1 0 0 1 300 =300/1=3
00

Z 0 0 0 -30000 20000 -15000000

Variable entrante e3 et sortante e1


Etape 1:
Division du pivot par 3

Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 0 0 1/3 -2/3 1 300/3=100

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000


Etape 2:
Apparition des 0 sur le reste
de la colonne

Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 0 0 1/3 -2/3 1 300/3=100

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -20000*L1


Tableau 4
Variables Ratio
x y e1 e2 e3 2ème membre
en base

e1 0 0 1/3 -2/3 1 100

x 1 0 2/3 -1/3 0 300

y 0 1 -1/3 2/3 0 200

Z 0 0 -20000/3 -50000/3 0 -17000000

L’optimum est atteint (Tous les TMS sont négatifs)


Résultats
 Optimum : 17 000 000
 X=300
 Y=200
 Vérification :
 Z=30000X + 40000Y=30000*300 + 40000*200=17
000 000

Vous aimerez peut-être aussi