Recherche Opérationnelle
Recherche Opérationnelle
Recherche Opérationnelle
Recherche
Oprationnelle
Programmation
linaire
Yves Correc
Sommaire
5. PROGRAMMATION LINEAIRE.................................................................................................53
5.1. Introduction ............................................................................................................................53
5.2. Interprtation gomtrique.....................................................................................................53
5.3. L'algorithme du simplexe .......................................................................................................55
5.3.1. Construction gomtrique de l'algorithme ......................................................................55
5.3.2. Pivotage de Gauss .........................................................................................................58
5.3.3. Algorithme du simplexe ................................................................................................510
5.4. Dgnrescences et difficults diverses..............................................................................515
5.4.1. Pas de solution de dpart .............................................................................................516
5.4.2. Liaisons incompatibles..................................................................................................519
5.4.3. Solution infinie...............................................................................................................520
re
5.4.4. Dgnrescence de 1 espce...................................................................................521
me
5.4.5. Dgnrescence de 2 espce .................................................................................522
5. PROGRAMMATION LINEAIRE
5.1. INTRODUCTION
Dans un processus linaire contrl par n variables xj, on cherche optimiser un rsultat
n n
y0 = c j x j sous des contraintes de bornes affectant les effets mesurables yi = aij x j .
j =1 j =1
C'est dire que l'on cherche rsoudre le problme suivant:
Une usine fabrique des chaises et des tables, qui doivent tre traits par deux ateliers
(fabrication A et finition B). Une chaise ncessite 2 heures de A et 1 heure de B. Une table ncessite
1heure de A et 2 heures de B. Une chaise rapporte 3 cus et une table 4 cus. En supposant que l'on
ne peut couler que 7 pices par jour au plus, et que les ateliers peuvent travailler 12 heures par jour
au plus, maximiser le bnfice possible.
La fonction conomique est ici le bnfice tir de la fabrication et de la vente des objets: si l'on produit
x chaises et y tables chaque jour, le bnfice rsultant est yo=3x+4y , maximiser.
Max 3x+4y
2x + y 12 (A)
x + 2y 12 (B)
x+y7 (C)
x, y 0 (le nombre d'objets fabriqus est videmment positif)
La premire (et plus simple) approche du problme consiste travailler sur son interprtation
gomtrique: Le domaine dfini par les contraintes linaires est l'intersection des demi-plans associs
(en dimension 2), et en restant l'intrieur de ce domaine on cherche progresser le plus loin
possible dans la direction dfinie par le vecteur ayant pour composantes les coefficients de la fonction
conomique.
On rappelle en effet que, lors de la maximisation d'une fonction f de deux variables x et y, on cherche
en fait "escalader" le plus vite possible, en suivant la ligne de plus grande pente, la "montagne"
laquelle peut tre compare la surface d'quation z = f(x,y). Cette direction de plus grande pente est
f f f
donne par le vecteur gradient , de composantes et .
x y
Ici la fonction f considre est linaire (3x+4y), ce qui simplifie les choses puisque la direction du
gradient est constante: c'est le vecteur de composantes (3,4).
Une solution graphique de notre problme d'optimisation est donc aise en dimension 2 (voir dessin
ci-dessous), mais devient difficile en dimension 3, et totalement irralisable au-del.
Optimum x = 2
y=5
(point numro 3)
bnfice 26
direction d'optimisation
2 3 frontire du domaine
1 x
On devra donc envisager une solution numrique. Pour cela on va faire plusieurs remarques:
1. Lensemble des solutions admissibles constitue lintrieur dun polydre convexe dfini par
lintersection des demi-espaces associs aux contraintes (domaine admissible). On pourra
imaginer une telle figure facettes en dimension 3 comme une pierre prcieuse taille
2. La fonction conomique maximiser dtermine une suite de lignes de niveau (droites
parallles) et une direction de gradient dans laquelle se trouve loptimum recherch.
3. Loptimum cherch se trouve sur la frontire du polydre et, sauf cas exceptionnel
(dgnrescence) est lintersection unique de n plans de contraintes (dfinition d'un point
dans un espace de dimension n).
Dmonstration par labsurde: Si cet optimum est intrieur au domaine, un plan orthogonal au
gradient passe par ce point et coupe le domaine admissible en deux zones, et dans lune delles la
fonction conomique peut prendre une valeur suprieure Contradiction!
Gradient
f>fo
f<fo f=fo
Optimum
Intrieur
On peut alors penser numrer les points extrmaux du polydre, mais leur nombre a de quoi faire
reculer ! En effet on m contraintes explicites, plus n contraintes de positivit, ce qui donne m+n
n ( m + n)!
plans se coupant n n dans notre espace de dimension n, soit C m + n = points
m! n!
Lalgorithme le plus connu, universellement utilis, consiste en partant dun sommet de dpart
(solution initiale : le point 1 sur le dessin), cheminer le long des artes du polydre en amliorant
chaque fois la fonction conomique. De la sorte, au bout dun nombre fini dtapes (ici le point 2), on
doit ncessairement arriver la solution optimale (le point 3).
Cet algorithme, d Dantzig et amlior par Tucker (si l'on ne doit citer que deux
pres fondateurs), reprsente la mise en uvre numrique de l'ide que nous venons d'noncer, et
porte le nom d'algorithme du simplexe.
Pour cela, on introduit des variables d'cart associes aux contraintes, de faon les rcrire sous
forme d'galits, et on les numrote de (n+1) (n+m), les variables principales (les variables de
contrle xi du problme d'origine) tant numrotes de 1 n.
Cette numrotation associe donc chaque contrainte une variable traduisant la valeur de l'cart du
point o l'on se trouve par rapport au plan de cette contrainte (une quation linaire est vrifie sur un
hyperplan de Rn, et ses iso-valeurs, ses lignes de niveau, sont ici des plans).
Moyennant quoi, notre problme s'crira, aprs l'introduction des variables d'cart x3, x4, x5 :
Max 3 x1 + 4 x2
Sous les contraintes: 2 x1 + x2 + x3 = 12
x1 + 2 x2 + x4 = 12 Forme standard du Pb
x 1 + x2 + x 5 = 7
Dans ces conditions, les (m+n)-n autres variables (un point tant dfini par l'intersection de n plans, ie
n variables nulles dans notre espace m+n variables) ne sont pas nulles et leur valeur est fonction de
la "distance" du point courant la contrainte correspondante.
NB. On rappelle qu'en dimension 2, la distance d'un point (x0,y0) au plan d'quation ux + vy + w = 0
2 2
est u x0 + v y0 + w / (u + v )
Un point extrmal (solution de base) est donc caractris par m valeurs non nulles (variables de
base) et n valeurs nulles (variables hors base). Toutes ces variables seront dsormais banalises,
et notes xi (avec i = 1 n pour les variables naturelles et i = n+1 n+m pour les variables d'cart).
L'algorithme du simplexe, dans la formulation de Tucker, n'est alors que la formulation algbrique en
termes de variables "en base" et "hors base" du cheminement le long des artes du polydre, vers un
optimum de la fonction conomique.
Nous remarquerons ici que la fonction conomique s'exprime au moyen des variables hors base, les
seules qui soient nulles au point extrmal o nous nous trouvons, et qui constituent en quelque sorte
le systme d'axes, le rfrentiel local dans lequel nous allons travailler.
Nous allons par consquent chercher nous dplacer le long de l'un des plans associs, tout en
restant l'intrieur du domaine admissible, c'est dire augmenter l'une des variables hors base de
0 jusqu' une valeur dtermine par l'intersection avec le premier plan de contrainte rencontr dans ce
dplacement (elle sera alors entre en base avec cette valeur: cart>0). Par contre, l'arrive sur ce
nouveau point extrmal, la variable d'cart associe au plan rencontr sera devenue nulle, par
dfinition, et sera sortie de la base.
Pour prendre une image, il suffit d'imaginer un escargot qui rampe le long des vitres l'intrieur d'un
aquarium, parti d'un angle (le rfrentiel local) suivant le didre de deux vitres (une arte) dans une
direction qui amliore la fonction conomique (exprime dans le rfrentiel local), pour s'arrter au
premier angle nouveau rencontr.
Nous passerons donc en fait d'un point qui annule n variables un point qui annule n autres variables
(les mmes sauf une) en remplaant une variable (cart croissant par rapport la contrainte que l'on
Yves Correc 17/11/2007 55
Recherche Oprationnelle Programmation linaire
quitte) par une autre (cart qui s'annule sur la contrainte la plus proche rencontre lors du
dplacement: rappelons que l'on ne doit pas sortir du domaine admissible). Et la direction de ce
dplacement aura pralablement t choisie de manire faire crotre au plus vite (si l'on maximise,
dcrotre si l'on minimise) la fonction conomique, ce qui amne videmment s'intresser la
variable dote du plus fort coefficient positif (c'est aussi rappelons-le la direction de plus grande pente,
donne par la plus forte composante du gradient).
Nous allons traiter de la manire que nous venons d'baucher l'exemple introduit au dbut de ce
chapitre, afin de dgager les grandes lignes de l'algorithme, en visualisant le cheminement suivi sur le
dessin.
x2
(x1=0)
(x2=0)
x1
Sur l'axe des x1 , on a (x2=0), ie x2 est la variable d'cart associ l'axe des x1 La confusion vient ici
du fait qu'on n'est qu'en dimension 2: C'est dire que l'axe x1 est une droite de l'espace, orthogonale
au plan (x1=0) qui concide lui avec l'axe x2, puisqu'un plan et une droite sont des objets identiques en
dimension 2. Ce n'est pas le cas en dimension n (il suffit d'imaginer cela dans l'espace usuel 3
dimensions), o une droite est un objet de dimension 1, et un plan (on devrait stricto sensu parler
d'hyper-plan) un objet de dimension n-1. Dans ces conditions le plan associ la variable d'cart x i
est caractris par (xi=0), et il est orthogonal la droite qui est l'intersection de tous les autres plans
de coordonnes.
Le point de dpart vident (point orange) est ici l'origine (x1=0, x2=0).
On en dduit de manire vidente pour les variables d'cart (x3=12, x4=12, x5=7).
La solution de dpart admissible (c'est une chance mais on commence par les choses simples) est
par consquent x = ( 0, 0, 12, 12, 7) avec pour valeur de la fonction conomique z = 0.
Deux possibilits: augmenter x1 (ie quitter le plan x1=0), ou augmenter x2 (ie quitter le plan x2=0).
La plus forte augmentation de la fonction conomique est obtenue en choisissant x2 dont coefficient a
la plus forte valeur (4).
On se dplace donc x1=0 jusqu' la plus proche des trois intersections possibles avec les plans
( x3 = 0 )( x4 = 0 )( x5 = 0 ) (le point vert et les points jaunes).
Arrivs ce point, nous allons reformuler le problme (et la fonction conomique) en utilisant les
variables (hors base) du nouveau rfrentiel local, savoir x1 et x4, tandis que x2 devient une simple
variable d'cart (variable de base), non nulle puisqu'on s'est loign dans ce dplacement du plan
(x2=0).
On observe que la variable d'cart se caractrise dans une quation par sa position en bout de ligne
(c'est "ce qui manque" pour arriver l'galit), et son coefficient gal 1.
Il apparat alors que les nouvelles variables hors base sont x1 et x4 (nulles au point atteint) et que les
variables de base ont pour valeur en ce point (en vert sur le dessin) : x3 = 6, x2 = 6, et x5 = 1.
Yves Correc 17/11/2007 57
Recherche Oprationnelle Programmation linaire
est le pivot de la transformation, ie le coefficient aij dont on a choisi la colonne j (la direction de
dplacement qui augmente xj) et la ligne i (le plus petit pas de dplacement bi/aij dans cette direction).
reprsente n'importe quel autre lment de sa colonne, n'importe quel autre lment de sa ligne.
Les sont les autres lments de la matrice, non situs sur la ligne i ou la colonne j.
Avec ces notations, la matrice globale (c'est dire la matrice A borde droite par le vecteur-colonne
second membre b, et au-dessous par le vecteur-ligne c) subira la transformation suivante:
1
Le passage d'un point extrmal au suivant (limination de la variable entrant en base) se traduira donc
par un tel pivotage effectu sur le tableau reprsentant les contraintes galit, tel qu'on l'a vu plus
haut: (A I).(xe)=b. C'est d'ailleurs ce qui vaut cette mthode l'appellation de mthode des tableaux.
La version originale de l'algorithme (mthode des tableaux tendus de Dantzig) fait appel aux
tableaux complets, mais l'aspect creux de la matrice globale (qui contient la matrice identit associe
la prsence des variables d'cart) a conduit au dveloppement par Tucker d'une variante plus
conome du point de vue notation. Seuls sont en fait intressants, pour la conduite des calculs, les
coefficients de la matrice A elle-mme, du second membre b (parfois appel RHS right hand side),
et de la fonction conomique c, ainsi que les indices des variables en base et hors base au cours des
transformations successives qui vont affecter le tableau lors du cheminement vers l'optimum. L'tat du
problme sera donc reprsent par le tableau de ces valeurs (mthode des tableaux rduits de
Tucker).
O est la valeur pivot, les les autres lments de la colonne du pivot, les les autres lments
de la ligne du pivot, et les les autres lments de la matrice. Dans un premier temps on traitera ici
sparment les termes de la ligne c et de la colonne b pour comprendre le mcanisme de la
transformation, mais on verra plus loin qu'elle s'applique en fait globalement la matrice (la ligne c
contient un et des , tandis que la colonne b contient un et des ) .
x1 x2 b
x3 b3
x4 b4
c c1 c2 -Z0
Comme nous l'avons vu plus haut, rcrire les quations prcdentes dans le rfrentiel associ au
nouveau point extrmal atteint (x3=0 et x2=0) revient faire apparatre x1 et x4 comme nouvelles
variables d'cart, et x3 et x2 comme nouvelles variables principales, soit:
Dans la ligne du pivot, x1 devient variable d'cart par normalisation (division par ):
x b
x1 + x2 + 3 = 3
Dans les autres lignes, x1 est limine en la remplaant par son expression en fonction de x2
et x3 qui sont les nouvelles variables principales:
b x
( 3 x2 3 ) + x2 + x4 = b4
La fonction conomique s'exprime de mme en x2 et x3:
b3 x
c1 ( x2 3 ) + c2 x2 = z z0 m ax
Ce qui nous donne aprs rarrangement, justifiant ainsi la formule de transformation:
1 b
x3 +x 2 + x1 = 3
x 3 + ( ) x 2 + x 4 = b4 b3
C1 C1 b3
x3 + ( C 2 ) x 2 = z z 0 C1 ...... .M axim iser
Trouver j qui ralise max C j > 0 . Si pour tout j, Cj 0 , alors l'optimum est atteint
j
b
Trouver i qui ralise min i (avec bi 0 et aij > 0 , sinon ennuis divers)
i aij
1 x1 x2 b
x3
o l'on avait
x4 i
x5
c
j
Et on retourne l'tape (1) pour une nouvelle itration.
NB: La mthode est videmment la mme dans le cas d'une minimisation, ceci prs que l'on
recherchera des cj < 0, et que l'optimum sera atteint quand ils seront tous 0.
Application
La solution du problme pos sera trouve en 3 tableaux (2 pivotages), qui correspondent aux points
1, 2, et 3 de la premire figure. Le calcul est dtaill ci-dessous sous les deux formes des "tableaux
rduits" de Tucker, que nous utiliserons dornavant, et des "tableaux tendus" de Dantzig.
T uck er Dan t z ig
x1 x2 b x1 x2 x3 x4 x5 b
x3 2 1 12 x3 2 1 1 0 0 12
x4 1 2 12 x4 1 2 0 1 0 12
x5 1 1 7 x5 1 1 0 0 1 7
c 3 4 0 c 3 4 0 0 0 0
Choix ci = 4 ci maximal
x1 x4 b x1 x2 x3 x4 x5 b
x3 3/2 -1/2 6 x3 3/2 0 1 -1/2 0 6
x2 1/2 1/2 6 x2 1/2 1 0 1/2 0 6
x5 1/2 -1/2 1 x5 1/2 0 0 -1/2 1 1
c 1 -2 -24 c 1 0 0 -2 0 -24
x5 x4 b
x3 -3 1 3
x2 -1 1 5
x1 2 -1 2
c -2 -1 -26
Remarque:
Il est trs fortement recommand dans ces calculs (en fait pour les exercices de ce cours) de travailler
en arithmtique exacte, c'est dire d'utiliser des fractions quand c'est ncessaire. La raison en est
que dans les exercices bien conus (on remercie les professeurs) les calculs finissent toujours par
se simplifier (plus ou moins), et conduisent des rsultats exacts (gnralement entiers)
gratifiants pour l'tudiant! Bien sr les donnes relles des problmes "de la vraie vie" n'ont pas
cette heureuse proprit pdagogique, avec des consquences dsastreuses telles que la
propagation des erreurs d'arrondi quand les calculs (parfois gigantesques) sont faits sur ordinateur
avec une prcision d'une petite dizaine de chiffres significatifs. Au dpart du moins, car on n'a plus
la fin qu'une confiance limite dans les rsultats (imaginons par exemple ce qui se passe quand le
calcul en flottants nous donne un pivot presque nul: est-il vraiment nul? ou bien n'est-ce que le rsultat
malheureux de la propagation des erreurs d'arrondi?). Le remde se trouve dans une branche des
mathmatiques appele "analyse numrique", mais c'est une autre histoire En outre rien ne prouve
que le point extrmal trouv pour optimum aura des coordonnes entires, ce qui sera bien
videmment gnant quand les variables reprsentent des objets inscables (peut-on vraiment
imaginer de fabriquer 5/3 d'automobileailleurs qu'au pays des soviets?). L encore, la solution se
trouve dans une autre branche de la recherche oprationnelle, la "programmation linaire en nombres
entiers" (PLNE).
En rsum, pour l'apprentissage du simplexe, faites des calculs exacts quand vous le pouvez. Vous
aurez tout loisir d'affronter les complications plus tard !
Exercice
Une fabrique de jouets , la Scandinavian Santa Claus Inc. (SSCI) doit produire pour le 25 dcembre le
plus grand nombre possible de tricycles et d'autos pdales partir des pices dtaches qu'elle a
en stock.
Sachant que la fabrication d'un tricycle ncessite une feuille et 3 barres de mtal, 2 petites roues et
une grande roue, tandis que celle d'une auto pdales requiert 5 feuilles et 2 barres de mtal, et 4
petites roues, sachant de plus que les stocks sont de 50 feuilles de mtal, 50 barres, 52 petites roues
et 15 grandes roues, dterminer le nombre de tricycles et d'autos produire pour atteindre l'objectif
dfini plus haut, compte tenu des contraintes de production.
La premire chose faire (cf. introduction du cours) consiste bien poser le problme de dpart!
Les questions pertinentes sont: Quel est l'objectif vis? Quelles sont les contraintes? Une fois qu'on y
a rpondu, on peut commencer la modlisation.
On cherche maximiser le nombre de tricycles et d'autos que l'on peut construire, soit:
max x1 +x2 , o x1 est le nombre de tricycles construire, et x2 le nombre d'autos pdales
Les contraintes viennent du nombre limit de feuilles de mtal, de barres et de roues petites ou
grandes disponibles en stock, ce qui nous donne 4 contraintes (auxquelles bien sr s'ajoutent les
contraintes de positivit des variables, prsentes implicitement dans le modle du simplexe).
x2
x1=0
20
x4=0
x6=0
10
X5=x4=0
x3=0
X6=x4=0 x5=0
x2=0
O x1
x6=x2=0
15
Le tableau de Tucker de dpart est (par la suite on pourra ventuellement ne noter que l'indice i des
variables si on le souhaite):
x1 x2 b
x3 1 5 50
x4 3 2 50
x5 2 4 52
x6 1 0 15
c 1 1 0
On prend la plus grande valeur cj
Le choix possible n'est pas unique, ce qui signifie que la pente est la mme dans les deux directions.
On pourrait alors affiner le raisonnement, en tudiant o nous mneraient les diverses possibilits,
mais le calcul en serait fort alourdi pour un bnfice probablement mineur, car" tous les chemins
mnent Rome", ce veut dire que l'on arrivera de toute faon du bon ct du polydre, l o se trouve
l'optimum cherch.
On choisira donc l'une des deux colonnes au hasard (on devra revenir en arrire si ce choix ne passe
pas la seconde tape de l'algorithme).
Prenons ici la colonne (x1).
On choisit le pivot en calculant la plus petite valeur (bi / aij ) sur les 3 lignes (ici la ligne x6).
On pivote la matrice sur (x1,x6) et on recommence. Ce qui nous donne la suite des tableaux:
x6 x2 b x6 x4 b
x3 -1 5 35 x3 13/2 -5/2 45/2
x4 -3 2 5 x2 -3/2 1/2 5/2
x5 -2 4 22 x5 4 -2 12
x1 1 0 15 x1 1 0 15
c -1 1 -15 c 1/2 -1/2 -35/2
x5 x4 b
x3 -13/8 3/4 3
x2 3/8 -1/4 7
x6 1/4 -1/2 3
x1 -1/4 1/2 12
c -1/8 -1/4 -19
Optimum
Interprtation:
x4=0 et x5=0 car ce sont l'optimum des variables hors base (le point est l'intersection des plans de
contraintes associs), ce qui signifie qu'il ne restera pas de barres et de petites roues, dont les stocks
seront puiss lors de la fabrication.
x3=3 et x6=3 il restera par contre en stock 3 feuilles et 3 grandes roues (valeurs des variables
d'cart l'optimum).
NB. Au second tableau la valeur ngative du pivot potentiel (interdit de ce fait) correspond un
dplacement arrire (augmentation ngative de x6 de (5/2) /(-3/2)) qui nous ferait sortir du domaine.
Exercice
Au paradis, Henry Ford fabrique des voitures pdales pour la SSCI. Il produit des modles
standard et conomiques, qu'il coule avec un bnfice unitaire de 4 et 3 ptales de rose
respectivement.
L'utilisation de l'atelier de montage (150 heures disponibles par semaine) est de 5 heures par
vhicule standard et de 3 heures par vhicule conomique.
L'utilisation de l'atelier de finition (120 heures disponibles par semaine) est de 3 heures dans
les deux cas.
Enfin l'emballage d'un modle standard prend 2 heures, et celui d'un modle conomique 1
heure (atelier disponible 70 heures par semaine).
Solution
max. 4 x1 + 3 x 2 (x1, x2 0)
5 x1 + 3 x2 150
3 x1 + 3 x2 120
2 x1 + x2 70
x1 x2 b x3 x2 b x3 x4 b
x3 5 3 150 x1 1/5 3/5 30 x1 1/2 -1/2 15
x4 3 3 120 x4 -3/5 6/5 30 x2 -1/2 5/6 25
x5 2 1 70 x5 -2/5 -1/5 10 x5 -1/2 1/6 15
c 4 3 0 c -4/5 3/5 -120 c -1/2 -1/2 -135
Soit une production de 15 voitures standard et 25 conomiques, pour un bnfice total de 135 ptales
de rose. Les ateliers de montage et de finition sont utiliss au maximum de leur capacit (x3=x4=0,
contraintes satures), tandis qu'il reste une disponibilit de 15 heures par semaine l'atelier
d'emballage.
On a suppos jusqu' prsent que tout tait pour le mieux dans le meilleur des mondes
possibles. Malheureusement (c'est trop injuste) les donnes du problme peuvent prsenter certaines
particularits qui en compliquent srieusement la rsolution. C'est ce que nous allons voir maintenant
dans le cadre de ce que l'on pourrait appeler "la pathologie du simplexe".
(x3 = 0)
(x4 = 0)
(x2 = 0)
(x5 = 0)
Nous avons un "bon" domaine admissible, dfini par les 3 contraintes explicites (x3, x4, x5) et les 2
contraintes de bornes (x1, x2), avec une solution de dpart triviale (x1=0, x2=0), et une solution
optimale (x1=4, x2=1, z=3) trouve en 3 tableaux:
x1 x2 b x4 x2 b x4 x5 b
x3 -2 1 2 x3 2 -3 6 x3 1 1 9
x4 1 -2 2 x1 1 -2 2 x1 1/3 2/3 4
x5 1 1 5 x5 -1 3 3 x2 -1/3 1/3 1
c 1 -1 0 c -1 1 -2 c -2/3 -1/3 -3
Nous allons maintenant dcouvrir les diverses complications susceptibles de survenir en perturbant
de diverses manires ce petit problme simple.
Nous allons commencer par dplacer la contrainte 3, ce qui aura pour effet de mettre l'origine (0,0) en
dehors du domaine admissible (pour savoir de quel ct d'un plan de contrainte se trouve l'origine, il
suffit de regarder si ses coordonnes nulles vrifient l'ingalit correspondante).
Nous ne pourrons donc pas commencer le cheminement de l'algorithme du simplexe en prenant le
point de dpart trivial qu'est l'origine (0,0).
L'ennui est que la solution de dpart vidente habituellement utilise (x1=x2=0) nest pas dans le
domaine admissible. On devra donc rsoudre le problme en 2 phases:
(1) Rentre dans le domaine
(2) Optimisation lintrieur du domaine.
x1=0
x3=0
x4=0
x2=0
x5=0
Cette mthode revient tenter de rsoudre un problme qui ne peut l'tre dans les conditions
actuelles, c'est dire ici dans l'espace de dimension m+n dont on exploite des images de dimension n
(le plan dans le cas prsent), en le plongeant dans un espace de dimension suprieure. Cette
technique mathmatique est parfois trs utile.
On pourra l'illustrer (les puristes vont hurler car la comparaison est loin d'tre exactemais l'image
est parlante malgr tout) en rappelant l'nigme des Fourmis de Jacques Werber: Comment construire
4 triangles avec 6 allumettes? La solution ne peut tre trouve dans le plan, mais le passage la
dimension 3 nous donne un ttradre. C'est un peu ce que l'on fera ici, en rajoutant pour les besoins
de la cause la ou les variables (variables artificielles) qui nous permettrons de dmarrer le
cheminement du simplexe.
Nos ennuis viennent de ce que la premire inquation comporte un second membre ngatif, ou
encore, si bi est positif, que l'ingalit "n'est pas dans le bon sens". Dans ces conditions, la variable
d'cart (distance la contrainte " l'intrieur du domaine") devrait, pour jouer son rle, tre ngative
ou soustraite. L'artifice consistera ici introduire dans cette ingalit une variable supplmentaire
"artificielle", qui jouera le rle symtrique de distance la contrainte " l'extrieur du domaine", et
avec laquelle nous travaillerons rentrer dans le domaine (c'est dire tenter de la minimiser jusqu'
l'annuler, puisqu'on l'a construite cet effet).
Mais celle-ci ne peut tre vrifie au point de dpart dans l'espace de dimension 2 (x1=0, x2=0) pour
une valeur positive x3.
On rajoute donc une dimension l'espace de travail (ie une colonne au tableau) en introduisant une
variable artificielle x6 pour avoir un point de dpart admissible dans l'espace de dimension 3 (x1=0,
x2=0, x3=0) o notre quation s'crit enfin 2x1 - x2 - x3 + x6 = 2
Dans la phase 1, nous chercherons donc minimiser x6 jusque lannuler. A ce point, nous serons
parvenus sur la frontire du domaine, et nous pourrons passer la phase 2.
Ce qui revient en fait ngliger dans un premier temps la fonction conomique c x en se focalisant
sur une fonction conomique provisoire qui n'est autre que la variable artificielle x6, minimiser.
En pratique, on cre donc une colonne supplmentaire dans le tableau pour la variable x3, et une ligne
supplmentaire note M (forme linaire provisoire) en bas du tableau, qui va piloter le choix de la
direction de dplacement pendant cette phase de rentre dans le domaine.
Ds qu'au cours des calculs (reprsentant le cheminement du simplexe) la variable artificielle x6 sera
sortie de la base (et se sera annule car on sera arriv sur le polydre du domaine admissible), on
pourra revenir en l'abandonnant la dimension originelle du problme. Ce qui se traduira par la
suppression de cette variable artificielle x6, de la colonne correspondante et la ligne M du tableau,
avant de passer la phase 2, classique.
La ligne x6 du tableau de Tucker nous donne l'expression de cette forme linaire provisoire
minimiser: x6 = 2 - 2x1 + x2 + x3
Si le problme est une maximisation, la forme linaire provisoire (ligne M) sera x6, soit tout
simplement la recopie de la ligne x6 (transforme pour avoir bi>0) de la matrice. Dans le cas contraire
(minimisation), la forme linaire provisoire sera x6, et la ligne M la recopie au signe prs de la ligne
correspondante de la matrice.
NB. Une autre prsentation de la mthode consiste, pour garder une fonction conomique unique,
construire la fonction de pnalit: c x M x6 o M est un nombre arbitrairement grand destin
donner le rle prpondrant la variable x6 ("Big M method").
Cette ligne M est primordiale en phase 1, le choix de la direction de dplacement (ie le choix de
colonne) tant fait suivant les valeurs apparaissant dans cette ligne (recopie au signe prs de
lingalit originelle, comme la ligne de lquation incrimine, cause du bi0).
x1 x2 x3 b x6 x2 x3 b
x6 2 -1 -1 2 x1 1/2 -1/2 -1/2 1
x4 1 -2 0 2 x4 -1/2 -3/2 1/2 1
x5 1 1 0 5 x5 -1/2 3/2 1/2 4
c 1 -1 0 0 c -1/2 -1/2 1/2 -1
M 2 -1 -1 2 M -1 0 0 0
On arrive la frontire du domaine (x6 sort de la base), on laisse tomber la colonne x6 et la ligne M, et
l'on passe de la phase 1 la phase 2.
x2 x3 b x2 x4 b x5 x4 b
x1 -1/2 -1/2 1 x1 -2 1 2 x1 2/3 1/3 4
x4 -3/2 1/2 1 x3 -3 2 2 x3 1 1 5
x5 3/2 1/2 4 x5 3 -1 3 x2 1/3 -1/3 1
c -1/2 1/2 -1 c 1 -1 -2 c -1/3 -2/3 -3
L'optimum est atteint, avec x1 = 4, x2 =1, z = 3, l'intersection des plans de contraintes (x4=0) et
(x5=0).
NB. En cas de contraintes galit, on nutilisera pas de variables dcart mais directement des
variables artificielles. Ou bien on dcomposera chaque galit sous la forme de deux ingalits.
Sil y a plusieurs variables artificielles, la forme linaire provisoire sera la somme des lignes
correspondantes (parfois appele somme des impossibilits).
On peut aussi plus simplement utiliser la mme variable artificielle (dite variable auxiliaire) dans
toutes les ingalits concernes.
Si dans le cas de figure que nous venons d'tudier (pas de solution de dpart), on arrive
loptimum sans avoir russi faire sortir de la base toutes les variables artificielles, les liaisons
(contraintes) sont incompatibles.
max. x1 - x2
-2x1 + x2 + x3 = 2
c'est dire -x1 + 2x2 -x4 + x6 = 8 o le second membre est bien positif
x1 + x2 + x5 = 5
Cela nous donne les tableaux rduits suivants, avec pour point de dpart du cheminement:
( x1=0 ; x2=0 ; x3=2 ; x4=0 ; x5=5 ; x6=8 )
x1 x2 x4 b x1 x3 x4 b x5 x3 x4 b
x3 -2 1 0 2 x2 -2 1 0 2 x2 2/3 1/3 0 4
x6 -1 2 -1 8 x6 3 -2 -1 4 x6 -1 -1 -1 1
x5 1 1 0 5 x5 3 -1 0 3 x1 1/3 -1/3 0 1
c 1 -1 0 0 c -1 1 0 2 c 1/3 2/3 0 3
M -1 2 -1 8 M 3 -2 -1 4 M -1 -1 -1 1
OPTIMUM
On est arriv au point ( x1=1 ; x2=4 ; x3=0 ; x4=0 ; x5=0 ; x6=1 ) qui minimise la variable artificielle
(forme linaire provisoire) sans l'annuler toutefois. On ne peut donc plus progresser, mais on n'a pas
russi rentrer dans le domaine.
Cela vient du fait que le domaine dfini par les contraintes du problme est vide: On a des liaisons
incompatibles, et le problme n'admet aucune solution ralisable.
x1=0
x3=0 x4=0
x5=0 x2=0
max. x1 - x2
-2x1 + x2 2
x1 - 2x2 2
x1 + x2 5 soit -x1-x2+x5= -5 ou x1+x2-x5+x6=5
Car nous nous trouvons, comme dans les cas prcdents, face un domaine admissible qui ne
contient pas l'origine (x1 et x2 nulles ne vrifient pas les contraintes). Dans ces conditions, nous
dmarrerons avec une variable artificielle x6 dans la troisime contrainte, ce qui nous donne:
max. x1 - x2
-2x1 + x2 + x3 = 2
x1 - 2x2 + x4 = 2 Les tableaux de Tucker correspondant la
x1 + x2 -x5 + x6 = 5 rsolution de ce problme sont:
x1 x2 x5 b x4 x2 x5 b x4 x6 x5 b
x3 -2 1 0 2 x3 2 -3 0 6 x3 1 1 -1 9
x4 1 -2 0 2 x1 1 -2 0 2 x1 1/3 2/3 -2/3 4
x6 1 1 -1 5 x6 -1 3 -1 3 x2 -1/3 1/3 -1/3 1
c 1 -1 0 0 c -1 1 0 -2 c -2/3 -1/3 1/3 -3
M 1 1 -1 5 M -1 3 -1 3 M 0 -1 0 0
x6 est sortie de la base
Le tableau perd donc la ligne M et la colonne x6 .
On observe l'itration suivante que tous les dnominateurs sont ngatifs, quand on veut choisir le
pas de dplacement. Cela signifie que toutes les intersections sont derrire nous, dans le sens du
dplacement ou encore qu'il n'y a pas d'intersection devant nous distance finie.
La forme linaire maximiser n'admet donc pas d'optimum fini dans le domaine: on parlera de
solution infinie.
x4 x5 b
x3 1 -1 9 x1=0
x1 1/3 -2/3 4
x3=0
x2 -1/3 -1/3 1
c -2/3 1/3 -3
x4=0
x5=0
x2=0
Le domaine a ici la forme d'un tronc de cne ouvert dans la direction d'optimisation, dans laquelle on
pourra progresser autant que l'on voudra, l'infini
Ce genre d'incident rsulte gnralement d'erreurs ou d'omissions dans la modlisation du problme
physique, ou encore d'erreurs dans la saisie des donnes.
x1 x2 b x4 x2 b x4 x5 b x4 x2 b
x3 -2 1 2 x3 2 -1 6 x3 3/2 1/2 15/2 x3 2 -1 6
x4 1 -1 2 x1 1 -1 2 x1 1/2 1/2 7/2 x1 1 -1 2
x5 1 1 5 x5 -1 2 3 x2 -1/2 1/2 3/2 x5 -1 2 3
c 1 -1 0 c -1 0 -2 c -1 0 -2 c -1 0 -2
On observe que le plus grand ci est nul dans le deuxime tableau. On fait comme si de rien n'tait et
on pivote pour continuer l'optimisation Aprs tout, mme si le gain espr lors du dplacement
semble tre nul, rien n'interdit de voir o cela va nous mener. Une nouvelle fois, le ci maximum est
nul dans le troisime tableau. On pivote une dernire fois, pour retomber sur un quatrime tableau
identique au deuxime
x1=0
x3=0
x4=0
gr
a
di
en
t
x5=0
B
x2=0
En effet, le premier pivotage nous conduit au point A (2, 0), le second au point B (7/2, 3/2), tandis que
le troisime nous ramne en A (segment marqu en orange).
L'explication en est fort simple: La fonction conomique est telle que la direction de plus grande pente,
le gradient de composantes (1, -1), est orthogonal la facette AB, dont tout point est alors solution
optimale. La fonction conomique ne varie donc pas dans les itrations qui nous font parcourir cette
facette (facile en dimension 2, cela peut tre plus long en dimension n, car l'exploration des solutions
est ncessaire pour ensuite ventuellement affiner le choix suivant d'autres critres).
En pratique, nous dtecterons cette situation quand la plus grande valeur trouve sur la ligne c sera
nulle: nous ne pourrons plus alors que boucler sur une facette du polydre sans augmenter la fonction
conomique (cyclage ou optimum non unique). Ce test est facile faire quand les calculs sont
mens de manire exacte, comme nous l'avons dit plus haut, mais devient problmatique quand
ceux-ci sont faits en nombres flottants avec une prcision limite, et une propagation des erreurs
d'arrondi difficile matriser.
A partir du premier tableau, deux choix sont possibles pour la variable quittant la base (choix de la
ligne minimisant bi / aij ).
Le pivotage suivant le premier choix (x1 entre en base et x3 en sort) donne le tableau 2, qui
correspond une solution optimale (x1=2, x2=0, x3=0, x4=0, x5=3, z=2).
tab1 x1 x2 b tab2 x3 x2 b
x3 2 -1 4 x1 1/2 -1/2 2
x4 1 -2 2 x4 -1/2 -3/2 0
x5 1 1 5 x5 -1/2 3/2 3
c 1 -1 0 c -1/2 -1/2 -2
OPTIMUM
Le pivotage suivant le second choix (x1 entre en base et x4 en sort) donne successivement les
tableaux 3 et 4, pour une solution optimale (x1=2, x2=0, x3=0, x4=0, x5=3, z=2).
En effet dans le tableau 3, une amlioration de la fonction conomique apparat encore possible
(c2=1), et le pivotage correspondant conduit au tableau 4.
tab3 x4 x2 b tab4 x4 x3 b
x3 -2 3 0 x2 -2/3 1/3 0
x1 1 -2 2 x1 -1/3 2/3 2
x5 -1 3 3 x5 1 -1 3
c -1 1 -2 c -1/3 -1/3 -2
OPTIMUM
L'analyse des tableaux successifs nous rvle que si le premier choix de dplacement nous amne au
point A, o la fonction conomique vaut 2, le second nous amne aussi au mme point A (tableau 3)
d'o nous ne bougerons pas (tableau 4) tout en croyant amliorer z
L'explication est encore une fois trs simple, et rsulte de la prsence d'un point multiple,
intersections de trois droites au lieu de deux au point A : Le nombre de plans dont l'intersection
constitue ce point extrmal du polydre est suprieur au nombre minimal ncessaire (n dans un
espace de dimension n), soit ici 3 au lieu de 2.
Nous avons donc 3 faons possibles de dfinir ce point (ici 3 droites prises 2 2), correspondant aux
3 couples de variables hors base des tableaux 2, 3 et 4. Et nous avons en ce point:
x4=0
A x5=0
x2=0
Dans tous les cas la fonction conomique ne bouge pas, alors que l'on croit pouvoir l'augmenter (cj>0)
lors du pivotage. Cela signifie simplement que l'on choisit une direction de dplacement pente
positive, mais que le pas de dplacement est nul (tableau 3): on boucle sur les trois dfinitions du
point multiple A (point orange).
C'est d'une certaine manire l'inverse du cas prcdent, o l'on se dplaait pente nulle d'un point
un autre de la facette optimale.
Ce cas de figure sera dtect par la prsence de plusieurs choix possibles, pour une mme valeur du
rapport bi / aij , dans le tableau qui prcde l'arrive au point multiple o se produit le cyclage. On
pourra aussi le dtecter par le dplacement nul (bi = 0).
Attention, la probabilit de la rptition indfinie d'un tel schma est excessivement faible, mais non
nulle. Un tel exemple est donn par Beale. Plusieurs remdes ont t envisags, parmi lesquels on
recommandera la rgle de Bland (1977), qui permet la dtermination unique des pivots chaque
itration, et garantit l'arrt de l'algorithme aprs un nombre fini d'itrations:
Rgle de Bland: Lorsque plusieurs variables sont susceptibles d'entrer ou de sortir de la base,
choisir la variable xi ayant le plus petit indice i.
Exercice
Reprenons le problme de la SSCI. A la suite d'un inventaire, le pre Nol dcouvre qu'il n'a que 12
grandes roues en stock, et non 15. Et les commandes s'lvent 7 vhicules au minimum (tricycles
ou voitures pdales, indiffremment).
Quelles consquences ont ces changements sur la solution du problme?
Solution
Cette fois, la contrainte sur la demande minimale va exclure l'origine du domaine admissible, ce qui va
nous obliger dmarrer en utilisant la technique des variables artificielles.
Le problme s'crit:
max. x1 + x2
x1 + 5x2 50
3x1 + 2x2 50
2x1 + 4x2 52
x1 12
x1 + x2 7 soit - x1-x2 +x7= -7 ou x1+x2 x7+x8=7
x1 + 5x2 + x3 = 50
3x1 + 2x2 + x4 = 50
2x1 + 4x2 + x5 = 52
x1 + x6 = 12
x1 + x2 x7 + x8 = 7
x2
x1=0
20
x4=0
x6=0
7
x7=0 x3=0
x5=0
x2=0
O x1
12
Le premier pivotage nous fait rentrer dans le domaine admissible, ce qui nous permet d'abandonner la
variable artificielle x8 et la forme linaire provisoire aprs le deuxime tableau.
tab1 x1 x2 x7 b tab2 x8 x2 x7 b
x3 1 5 0 50 x3 -1 4 1 43
x4 3 2 0 50 x4 -3 -1 3 29
x5 2 4 0 52 x5 -2 2 2 38
x6 1 0 0 12 x6 -1 -1 1 5
x8 1 1 -1 7 x1 1 1 -1 7
c 1 1 0 0 c -1 0 1 -7
M 1 1 -1 7 M -1 0 0 0
On remarque deux valeurs gales pour le plus petit rapport bi/aij, pour x2 variable entrante en base.
On pivote alors sur la valeur 4 (x2 entre en base et x5 en sort): On sait donc que l'on va se dplacer
me
vers un point multiple (dgnrescence de 2 espce). Le pivotage va aussi le mettre en vidence
avec l'apparition d'une valeur nulle dans la colonne b.
C'est dire qu'en ce point s'annulent non seulement les variables hors base x5 et x6, mais aussi la
variable de base x4: le point multiple se trouve l'intersection des plans de contraintes
correspondants.
Nous avons donc une solution optimale dgnre avec x1=12, x2=7, x3=3, x4=0, x5=0, x6=0, x7=12.
Ce qui signifie, si l'on revient au problme physique d'origine, que l'on construira 12 tricycles, 7 autos,
et qu'il ne restera que 3 feuilles de mtal.
La variable x7 doit tre interprte comme l'cart avec la contrainte sur la demande, c'est dire
comme lexcdent de production (12=19-7) par rapport au minimum des 7 vhicules demands.
Exercice
Une compagnie dispose de 12000 livres de caf brsilien , 15000 livres de caf africain et 10000
livres de caf colombien en stock. Elle vend 3 types de mlange : noirceur Douce (n1), Arrire
Grand-Mre (n2) et El Dingo (n3).
Le contenu (en onces de caf par livre de mlange) et le prix de vente (en dollars par livre) des
mlanges sont donns dans le tableau suivant :
Combien de livres de chaque mlange doit vendre la compagnie devra-t-elle produire pour maximiser
le chiffre des ventes ($)? (on rappelle qu'il y a 16 onces (oz) dans une livre (lb))
Solution
Pour formuler ce problme en termes de programmation linaire, on va considrer les limitations sur
les ressources (ie les trois sortes de caf) comme les contraintes construire.
Pour obtenir ce tableau plus propice des calculs simples, nous avons pris pour unit des xi des Klb
(ce qui veut dire que la fonction conomique sera exprime en K$), puis multipli les deux membres
des inquations par 4, ce qui ne change pas la valeur intrinsque des variables naturelles xi, mais le
rapport des variables d'cart xn+i aux xi (il faudra donc diviser celles-ci par 4 et les multiplier par 1000
pour revenir aux units de l'nonc).
x1 x2 x3 b x6 x2 x3 b x6 x2 x5 b
x4 1 1 1 48 x4 -1/3 1/3 2/3 104/3 x4 -1/3 0 -1/3 44/3
x5 0 1 2 60 x5 0 1 2 60 x3 0 1/2 1/2 30
x6 3 2 1 40 x1 1/3 2/3 1/3 40/3 x1 1/3 1/2 -1/6 10/3
c 3/2 6/5 1 0 c -1/2 1/5 1/2 -20 c -1/2 -1/20 -1/4 -35
OPTIMUM
Ce qui nous donne, en revenant aux units du problme initial, un chiffre des ventes maximum de
35000 $, en produisant 3333 livres (10/3 Klb) de mlange n1, pas de mlange n2, et 30000 livres de
mlange n3. Les stocks de caf africain et de caf colombien sont entirement utiliss (x5=x6=0),
mais il restera 3666 livres de caf brsilien (x4=44/3 diviser par 4).