Vous êtes sur la page 1sur 14

CHAPITRE 3

La Mthode de Simplexe
I. Introduction
On a prsent dans le chapitre prcdent une procdure graphique pour rsoudre un programme linaire deux variables. Par contre, dans la plupart des problmes rels, on a plus que deux variables dterminer. Une procdure algbrique pour rsoudre les programmes linaires avec plus que deux variables fera lobjet de ce chapitre. C'est la mthode de simplexe. Une implmentation de cette procdure permis de rsoudre des programmes avec un peu plus de quelques milliers de variables. Le programme Lindo quon prsentera dans le chapitre 7 (en version pour tudiant) supporte au plus 200 variables et 100 contraintes. Dans ce chapitre la mthode de simplexe est prsente pour les problmes
Mx a s.c ct x A x b X 0

et en utilisant le problme de lagriculteur :


Max s.c. 100 x1 + 200 x2 x1 + x2 150 4 x1 + 2 x2 440 x1 + 4 x2 480 x1 90 x1 0, x2 0

II. Mise sous forme standard


La mise sous forme standard consiste introduire des variables supplmentaires (une pour chaque contrainte) de manire a rcrire les ingalits ( ) sous la forme d'galits. Chacune de ces variables reprsente le nombre de ressources non utiliss. On les appelle variable d'cart. La forme standard s'crit donc :
Mx a s.c
Mx a s.c c x A x +S b X 0, S 0
t

c1 x1 +c 2 x2 + +c N x N

a11 x1 +a12 x2 + +a1N x N +S1 =b1 a 21 x1 +a 22 x 2 + +a 2 N x N +S 2 =b2 a M 1 x1 +a M 2 x 2 + +a M x N +S M =bM N x1 0, x2 0, , x N 0 S1 0, S 2 0, , S M 0

La forme standard du programme linaire de l'agriculteur est :


Max s. c 100x1 + 200x2 x1 + x2 + S1 = 150 4x1 + 2x2 + S2 = 440 x1 + 4x2 + S3 = 480(3.4) x1 + S4 = 90 (3.5) x1, x2, S1, S2, S3, S4 0 (3.1) (3.2) (3.3) (3.6)

L'impact de ces variables d'cart sur la fonction objectif est nulle. Ceci explique le fait que leur existence soit tout simplement lie une mise en forme du programme linaire initial. Ces variables d'cart peuvent prendre des valeurs nonnegatives. Le fait de donner la valeur des variables d'cart a l'optimum donne une ide du nombre des ressources non utilises.

III. Revue algbrique de la mthode du simplexe


La question qui se pose : que demande-t-on dune procdure algbrique ? En premier lieu, on note que les contraintes du problme (3.2)-(3.5), forment un systme de 4 quations et de 6 variables. Or il y a un nombre infini de solutions de ce systme dquations. Donc une procdure algbrique, pour la rsolution dun programme linaire doit tre capable de retrouver les solutions des systmes dquations o il y a plus de variables que de contraintes. En deuxime lieu, ce ne sont pas toutes les solutions qui vrifient (3.2)-(3.5) qui sont des solutions du programme linaire ; ils doivent en plus satisfaire les contraintes de nonngativit. Ainsi une procdure algbrique doit tre capable dliminer, de lensemble des solutions qui satisfait (3.2)-(3.1) celles qui narrivent pas satisfaire les contraintes de nonngativit. Finalement, une procdure algbrique pour rsoudre les programmes linaires doit tre en mesure de choisir parmi les solutions ralisables ceux qui maximisent la fonction objectif. La mthode de simplexe est une procdure algbrique qui tient compte de ces trois considrations. Pour illustrer cette procdure, devient x1 = 150 x1 + S2 = 440 4x1 + S3 = 480 x1 + S4 = 90 supposons que x2 = 0 et S1 = 0. Notre systme x1 = S2 = S3 = S4 = 150 340 -120 -60

Les variables x1, S2, S3 et S4 (non nulles) sont dites variables de base et les variables S1, x2, (nulles) sont dites variables hors base. Gnralement, si on a un programme linaire standard constitu de n variables et m contraintes (n m) alors une solution de base (extrme) est obtenue, en annulant (n-m) variables et en rsolvant les m contraintes pour dterminer les valeurs des autres m variables. On note quune solution de base nest pas toujours ralisable. Cest le cas de la solution quon vient de retrouver. Une solution ralisable de base serait celle o x1 = x2 = 0, ainsi on a : S1 = 150 S2= 440 S3 = 480 S4 = 90 Cette solution correspond un point extrme de lensemble des solutions ralisables qui est lorigine O. Pour la mthode de simplexe une solution ralisable de base initiale est demande. Une telle solution peut tre retrouve en annulant toutes les variables de dcision. Ce qui correspond dans notre exemple au point dorigine O. A partir de ce point la mthode de simplexe va gnrer successivement des solutions ralisables de base pour notre systme dquations en sassurant que la valeur de la fonction objectif est en train daugmenter jusqu' localiser la solution optimale du problme qui est un point extrme de lespace des solutions ralisables donc une solution ralisable de base. Ainsi, on peut dcrire la mthode de simplexe comme tant une procdure itrative qui passe dune solution ralisable de base une autre jusqu atteindre la solution optimale. La description mathmatique de ce processus fera lobjet de la section suivante.

IV. La mthode des tableaux


La mthode de simplexe commence par l'identification d'une solution ralisable de base et ensuite, elle essaye de trouver d'autres solutions ralisables de base jusqu atteindre la solution optimale. Ainsi, on doit, tout dabord, retrouver cette solution ralisable de base.

Gnralement si le programme linaire satisfait ces deux proprits : P1/ Parmi les variables du problme standard, il y a m variables qui apparaissent avec un coefficient non nul dans chaques contraintes (dans notre exemple : S1, S2, S3 et S4). P2/ Les valeurs du second membre des contraintes (les composants du vecteur b) sont positives. Alors une solution ralisable de base est obtenue en annulant les (n-m) variables de dcision et la valeur des variables d'cart est directement donne par le second membre. La deuxime proprit assure la satisfaction des contraintes de nonngativit des variables d'cart. Dans notre exemple, la forme standard du programme linaire vrifie ces deux proprits. a. Tableau de simplexe initial Aprs avoir mis le programme linaire sous une forme qui vrifie les deux proprits P1 et P2, ltape suivante est de tracer le tableau de simplexe initial. Le modle gnral des tableaux de simplexe est :
cj coefficient correspond aux variables Toutes les variables

des variables de base

VB variables de base

Ci coefficients

variables de base

A = (aij)i,j
matrice des coefficients des contraintes du programme standard

Pour notre exemple le tableau de simplexe initial est le suivant : 100 x1 1 4 1 1 200 x2 1 2 4 0 0 S1 1 0 0 0 0 S2 0 1 0 0 0 S3 0 0 1 0 0 S4 0 0 0 1

0 0 0 0

S1 S2 S3 S4

Qi Valeur des

150 440 480 90

On remarque quon a plac en premire ligne les contributions unitaires de toutes les variables de dcision x1,..., S4 dans la fonction objectif. Dans la troisime ligne, on retrouve la premire contrainte x1 + x2 + S1 = 150. La valeur 150 reprsente ici la valeur de S1 relative la solution ralisable de base initiale. Dans la premire colonne on trouve les contributions nulles des variables d'cart qui forment la solution de base initiale. Exemple : Question : Quelles sont les contraintes et la fonction objectif du programme linaire dcrit par le tableau de simplexe suivant : 6 x1 4 1 7 x2 2 5 0 S1 1 0 0 S2 0 1

0 0

S1 S2

150 440

Rponse : Les contraintes du programme sont : 4 x1 + 2x2 + S1 = 50 x1 + 5x2 + S2 = 40 et la fonction objectif est : 6x1 + 7x2 + 0S1 + 0S2 Remarque : Les variables qui figurent dans la deuxime colonne sont dites variables de base. A chacune de ces variables, on associe la valeur 1 lintersection de la ligne et de la colonne relative cette variable et dans le reste de la colonne on trouve des zros. Jusqu ici on a vu comment retrouver une solution ralisable de base et comment prsenter le tableau de simplexe initial. Dans la section suivante, on examinera la procdure lie la mthode de simplexe qui permet de passer de cette solution ralisable de base initiale une autre solution ralisable de base qui donne une meilleure valeur de la fonction objectif. b. Amlioration de la solution Pour amliorer la solution il faut gnrer une autre solution de base (point extrme) qui augmente la valeur de la fonction objectif. Cest dire, quon doit slectionner une variable hors base et une variable de base et les permuter de telle faon que la nouvelle solution donne une plus grande valeur de la fonction objectif. Pour savoir si on peut amliorer notre solution ralisable de base initiale nous allons introduire deux nouvelles lignes au-dessus du tableau de simplexe.

La premire ligne, note zj, reprsente la variation de la valeur de la fonction objectif qui rsulte du fait quune unit de la variable correspondante la jme colonne de la matrice A est amene dans la base. Par exemple z1 reprsente la diminution du profit qui rsulte de lajout dune unit la valeur de x1. En effet, si on produit un hectare supplmentaire de x1, la valeur de quelques variables de base vont changer vu quon a : x1 + S1 = 150 4x1 + S2 = 440 x1 + S3 = 480 x1 + S4 = 90 Donc, une augmentation de x1 de 0 vers 1 va tre accompagne d'une diminution des variables de base S1, S2, S3, S4 respectivement de 1, 4, 1 et 1. Leffet de cette diminution sur la fonction objectif est nul car les coefficients des variables dcarts dans cette fonction sont nulles z1 = 0 S1 + 0 S2 + 0 S3 + 0 S4 =0 1 + 0 4 + 0 1 + 0 1 = 0 La valeur z1 est calcule en multipliant les coefficients de la premire colonne de la matrice A relatifs la variable x1 par les coefficients ci de la premire colonne. Gnralement, on a : a c zj = ij i
i

La deuxime ligne, note cj - zj, reprsente leffet net de laugmentation dune unit de la jme variable. Dans notre exemple, leffet net sur la fonction objectif engendr par laugmentation dune unit dans la valeur de x1 est c1 - z1 = 100 - 0 = 100 Si on reprend la mme opration pour le reste des variables, on trouve le tableau suivant : 100 x1 1 4 1 1 0 100 200 x2 1 2 2 0 0 200 0 S1 1 0 0 0 0 0 0 S2 0 1 0 0 0 0 0 S3 0 0 1 0 0 0 0 S4 0 0 0 1 0 0

0 0 0 0

S1 S2 S3 S4

150 440 480 90 zj cj - zj

En analysant la ligne relative lvaluation nette cj - zj, on remarque quune augmentation dune unit de la valeur de x1 engendre un profit de 100 dinars, et quune augmentation dune unit de la valeur de x2 engendre un profit

supplmentaire de 200 dinars. Donc, si on a choisir, on va opter pour une augmentation de la valeur de x2. On dit que x2 est la variable entrante. Le problme est maintenant, jusquo peut-on augmenter x2 ? Cette augmentation ne peut pas se faire infiniment, sous lhypothse que x1 reste nulle. On a x1 + S1 = 150 2x2 + S2 = 440 4x2 + S3 = 480 x4 + S2 = 90 On peut voir que x2 peut prendre comme valeur maximale la valeur de 100 (il ne faut pas oublier que les Si, i=1, 2, 3, 4 sont des variables positives). Cette valeur est obtenue en choisissant la plus petite valeur positive des divisions de 100/1, 440/2, 480/4 et 90/0 (on suppose que 90/0 est gale linfini ). En gnral, la valeur maximale de la variable entrante xj est le minimum des valeurs positives des rapports de Qi par les coefficients de la colonne de la matrice A relatif la jme variable. Ces rapports feront lobjet dune autre colonne droite de la matrice A. Dans notre exemple, on aura : 100 X1 1 4 1 1 0 100 200 x2 1 2 4 0 0 200 0 S1 1 0 0 0 0 0 0 S2 0 1 0 0 0 0 0 S3 0 0 1 0 0 0 0 S4 0 0 0 1 0 0

0 0 0 0

S1 S2 S3 S4

100 440 480 90

150 220 120

Le fait daugmenter x2 jusqu la valeur 100 va engendrer lannulation de la valeur du variable dcart S3, ce qui limine S3 de la base. On appelle S3 variable sortante. Llment 4, lintersection de la ligne relative la variable sortante S1 (dite ligne pivot) et de la colonne relative la variable entrante x2 (dite colonne pivot) est llment pivot. (Cest llment cercl dans le tableau).

c. Calcul des tableaux suivants Dans le nouveau tableau de simplexe on va remplacer S3 par x2 et lensemble des variables de base deviendra S1, S2, x2, S4. On exige que x2 prenne la mme place dans la colonne des variables de base que celle de la variable sortante S3. Jusqu maintenant on ne peut pas remplir le tableau relatif cette nouvelle solution de base : 100 x1 200 x2 0 S1 0 S2 0 S3 0 S4

0 S1 0 S2 200 x2 0 S4 Ce qui reste dterminer sont les coefficients aij de la nouvelle matrice A et les valeurs Qi des variables de base. Ceci est ralis en utilisant la rgle de pivot : 1. Diviser le ligne de pivot par la valeur de llment de pivot pour trouver la ligne transforme de la ligne de pivot. 100 x1 0 0 200 0 S1 S2 x2 S4 120 1/4 200 x2 1 0 S1 0 0 S2 0 0 S3 -1/4 0 S4 0

2. A chacune des variables de base, on associe la valeur 1 lintersection de la ligne et de la colonne relative cette mme variable et dans le reste de la colonne on trouve des zros. 100 x1 0 0 200 0 S1 S2 x2 S4 120 1/4 200 x2 0 0 1 0 0 S1 1 0 0 0 0 S2 0 1 0 0 0 S3 -1/4 0 S4 0 0 0 1

3. Pour calculer le reste des valeurs du tableau, on opre des combinaisons linaires dans le prcdent tableau de simplexe. Par exemple pour calculer la nouvelle valeur qui va prendre la place de la valeur 100 devant la variable de base S1: On multiplie 100 par le pivot (4), on retranche de ce produit le

produit de la projection de la valeur 100 sur la ligne pivot par la projection de la valeur 100 sur la colonne pivot, et on divise le tout par la valeur du pivot (4). 100 x1 1 4 1 1 200 x2 1 2 4 0 0 S1 1 0 0 0 0 S2 0 1 0 0
0 4 11 1 = 4 4

0 0 0 0

S1 S2 x2 S4

150 440 480 90

0 S3 0 0 1 0

0 S4 0 0 0 1

150 4 480 1 = 30 4

200 0 0 0 0 x2 S1 S2 S3 S4 0 S1 30 0 1 0 -1/4 0 0 S2 0 0 1 0 200 S3 120 1/4 1 0 0 -1/4 0 0 S4 0 0 0 1 En appliquant cette rgle sur notre exemple, on trouve le tableau suivant : 100 200 0 0 0 0 x1 x2 S1 S2 S3 S4 0 S1 30 3/4 0 1 0 -1/4 0 0 S2 200 7/2 0 0 1 -1/2 0 200 S3 120 1/4 1 0 0 -1/4 0 0 S4 90 1 0 0 0 0 1 Remarques: a) On vrifie toujours que les colonnes de la matrice relative chacune des variables de base sont formes par des zros sauf 1 dans lintersection avec la ligne relative aux mmes variables de base. b) On peut vrifier aussi que lensemble des solutions ralisables, induit par les contraintes dcrites dans le dernier tableau de simplexe, est le mme que celui reprsent par les contraintes initiales. La rgle de pivot est une combinaison linaire des contraintes du programme linaire donc elle ne change pas lensemble des solutions ralisables. c) La nouvelle solution ralisable de base est x1 = 0 x2 = 120

100 x1

S1 = 30 S2 = 200 S3 = 0 S4 = 90 Cette nouvelle solution correspond au point A(voir graphique). On vrifie bien que la valeur de la fonction objectif est passer de 0 120 x 200. La valeur de la fonction objectif peut tre facilement calculer en multipliant membre membre les ci de la premire colonne par les valeurs des variables de base Qi dans la 3me colonne. d) La solution de dpart correspond au point O. La premire itration nous a amen dans le sens de l'amlioration du profit (fonction objectif), cest dire le long de laxe des ordonnes. Ayant retrouv une nouvelle solution, on veut savoir sil est possible de retrouver une solution ralisable de base meilleure. Pour arriver cette fin, on doit ajouter les deux lignes relatives au choix de la variable entrante, et la colonne relative au choix de la variable sortante. 100 x1 3/4 7/2 1/4 1 50 50 200 x2 0 0 1 0 200 0 0 S1 1 0 0 0 0 0 0 S2 0 1 0 0 0 0 0 S3 -1/4 -1/2 1/4 0 50 -50 0 S4 0 0 0 1 0 0

0 0 200 0

S1 S2 x2 S4

30 200 120 90

40 400/7 480 90

La variable entrante est x1 ; elle prsente la plus grande valeur cj- zj. Si on calcule les quotients Qi/ci1, on retrouve que la variable sortante est S1 qui on associe la plus petite valeur du ratio Q1/c11=40. Llment pivot dans ce tableau est 3/4. La nouvelle base est compose de x1, S2, x2, S4. Le tableau de simplexe suivant issu de lapplication de la rgle de pivot est : 100 x1 1 0 0 0 200 x2 0 0 1 0 0 S1 4/3 -14/3 -1/3 -4/3 0 S2 0 1 0 0 0 S3 -1/3 2/3 1/3 1/3 0 S4 0 0 0 1

100 x1 40 0 S2 60 200 x2 110 0 S4 50 Cette nouvelle solution x1 = 40 x2 = 120

S1 = 0 S2 = 60 S3 = 0 S4 = 50 correspond au point B qui est, daprs les rsultats retrouve par la mthode graphique, la solution optimale du problme. Ainsi, il faut sattendre ce que la mthode de simplexe reconnaisse cette solution comme tant la solution optimale. Ajoutons la ligne relative au calcul de l'effet net dune augmentation unitaire dune des variables du problme, on a : 100 x1 1 0 0 0 100 0 200 x2 0 0 1 0 200 0 0 S1 4/3 14/3 -1/3 -4/3 200/3 -100/3 0 S2 0 1 0 0 0 0 0 S3 -1/3 2/3 1/3 1/3 100/3 -100/3 0 S4 0 0 0 1 0 0

100 0 200 0

x1 S2 x2 S4

40 60 110 50

Leffet net associ aux variables hors base S1 et S2 est ngatif. Ceci nous oblige dire que faire entrer une de ces deux variables dans la base va engendrer une diminution dans la valeur de la fonction objectif. Donc il ny a pas une autre solution ralisable de base qui peut engendrer un profit meilleur. Par suite cette dernire solution est la solution optimale. Ce dernier tableau de simplexe est donc dit tableau optimal. On peut gnraliser ce rsultat en disant que la solution optimale dun programme linaire est atteinte sil ny a aucune valeur positive dans la ligne cj-zj du tableau du simplexe.

V. Rsum de la procdure de la mthode du simplexe


(dans le cas d'un problme de maximisation sous contraintes et avec un second membre positif)

Etapes Justification 1. Formuler un programme linaire Pour obtenir une reprsentation pour le problme rel. mathmatique du problme

2. Vrifier que le second membre du programme linaire est positif 3. Ecrire le programme linaire sous une forme standard 4. Construire le premier tableau de simplexe 5. Choisir comme variable entrante dans la base celle qui admet le plus grand effet net positif cj-zj. 6. Choisir la variable sortante de la base celle qui admet le plus petit ratio suprieur zro. 7. Construire le nouveau tableau en utilisant la rgle de pivot 8. Faire le test doptimalit. Si (cj-zj) 0 pour toutes les variables (hors base), la solution obtenue est donc optimale. Sinon retourner ltape 5.

Ceci est ncessaire pour obtenir comme variable de base initiale lorigine Mettre toutes les contraintes sous forme dgalit Ce tableau correspond la solution initiale de base La valeur de cj-zj indique la quantit daugmentation de la fonction objectif si on augmente la valeur de xj dune unit. La plus petite valeur de Qi/aij indique le nombre maximal dunit de xj quon peut introduire avant que la variable de base de lime ligne ne soit gale zro. Cette rgle nous permet entre autre de calculer les valeurs des nouvelles variables de dcision Si (cj-zj) 0 alors on na pas dintrt faire entrer dans la base aucune de ces variables. Une telle introduction engendra une diminution de la fonction objectif.

VI. Exemple
Rsoudre le programme linaire suivant en utilisant la mthode de simplexe. Max 3x1 + 2x2 SC - x1 + 2x2 4 3x1 + 2x2 14 x1 + x2 3 x1 0 x2 0 La forme standard du programme linaire s'crit comme suit : Max 3x1 + 2x2 SC - x1 + 2x2 + S1 = 4 3x1 + 2x2 + S2 = 4 x1 - x2 + S3 = 3 x1, x2, S1, S2, S3 0 Tableau de simplexe initial (1re itration) 3 2 0 0 0

0 0 0

S1 S2 S3

4 14 3

x1 -1 3 (1) 0 3

x2 2 2 -1 0 2

S1 1 0 0 0 0

S2 0 1 0 0 0

S3 0 0 1 0 0

-4 14/3 3

La variable entrante est x1 puisquelle prsente le plus grand effet net positif. La variable sortante est S3 car elle correspond au plus petit quotient positif. 2me itration 3 x1 0 0 1 3 0 2 x2 1 (5) 1 0 2 0 S1 1 0 0 0 0 0 S2 0 1 0 0 0 0 S3 1 -3 1 3 -3

0 0 3

S1 S2 x1

7 5 3

7 1 3

La variable entrante est x2 et la variable sortante est S2 3me itration 3 x1 0 0 1 3 0 2 x2 0 1 0 2 0 0 S1 1 0 0 0 0 0 S2 -1/5 1/5 1/5 1 -10 0 S3 8/5 -3/5 2/5 0 0

0 2 3

S1 x2 x1

6 1 4

Tous les cj-zj 0 donc le tableau de simplexe est optimal et la solution optimal du programme linaire est x1 = 4 x2 = 1 S1 = 6

S2 = 0 S3 = 0 La valeur de la fonction objectif est 14. Remarque : Leffet net de laugmentation dune unit de la valeur de S3 (variable hors base) est nul. Donc si on introduit S3 dans la base, on ne modifie pas la valeur de la fonction objectif. Ainsi une autre solution optimale peut tre trouve pour notre programme linaire. Ceci confirme le rsultat de la mthode graphique qui indique que ce problme admet un ensemble de solution optimale dcrit par le segment [BC]. La solution optimale donne par le dernier tableau de simplexe correspond au point C. Le tableau du simplexe suivant est : 3 x1 0 0 1 3 0 2 x2 0 1 0 2 0 0 S1 5/8 3/8 -1/4 0 0 0 S2 -1/8 1/8 1/4 1 -1 0 S3 1 0 0 0 0

0 2 3

S3 x2 x1

15/4 13/4 5/2

Le tableau est optimal et la solution correspondante est : x1 = 5/2 x2 = 13/4 S1 = 0 S2 = 0 S3 = 15/4 La valeur de la fonction objectif est 14.