Vous êtes sur la page 1sur 45

La mthode du simplexe

1) Algorithme du simplexe

Cet algorithme permet de dterminer la


solution optimale, si elle existe, dun
problme de programmation linaire n
variables.
Le principe de la mthode est de transformer
les contraintes qui sont des inquations en
quations en ajoutant des variables positives
que lon appelle variables dcart. Puis on
transforme ce systme dquations linaires
jusqu trouver la solution optimale.

2) Les tapes de la mthode

Premire tape : La formulation


mathmatique du problme
Deuxime tape : Mise sous forme
standard du problme
Troisime tape : Application de
lalgorithme du simplexe

3) La formulation mathmatique du
problme (1)

A partir de lnonc du problme qui est


donn en langage naturel, il faut obtenir sa
formulation mathmatique. Cest la phase
de modlisation.
Il faut dterminer et dcrire avec prcision
les variables du problme (units et
priodes de temps de lobservation).
Il faut dterminer et classer les contraintes
en vrifiant lhomognit des units.

3) La formulation mathmatique du
problme (2)

Il faut dterminer la fonction


conomique (ou objectif) et donner
le type doptimisation recherche
(maximum ou minimum)
Les contraintes et la fonction
conomique doivent tre linaires
par rapport aux variables du
problme sinon lalgorithme du
simplexe nest pas applicable.

4) Mise sous forme standard du


problme

Un problme de programmation
linaire est dit sous forme
standard sil vrifie les
conditions suivantes :
Les

variables du problme doivent


toutes tre positives.
Le type doptimisation doit tre une
recherche de maximum.
Les contraintes sont des
contraintes dgalit.

4-a) Transformation des variables

Si une variable x est ngative, on pose


y = -x. La nouvelle variable y est positive
et les contraintes et la fonction
conomique restent bien linaires aprs
avoir remplac lancienne 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 linaires aprs
avoir remplac lancienne variable x par
x1-x2.

4-a) Transformation des variables

Si le type doptimisation est une


recherche de minimum pour la fonction
conomique Z, on procde un
changement de fonction conomique en
considrant Z (qui est toujours une
fonction linaire des variables).
On a la proprit min(Z) = - Max(-Z).

4-b) Transformation des ingalits en


galits

Pour cela, il faut ajouter des


variables dites variables dcart
qui doivent tre galement
positives.
On suppose quinitialement les
variables sont : x1, x2, , xn

Cas dune contrainte


de type ou

Au dpart on a la contrainte :
a1x1 + a2x2 + . + anxn b
On ajoute une variable dcart e
positive, la contrainte devient :
a1x1 + a2x2 + . + anxn + e = b
Les nouvelles variables sont :
x1, x2, , xn, e

Cas dune contrainte


de type ou

Au dpart on a la contrainte :
a1x1 + a2x2 + . + anxn b
On retranche une variable dcart e
positive, la contrainte devient :
a1x1 + a2x2 + . + anxn - e = b
Les nouvelles variables sont :
x1, x2, , xn, e

Exemple

Forme canonique du programme


linaire :
2x+y 800
x+2y 700
y 300
x 0, y 0
Fonction conomique maximiser :
Z = 30000x + 40000y

Forme standard

Le problme est mis sous forme


standard en ajoutant trois variables
dcart 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
x

e1

e2

e3

2me
membre

e1

800

e2

700

e3

300

30000

40000

Variables
enbase

Ratio

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 quun seul 1 sur leur colonne, les autres
coefficients sont nuls sur la colonne.
Au dpart Base={ e1, e2, e3}
HorsBase={ x,y}
Les coefficients de la fonction conomique sont
appels 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 lavant-dernire
colonne (celle des seconds membres)
avec le signe oppos.
Cest dans cette mme cellule que lon
trouvera loppos de la valeur de la
fonction conomique pour la solution en
cours et donc loppos de loptimum
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
rpondre cette exigence.

Constitution du tableau

Quand le problme est mis sous forme


standard, on peut appliquer lalgorithme du
simplexe. Les diffrentes quations linaires
sont places dans un tableau. Chaque quation
est une ligne du tableau, la dernire ligne est
rserve pour la fonction conomique.
Les colonnes correspondent aux variables du
problme. A droite du tableau lavant dernire
colonne contient les seconds membres des
quations. La dernire colonne contient ce que
lon appelle les ratios qui seront expliqus plus
loin.

5) Application de lalgorithme du simplexe

Les calculs qui sont effectus sont


des calculs de combinaisons
linaires sur les lignes du tableau.
On suppose comme cela est signal
dans la remarque ci-dessus que
toutes les variables dcart ont un
coefficient 1.
On recherche un maximum de la
fonction conomique.

Dpart de lalgorithme

Au dpart, on a une solution


ralisable du problme en
considrant que les variables dcart
sont gales aux seconds membres
et que les autres variables sont
nulles.
Cette solution respecte bien les
contraintes de positivit et les
galits sont satisfaites

Principe de lalgorithme

A chaque tape de lalgorithme, on choisit


une variable hors base que lon appelle
variable entrante et une variable en base
que lon appelle variable sortante afin
damliorer la solution prcdente.
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 linaire 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 ngatifs ou
nuls, loptimum est atteint.
Lalgorithme sarrte

Choix de la variable sortante

Aprs avoir choisi la variable entrante, on


calcule pour chaque ligne reprsentant
une contrainte, le ratio qui est le rapport
entre le coefficient du deuxime 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

Aprs choix de la variable entrante et de la


variable sortante, on transforme le tableau.
Lintersection de la colonne de la variable
entrante et de la ligne de la variable
sortante sappelle le pivot.
Il faut transformer le tableau par
combinaisons linaires sur les lignes pour
faire apparatre un 1 sur le pivot et des 0
ailleurs sur la colonne de la nouvelle
variable en base.

Fin de lalgorithme

Loptimum est atteint lorsque tous les TMS sont


ngatifs. 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 mme ligne sont hors
base.
La valeur de loptimum est loppos de la valeur
qui figure sur la ligne de la fonction conomique
lavant dernire colonne. On vrifiera cette valeur
en remplaant les valeurs des variables dans la
fonction conomique.

Mthode applique lexemple


Base

e1

e2

e3

2me
membre

e1

800

e2

700

e3

300

30000

40000

Ratio

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
intermdiaire (au dpart) :
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 loppos de la case


2me membre de la ligne de Z. On
peut la recalculer, par vrification, avec la
formule Z=40000x+30000y. Initialement
on a donc :
Z=0 (puisque x et y sont nuls)
On nest pas loptimum car les TMS
(Taux Marginaux de Substitution :
coefficients de Z) ne sont pas tous
ngatifs ou nuls.

Variable entrante
Base

e1

e2

e3

2me
membre

e1

800

e2

700

e3

300

30000

40000

Ratio

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


Base

e1

e2

e3

2me
membre

Ratio

e1

800

800/1

e2

700

700/2

e3

300

300/1

30000

40000

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
Base

e1

e2

e3

2me
membre

e1

800

800/1

e2

700

700/2

e3

300

300/1

30000

40000

Ratio

Variable sortante = Celle correspondant au plus petit ratio


strictement positif (coefficient du 2me 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 sagit de la
nouvelle variable en base.

Faire apparatre un 1 sur le pivot

Si le pivot nest pas gal 1, il faut


diviser toute la ligne par le pivot.
Ici le pivot est dj 1.

Faire apparatre des 0 sur le reste de


la colonne de la nouvelle variable en
base

Il faut retrancher
chaque ligne un
certain nombre de
fois la ligne du
pivot pour faire
apparatre un 0.

Base

e1

e2

e3

2me
membre

Ratio

e1

800

800/1

e2

700

700/2

e3

300

300/1

30000

40000

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
enbase

e1

e2

e3

2memembre

e1

-1

500

e2

-2

100

300

30000

-40000

-12000000

Loptimum nest pas atteint (1 TMS est


>0)

Ratio

Variable entrante, ratios et variable


sortante du tableau 2
Variables
enbase

e1

e2

e3

2memembre

Ratio

e1

-1

500

500/2=2
50

e2

-2

100

100/1=1
00

300

300/0=

30000

-40000

-12000000

Variable entrante x et sortante


e2

Transformations sur le tableau 2

Le pivot est dj 1.
Il faut remplacer L1 par L1 - 2*L2
L3 ne doit pas tre change (il y a
dj un 0)
L4 doit tre remplace par L4
30000*L2

Tableau 3
Variables
enbase

e1

e2

e3

2memembre

e1

-2

300

-2

100

300

-30000

20000

-15000000

Loptimum nest pas atteint (1 TMS est


>0)

Ratio

Variable entrante, ratios et variable


sortante du tableau 3
Variables
enbase

e1

e2

e3

2memembre

e1

-2

300

=300/3=1
00

-2

100

=-100/2=50

300

=300/1=3
00

-30000

20000

-15000000

Variable entrante e3 et sortante


e1

Ratio

Etape 1:
Division du pivot par 3
Variables
enbase

e1

e2

e3

2memembre

e1

1/3

-2/3

300/3=100

-2

100

300

-30000

20000

-15000000

Ratio

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

e1

e2

e3

2memembre

e1

1/3

-2/3

300/3=100

-2

100

300

-30000

20000

-15000000

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


-20000*L1

Ratio

Tableau 4
Variables
enbase

e1

e2

e3

2memembre

e1

1/3

-2/3

100

2/3

-1/3

300

-1/3

2/3

200

-20000/3

-50000/3

-17000000

Loptimum est atteint (Tous les TMS sont


ngatifs)

Ratio

Rsultats

Optimum : 17 000 000


X=300
Y=200
Vrification :

Z=30000X + 40000Y=30000*300 + 40000*200=17


000 000