Académique Documents
Professionnel Documents
Culture Documents
Simplexe 2223
Simplexe 2223
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)
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
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
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
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
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
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
apparaître un 0.
Z 30000 40000 0 0 0 0
e1 2 0 1 0 -1 500
e2 1 0 0 1 -2 100
y 0 1 0 0 1 300
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=
e1 0 0 1 -2 3 300
x 1 0 0 1 -2 100
y 0 1 0 0 1 300
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
Variables Ratio
x y e1 e2 e3 2ème membre
en base
x 1 0 0 1 -2 100
y 0 1 0 0 1 300
Variables Ratio
x y e1 e2 e3 2ème membre
en base
x 1 0 0 1 -2 100
y 0 1 0 0 1 300