Documente Academic
Documente Profesional
Documente Cultură
com
L’algorithme du simplexe
Nizar El Hachemi
5 avril 2011
Formulation complète
Formulation complète
Point extrême
Le théorème fondamental de la programmation linéaire souligne
l’importance des points extrêmes dans la recherche d’une solution
optimale d’un modèle continu. Dans un plan cartésien, ces points
sont faciles à repérer ; mais dès que le nombre de variables de
décision est supérieur à 3, il devient impossible de le déterminer
graphiquement. Or, la plupart des modèles linéaires rencontrés dans
la pratique mettent en jeu un grand nombre de variables. Il faut
donc traduire en langage algébrique la notion géométrique de point
extrême.
Modèle (PLS)
Le modèle (PLS) comporte n variables de décision et (m+n)
contraintes. Les n dernières sont des contraintes de non-négativité.
Les m premières, dont le membre de droit est noté bi sont
qualifiées de contraintes technologiques.
Le modèle (PLS) est équivalent au modèle (PLS=) obtenu en
ajoutant une variable d’écart à chaque contrainte technologique,
selon le procédé décrit auparavant.
La figure suivante représente les droites associées à chacune des
contraintes technologiques du problème de la Fonderie, ainsi que la
région admissible OABCD.
Modèle de la Fonderie
Revenons au modèle de la Fonderie :
Modèle de la Fonderie
Ignorons pour l’instant les contraintes de non-négativité. Le
système des 4 contraintes technologiques met en jeu 6 variables. Un
tel système, dont le nombre de variables est supérieur au nombre
d’équations admet une infinité de solutions ou bien n’en admet
aucune. Si dans ce modèle on donne à 2 des 6 variables la valeur 0,
le système résultant qui comportera 4 équations et 4 variables
admet une solution ou bien n’en admet aucune. Or, il existe 6*5/2
= 15 façons de choisir 2 variables parmi les 6 du modèle (Voir le
tableau suivant).
Théorème 1
Si (x1 , ..., xn ; e1 ; ...; em ) est une solution de base admissible de
(PLS=), alors (x1 , ..., xn ) est un point extrême de (PLS). De plus,
tout point extrême de (PLS) s’obtient de cette façon d’une solution
de base de (PLS=).
Cette caractéristique algébrique des points extrêmes permet de
traduire en langage algébrique les résultats du chapitre précédent,
dont le théorème fondamental de la programmation linéaire.
Théorème 2
Si (PLS=) admet une solution optimale, il existe une solution de
base admissible qui est solution optimale de (PLS=).
La recherche d’une solution optimale de (PLS) pourra, en vertu du
théorème 2, se confiner à l’examen des solutions de base
admissibles de (PLS=), dont le nombre ne peut exécer Cm+nn .
n
Malheureusement, la valeur Cm+n est souvent énorme dans la
pratique. L’algorithme du simplexe permet de déterminer si un
modèle (PLS) admet une solution optimale et, le cas échéant, d’en
trouver une, en examinant un nombre de solutions de base qui, sauf
exceptions, est relativement petit.
Modèle de la Fonderie
Revenons au modèle de la Fonderie :
Généralités
Un tableau du simplexe contient une foule d’informations : il faut y
voir plus qu’un simple alignement de nombres, car on y retrouve
l’essentiel des données reliées au problème de la Fonderie. Par
contre, un tableau ne réfère nulle part à la non-négativité des
variables : comme celles-ci doivent toutes être non négatives, il
n’est pas nécessaire d’en faire mention explicitement. Cependant,
l’algorithme du simplexe en tient compte lors du test d’optimilité et
lors de l’étape C.
Arrêt du simple
En générale, les nombres de la ligne cj − zj permettent de
déterminer si l’algorithme du simplexe s’arrêtera avec le tableau
courant ou s’il continuera : lorsque au moins l’un des coûts
marginaux cj − zj est positif et que l’objectif consiste à maximiser
z, le tableau courant est considéré non optimal et un autre tableau
sera construit par pivotage (étape D). Nous conviendrons, dans un
problème de maximisation, c’est la variable hors base dont le
coefficient cj − zj est le plus grand qui sera choisie.
Le pivotage
Avant de tester l’optimalité de la solution 1
(x1 ; x2 ; e1 ; e2 ; e3 ; e4 ) = (0; 14; 130; 18; 34; 0), il faut construire son
tableau canonique associé. Dans ce nouveau tableau, la variable
sortante e4 sera nulle et hors base, tandis que la variable entrante
x2 sera positive et fera partie de la base. En fait, x2 prendra la place
de e4 et sera variable de base associée à la 4e ligne. Le tableau
suivant représentera la solution 1.
Le pivotage
On remarque que, pour une variable de base, le coefficient cj − zj
est nul et que sa colonne comporte, dans la section centrale, des 0
sur toutes les lignes sauf celle où elle est inscrite comme variable de
base et où son coefficient est 1.
Les calculs à effectuer font intervenir comme nombre clé l’élément
du tableau initial situé à l’intersection de la 4e ligne, où se trouve la
variable sortante et de la colonne x2 de la variable entrante. On dit
que cet élément est le pivot du passage du tableau initial au
tableau 1. Les calculs se regroupent en 3 opérations.
Le pivotage
La première opération vise à inscrire le nombre 1 à la position
du pivot.
La deuxième opération consiste à modifier les autres lignes de
la section centrale de façon à pouvoir inscrire le nombre 0 dans
la colonne du pivot, tout en laissant inchangé l’ensemble des
solutions admissibles.
La troisième opération est analogue à la deuxième, mais elle
concerne la ligne cj − zj , z est exprimée en fonction des
variables hors base.
Le pivotage
x2 = 14 − e4
10x1 + 5(14 − e4 ) + e1 = 200
2x1 + 3(14 − e4 ) + e2 = 60
z = 1000x1 + 1200(14 − e4 )
x2 + e4 = 14
10x1 + e1 − 5e4 = 130
2x1 + e2 − 3e4 = 18
Test et étape B
La solution de base assocée précédente n’est pas optimale puisque
puisque l’un des coefficients cj − zj est positif. En effet, la ligne
cj − zj du tableau associé résume l’équation
Max z = 1000x1 − 1200e4 + 16800.
Il résulte immédiatement de cette équation que z augmente
lorsqu’on fait croître x1 tout en maintenant e4 à 0. Ainsi, x1 sera la
variable entrante.
Test et étape B
Étape C : il faut déterminer jusqu’où l’on peut croître x1 tout en
maintenant e4 à 0. Les équations associées au tableau dernier
permettent de conclure que :
10x1 + e1 − 5e4 = 130 ainsi : x1 ≤ 13 car
(e1 = 130 − 10x1 ≥ 0)
2x1 + e2 − 3e4 = 18 ainsi : x1 ≤ 9 car (e2 = 18 − 2x2 ≥ 0)
e3 = 34 − 1x1 ≥ 0 d’où x1 ≤ 34
x2 = 14 − 0x1 ≥ 0 d’où x1 n’est pas limitée
Coûts marginaux
Le calcul des coûts marginaux de la ligne cj − zj d’un tableau peu
s’effectuer directement à partir des valeurs numériques de la section
centrale de ce tableau, sans recourir au tableau précédent ni aux
équations.
En considérant le dernier tableau. La valeur 25800 de la fonction
objectif z s’obtient comme la somme des coefficients de base à
gauche et des valeurs correspondantes.
z = 9 ∗ 1000 + 14 ∗ 1200 = 25800
Les variables d’écart e1 et e3 n’ayant pas de valeur économique
leurs valeurs dans la solution de base sont multipliées par 0.
Coûts marginaux
Le calcul du coefficient zj de la colonne e4 du dernier tableau
s’effectue en multipliant chaque coefficient de base par le coefficient
correspondant de la colonne e4 puis en additionnant les produits.
Enfin, le coefficient cj − zj s’obtient en retranchant le zj ainsi
calculé du coefficient de e4 dans la ligne supérieure du tableau.
Les coefficients cj − zj des variables de base sont tous nuls en vertu
de la condition évoquée auparavant.
b∗c
a0 = a − pivot
Étape A
La construction du tableau initial. Dans le cas d’un modèle
(PLS), on réécrit d’abord le modèle sous forme équivalente
(PLS=), puis on choisit la variable d’écart ei comme variable de
base de l’équation i ; dans la solution de base associée, les variables
de décision xj (1 ≤ j ≤ n) sont nulles et chaque variable d’écart ei
est égale au membre droit bi correspondant.
Le critère d’optimalité
La solution de base asscociée au tableau courant est optimale
quand les coûts marginaux des variables hors base sont tous ≤ dans
le cas d’un modèle de maximisation, et tous ≥ dans un cas de
minimisation. L’algorithme prend fin alors. Tant que l’un des coûts
marginaux ne respecte pas la condition précédente, on passe à
l’étape B.
Étape B
Le choix de la variable entrante : Le critère MCM (meilleur coût
marginal) recommande de sélectionner la variable entrante de façon
à améliorer z au rythme le plus rapide possible : ainsi, dans le cas
d’un modèle de maximisation, la variable entrante est telle que son
coût marginal est positif et maximal. En cas d’égalité, on choisit,
au hasard ou selon un critère jugé approprié, parmi les variables qui
partagent le meilleur coût marginal.
Étape C
Le choix de la variable sortante : Notons xp la variable entrante ;
0 le coefficient qui, dans le tableau courant, est situé à
aip
l’intersection de la ligne i et de la colonne xp ; et bi0 la valeur de la
ligne i dans le tableau courant. On calcule d’abord, pour chaque
0
variable de base xi dont le coefficient aip0 est positif, le quotient bi .
a0
ip
La variable sortante est celle qui minimise ces quotients. En cas
d’égalité, on choisit une, au hasard ou selon un critère jugé
approprié, parmi celles qui à la fois admettent en colonne xp un
coefficient positif et minimisent les quotients.
Étape C
Notons xk la variable sortante. On remplace, dans la section gauche
du tableau, la variable xk et son coefficient de base par la variable
entrante xp et le coefficient cp de cette variable dans la
fonction-objectif originale (ce coefficient apparaît dans la colonne
xp au dessus du nom de la variable).
Étape D
Le pivotage : cette étape comprend 3 opérations. La première
consiste à diviser par le pivot les èlements de la ligne où se trouve le
pivot. La deuxième vise à réécrire chacune des autres lignes de la
section centrale sous une forme équivalente de façon à y inscrire le
nombre 0 dans la colonne du pivot ; la nouvelle version s’obtient de
l’ancienne en lui additionnant un multiple approprié de la ligne du
pivot. (La méthode du rectangle donne une formule de calcul de ces
nouveaux coefficients).
Étape D
Enfin, pour déterminer le coût marginal de la variable xj , on
procède ainsi : on calcule d’abord un coefficient zj en multipliant,
ligne par ligne, les coefficients de base et les éléments de la colonne
xj , puis en additionnant les m produits obtenus ; le coût marginal
est égal à la différence cj − zj .
Une fois le pivotage complété, on revient au critère d’optimalité.
X
Max (Min)z = ci xi (38)
i
subject to : (39)
X ≤
∀i, aij xj = bi (40)
≥
∀i, xi ≥ 0 (41)
PLC=
Pour trouver un modèle linéaire équivalent à (PLC), noté (PLC=),
où chaque contrainte technologique se présente sous forme
d’équation, il suffit d’ajouter contrainte de signe ≤ une variable
d’écart, et à chaque contrainte ≥ une variable d’excédent. Quant
aux contraintes comportant le signe =, leur écriture n’est pas
modifiée pour l’instant. Généralement toutefois, dès que (PLC)
contient des contraintes de siges ≥ ou =, le modèle linéaire
(PLC=) correspondant n’est pas sous forme canonique.
PLC=
En effet, une contrainte de la forme
a1 x1 + a2 x2 + ... + an xn ≥ b où b > 0
s’écrira comme suit dans (PLC=)
a1 x1 + a2 x2 + ... + an xn − e = b
Le signe négatif qui affecte la variable e l’empêche de jouer le rôle
d’une variable de base. De même, une contrainte de la forme :
a1 x1 + a2 x2 + ... + an xn = b où b > 0
rend non admissible la solution x1 = x2 = ... = xn = 0
PLC=
L’étape A de construction du tableau initial, aisément franchie dans
le cas d’un modèle linéaire sous forme (PLS), ne s’avère pas aussi
simple dans le cas du modèle général (PLC). Il est toutefois
possible, en changeant la fonction-objectif, de recourir à
l’algorithme du simplexe pour déterminer une solution admissible et
construire un tableau initial. Nous indiquons maintenant comment
procédér à l’aide du problème de la Fonderie modifié.
Région admissible
La région admissible de (PMF) apparaît à la figure précédente : elle
se réduit au segment d’extrémités F et P et comprend 2 points
extrêmes seulement, soit F et P. Il résulte du théorème fondamental
de la programmation linéaire que l’optimum de (PMF) est atteint
soit en F, soit en P. Or :
en F = (0 ; 20) : z = 1000 ∗ 0 + 1200 ∗ 20 = 24000
en P = (12 ; 12) : z = 1000 ∗ 12 + 1200 ∗ 12 = 26400
L’optimum est donc atteint en P = (12 ; 12)
Phase 1
Le modèle (PMFA ) n’est pas à fait sous la forme canonique :
comme les variables artificielles a2 et a4 seront dans la base, leurs
coefficients dans zA devraient être nuls. Il est possible de trouver
une réécriture équivalente de zA , où les coefficients de a2 et de a4
sont nuls. Il suffit d’isoler a2 et a4 en fonction des variables hors
base.
a2 = 60 − 2x1 − 3x2
a4 = 6 − x2 + e4
a2 + a4 = 66 − 2x1 − 4x2 + e4
Phase 1
La solution de base associée s’obtient en déclarant nulles les
variables hors base et en posant chaque variable de base égale à la
valeur apparaissant à droite, sur sa ligne :
x1 = x2 = e4 = 0
e1 = 200, a2 = 60, e3 = 12, a4 = 6.
Cette solution correspond à l’origine O = (0; 0) et n’appartient pas
à la région admissible de (PMF=).
Phase 1 : Étape B
Le choix de la variable entrante : puisque l’objectif proposé en
phase 1 en est un de minimisation, les variables artificielles a2 et a4 ,
les variables susceptibles d’entrer dans la base sont celles dont le
coût marginal est négatif. Nous disposons de 2 variables candidates,
soit x1 et x2 . Le taux auquel décroit zA est de 2 quand x1 est
augmenté, et de 4 quand x2 augmente.
Phase 1 : Étape C
Le choix de la variable sortante : La colonne supplémentaire, à
la droite du tableau donne les limites à l’accroissement de x2
découlant de la non-négativité des différentes variables de base ; par
exemple la limite de la ligne 1 est égale au quotient 200 5 , où 200 et
5 sont respectivement la valeur et l’élément de la colonne x2 situés
sur cette première ligne. Aucune limite n’apparaît à la troisième
ligne, car le coefficient situé à l’intersection de la troisième ligne et
de la colonne x2 est nul. La borne 6 de la quatrième ligne est la
plus petite : ce sera la valeur que prendra la variable entrante x2 . Et
la variable a4 , qui était variable de base de cette quatrième ligne,
deviendra nulle et hors base dans le tableau suivant.
Phase 1 : Étape D
Le pivotage : Le pivot ici est le nombre 1 situé à l’intersection de
la colonne x2 et de la quatrième ligne. La première opération
consiste à diviser par le pivot les éléments de la ligne où se trouve
celui-ci, ne commande ici aucun calcul.
Les prochaines itérations de la phase I du simplexe sont résumées s
aux tableaux suivants :
Résolution de (PMF)
La phase II reprend l’objectif original qui était de maximiser
z = 1000x1 + 1200x2 . Le tableau initial de la phase II s’obtient en
modifiant le dernier tableau de la première phase de la façon
suivante :
Les colonnes associées aux variables artificielles sont biffées ;
La ligne supérieure et la colonne "Coefficients de base" sont
réécrites en utilisant les coefficients cj de la fonction-objectif z ;
Les lignes zj et cj − zj sont recalculées à partir des nouveaux
coefficients de base.
Résolution de (PMF)
Le coût marginal de x1 étant positif, il est possible d’augmenter la
valeur z en entrant x1 dans la base. La plus petite limite se
trouve sur la ligne 3 : c’est donc la variable e3 qui sortira de la
base. Le pivot est le nombre 1 situé à l’intersection de la colonne x1
et la ligne 3. Les tableaux suivant présentent le tableau initial de la
phase II puis le tableau du simplexe obtenu après pivotage.
La résolution de (PMF)
On peut résoudre les modèles de type (PLC) par une autre
méthode, dite du grand M. On commence ici encore par ajouter
une variable artificielle dans chaque contrainte technologique de
signe = ou ≥. mais, plutôt que de scinder la résolution en 2 phases
dont la première est consacrée à minimiser la somme des variables
artificielles, on adjoint à la fonction-objectif z un terme de pénalité
pour chaque variable artificielle et on procède en une phase unique.
La résolution de (PMF)
Illustrons la méthode par l’exemple (PMF). Une fois les variables
artificielles ajoutées, le modèle à ajouter est constitué, comme dans
la méthode en 2 phases. Mais l’objectif est ici remplacé par le
suivant :
Max zM = 1000x1 + 1200x2 − Ma2 − Ma4
où M est une constante positive, dont la valeur, sans être précisée,
dépasse largement tous les autres nombres dans le modèle.
La résolution de (PMF)
Les calculs s’effectuent avec le symbole M, dont la valeur n’est
jamais précisée. Il serait possible de donner à M une valeur précise,
à condition de l’adapter à chaque situation. Nous optons pour
l’approche traditionnelle, qui consiste à considérer M comme un
paramètres supposé beaucoup plus grand que tous les autres
nombres apparaissant dans le modèle.
Avec la méthode du grand M, ou bien toutes les variables
artificielles prennent la valeur 0 à l’optimum et l’on obtient une
solution admissible te optimale, ou bien certaines d’entre elles
prennent une valeur positive et alors le modèle linéaire (PLC) n’a
pas de solution admissible.
La résolution de (PMF)
Dans un modèle où il s’agit de minimiser une fonction-objectif z,
les variables artificielles reçoivent dans zM le coefficient +M : ainsi,
toute valeur positive prise par l’une ou l’autre d’entre elles entraîne
une augmentation considérable de zM , ce qui rend la solution fort
peu intéressante.