Vous êtes sur la page 1sur 66

Recherche Opérationnelle

et Optimisation

Prof . Jraifi
Département Télécommunications,
Réseaux et Informatique

1ère année - IITE1

Année universitaire 2021 -- 2022


PARTIE I
Optimisation Numérique
L’optimisation est une discipline mathématique qui, bien qu’omniprésente depuis les
origines, a pleinement pris son essor au cours du XXe siècle d’une part sous la stimulation
du développement des sciences de l’industrie et de la planification, telles l’économie, la ges-
tion, etc..., et des sciences appliquées aux technologies naissantes, comme l’automatique,
le traitement du signal, etc..., et d’autre part grâce au développement de l’informatique
qui a rendu efficiente ses méthodes algorithmiques jusque là impraticables.
Optimiser c’est choisir parmi plusieurs possibilités celle qui répond le mieux à cer-
tains critères. En ce sens il n’est pas de science ni même de domaine d’activité qui ne soit
confronté à un problème d’optimisation. L’optimisation, et plus généralement la Recherche
opérationnelle, intervient dès-lors pour appliquer l’outil mathématique à cette résolution,
si tant est que le problème soit formalisable mathématiquement. De nos jours son champ
d’application est on ne peut plus vaste : optimisation des ressources, des gains, des coûts
dans l’industrie, optimisation du trafic aérien, ferroviaire, routier, dans le transport, op-
timisation de la couverture radar, de la réactivité d’intervention, de la gestion des stocks
et des troupes dans le domaine militaire, etc..., sans parler des sciences dures, physique,
chimie, informatique, automatique, traitement du signal, etc..., pour lesquels nombre de
problèmes se ramènent et se résolvent par optimisation. C’est une discipline fondamentale
dans les sciences de l’ingénieur, de l’économie et de la gestion, pour ne citer qu’elles.

.
De nos jours l’optimisation et plus généralement la recherche opérationnelle, reste

un domaine fécond de la recherche en mathématiques qui bénéficie d’importants finance-


ments provenant aussi bien du domaine public que du domaine privé, et dont les retombées
s’appliquent dans tous les domaines d’activité humaine se prêtant à la modélisation
mathématique.
La programmation linéaire 1
1 Introduction

La programmation linéaire peut se définir comme une technique mathématique permettant


de résoudre des problèmes de gestion et particulièrement ceux où le gestionnaire doit déterminer,
face à différentes possibilités, l’utilisation optimale des ressources de l’entreprise pour atteindre
un objectif spécifique comme la maximisation des bénéfices ou la minimisation des coûts. Dans la
plupart des cas, les problèmes de l’entreprise pouvant être traités par la programmation linéaire
comportent un certain nombre de ressources. On peut mentionner, par exemple,la main-d’œuvre,
les matières premières, les capitaux, ... qui sont disponibles en quantité limitée et qu’on veut
répartir d’une façon optimale entre un certain nombre de processus de fabrication. Notre approche
pour résoudre ce type de problèmes sera divisée en deux étapes principales :

a) La modélisation du problème sous forme d’équations ou d’inéquations linéaires qui permet-


tra ainsi de bien identifier et structurer les contraintes que doivent respecter les variables du
modèle ; de plus, on doit définir l’apport de chaque variable à l’atteinte de l’objectif poursuivi
par l’entreprise, ce qui se traduira par une fonction à optimiser.
b) La détermination de l’optimum mathématique à l’aide de certaines techniques propres à
la programmation linéaire.

Nous étudierons 3 méthodes pour résoudre les différents types de problèmes de programmation
linéaire ; la première est basée sur une résolution graphique, elle est donc limitée à 2 ou 3 variables.
La deuxième méthode est plus algébrique et elle justifiera la troisième qui porte le nom de
méthode (ou algorithme) du simplexe.

2 Modélisation d’un programme linéaire


La formalisation d’un programme est une tâche délicate mais essentielle car elle conditionne la découverte
ultérieure de la bonne solution. Elle comporte les mêmes phases quelles que soient les techniques requises
ultérieurement pour le traitement (programmation linéaire ou programmation non linéaire) :
1. La détection du problème et l’identification des variables. Ces variables doivent correspondre exacte-
ment aux préoccupations du responsable de la décision. En programmation mathématique, les variables
sont des variables décisionnelles.
2. La formulation de la fonction économique (ou fonction objectif) traduisant les préférences du décideur
exprimées sous la forme d’une fonction des variables identifiées.

3. La formulation des contraintes. Il est bien rare qu’un responsable dispose de toute liberté d’action. Le
plus souvent il existe des limites à ne pas dépasser qui revêtent la forme d’équations ou d’inéquations
mathématiques.

Le responsable d’une décision ne dispose que de sa compétence pour réaliser une formalisation correcte
du problème posé car il n’existe pas de méthode en la matière. Un moyen d’acquérir cette compétence est
l’apprentissage comme proposé dans les exemples suivants :

Formulation 3
Formulation 4

2.1 Exemples

Une entreprise fabrique deux produits A et B, en utilisant une machine m et deux


matières premières p et q. On dispose chaque jour de 8 heures de m, de 10 kg de p et
de 36 kg de q. On suppose que :

— la production d’une unité de A nécessite 2 kg de p et 9 kg de q, et utilise la


machine m durant 1 heure ;
— la production d’une unité de B nécessite 2 kg de p et 4 kg de q, et utilise la
machine m durant 2 heure ;
— les profits réalisés sont de 50 dh par unité de A et 60 dh par unité de B.

L’objectif que poursuit l’entreprise est de maximiser le profit qu’elle pourra tirer, par
jour, de ces 2 produits en utilisant au mieux ses ressources.
Le tableau suivant résume les données afférentes à ce problème de production :

A B Disponible
m 1h 2h 8h
p 2 kg 2 kg 10 kg
q 9 kg 4 kg 36 kg
Profit unitaire 50 dh 60 dh

La construction d’un modèle linéaire

Quelles sont les informations dont doit disposer le directeur de l’entreprise pour
considérer que son problème est résolu ? Il suffit de connaître la quantité du
produit A et la quantité du produit B à fabriquer quotidiennement, n’est-ce pas ?
Agissons comme si ces quantités nous étaient connues et dénotons-les par :

x1 = la quantité du produit A à produire


x2 = la quantité du produit B à produire

Les variables x1 et x2 sont dites variables de décision.


Quel profit l’entreprise retirera-t-elle de la vente de ces deux produits ? Il s’agit
d’additionner les bénéfices à tirer de chacun des 2 produits :

— pour le produit A, elle retire 50 dh par unité et en fabrique x1 unités ; cette


production lui rapporte donc un profit de (50 x1 ) dh ;
— de même, la quantité x2 du produit B lui permet de faire un profit de (60 x2 ) dh.

Le profit total à tirer des deux produits s’élève donc à :

(50 x1 + 60 x2 ) dh

Nous dénoterons ce profit total par z et laisserons implicite l’unité monétaire :

z = 50 x1 + 60 x2
Formulation 5

Nous cherchons évidemment à rendre z aussi grand que possible en donnant à x1 et


x2 des valeurs appropriées.
La grandeur z est une fonction qui, à chaque plan de production (une quantité
de A, une quantité de B), associe le nombre de dirhams que l’entreprise retirerait
comme profit si elle adoptait ce plan. Cette fonction z, qui traduit l’objectif de notre
problème, s’appelle fonction objectif ou fonction économique. Et, comme nous
cherchons à rendre z aussi grand que possible, nous écrivons :

Maximiser z où z = 50 x1 + 60 x2

ce que généralement l’on convient d’abréger comme suit :

Max z = 50 x1 + 60 x2

S’il ne s’agissait pour l’entreprise que de maximizer z, il suffirait de laisser


augmenter x1 ou x2 pour que z prenne une valeur aussi grande qu’elle le souhaite.
Mais s’attendre à de tels profits s’apparente plus au rêve qu’à la situation de notre
entreprise. Il y a bien sûr des empêchements naturels, appelés contraintes, qui
freinent le rêve d’un profit infini. Prenons en considération tour à tour chacune
des contraintes.
Contrainte relative à la machine m Le temps d’utilisation de la machine m pour
fabriquer les produits A et B ne peut excéder les 8 heures disponibles :

Temps d’utilisation de m 6 8.

Or, ce temps utilisé est la somme des heures consacrées à chacun des types de
produits. Pour le produit A, le temps nécessaire à la fabrication de la quantité x1
se calcule ainsi :

1 heure/(unité de A) × x1 (unité de A) = x1 heures

pour le produit B, on procède de façon analogue :

2 heure/(unité de B) × x2 (unité de B) = 2x2 heures

La contrainte relative à la machine m s’écrit donc :

x1 + 2x2 6 8 (m)

On emploie le signe « 6 », et non « = », car il n’est pas obligatoire que toutes les
heures disponibles soient utilisées pour la fabrication des produits A et B, bien qu’il
ne soit pas interdit qu’il en soit ainsi.
Contraintes relatives aux matières premières En s’inspirant de la contrainte
relative à la machine, ces contraintes s’écrivent tout naturellement :

2x1 + 2x2 6 10 (p)


9x1 + 4x2 6 36 (q)
1 Formulation 6

Contraintes de positivité Elles assurent que la solution ne comporte pas des


valeurs négatives (inacceptables).

x1 , x2 > 0,

Le modèle se résume ainsi :




 Max z = 50x1 + 60x2





 x1 + 2x2 6 8
(P) 2x1 + 2x2 6 10, soit : x1 + x2 6 5



 9x1 + 4x2 6 36




x1 , x 2 > 0

Variables d’écart

Afin de ramener les contraintes à des égalités (qui sont plus faciles à traiter que les
inégalités), on introduit des variables d’écart. Ces variables seront toujours, comme
les variables de décision x1 et x2 , positives ou nulles.

Après l’ajout des variables d’écart x3 , x4 et x5 relatives aux contraintes (m), (p) et
(q), nous obtenons la formulation :



 Max z = 50x1 + 60x2





 x1 + 2x2 + x3 = 8
(P) 2x1 + 2x2 + x4 = 10



 9x1 + 4x2 + x5 = 36




x1 , x 2 , x 3 , x 4 , x 5 > 0

La variable d’écart d’une contrainte représente la quantité disponible non utilisée.


C’est l’écart entre la disponibilité et le besoin.

Exemple.2.2

Une usine fabrique deux produits P1 et P2 à l’aide de trois matières premières M1 , M2

et M3 dont on dispose en quantité limitée. On se pose le problème de l’utilisation optimale de ce stock de

matières premières c’est-à-dire la détermination d’un schéma, d’un programme de fabrication tel que :

– les contraintes de ressources en matières premières soient respectées,

– le bénéfice réalisé par la vente de la production soit maximum.


Formulation 7

Modèle mathématique :

– Données numériques des contraintes. La disponibilité en matières premières est de 18 unités de M1 , 8


unités de M2 et 14 unités de M3 .

– Caractéristiques de fabrication . Elles sont données dans le tableau ci-dessous :

Modèle mathématique :

– Données numériques des contraintes. La disponibilité en matières premières est de 18 unités de M1 , 8


unités de M2 et 14 unités de M3 .

– Caractéristiques de fabrication. Elles sont données dans le tableau ci-dessous :

M1 M2 M3
P1 1 1 2
P2 3 1 1

– Hypothèses de linéarité du modèle. La fabrication est à rendement constant, c’est-à-dire que pour
fabriquer x1 unités de P1 , il faut 1 × x1 unités de M1 , 1 × x1 unités de M2 et 2 × x1 unités de M3 , de
même pour la fabrication de x2 unités de P2 .
– Linéarité de la fonction économique. On suppose que le bénéfice peut s’exprimer à l’aide des bénéfices
unitaires c1 , c2 sous la forme :
Z = c 1 x 1 + c 2 x2

– Réalisation d’un schéma de production. Un schéma de production est un couple (x1 , x2 ), x1 et x2


désignant respectivement les quantités de P1 et P2 fabriquées donc vendues, qui doit vérifier les
contraintes x1 ≥ 0, x2 ≥ 0. Deux questions se posent : un tel schéma est-il réalisable ? A-t-on suffi-
samment de matières premières pour assurer une telle production ?
– Le programme linéaire : 

 x1 ≥ 0, x2 ≥ 0
 x1 + 3x2 ≤ 18


x1 + x2 ≤ 8
2x1 + x2 ≤ 14




Z = c 1 x1 + c 2 x 2

où Z est une fonction économique ou fonction objectif qu’il faut maximiser.

Exemple.2.3 L’intendant d’un lycée doit composer un menu qui doit contenir un minimum d’éléments
nutritifs et qui doit être le moins coûteux possible. On se limite à une situation simple, deux denrées ali-
mentaires principales D1 , D2 et trois éléments nutritifs, les vitamines V, les calories C et les protéines P.

Le tableau suivant indique le nombre d’éléments nutritifs par unité d’aliment :


Formulation 8

V C P
D1 1 1 3
D2 5 2 2

Une unité de D1 contient 1 unité de V, 1 unité de C et 3 unités de P.

Modèle mathématique :

– Contraintes diététiques. Le menu doit comporter au minimum 5 unités de V, 4 unités de C, 6 unités


de P. Les coûts unitaires sont 20 pour D1 , 25 pour D2 .

– Réalisation du menu. Un menu contenant x1 unités de D1 , x2 unités de D2 est réalisable si le couple


(x1 , x2 ) vérifie :


 x1 ≥ 0, x2 ≥ 0
x1 + 5x2 ≥ 5

x + 2x2 ≥ 4
 1


3x1 + x2 ≥ 6
– Le programme linéaire. Le problème consiste à déterminer deux nombres x1 et x2 tels que :


 x1 ≥ 0, x2 ≥ 0
 x1 + 5x2 ≥ 5


x1 + 2x2 ≥ 4
3x1 + x2 ≥ 6




Z = 20x1 + 25x

où Z est la fonction objectif à minimiser.

✞ ☎
✝Exercices ✆ Formaliser les situations suivantes :

Exo Une entreprise fabrique 2 produits X et Y . Pour sa conception, chaque produit fini nécessite
1 3 produits intermédiaires A, B et C. Pour fabriquer un produit X, on a besoin de 2 produits
A, de 2 produits B et de 1 produit C. De même, pour fabriquer un produit Y , on a besoin de
3 produits A, de 1 produit B et de 3 produits C. En outre, l’entreprise dispose d’une quantité
limitée de produits A, B et C. Elle a 180 produits A, 120 produits B et 150 produits C.
Sachant que le bénéfice pour une unité de X est 3 euros et que celui pour une unité de Y est
de 4 euros, combien de produits X et Y faut-il fabriquer pour maximiser le profit ?
Modéliser ce problème par un programme linéaire et donner une représentation graphique des
contraintes et de la solution.

Exo On suppose qu’une entreprise fabrique deux produits et décide d’augmenter le niveau de
2 production pour maximiser le bénéfice. Soient x1 la quantité de produit de type 1 fabriquée
en un mois et x2 la quantité de produit de type 2 fabriquée en un mois. Chaque unité du
produit 1 rapporte à l’entreprise un bénéfice de 120, alors que chaque unité du produit 2
rapporte à l’entreprise un bénéfice de 500. A ce stade on dirait qu’il suffit de ne produire
que du produit de type 2. Cependant il existe des contraintes sur la production de x1 et x2 .
A cause de considérations bassement matérielles, on ne peut pas produire plus de 200 x1 et
plus de 300 x2 . De plus, on ne peut pas produire plus de 400 produits (quels que soient leurs
types) en tout, à cause de la force de travail limitée. Donner un PL qui maximise le bénéfice,
ainsi que sa représentation graphique en 2D. En déduire la solution optimale.
Formulation 9

Exo La fabrique RadioIn fabrique deux types de radios A et B. Chaque radio produite est le fruit
3 des efforts conjoints de 3 spécialistes Pierre, Paul et Jean. Pierre travaille au plus 24 heures
par semaine. Paul travaille au plus 45 heures par semaine. Jean travaille au plus 30 heures
par semaine. Les ressources nécessaires pour construire chaque type de radio ainsi que leurs
prix de vente sont donnés dans le tableau ci-dessous :

Radio A Radio B
Pierre 1h 2h
Paul 2h 1h
Jean 1h 3h
Prix de vente 15 e 10 e

On suppose que l’entreprise n’a aucun problème à vendre sa production, quelle qu’elle soit.
Modéliser le problème de la recherche d’un plan de production hebdomadaire maximisant
le chiffre d’affaire de RadioIn sous forme d’un programme linéaire. Préciser clairement les
variables de décision, la fonction objectif et les contraintes.

Exo Un assembleur de mobiles doit fournir par contrat 20000 téléphones dans les quatre prochaines
semaines. Le client payera 20 e pour chaque mobile livré avant la fin de la première semaine,
4 18 e pour ceux livrés avant la fin de la deuxième semaine, 16 e pour ceux livrés avant la fin de
la troisième semaine et 14 e avant la fin de la quatrième. Chaque ouvrier peut assembler 50
mobiles par semaine. La société ne peut honorer la commande avec ses 40 ouvriers, ainsi elle
doit embaucher et former des travailleurs temporaires. Chacun des 40 ouvriers permanents
peut être affecté à la formation d’une classe de trois travailleurs temporaires. Après une
semaine de formation, ceux qui ont suivi la formation peuvent soit monter des mobiles soit
instruire des ouvriers non qualifiés.
A cet instant il n’y a pas d’autre contrat en cours mais tous les ouvriers, permanents ou
temporaires, seront payés jusqu’à la fin des quatre semaines (même si certains sont inoccupés).
Un ouvrier qui produit des mobiles, est inactif ou instruit reçoit un salaire de 200 e par
semaine alors qu’un ouvrier en formation perçoit 100 e par semaine. Le coût de production
(sans compter les salaires) est de 5 e par mobile.
Par exemple, la compagnie peut adopter le programme de fabrication suivant.

Semaine 1 10 assembleurs, 30 instructeurs, 90 apprentis


Salaires des travailleurs : 8000 e
Salaires des apprentis : 9000 e
Profit sur les 500 mobiles : 7500 e
Perte nette : 9500 e

Semaine 2 120 assembleurs, 10 instructeurs, 30 apprentis


Salaires des travailleurs : 26000 e
Salaires des apprentis : 3000 e
Profit sur les 6000 mobiles : 78000 e
Profit net : 49000 e

Semaine 3 160 assembleurs


Salaires des travailleurs : 32000 e
Profit sur les 8000 mobiles : 88000 e
Profit net : 56000 e

Semaine 4 110 assembleurs, 50 inactifs


Salaires des travailleurs : 32000 e
Profit sur les 5500 mobiles : 49500 e
Profit net : 17500 e
Formulation 10

Ce programme de planification qui rapporte 113000 e à la compagnie est l’un des nombreux
possibles. La compagnie souhaite faire le meilleur bénéfice possible : formulez ce problème
sous la forme d’un PL (pas nécessairement sous forme standard).

2.3Formule générale d’un programme linéaire

De façon générale, un problème de programmation mathématique met en jeu quatre catégories d’éléments :
– des variables ou activités,
– des coefficients économiques,
– des ressources,
– des coefficients techniques.

Les activités sont les variables de décision du problème étudié. Il s’agit pour l’entreprise de sélectionner le
meilleur programme d’activités X = (x1 , . . . , xn ), c’est-à-dire celui qui est le plus conforme à ses objectifs.
Les coefficients économiques mesurent le degré de réalisation de l’objectif de l’entreprise, associé à une
valeur unitaire de chacune des variables. À chaque variable xj est ainsi associé un coefficient économique cj .
L’évaluation des coefficients cj dépend du type d’objectif poursuivi : selon le cas ce sera un prix de vente,
une marge brute, un coût variable unitaire, etc.
Les ressources peuvent être également de nature très diverse selon le problème rencontré. Dans tous les
cas, ce sont les éléments qui limitent le calcul économique de l’entreprise : des capacités de production
limitées, des normes à respecter, des potentiels de vente, etc. Dans tout problème, il faudra ainsi prendre en
considèration un vecteur de ressources B = (b1 , . . . , bm ) donné.
Par coefficient technique on désignera le degré de consommation d’une ressource par une activité. À la
ressource i et à l’activité j correspondra le coefficient technique aij . Dans la mesure où le problème étudié
met en jeu n activités et m ressources, il faudra considérer m × n coefficients techniques que l’on pourra
regrouper dans un tableau du type suivant :
❵❵❵
❵❵❵Activités
❵❵❵
❵❵❵ 1 ... j ... n
Ressources ❵❵
1 a11 ... a1j ... a1n
.. .. .. .. .. ..
. . . . . .
i ai1 ... aij ... ain
.. .. .. .. ..
. . . . . ...
m am1 ... amj ... amn

Si les variables sont continues, si les coefficients économiques et techniques sont indépendants des valeurs
des variables, alors le problème peut être formalisé à l’aide d’un programme linéaire.
Un même programme peut être traduit sous une forme canonique ou sous une forme standard ; l’une et
l’autre pouvant adopter soit la notation algébrique classique soit la notation matricielle que l’on ne traitera
pas ici.

Voyons tout d’abord la forme canonique. Elle se caractérise par des contraintes présentées sous la forme
d’inéquations telles que



 x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0
a11 x1 + a12 x2 + . . . + a1n xn ≤ ou ≥ ou = b1



 ..



.

 ai1 x1 + ai2 x2 + . . . + ain xn ≤ ou ≥ ou = bi



 .
..


am1 x1 + am2 x2 + . . . + amn xn ≤ ou ≥ ou = bm

Méthode graphique 11

et par une forme linéaire

Z = c1 x 1 + c2 x 2 + . . . + cn xn

Résoudre le programme linéaire consiste à déterminer les n-uplets (x1 , x2 , . . . , xn ) qui optimisent Z (maxi-
misent ou minimisent) Z ou à montrer que de tels n-uplets n’existent pas.

On se donne les définitions suivantes :

Définition/.:2.1
vérifiant le système d’inéquations précédent.
– On appelle solution réalisable tout n-uplet (x1 , x2 , . . . , xn )
– On appelle solution optimale toute solution réalisable qui optimise Z.
– On appelle fonction objectif la forme linéaire
Z = c 1 x1 + c 2 x 2 + . . . + c n x n
– L’ensemble des solutions réalisables du programme linéaire P est appelé domaine des solutions
réalisables. Lorsque ce domaine est non vide, on dit que P est réalisable.

Résoudre un programme linéaire consiste à déterminer les valeurs des variables qui permettent d’optimiser
la fonction économique.
Il existe diverses techniques de résolution parmi lesquelles la méthode graphique se montre à l’évidence
la plus rapide et la plus simple mais aussi la plus limitée, car dès lors que le nombre de variables ou de
contraintes dépasse 2, elle devient impraticable. C’est pourquoi divers chercheurs se sont efforcés de mettre
au point une méthode de calcul algorithmique qui permet de détecter la solution optimale (si elle existe)
quel que soit le nombre des variables et des contraintes.
Bien que très efficace, cette méthode connue sous le nom d’algorithme du simplexe, exige des calculs longs
et fastidieux. C’est pourquoi ceux-ci sont de plus en plus confiés à l’outil informatique. Dès lors une question
se pose : puisque les logiciels correspondants sont largement répandus, est-il nécessaire pour appliquer la
méthode, d’en connaı̂tre les ressorts ? Deux raisons essentielles justifient une réponse affirmative :
– d’abord, la compréhension des principes de résolution est une aide précieuse pour, en amont, analyser
et formaliser le problème et pour, en aval, interpréter et exploiter la solution obtenue ;
– ensuite parce que la démarche algorithmique présente en elle-même un intérêt formateur non négligeable.

3 Méthode graphique : problème à deux inconnues


3.1 Régionnement du plan
Le régionnement du plan revient à étudier le signe de ax + by + c avec (a, b) 6= (0, 0).

Si on considère la droite D dont une équation est ax + by + c = 0 avec a 6= 0 ou b 6= 0, cette droite


partage le plan en deux demi-plans (I) et (II) de frontière D :

– Pour tout point M (x, y) situé sur D, on a ax + by + c = 0 .


– Pour tous les points M (x, y) situés dans le demi-plan (I), ax+by+c a le même signe et si ax+by+c > 0
(respectivement < 0) alors tous les points N (x, y) situés dans le demi-plan (II) vérifient ax+by +c < 0
(respectivement > 0).
Méthode graphique 12

Exemple

– Signe de x + y − 1 :

On trace la droite d’équation x + y − 1 = 0. À l’origine, x + y − 1 = (0) + (0) − 1 = −1 < 0 donc pour


tous les points M (x, y) situés dans le demi-plan (II), x + y − 1 < 0 et pour tous les points N (x, y)
situés dans le demi-plan (I), x + y − 1 > 0. Pour les points P (x, y) de la droite D, x + y − 1 prend la
valeur 0.

– Signe de −x + y :
On trace la droite D d’équation −x + y = 0, cette droite contient l’origine du repère. Pour le point
A(1, 0), x − y = 1 > 0 donc pour tous les points M (x, y) situés dans le demi-plan (I), x − y > 0 et
pour tous les points N (x, y) situés dans le demi-plan (II), x − y < 0. Pour les points P (x, y) de la
droie D, x − y prend la valeur 0.

La construction de la région réalisable

L’intersection de tous les demi-plans correspondant aux contraintes


constitue l’ensemble des points réalisables : ce sont les solutions communes à toutes
les contraintes. Cet ensemble correspond à une région D du plan et est souvent
appelée région réalisable. Cette région est parfois vide ou non borné.

y y

D
D

o x o x

Région borné Région non borné


Méthode graphique 13

La recherche d’une solution optimale

Nous venons de construire la région réalisable d’un programme linéaire à deux


variable. Cet ensemble contient un nombre infini de solutions réalisables. Il reste à
repérer, parmi ces solutions réalisables celle(s) qui donne(nt) à z la meilleur valeur.
En fixant z à une valeur p choisie arbitrairement, on obtient la droite :

(Dp ) a0 x1 + b0 x2 = p

Cette droite est appelé droite d’iso-valeur de fonction z. Elle représente les points
du plan qui donnent à z la valeur p.
On s’intéresse à la famille des droites (Dp ) (p paramètre). Ce sont toutes des droites
a
parallèles de pente : − , que l’on peut écrire :
b
a0 p
x2 = − x1 + (si b0 6= 0).
b0 b0
p
Ici yp = est l’ordonnée à l’origine de la droite (Dp ). Ainsi, on a :
b0

Si b0 > 0 alors p1 < p2 ⇐⇒ yp1 < yp2

Si b0 < 0 alors p1 < p2 ⇐⇒ yp1 > yp2

— Si b0 > 0, maximiser z revient à maximizer p et donc yp . Donc le maximum


de z est obtenu pour la droite ayant au moins un point commun avec la région
réalisable et ayant une ordonnée à l’origine la plus élevée possible.

y sens des z croissants y sens des z croissants

D
B
D D

A
C
o x o x

Cas b0 > 0 et a0 > 0 Cas b0 > 0 et a0 < 0

— Si b0 < 0, maximiser z revient à maximizer p et donc à minimiser yp . Donc, le


maximum de z est obtenu pour la droite ayant au moins un point commun avec
la région réalisable et ayant une ordonnée à l’origine la plus basse possible.
Méthode graphique 14

y sens des z croissants y sens des z croissants

D
B
D D

A
C
o x o x

Cas b0 < 0 et a0 > 0 Cas b0 < 0 et a0 < 0

Tous les points sur une même droite assurent la même valeur pour z. Quand on
passe d’une droite à une autre, les valeur de z varient : ils augmentent si on se
déplace dans le sens du vecteur normal − →n (a0 , b0 ) au droites iso-valeurs : d’où la
signification de la flèche indiquant le « sens des z croissants ».

Exemple résolu par voie graphique


Problème de maximisation

La direction d’une usine de meubles a constaté qu’il y a des temps


morts dans chacun des départements de l’usine. Pour remédier à
cette situation, elle décide d’utiliser ces temps morts pour fabri-
quer deux nouveaux modèles de bureaux, M1 et M2 . Les temps de
réalisation pour chacun de ces modèles dans les ateliers de sciage,
d’assemblage et de sablage ainsi que les temps libres dans chacun
de ces ateliers sont donnés dans le tableau ci-dessous. Ces temps
représentent le nombre d’heures nécessaires à un homme pour ef-
fectuer le travail. Les profits que la compagnie peut réaliser pour
chacun de ces modèles sont de Fr. 300.- pour M1 et de Fr. 200.-
pour M2 .

M1 M2 Temps libres
Sciage 1 2 20
Assemblage 2 1 22
Sablage 1 1 12

La direction désire déterminer combien de bureaux de chaque mo-


dèle elle doit fabriquer pour maximiser son profit.

Solution: Posons x1 le nombre de bureaux du modèle M1 et x2 le nombre


de bureaux du modèle M2 . Les temps libres de chaque département
imposent des contraintes qu’il faut respecter. La contrainte imposée
par les temps libres à l’atelier de sciage :

x1 ` 2x2 ď 20
Méthode graphique 15

les autres contraintes sont :

2x1 ` x2 ď 22
x1 ` x2 ď 12

Il s’ajoute à ces contraintes des contraintes de non-négativité


puisque le nombre de bureaux ne peut être négatif, on a donc :

x1 ě 0 et x2 ě 0

Graphiquement les solutions réalisables sont les points du polygone


convexe de la figure suivante :
x2
12
2x 1
x1
`

`x
x2

10

2
12

“2

8
2

4 x1
`2
x2
2 “2
0
x1
2 4 6 8 10 12 14 16 18 20 22

La direction veut maximiser son profit, c’est-à-dire maximiser la


fonction :
f px1 ; x2 q “ 300x1 ` 200x2
Pour chacune de ces solutions, c’est-à-dire pour chacun des points
du polygone convexe, la compagnie fera un profit positif. Si la com-
pagnie fabrique trois exemplaires du modèle M1 et deux exemplaires
du modèle M2 , le profit sera :

f p3 ; 2q “ 300 ¨ 3 ` 200 ¨ 2 “ 1300 (Fr.)

Il ne saurait être question de calculer le profit réalisable pour chacun


des points du polygone convexe. Pour avoir une vision globale du
problème, représentons le profit réalisé par le paramètre p. On a :

300x1 ` 200x2 “ p
qui représente une famille de droites parallèles. En isolant x2 , on
obtient :
300x1 p
x2 “ ´ `
200 200
3 p
x2 “ ´ x1 `
2 200

Il s’agit donc d’une famille de droites de pente ´3{2 et dont l’ordon-


née à l’origine est p{200. Parmi les droites de cette famille, seules
Méthode graphique 16

celles ayant des points communs avec le polygone convexe nous inté-
ressent. La fonction f px1 ; x2 q atteindra sa valeur maximale lorsque
l’ordonnée à l’origine p{200 de la droite :

3 p
x2 “ ´ x1 `
2 200
atteindra sa valeur maximum tout en passant par au moins un des
points du polygone convexe.

x2
12
2x 1
x1
`

`x
x2

10

2
12

“2
8
2

4 x1
`2
x2
2 “2
0
x1
2 4 6 8 10 12 14 16 18 20 22

Graphiquement on constate que la droite respectant ces conditions


semble être la droite de la famille passant par le point-sommet
p10 ; 2q. Le profit est alors :

f p10 ; 2q “ 300 ¨ 10 ` 200 ¨ 2 “ 3400 (Fr.)

Il reste à s’assurer algébriquement des coordonnées du point-


sommet en résolvant le système :
#
2x1 ` x2 “ 22 x1 “ 10
"
ñ
x1 ` x2 “ 12 x2 “ 2

Problème de minimisation

Une entreprise a besoin de trois matières premières A, B et C pour fabriquer un


produit. Il lui faut au moins 14 kg de A, 12 kg de B et 18 kg de C. Il ne peut acheter
que les mélanges X et Y . Le produit X contient 2 kg de A, 1 kg de B et 1 kg de C.
Le produit Y contient 1 kg de A, 1 kg de B et 3 kg de C. Le produit X coûte 20 dh et
Y coûte 40 dh. Par ailleurs il ne peut pas acheter plus de 14 kg deX et 16 kg de Y
La question qui se pose est la suivante : "Quelle quantité de X et Y doit-on acheter
pour répondre aux besoins de l’entreprise au moindre coût ?"

Solution:
Appelons x1 et x2 les quantités de X et Y à acheter. On obtient aisément le
programme linéaire suivant :
Méthode graphique 17



 Min z = 20x1 + 40x2 (O)





 2x1 + x2 > 14 (A)




 x1 + x2 > 12 (B)
(P) x1 + 3x2 > 18 (C)





 x1 6 14 (L)



 x2 6 16 (K)


 x1 , x 2 > 0

Les contraintes (A), (B) et (C) s’écrivent « > » parce qu’il faut respecter les besoins
minimaux en matières premières, mais ceux-ci peuvent être dépassées.
Ce programme diffère du programme précédent sous 2 aspects : la fonction
économique s’est à minimiser ; certaines contraintes sont de signe « > » et l’origine
O = (0, 0) du plan n’est pas une solution réalisable.
La technique de résolution graphique reste la même, mais, puisqu’il s’agit de la
recherche d’un minimum, la droite iso-valeur le plus proche de l’origine et qui reste
en contact avec la région réalisable, fournit le minimum.
En premier temps, nous construisons la région réalisable. La zone hachurée dans le
graphe ci-dessous est l’ensemble des points satisfaisant à toutes les contraintes.

x2 x2

16 16
14 (K) 14
12 (A) (L) 12
10 10 D
8 8
6 (B) 6
(C)
4 4
2 2

0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
repérage des bons côtés région réalisable

Le polyèdre ABCDEF, qui constitue la région réalisable, est reproduit a la figure


suivante, accompagné des droites isocoûts z = 0, z = 100 et z = 440. Comme
l’objectif est de minimiser z, l’optimum s’atteint en cherchant la droite d’isocoût la
plus basse possible qui touche la région réalisable D.
Méthode graphique 18

x2 x2

E F E F
D D
12 12
10 D 10 D
C C
8 8
6 6
4 4
2 B 2 B
A A

0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
isocoûts z = 0, z = 200 et z = 440. le sommet B correspond à la solution optimale

Le graphique indique le sommet B=(9,3) comme le point où s’obtient la solution


optimale recherchée. Le coût au point B est inférieur à celui qui correspond à tous
les autres sommets de la région réalisable. On confirme ce résultat en évaluant la
fonction économique en chacun des sommets voisins à B :

en A = (14, 1) z = (20 × 14) + (40 × 1) = 320


en B = (9, 3) z = (20 × 9) + (40 × 3) = 300
en C = (2, 10) z = (20 × 2) + (40 × 10) = 440

Supposons que le coût du produit X augmente de 20 dh. La fonction économique


devient :
Min z = 40x1 + 40x2
Cherchons la valeur minimale de z graphiquement. On obtient
x2 x2

E F E F
D D
12 12
10 D 10 D
C C
8 8
6 6
4 4
2 B 2 B
A A

0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
isocoûts parallèles à une contrainte solutions optimales multiples

Comme la droite d’isocoût la plus basse possible est tangente à la contrainte (B), la
valeur minimale serait attente aux sommets B(9, 3) et C(2, 10). De plus, tout point
du segment [B, C] minimisera la fonction économique sous les contraintes posées.
Cette multiplicité des solutions optimales provient du fait que les droites d’isocoûts
sont parallèles à la droite associée à la contrainte (B).
Méthode graphique 19

Exercices

En utilisant la méthode graphique, déterminer dans chaque c


solution (valeurs des variables et de la fonction économique).

b) Maximiser
a) Maximiser
f px1 ; x2 q “ 4x1 ` 4x2
f px1 ; x2 q “ 3x1 ` 3x2
avec les contraintes :
avec les contraintes :
x1 ` x2 ď 13
$
& x1 ` 4x2 ď 12
$ ’
5x1 ` 2x2 ď 50

&
2x1 ` x2 ď 10
4x1 ` 5x2 ď 60
où xi ě 0 pour i “ 1; 2
% ’
où xi ě 0 pour i “ 1; 2

%

c) Maximiser d) Minimiser
f px1 ; x2 q “ 3x1 ` 4x2 f px1 ; x2 q “ 5x1 ` 7x2

avec les contraintes : avec les contraintes :


x1 ` 2x2 ď 18 x1 ` 2x2 ě 8
$ $
’ ’
& x1 ` x2 ď 10 2x1 ` x2 ě 8

’ ’
&

3x1 ` x2 ď 20 ’ x1 ` x2 ě 6
4x1 ` x2 ď 26 où xi ě 0 pour i “ 1; 2
’ ’
%



où xi ě 0 pour i “ 1; 2
%

e) Minimiser
f px1 ; x2 q “ 2x1 ` 3x2

avec les contraintes :


x1 ` 3x2 ě 12
$

5x1 ` x2 ě 12

&
’ 3x 1 ` 4x2 ě 31
où xi ě 0 pour i “ 1; 2

%
Algorithme du simplexe : Méthode algébrique 20

4 - Algorithme du simplexe : Méthode algébrique


Pour résoudre des problèmes de programmation linéaire ayant un
nombre de variables (principales) supérieur à trois, nous devons
obligatoirement faire appel à une autre méthode de résolution que
celle déjà étudiée. Toutefois, avant d’aborder la méthode du simplexe
comme technique de résolution d’un problème de programmation li-
néaire, vous découvrirez dans cette partie une version modifiée - la
méthode algébrique - qui permettra d’étudier les différentes étapes
à franchir pour arriver à une solution optimale.

1. Principe de l’algorithme
Lorsqu’on considère un programme linéaire ayant plus de 2 variables, la résolution
graphique devient difficile, mais les propriétés restent les mêmes. Si la fonction
objectif peut avoir une valeur optimale dans la région réalisable, celle-ci se trouve
en un des sommets de la région réalisable. Pour atteindre la valeur optimale, seuls
les sommets doivent donc être examinés.
On pourrait donc en déduire qu’il suffit de calculer la valeur de la fonction objectif
à chaque sommet et de choisir finalement la plus grande de ces valeurs ; mais cette
approche est impraticable pour les grands programmes : un programme de 100
variables et 10 contraintes, qui est un programme de taille moyenne, sinon faible,
aurait déjà plus de 1 730 milliards de sommets!
Une procédure "intelligente" est donc nécessaire : l’algorithme du simplexe utilise
une procédure itérative qui permet de trouver la valeur optimale ou, à défaut, met
en évidence que la région réalisable est vide.
Le principe de l’algorithme du simplexe est le suivant :

Phase I : procédure d’initialisation


Déterminer un premier sommet de la région réalisable D. Si cette procédure
échoue, cela signifie que la région réalisable D est vide ;
Phase II : procédure itérative
Passer d’un sommet de D à un autre sommet voisin de D, de façon à améliorer
chaque fois la valeur de la fonction objectif. Ce nouveau sommet sera voisin au
précédent en ce sens qu’ils seront les deux extrémités d’une arête de D ;
Test d’arrêt : procédure d’arrêt
Deux tests d’arrêt permettent de savoir si l’on doit arrêter le calcul, parce qu’on a
atteint une solution optimale ou parce qu’il n’existe pas de de solution optimale
finie, ou si l’on doit passer vers un nouveau sommet.

Soit le programme linéaire de maximisation sous la forme standard



 Max z = cx

 Ax = b

x>0
Algorithme du simplexe : Méthode algébrique 21

avec A de type (m, n) et de rang m, x de type (1, n) et b de type (m, 1).


Nous décrirons le déroulement de la méthode du simplexe en l’appliquant au
modèle de fabrication des chassis (FC) introduit au chapitre 2. Rappelons qu’après
l’ajout d’une variable d’écart dans chaque contrainte réelles, le programme (FC) se
réécrit sous la forme


 Max z = 300x1 + 500x2



 x1 + x3 = 4

(FC) 2x2 + x4 = 12



 3x1 + 2x2 + x5 = 18



x1 , x2 , x 2 , x 4 , x 5 > 0

2. Caractérisation algébrique des sommets

Les sommets ont été définis géométriquement. Il faut transcrire cette définition en
termes algébriques pour décrire notre procédure. Pour effectuer cette description, il
faut que le programme linéaire soit sous la forme standard.
Soit B une sous matrice de A qui est carrée inversible d’ordre m. Nous dirons que
B est une base.
Soit B une base. Alors en permutant les colonnes de A, on peut toujours mettre A
sous la forme :
¡ ¢
A= B H

où H est la sous-matrice formée par les colonnes de A qui ne sont pas dans la base.
De même on peut partitionner x en (xB xH )t et c en (cB cH )t , on peut écrire

Max z = cB xB + cH xH
BxB + HxH = b (∗)
x>0

Les m composantes de xB sont appelées variables de base. Les n − m composantes


de xH sont appelées variables hors base.
La solution du système Ax = b obtenue en posant xH est appelée la solution de
base associée à la base B. Cette solution de base est donc

xB = B−1 b
xH = 0

Lorsque les variables de base sont positifs (xB > 0), la solution de base est réalisable
et appartient à D. Par extension, la base B sera dite base réalisable. Une solution de
base est dite dégénérée si au moins une variable de base est nulle.

Propriété fondamentale

Le programme linéaire étant mis sous forme standard, chaque sommet de la


région réalisable correspond à une et une seule solution de base réalisable
et inversement.
Algorithme du simplexe : Méthode algébrique 22

On peut vérifier cette propriété sur l’exemple de fabrication des chassis (FC) dont la
représentation graphique est donnée à la figure suivante. A la figure, les sommets
(0, 0), (0, 6), (2, 6), (4, 3), (4, 0) correspondent à des solutions de base réalisables
tandis que les points (0, 9), (4, 6) et (6, 0) correspondent à des solutions de base non
réalisables ; comme le montre le tableau suivant
(1)
x2
(0, 9)
var. de base (x1 , x2 ) sol. de base
8 x3 , x 4 , x 5 (0, 0) (4, 12, 18)
(2, 6) (4, 6) x2 , x 3 , x 5 (0, 6) (6, 4, 6)
(0, 6) x2 , x 3 , x 4 (0, 9) (9, 4, −6)
(2)
x1 , x 2 , x 3 (2, 6) (2, 6, 2)
4
(4, 3) x1 , x 2 , x 5 (4, 6) (4, 6, −6)
2 (3) x1 , x 2 , x 4 (4, 3) (4, 3, 6)
x1 , x 4 , x 5 (4, 0) (4, 6, 6)
(0, 0)
2 (4, 0) (6, 0) 8 x1 x1 , x 3 , x 4 (6, 0) (6, −2, 12)
Correspondance entre solution de base réalisable et sommet

On appelle solutions de base adjacentes deux solutions de base dont les variables
de base sont les mêmes sauf une qui est de base dans la première base et hors base
dans la seconde.
Dans l’exemple (FC), les deux solutions de base suivantes sont adjacentes :

(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18), (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6)

car elles ne diffèrent que par une seule variable hors base. Par contre les solutions
suivantes :

(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18), (x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0)

ne sont pas adjacentes puisqu’elles diffèrent pas plus d’une variable hors base.

3. Illustration de l’algorithme

Nous allons maintenant voir commet effectuer les procédures de l’algorithme du


simplexe en utilisant uniquement l’algèbre.

3.1. Initialisation de l’algorithme

La question qui se pose est : "Commet choisir le point de départ ?"


Si les contraintes sont mis sous forme d’inégalités Ax 6 b avec b > 0, il suffit de
prendre l’origine comme point de départ. Dans l’exemple (FC), cela donne :

(x1 , x2 ) = (0, 0)

En termes algébriques, toutes les variables de décision (originales) sont mises hors
base. Automatiquement, dans le systèmes d’égalités :
Algorithme du simplexe : Méthode algébrique 23



 x1 + x3 = 4
2x2 + x4 = 12


3x1 + 2x2 + x5 = 18

on lit la valeur des variables de base :

x3 = 4, x4 = 12, x5 = 18.

D’où la solution de base réalisable de départ :

(0, 0, 4, 12, 18)

Notons que si une composante du second membre b avait été négatif ou si une
contrainte avait été sous forme d’égalité, on aurait pas pu démarrer ainsi. Ces
embûches peuvent être levées en passant par une phase préliminaire appelée phase I
de l’algorithme du simplexe.
Que vaut la fonction objectif pour cette première solution de base ?

z = 300x1 + 500x2 = 300 × 0 + 500 × 0

c’est-à-dire un bénéfice nulle, ce qui n’est pas étonnant. Cette solution correspond
au plan de production : on ne produit rien, on n’utilise aucune ressource et on ne
gagne rien.
La formulation de l’exemple (FC), sous la forme standard, permet d’exprimer
facilement chaque variable d’écart (ici variable de base) ainsi que la fonction objectif
z comme fonctions affines des variables de décision seulement (ici variables hors
base) :
x3 = 4 − x1
x4 = 12 − 2x2
(Dic 1)
x5 = 18 − 3x1 − 2x2
z = 300x1 + 500x2

Le tableau ci-dessus est appelé un dictionnaire. La solution de base de départ peut


être résumée ainsi :
— variables hors-base : x1 = 0, x2 = 0 ;
— variables de base : x3 = 4, x4 = 12, x5 = 18 ;
— la valeur de la fonction objectif : z = 0.

3.2. Passage d’un sommet à un autre

La phase II de l’algorithme du simplexe consiste à passer d’un sommet à un sommet


adjacent de façon à améliorer chaque fois la fonction objectif z. Algèbriquement,
cette opération correspond à un changement de base : la nouvelle base ne diffère de
l’ancienne base que par une seule variable. On va donc se déplacer à partir de notre
solution de base de départ vers une autre solution de base réalisable en suivant une
arête le long de laquelle la valeur de z augmente.
Algorithme du simplexe : Méthode algébrique 24

Choix de la variable entrante

La question qui se pose est alors : commet choisir une arête le long de laquelle la
valeur de z va augmenter ? Algèbriquement, cette question se formule de manière
équivalente par : qu’elle variable hors base va entrer en base ?
On a :
z = 300x1 + 500x2

Pour obtenir une meilleure solution, il suffit de faire passer l’une des deux variables
x1 ou x2 de la valeur zéro à une valeur positive. Il est donc préférable de choisir
x2 qui vaut 500 par unité alors que x1 ne vaut que 300. On peut ainsi espérer
aller "plus vite" vers la solution optimale. Par contre la valeur de x1 restera nulle.
Économiquement, on va donc produire des chassis de type 2 et toujours pas des
chassis de type 1.

Le critère de sélection de la variable entrante est donc le suivant : on choisit


la variable avec le coefficient positif (de la fonction objectif) le plus élevé.

Notons que pour pouvoir appliquer ce critère simple (le choix de la variable
entrante), la fonction objectif z doit être exprimée en fonction des seules variables
hors base.
Choix de la variable sortante

On peut à présent se poser les deux questions suivantes :


a) jusqu’où peut-on augmenter la valeur de x2 ?
b) quelle variable de base doit-elle sortir, c’est-à-dire doit-elle devenir hors base ?
(Noter que le nombre des variables de base doit toujours être exactement égal à m,
c’est-à-dire 3 dans notre exemple)
En supposant que x1 reste hors base (et donc égal à 0) dans (Dic 1), on obtient les
variations des variables de base en fonction de x2 :

x3 = 4 (C1)
x4 = 12 − 2x2 (C2)
x5 = 18 − 2x2 (C3)
Mais pour conserver une solution réalisable et ne pas quitter la région réalisable, il
faut aussi que les composantes restent positifs. Nous devons avoir x3 > 0, x4 > 0 et
x5 > 0. En fait :

x3 = 4 >0 12
x2 6 =6
ou encore 2
x4 = 12 − 2x2 > 0
18
x5 = 18 − 2x2 > 0 x2 6 =9
2
La contrainte (C1) ne place aucune restriction sur l’augmentation de x2 car elle ne
contient pas x2 . Au total, la contrainte la plus restrictive pour x2 est (C2). Il faut
donc s’arrêter à la valeur x2 = 6 (c’est une réponse à la question a) pour la quelle
la variable x4 dévient nulle et aller au delà conduirait à la rendre négative. Donc,
Algorithme du simplexe : Méthode algébrique 25

on peut supposer que x4 est à présent hors base (c’est une réponse à la question b).
On en conclut que la variable sortante est x4 , c’est-à-dire la première qui s’annule
lorsque x2 s’accroît à partir de 0.

On effectue les rapports des seconds membres des contraintes aux


coefficients correspondants de la variable entrente. La variable sortante
correspond au plus petit rapport positif.

Géometriquement, en partant du sommet (0, 0) de la région réalisable D, on se


déplace sur une arête de D (l’axe des x2 ). Lorsque la variable d’écart x4 devient
nulle, cela veut dire qu’on a rencontré la droite associée à la deuxième contrainte.
On arrive alors dans un nouveau sommet, à l’intersection des hyperplans x1 = 0 et
x4 = 0 (dans R5 ) c’est-à-dire l’intersection des droite x1 = 0 et x2 = 6 (dans R2 )

x2
(2, 6)
(0, 6)

(4, 3)

(0, 0)
(4, 0) x1

le cheminement du sommet initial vers le nouveau sommet

Calcul du nouveau sommet

La question qui se pose est : commet calculer la nouvelle solution de base ?


On va y répondre en utilisant la résolution des systèmes. Plus précisément, on va
faire un changement de dictionnaire en échangeant les rôles des x2 et x4 . On utilise la
deuxième équation du (Dic 1) pour exprimer x2 en fonction des nouvelles variables
hors base, x1 et x4 :
1
x2 = 6 − x4
2
On remplace ensuite x2 par cette expression dans les autres équations du
dictionnaire :
x3 = 4 − x1
1
x2 = 6 − x4
2 (Dic 2)
x5 = 6 − 3x1 + x4
z = 3000 + 300x1 − 250x4

La première itération est terminée. La deuxième solution de base peut être résumée
ainsi :
Algorithme du simplexe : Méthode algébrique 26

— variables hors-base : x1 = 0, x4 = 0 ;
— variables de base : x2 = 6, x3 = 4, x5 = 6 ;
— la valeur de la fonction objectif : z = 3000.
Elle correspond au sommet (0, 6) de la région réalisable. Économiquement, cette
solution définit un plan de production beaucoup plus intéressant : on fabrique 6
chassis du type 2 (x2 = 2) en consommant entièrement la capacité de production de
l’atelier 2 et x5 = 6 unités de la capacité de production de l’atelier 3. La capacité de
fabrication de l’atelier 1 n’est pas encore utilisé (x3 = 4). Le profit est z = 3000.
Test d’arrêt

La question qui se pose maintenant est : commet savoir le fait que la solution
optimale est trouvée ?
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
inférieures ou égales à la fonction objectif. Comment peut-on savoir s’il existe encore
un sommet adjacent profitable ?
Pour répondre à cette question, nous allons examiner la nouvelle expression de la
fonction z. La dernière équation du dictionnaire (Dic 2) :

z = 3000 + 300x1 − 250x2

Comme x1 a un coefficient positif, il est intéressant de faire entrer x1 en base, ce qui


entraîne une deuxième itération.

Le critère d’arrêt sera donc le suivant : la solution de base courante est


optimale si tous les coefficients de la fonction objectif z sont négatifs ou nuls
lorsque z est exprimée en fonction des seuls variables hors base.

Deuxième itération

Au vu de
z = 3000 + 300x1 − 250x2
on sélectionne donc pour la variable entrante x1 . En effet, c’est la variable ayant le
plus grand coefficient positif, et d’ailleurs la seule possible.
Pour déterminer la variable sortante, étudions la variation des variables de base en
fonction d’une augmentation de x1 . On a les limites suivantes :

x3 = 4 − x1 > 0 x1 6 6
x2 = 6 >0 ou encore
x5 = 6 − 3x1 > 0 x1 6 2

La variable sortante est x5 , c’est elle qui est la première à s’annuler (pour x1 = 2).
Pour calculer le nouveau sommet, on utilise la troisième équation du (Dic 2) pour
exprimer x2 en fonction des nouvelles variables hors base, x5 et x4 :
1 1
x1 = 2 − x5 + x4
3 3
Algorithme du simplexe : Méthode algébrique 27

On remplace ensuite x1 par cette expression dans les autres équations du


dictionnaire :

1 1
x3 = 2 − x5 + x4
3 3
1
x2 = 6 − x4
2 (Dic 3)
1 1
x1 = 2 − x5 + x4
3 3
z = 3600 − 100x5 − 150x4

La deuxième itération est terminée. La troisième solution de base peut être résumée
ainsi :
— variables hors-base : x4 = 0, x5 = 0 ;
— variables de base : x1 = 2, x2 = 6, x3 = 2 ;
— la valeur de la fonction objectif : z = 3600.

Elle correspond au sommet (2, 6) de la région réalisable. Économiquement, cette


solution définit le plan de production suivant : on fabrique 2 chassis du type 1 et
6 chassis du type 2 en consommant entièrement les capacités de production des
ateliers 2 et 3. Le profit est z = 3600.
x2
(2, 6)
(0, 6)

(4, 3)

(0, 0)
(4, 0) x1

le cheminement du sommet (0, 6) vers le sommet (2, 6)

Tous les coefficients de la dernière ligne, dans (Dic 3), sont négatifs :

z = 3600 − 100x5 − 150x4

Faire « entrer » x5 ou x4 diminuera la valeur de z. Il n’est plus possible d’améliorer


z. La solution courant
x∗1 = 2, x∗2 = 6

est optimale et donne la valeur maximal à la fonction objectif : z ∗ = 3600.


Algorithme du simplexe : Méthode algébrique 28

4. Algorithme du simplexe
Étape 0. Initialisation

• Écrire le programme linéaire sous standard : Ajouter les variables d’écart.

• Définir une solution de base de départ ; préciser les variables de base et les
variables hors base de cette solution. Généralement, les variables d’écart sont
pris comme variables de base et les variables de décision comme variables hors
base.

Étape 1. Choix de la variable entrante

• Exprimer la fonction objectif z en fonction des seules variables hors base. Puis
choisir comme variable entrante la variable hors base affectée du coefficient
positif le plus élevé.

• Si tous les coefficients de z sont négatifs ou nuls, l’algorithme s’arrête. La


solution courante est optimale.

• Sinon, soit r l’indice de cette variable entrante.

Étape 2. Choix de la variable sortante

• La variable sortante est la première à s’annuler lorsque xr augmente : c’est


celle pour laquelle le minimum est atteint dans :
½ ¾
bs bi
= min : asr > 0, i = 1, . . . , m
asr air

s est l’indice de la ligne correspondante.

• Si tous les asr sont inférieurs à 0, alors la solution est non borné.

Étape 3. Calcul de la nouvelle solution de base

• Utiliser l’équation relative à la variable xs pour exprimer xr en fonction de xs


et les autres variables qui vont rester dans la base.

• Éliminer xr des autres équations en la remplaçant par son expression.

• Retour à l’Étape 1.

5. Application

5.1. Énonce du problème

Une entreprise fabrique quatre produits. La fabrication de chaque produit nécessite


une certaine quantité de ressources. Les ressources consommées, les stocks des
ressources et les bénéfices des produits sont récapitulés dans le tableau suivant :
Algorithme du simplexe : Méthode algébrique 29

Produit 1 Produit 2 Produit 3 Produit 4 Stock


Ressource A 2 4 5 7 42
Ressource B 1 1 2 2 17
Ressource C 1 2 3 3 24
Bénéfice 7 9 18 17

On souhaite établir un plan de production de façon à maximiser le chiffre d’affaires.

5.2. Formulation mathématique

La forme standard, exigée par l’algorithme du simplexe, ne correspond pas en


général à l’écriture spontanée des modèles économiques où les contraintes ont le
plus souvent la forme d’inégalités. C’est pourquoi la forme la plus naturelle est
plutôt la forme standard.
Appelant x1 ; x2 ; x3 ; x4 les quantités respectives de produits 1, 2, 3, 4, le problème
admet la modélisation suivante :

Max z = 7x1 + 9x2 + 18x3 + 17x4


2x1 + 4x2 + 5x3 + 7x4 6 42
x1 + x2 + 2x3 + 2x4 6 17
x1 + 2x2 + 3x3 + 3x4 6 24
x1 , x 2 , x3 , x4 > 0

Afin de ramener le programme sous forme standard, on introduit trois variables


d’écart x5 , x6 et x7 , qui mesurent pour chaque ressource l’écart entre la quantité
initialement disponible et la quantité consommée par le plan de fabrication donné
par les variables de décision x1 , x2 , x3 et x4 . On obtient :

Max z = 7x1 + 9x2 + 18x3 + 17x4


2x1 + 4x2 + 5x3 + 7x4 + x5 = 42
x1 + x2 + 2x3 + 2x4 + x6 = 17
x1 + 2x2 + 3x3 + 3x4 + x7 = 24
x1 , x 2 , x3 , x4 , x 5 , x 6 , x7 > 0

5.3. Dictionnaire initial

La formulation standard précédente nous permet d’exprimer facilement les


variables d’écart comme fonctions affines des variables de décision :

x5 = 42 − 2x1 − 4x2 − 5x3 − 7x4


x6 = 17 − x1 − x2 − 2x3 − 2x4
(Dic 1)
x7 = 24 − x1 − 2x2 − 3x3 − 3x4
z = 7x1 + 9x2 − 18x3 + 17x4

Les variables x5 , x6 , x7 sont des variables de base et x1 , x2 , x3 , x4 sont des variables


hors-base.
Algorithme du simplexe : Méthode algébrique 30

5.4. Première itération

D’après les critères d’entrée et de sortie en base,

— La variable x3 entre en base car elle a le plus grand coefficient positif dans la
dernière ligne du dictionnaire (Dic 1), qui est 18.
— La variable x7 sort de la base car elle correspond au plus petit rapport parmi les
rapports suivants :
42 17 24
= 8.4, = 8.5, = 8.
5 3 3
Nous allons faire un changement de dictionnaire en échangeant les rôles de x3 et x7 .
On utilise la troisième équation du (Dic 1) pour exprimer x3 en fonction de x1 , x2 , x4
et x7 :
1 2 1
x3 = 8 − x1 + x2 − x7 − x4
3 3 3

Reportons ensuite la valeur de x3 dans les autres équations du dictionnaire :

1 2 5
x5 = 2 −
x1 − x2 + x7 − 2x4
3 3 3
1 1 2
x6 = 1 − x1 + x2 + x7
3 3 3 (Dic 2)
1 2 1
x3 = 8 − x1 − x2 − x7 − x4
3 3 3
z = 144 + x1 − 3x2 − 6x7 − x4

Puisqu’il y a encore un coefficient positif dans la nouvelle expression de z (celui de


x1 ), nous ne sommes pas à la solution optimale.

5.5. Deuxième itération

Par un raisonnement analogue à celui de la première itération, nous déduisons que :

— La variable x1 entre en base


— La variable x6 sort de la base.

Construisons le nouveau dictionnaire :

x5 = 1 + x6 − x2 + x7 − 2x4
x1 = 3 − 3x6 + x2 + 2x7
(Dic 3)
x3 = 7 + x6 − x2 − x7 − x4
z = 147 − 3x6 − 2x2 − 4x7 − x4

Puisque tous les coefficients de la fonction objectif z sont négatifs, il n’est plus
possible d’améliorer z. La solution obtenue

x1 = 3, x2 = 0, x3 = 7, x4 = 0, x5 = 1, x 6 = x7 = 0

est optimale, et la valeur maximum de z est 147.


Algorithme du simplexe : Méthode algébrique 31

Exercice 1

Un entreprise fabrique son produit dans deux atelier. Les capacités de production sont
de 7 unités pour le premier atelier et de 10 pour le second. D’autre part, le nombre total
d’heures de main d’œuvre qu’on peut affecter à cette production est 60. Or, chaque unité
de production nécessite 10 h de main d’œuvre dans le premier atelier et 5 h dans le second.
Enfin la production doit permettre de satisfaire au moins une demande de 8. Sachant que
les coûts unitaires sont de 2 pour le premier atelier et 3 pour le second, l’entreprise désire
produire à coût minimum.
1◦ Ecrire le programme (P) correspondant. Que pensez vous a priori de la contrainte de
demande à l’optimum ?

2 Mettre (P) sous forme standard. Montrer qu’on peut définir un sommet A de la
région réalisable qui corresponde à une production maximale du second atelier sans
production du premier.

3 Résoudre (P) en partant de A et en utilisant la méthode du simplexe.

Exercice 2
On considère le programme linéaire (P) suivant :


 max z = 3x1 + 4x2 + 10x3

 x1 + 2x3 6 6

 x2 + x3 6 6


x1 > 0, x2 > 0, x3 > 0
1◦ Montrer que le point A = (0, 0, 3) est un sommet de la région réalisable.
2◦ Résoudre (P) par la méthode du simplexe en partant du sommet A.
3◦ Ayant ainsi trouvé un sommet optimal B, montrer qu’il existe un autre sommet
optimal C et le déterminer.

Exercice 3

On considère le programme linéaire (P) suivant :




 max z = 4x1 + 2x2 + x3

 x1 + x2 6 1

 x1 + x3 6 1


x1 > 0, x2 > 0, x3 > 0
1◦ Résoudre (P) par la méthode du simplexe. On parvient ainsi en un sommet A dont
on considérera toutes les bases possibles. Que pensez-vous de l’usage du critère
d’optimalité de la méthode ?
2 Dessiner en perspective, dans l’espace R3 la région réalisable. Commenter la situation

du sommet A.
Algorithme du simplexe : Méthode algébrique 32

Exercice 4 L’entreprise Simtech doit, dans son processus de fabrication de ses


produits, utiliser trois phases successives d’opération : l’usinage des
pièces, l’assemblage et la finition. Pour simplifier le problème, sup-
posons que l’entreprise fabrique trois produits que nous noterons
P1 , P2 et P3 . Les différentes phases d’opération ne peuvent toute-
fois fonctionner que pendant un certain nombre d’heures. La main-
d’œuvre actuelle limite le nombre d’heures disponibles aux valeurs
suivantes :
Usinage : 100 heures
Assemblage : 120 heures
Finition : 200 heures
Le tableau suivant nous indique les temps de fabrication requis, en
heures/unité, aux différentes phases d’opération pour fabriquer les
produits P1 , P2 et P3 .

Produits
P1 P2 P3
Usinage 1 2 1
Assemblage 3 4 2
Finition 2 6 4

Le département de compatibilité de l’entreprise a estimé aux valeurs


suivantes la contribution au bénéfice de chaque produit :

Produits Fr./unité
P1 6.-
P2 7.-
P3 8.-

De plus, on suppose qu’il n’existe aucune restriction de marché ; il


peut absorber toute la production.
Déterminer le programme optimal.

Exercice 5

1. Une usine de verre peut produire de la verre de qualité basse, moyenne ou supérieure; une
tonne de la basse qualité nécessite 3 tonnes de sables, 500gr d’additifs et 1 heure du travail
d’un ouvrier; pour les deux autres qualités, les chiffres correspondants sont (moyenne) 3.2
tonnes, 1000gr et 1,5 heures; (supérieure) 3.5 tonnes, 2500 gr et 4 heures. Les bénéfices de
la vente d’une tonne sont de 100, 200 et 300 Euros. Chaque semaine 200 tonnes de sable
et 120000 gr d’additif sont disponibles et il y a 6 ouvriers chacun travaillant au maximum
35 heures/semaine. Quelles quantités doit-on produire chaque semaine pour maximiser les
bénéfices?
On écrit x1 , x2 , x3 pour les quantités produites de chaque qualité. On veut maximiser 100x1 +
200x2 + 300x3 avec les contraintes:


 3x1 + 3.2x2 + 3.5x3 ≤ 20 (sable)
500x1 + 1000x2 + 2500x3 ≤ 120000 (additif s)
4x3 ≤ 210 (main d0 oeuvre)

 x1 + 1.5x2 +
Algorithme du simplexe : Méthode algébrique 33

(a) Lesquelles des solutions suivantes du programme de l’usine de verre sont réalisables?
i. x1 = 40, x2 = 10, x3 = 10
ii. x1 = 50, x2 = −20, x3 = 20
iii. x1 = 40, x2 = 20, x3 = 10
(b) La solution (x1 = 20, x2 = 20, x3 = 20) est-elle optimale ?

Exercice 6

3. Résoudre par la méthode du simplexe les problèmes suivants :

Maximiser 3x1 + 3x2 + 4x3


Sous les contraintes :
x1 + x2 + 2x3 ≤ 4
(1)
2x1 + 3x3 ≤ 5
2x1 + x2 + 3x3 ≤ 7
x1 , x2 , x3 ≥ 0

Maximiser 5x1 + 6x2 + 9x3 + 8x4


Sous les contraintes :
x1 + 2x2 + 3x3 + x4 ≤ 5 (2)
x1 + x2 + 2x3 + 3x4 ≤ 3
x1 , x2 , x3 , x4 ≥ 0

Maximiser 2x1 + x2
Sous les contraintes :
2x1 + 3x2 ≤ 3
x1 + 5x2 ≤ 1 (3)
2x1 + x2 ≤ 4
4x1 + x2 ≤ 5
x1 , x2 ≥ 0

Exercice 77

Un acheteur d’appartement peut combiner plusieurs prêts hypothécaires pour financer son
achat. Étant donné l’emprunt de besoins B et un horizon de mois T pour rembourser les prêts,
l’acheteur d’appartement voudrait minimiser le coût total d’achat (ou ce qui est équivalent, le
paiement mensuel p se fait pendant chacun des mois T suivants). Les règlements imposent des
limites au montant qui peut être emprunté à des certains sources. Il y a n différentes
possibilités de prêt disponibles. Le prêt i a un taux d’intérêt fixe ri, une durée Ti ≤ T et un
montant maximal à emprunter bi. Le paiement mensuel au prêt i ne nécessite pas être le même
chaque mois, mais un paiement minimal mi est nécessaire chaque mois. Cependant, le
paiement mensuel total p sur tous les prêts est constant.

Formulez un programme linéaire qui peut donner une combinaison des prêts minimisant le
coût d’achat de l’appartement. [Indication : En plus des variables xti pour le paiement au prêt i
au mois t, il peut être utile de considérer une variable pour le montant encours principal au
prêt i au mois t].
Algorithme du simplexe : Méthode algébrique 34

Exercice 8 8 Trois espèces de crabes sont pêchées dans les eaux côtières de
l’Alaska : le crabe royal (King crab), le crabe des neiges (Snow
crab), le crabe “Dungeness”, en des lieux différents, mais proches.
Des bateaux sont aménagés pour pouvoir pêcher indifféremment les
trois sortes de crabes ; pour un mois donné, dans la zone de “Cook
Inlet”, la capacité totale de pêche des bateaux est de 1’000 tonnes
de crabes.
À l’arrivée des bateaux au port, un tri doit être effectué sur la car-
gaison ce tri tient compte, suivant la période de bataille, de la taille
des carapaces des crabes, de leur qualité, etc... Aussi, après ce tri,
ne peut-on utiliser en moyenne que 80% de la quantité totale de
crabes royal pêchée, 95% de celle de crabe des neiges et 90% de
celle du crabe Dungeness. Les crabes éliminés sont perdus.
Intervient alors un conditionnement : différents points sont situés
sur la côte, celui attribué à la zone “Cook Inlet” pouvant condi-
tionner au maximum 900 tonnes de crabes au total pour le mois
considéré.
Le crabe royal est le plus demandé, mais afin de respecter un certain
équilibre entre les espèces, il a été établi que la différence entre la
quantité pêchée de crabe royal et le tonnage global des deux autres
espèces doit être inférieure ou égal à 100 tonnes.
On désire établir le plan de pêche qui maximise le bénéfice sachant
que l’on gagne 12,5 unités monétaires (u.m.) par tonne de crabes
royal pêchée et conditionnée, 8,42 u.m. par tonne pour la seconde
espèce et 7,78 u.m. par tonne pour la troisième.
Les pêcheurs connaissent les sites où ils peuvent attraper telle ou
telle sorte de crabe (qui ne se mélangent pas : en un lieu donné, on
ne rencontre pas simultanément des espèces différentes).

C’est en 1947 que George DANTZIG (mathématicien américain)


travaillant sur un projet des forces de l’air américaines, a introduit
un algorithme de calcul permettant de résoudre les problèmes de
programmation linéaire. Cette technique, connue sous le nom d’al-
gorithme du simplexe, nécessite l’utilisation d’un ordinateur pour
résoudre des problèmes de gestion et de production dans le monde
des affaires et dans celui de l’industrie.
En 1971, à l’aide de la méthode du simplexe, il a été possible de
résoudre en 2 heures et demie un problème comportant 282’468
variables et 50’215 contraintes.

George Dantzig
(1914-2005)
132 LA PROGRAMMATION LINÉAIRE

Algorithme du simplexe
Méthode des tableaux

L’algorithme du simplexe
Exemple (solution unique)
1. Enoncé
Un ébéniste fabrique des bureaux sous forme standard ou luxe. Des études de marché ont montré que
pour l’année à venir, les possibilités de vente s’élèvent à 300 unités pour le modèle luxe et à 400 unités
pour le modèle standard. L’approvisionnement en bois est suffisant pour fabriquer annuellement 500
bureaux quel que soit le type. Par ailleurs, le temps de fabrication d’un modèle luxe est le double
de celui d’un bureau de modèle standard. La capacité annuelle de fabrication est telle que, si tous
les bureaux fabriqués étaient de type standard, on pourrait en fabriquer 700 au maximum. La vente
d’un bureau sous le modèle luxe conduit à une marge unitaire sur coût variable égale à 7, celle d’un
bureau de type standard égale à 5. On se propose de rechercher le programme annuel de fabrication
conduisant au profit global maximum.

2. Mise en équation
Soit x1 le nombre de bureaux de type luxe, x2 le nombre de bureaux de type standard. Le programme
linéaire est


 x1 ≥ 0, x2 ≥ 0



 x1 ≤ 300
x2 ≤ 400


 x 1 + x2 ≤ 500
2x 1 + x2 ≤ 700




Z = 7x1 + 5x2 à maximiser

3. Domaine des solutions réalisables

4. Forme standard
On introduit les variables d’écart xi avec i ∈ {3, 4, 5, 6} positives ou nulles.


 x1 + x3 = 300
 x2 + x4 = 400


x1 + x2 + x5 = 500
2x1 + x2 + x6 = 700




Z = 7x1 + 5x2 à maximiser

LA MÉTHODE DU SIMPLEXE 133

5. Variables hors-base, variable dans la base


Une solution de base est avant tout une solution admissible ; elle satisfait l’ensemble des contraintes
et conditions de signe. Toute solution de base comporte deux catégories de variables.
– Des variables ayant une valeur prédéterminée nulle : ces variables nulles sont dites variables hors-
base (ou variables exclues). Il y a au moins autant de variables hors-base que le problème comporte
de variables réelles.
– Des variables ayant une valeur non nulle : ce sont les variables dans la base (ou variables retenues).
Leur nombre est au plus équivalent au nombre de variables d’écart.
De façon générale, si un problème comprend m contraintes et n variables réelles, pour qu’une solution
soit solution de base il faut et il suffit
– qu’elle soit solution admissible,
– qu’elle admette au moins n variables hors base et au plus m variables dans la base.
Pour amorcer l’algorithme du simplexe, il est nécessaire de connaı̂tre une solution de base.

La solution de base de départ de l’ébéniste consiste à ne rien produire : x1 = x2 = 0. Ces variables x1 , x2


qui sont nulles sont hors-base. Dans ce cas, x3 = 300, x4 = 400, x5 = 500, x6 = 700. Les variables
x3 , x4 , x5 , x6 non nulles sont dans la base. La valeur de la fonction économique est Z = 7×0+5×0 = 0.

VDB VHB
x3 x1
Notation : x4 x2
x5
x6
Tableau initial :

PP
PP VHB
PP x3 x4 x5 x6
VDB PP
P x1 x2 cste
• • • •
x3 1 0 1 0 0 0 300 x1 + x3 = 300
x4 0 1 0 1 0 0 400 x2 + x4 = 400
x5 1 1 0 0 1 0 500 x1 + x2 + x5 = 500
x6 2 1 0 0 0 1 700 2x1 + x2 + x6 = 700
Z 7 5 0 0 0 0 0 Z = 7x1 + 5x2

6. Première itération
La solution de base de départ consiste à ne rien produire soit x1 = x2 = 0. On étudie ensuite, à partir
de cette solution, jusqu’à quel niveau on peut porter x1 ou x2 conformément aux contraintes de façon
à accroı̂tre au maximum le profit. Il se pose le problème du choix de la variable x1 ou x2 qui va passer
de la valeur 0 à une valeur strictement positive. La variable choisie sera appelée variable entrante.
• Critère de sélection de la variable entrante :
Cette sélection doit s’accompagner d’une augmentation de la fonction économique
Z = 7x1 + 5x2
La sélection portera sur x1 qui par unité rapporte le plus. Cette règle est appelée règle du plus
grand gain marginal :

Le critère de sélection de Dantzig de la variable entrante consiste, dans la fonction économique exprimée
exclusivement en fonction des variables hors-base, à sélectionner la variable affectée du coefficient
strictement positif le plus élevé.

• On exprime ensuite x3 , x4 , x5 , x6 et Z en fonction des variables hors-base x1 et x2


134 LA PROGRAMMATION LINÉAIRE



 x3 = 300 − x1
 x4 = 400 − x2


x5 = 500 − x1 − x2
x = 700 − 2x1 − x2

 6



Z = 7x1 + 5x2
La variable x2 reste hors-base donc nulle, la variable x1 entre en base. On reporte x2 = 0 dans ce
système, on obtient : 

 x3 = 300 − x1
 x4 = 400


x5 = 500 − x1
 x6 = 700 − 2x1



Z = 7x1

On cherche jusqu’à quel niveau il est possible de porter x1 , de façon compatible avec les contraintes
x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0. Les contraintes de positivité donnent
x1 ≤ 300, x1 ≤ 500, x1 ≤ 350.
La valeur maximale prise par x1 est donc 300. On remplace x1 par 300 dans le système et on obtient
x3 = 0, x4 = 400, x5 = 200, x6 = 100 et Z = 2100.
La variable x3 est devenue nulle, elle est sortie de la base, x3 est appelée variable sortante. Les
variables x1 et x3 ont permuté.

On exprime le programme standard en fonction des nouvelles variables hors-base x2 , x3 :


  

 x1 + x3 = 300 
 x1 = 300 − x3 
 x1 + x3 = 300
 x2 + x4 = 400  x4 = 400 − x2  x2 + x4 = 400

 
 

x1 + x2 + x5 = 500 ⇔ x5 = 500 − (300 − x3 ) − x2 ⇔ x2 − x3 + x5 = 200
2x + x + x = 700 x = 700 − 2(300 − x ) − x x − 2x3 + x6 = 100
  
1 2 6
 6 3 2
 2

 
 

  
Z = 7x1 + 5x2 Z = 7(300 − x3 ) + 5x2 Z = 5x2 − 7x3 + 2100

On exprime ce nouveau programme à l’aide d’un second tableau. Pour l’obtenir, on remplace impérativement
dans le premier tableau la variable x3 par la variable x1 (x1 et x3 ont permuté) et ceci dans la colonne
”variables dans la base”.
PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste
• • • •
x1 1 0 1 0 0 0 300 x1 + x3 = 300
x4 0 1 0 1 0 0 400 x2 + x4 = 400
x5 0 1 −1 0 1 0 200 x2 − x3 + x5 = 200
x6 0 1 −2 0 0 1 100 x2 − 2x3 + x6 = 100
Z 0 5 −7 0 0 0 −2100 Z = 5x2 − 7x3 + 2100

On a pris la colonne des variables dans la base du premier tableau et on y a remplacé x3 par x1 .
Pour la fonction économique Z, le coefficient constant 2100 est affecté impérativement du signe ”−”
et on place −2100.

7. Deuxième itération
• Sélection de la variable entrante :
8.4. LA MÉTHODE DU SIMPLEXE 135

Z = 5x2 − 7x3 + 2100


On sélectionne x2 ; en effet, toute augmentation de x3 à partir de la valeur 0 provoquerait une
diminution de la fonction économique Z.
• Sélection de la variable sortante : la variable x3 reste hors-base donc nulle, on remplace x3 par 0 dans
le système précédent, on obtient x1 = 300, x4 = 400−x2 ≥ 0, x5 = 200−x2 ≥ 0 et x6 = 100−x2 ≥ 0.
Les contraintes de positivité imposent
x2 ≤ 400, x2 ≤ 200 et x2 ≤ 100.
Jusqu’à quel niveau peut-on porter x2 ? La valeur maximale prise par x2 est 100. Dans ce cas,
x1 = 300, x4 = 300, x5 = 100 et x6 = 0.
La variable sortante est x6 .

Les variables hors-base sont alors x3 et x6 , les variables dans la base sont x1 , x2 , x4 et x5 . Cette
itération conduit au sommet B(300, 100). Pour cette solution, la fonction économique prend la valeur
2600.

x2 et x6 ont permuté. On exprime les variables dans la base en fonction des nouvelles variables hors-base
x3 et x6
 

 x 1 + x 3 = 300 
 x1 = 300 − x3
 x2 + x4 = 400  x2 = 700 − 2(300 − x3 ) − x6 = 100 + 2x3 − x6

 

x1 + x2 + x5 = 500 ⇔ x4 = 400 − (100 + 2x3 − x6 )
 2x1 + x2 + x6 = 700  x5 = 500 − (300 − x3 ) − (100 + 2x3 − x6 )

 

 
Z = 7x1 + 5x2 Z = 7(300 − x3 ) + 5(100 + 2x3 − x6 )
 

Le programme linéaire se réécrit finalement :




 x1 + x3 = 300
 x2 − 2x3 + x6 = 100


2x3 + x4 − x6 = 300
x + x5 − x6 = 100

 3



Z = 2600 + 3x3 − 5x6

PP
PP VHB
PP x1 x2 x4 x5
VDB PP
P x3 x6 cste
• • • •
x1 1 0 1 0 0 0 300 x1 + x3 = 300
x4 0 0 2 1 0 −1 300 2x3 + x4 − x6 = 300
x5 0 0 1 0 1 −1 100 x3 + x5 − x6 = 100
x2 0 1 −2 0 0 1 100 x2 − 2x3 + x6 = 100
Z 0 0 3 0 0 −5 −2600 Z = 3x3 − 5x6 + 2600

On a pris la colonne des variables dans la base du second tableau et on y a remplacé x6 par x2 (ces
deux variables permutent).
Pour la fonction économique Z, le coefficient constant 2600 est affecté du signe ”−” et on place −2600.

8. Troisième itération
136 LA PROGRAMMATION LINÉAIRE

• Sélection de la variable entrante :


Z = 3x3 − 5x6 + 2600
x3 sera la variable entrante car toute augmentation de x6 entraı̂ne une diminution de la fonction
économique Z.
• Sélection de la variable sortante : on exprime les variables dans la base en fonction des variables
hors-base x3 et x6 . 

 x1 = 300 − x3
x2 = 100 + 2x3 − x6

x = 300 − 2x3 + x6
 4


x5 = 100 − x3 + x6
La variable x6 reste hors-base donc nulle, on remplace x6 par 0. On obtient x1 = 300 − x3 ≥ 0,
x2 = 100 + 2x3 ≥ 0, x4 = 300 − 2x3 ≥ 0 et x5 = 100 − x3 ≥ 0. Les contraintes de positivité donnent
x3 ≤ 300, x3 ≥ −50, x3 ≤ 150 et x3 ≤ 100.
La valeur maximale prise par x3 est 100. Pour x3 = 100, on obtient
x1 = 200, x2 = 300, x4 = 100 et x5 = 0.
La variable qui sort de la base est x5 .

Cette itération conduit au sommet C(200, 300). La valeur de la fonction économique est Z = 2900.

Les variables x3 et x5 ont permuté.

On exprime les variables dans la base en fonction des variables hors-base x5 et x6 .


 

 x3 = 100 − x5 + x6 
 x3 + x5 − x6 = 100
 x1 = 300 − (100 − x5 + x6 ) = 200 + x5 − x6  x1 − x5 + x6 = 200

 

x2 = 100 + 2(100 − x5 + x6 ) = 300 − 2x5 + x6 ⇔ x2 + 2x5 − x6 = 300
x = 300 − 2(100 − x + x ) = 100 + 2x − x x − 2x5 + x6 = 100
 
 4 5 6 5 6
 4

 

 
Z = 2600 + 3(100 − x5 + x6 ) = 2900 − 3x5 − 2x6 Z = 2900 − 3x5 − 2x6
On obtient le tableau :
PP
PP VHB
PP x1 x2 x3 x4
VDB PP
P x5 x6 cste
• • • •
x1 1 0 0 0 −1 1 200 x1 − x5 + x6 = 200
x4 0 0 0 1 −2 1 100 x4 − 2x5 + x6 = 100
x3 0 0 1 0 1 −1 100 x3 + x5 − x6 = 100
x2 0 1 0 0 2 −1 300 x2 + 2x5 − x6 = 300
Z 0 0 0 0 −3 −2 −2900 Z = 2900 − 3x5 − 2x6

On a pris la colonne des variables dans la base du troisième tableau et on y a remplacé x5 par x3 .
Pour la fonction économique Z, le coefficient constant 2900 est affecté du signe ”−” et on place −2900.
8.4. LA MÉTHODE DU SIMPLEXE 137

Conclusion :
Z = 2900 − 3x5 − 2x6 ,
x5 et x6 sont hors-base donc nulles, toute augmentation de x5 ou x6 entraı̂ne une diminution de Z. Il n’est
plus possible d’améliorer la fonction économique, la solution (x1 = 200, x2 = 300) est la solution optimale.
On interprète les résultats de la manière suivante :
. x1 = 200 bureaux de modèle luxe,
. x2 = 300 bureaux de modèle standard,
. x3 = 100, il reste une possibilité de fabriquer 100 bureaux de modèle luxe,
. x4 = 100, il reste une possibilité de fabriquer 100 bureaux de modèle standard,
. x5 = 0, tout le bois disponible est utilisé,
. x6 = 0, tout le temps disponible est utilisé.

Z est maximum pour x1 = 200, x2 = 300 et vaut 2900.

Disposition pratique des tableaux :


Afin de systématiser et de simplifier les calculs, ceux-ci peuvent être présentés sous forme de tableaux. Un
tableau correspond à une solution de base et une itération représente une modification du tableau.

– Tableau initial
PP
PP VHB
PP x3 x4 x5 x6
VDB PP
P x1 x2 cste
• • • •
x3 1 0 1 0 0 0 300
x4 0 1 0 1 0 0 400
x5 1 1 0 0 1 0 500
x6 2 1 0 0 0 1 700
Z 7 5 0 0 0 0 0

x1 = x2 = 0 représente le sommet origine et Z = 0. On a de plus, x3 = 300, x4 = 400, x5 = 500 et


x6 = 700.
On sélectionne dans la fonction économique la variable affectée du coefficient strictement positif le
plus grand. La variable x1 entre en base. Quelle est la variable sortante ?
On considère la colonne C obtenue en divisant les coefficients constants par la colonne des coefficients
de la variable x1 qui entre en base.

x1 constante C
300
x3 1 300 = 300
1
400
x4 0 400 = +∞
0
500
x5 1 500 = 500
1
700
x6 2 700 = 350
2

On sélectionne dans cette colonne le plus petit nombre strictement positif 300. La variable x3 sort
de la base. Les deux variables x1 et x3 ont permuté. Le pivot est situé à l’intersection de la colonne
variable entrante et de la ligne variable sortante et est égal à 1.
138 LA PROGRAMMATION LINÉAIRE

– Deuxième tableau :
Impérativement dans la colonne des variables dans la base du tableau initial, on remplace la variable
x3 qui sort de la base par la variable x1 qui entre en base, on recopie les autres variables d’où la
disposition du second tableau
PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste
• • • •
x1
x4
x5
x6
Z
Comment remplit-on le tableau ?
On recopie la ligne Lp du pivot (avec un pivot a = 1) dans la ligne Lx1 :

Lp 1 0 1 0 0 0 300
On doit exprimer le programme en fonction des nouvelles variables hors-base x2 et x3 .
. Pour la ligne Lx4 ,
x2 + x4 = 400.
x4 s’exprime bien en fonction de x2 et x3 . On recopie cette ligne.
. Pour la ligne Lx5 ,
x1 + x2 + x5 = 500.
Par une combinaison linéaire de la ligne Lx5 et de la ligne pivot Lp , on élimine la variable x1 qui
est entrée en base :

Lx 5 1 1 0 0 1 0 500
Lp 1 0 1 0 0 0 300
Lx 5 − L p 0 1 −1 0 1 0 200

On recopie ensuite cette nouvelle ligne Lx5 :


x2 − x3 + x5 = 200
. Pour la ligne Lx6

Lx 6 2 1 0 0 0 1 700
Lp 1 0 1 0 0 0 300
Lx6 − 2Lp 0 1 −2 0 0 1 100

On recopie cette nouvelle ligne Lx6 :


x2 − 2x3 + x6 = 100
. Pour la ligne de la fonction économique LZ
LZ 7 5 0 0 0 0 0
Lp 1 0 1 0 0 0 300
LZ − 7Lp 0 5 −7 0 0 0 −2100
d’où la fonction économique exprimée en fonction des variables hors-base :
8.4. LA MÉTHODE DU SIMPLEXE 139

Z = 5x2 − 7x3 + 2100

On obtient donc le second tableau :


PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste
• • • •
x1 1 0 1 0 0 0 300
x4 0 1 0 1 0 0 400
x5 0 1 −1 0 1 0 200
x6 0 1 −2 0 0 1 100
Z 0 5 −7 0 0 0 −2100

On a x2 = x3 = 0. Comme x1 = 300, on atteint le sommet A(300, 0) et Z = 2900. On a de plus,


x4 = 400, x5 = 200, x6 = 100.

– Troisième tableau :
Z = 5x2 − 7x3 + 2100,
la variable entrante est x2 (une augmentation de x3 entraı̂ne une dimimution de Z). Déterminons la
variable sortante : la colonne C est donnée par :
x2 constante C
300
x1 0 300 = +∞
0
400
x4 1 400 = 400
1
200
x5 1 200 = 200
1
100
x6 1 100 = 100
1
On sélectionne dans cette colonne C le coefficient strictement positif le plus petit c’est-à-dire 100, la
variable x6 sort de la base. Les variables x2 et x6 ont permuté. Le pivot est situé à l’intersection de la
colonne variable entrante et de la ligne variable sortante. Ce pivot vaut 1.

On remplit le troisième tableau : dans la colonne des variables dans la base du deuxième tableau,
on remplace la variable x6 qui sort de la base par la variable x2 qui entre en base. On recopie la ligne
pivot avec le pivot de 1 :
Lp : 1.x2 − 2.x3 + 1.x6 = 100
PP
PP VHB
PP x1 x2 x4 x5
VDB PP
P x3 x6 cste
• • • •
x1
x4
x5
x2 0 1 −2 0 0 1 100
Z

Par des combinaisons avec la ligne pivot, on exprime le système en fonction des variables hors-base x3
140 LA PROGRAMMATION LINÉAIRE

et x6 c’est-à-dire qu’on élimine la variable x2 qui est entrée en base :


. pour la ligne Lx4 :
Lx 4 0 1 0 1 0 0 400
Lp 0 1 −2 0 0 1 100
L x 4 − Lp 0 0 2 1 0 −1 300
. pour la ligne Lx5 :
Lx 5 0 1 −1 0 1 0 200
Lp 0 1 −2 0 0 1 100
L x 5 − Lp 0 0 1 0 1 −1 100
. pour la ligne LZ :
LZ 0 5 −7 0 0 0 −2100
Lp 0 1 −2 0 0 1 100
LZ − 5Lp 0 0 3 0 0 −5 −2600

Une fois le tableau rempli, on obtient :


PP
PP VHB
PP x1 x2 x4 x5
VDB PP
P x3 x6 cste
• • • •
x1 1 0 1 0 0 0 300
x4 0 0 2 1 0 −1 300
x5 0 0 1 0 1 −1 100
x2 0 1 −2 0 0 1 100
Z 0 0 3 0 0 −5 −2600

On a x3 = x6 = 0. Comme x1 = 300 et x2 = 100, on est passé du sommet A(300, 0) au sommet


B(300, 100). On a de plus x4 = 300, x5 = 100 et Z vaut 2600.

– Quatrième tableau :
Z = 3x3 − 5x6 + 2600
La variable entrante est x3 (toute augmentation de x6 entraı̂ne une diminution de Z). Déterminons la
variable sortante : la colonne C est donnée par
x3 constante C
300
x1 1 = 300
300
1
300
x4 2 300 = 150
2
100
x5 1 100 = 100
1
100
x2 −2 100 = −50
−2
On sélectionne dans cette colonne C le coefficient strictement positif le plus petit c’est-à-dire 100, la
variable x5 sort de la base. Les variables x3 et x5 ont permuté. Le pivot est 1, il est situé à l’intersection
de la colonne x3 et de la ligne x5 . On remplit le quatrième tableau : dans la colonne des variables dans
la base du troisième tableau, on remplace la variable x5 qui sort de base par la variable x3 qui entre
en base. On recopie la ligne pivot avec un pivot de 1 :
8.4. LA MÉTHODE DU SIMPLEXE 141

Lp : x3 + x5 − x6 = 100
PP
PP VHB
PP x1 x2 x3 x4
VDB PP
P x5 x6 cste
• • • •
x1
x4
x3 0 0 1 0 1 −1 100
x2
Z
Par des combinaisons avec la ligne pivot, on exprime le système en fonction des variables hors-base x5
et x6 c’est-à-dire qu’on élimine la variable x3 qui est entrée en base :
. pour la ligne Lx1 :

Lx 1 1 0 1 0 0 0 300
Lp 0 0 1 0 1 −1 100
L x 1 − Lp 1 0 0 0 −1 1 200
. pour la ligne Lx4 :

Lx 4 0 0 2 1 0 −1 300
Lp 0 0 1 0 1 −1 100
Lx4 − 2Lp 0 0 0 1 −2 1 100
. pour la ligne Lx2 :

Lx 2 0 1 −2 0 0 1 100
Lp 0 0 1 0 1 −1 100
Lx2 + 2Lp 0 1 0 0 2 −1 300
. pour la ligne LZ :

LZ 0 0 3 0 0 −5 −2600
Lp 0 0 1 0 1 −1 100
LZ − 3Lp 0 0 0 0 −3 −2 −2900
On peut ensuite remplir le quatrième tableau :
PP
PP VHB
PP x1 x2 x3 x4
VDB PP
P x5 x6 cste
• • • •
x1 1 0 0 0 −1 1 200
x4 0 0 0 1 −2 1 100
x3 0 0 1 0 1 −1 100
x2 0 1 0 0 2 −1 300
Z 0 0 0 0 −3 −2 −2900
142 LA PROGRAMMATION LINÉAIRE

Conclusion, la fonction économique s’écrit Z = 2900 − 3x5 − 2x6 où x5 et x6 sont les variables hors-base donc
nulles. Toute augmentation de x5 et x6 conduit à une diminution de Z. Donc x1 = 200, x2 = 300, x3 = 100,
x4 = 100 et Z = 2900. La fonction économique atteint son maximum au point C(200, 300) et vaut 2900.

Exemple 8.4.4 (solution unique)


On considère le programme linéaire suivant


 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
 x1 + 3x2 + 2x3 ≤ 40


3x1 + 2x2 + x3 ≤ 45
x + x2 + 4x3 ≤ 38

 1



Z = 10x1 + 14x2 + 12x3 à maximiser

1. Programme standard :


 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
 x1 + 3x2 + 2x3 + x4 = 40


3x1 + 2x2 + x3 + x5 = 45
x + x2 + 4x3 + x6 = 38

 1



Z = 10x1 + 14x2 + 12x3 à maximiser
La solution de base de départ du programme correspond au sommet 0, c’est la solution nulle qui
consiste à ne rien produire : x1 = x2 = x3 = 0 et Z = 0. Les variables x1 , x2 , x3 sont hors-base donc
nulles, les autres variables x4 , x5 , x6 sont dans la base.
2. Tableau initial :
PP
PP VHB
PP x4 x5 x6
VDB PP
P x1 x2 x3 cste
• • •
x4 1 3 2 1 0 0 40 x1 + 3x2 + 2x3 + x4 = 40
x5 3 2 1 0 1 0 45 3x1 + 2x2 + x3 + x5 = 45
x6 1 1 4 0 0 1 38 x1 + x2 + 4x3 + x6 = 38
Z 10 14 12 0 0 0 0 Z = 10x1 + 14x2 + 12x3

• Choix de la variable entrante : on sélectionne la variable affectée du coefficient strictement positif le


plus grand dans la fonction économique, la variable x2 entre en base.
• Choix de la variable sortante : on détermine la colonne C :

x2 constante C
40
x4 3 40 ≃ 13, 33
3
45
x5 2 45 = 22, 5
2
38
x6 1 38 = 38
1
On sélectionne le coefficient strictement positif le plus petit dans la colonne C, la variable x4 sort
de la base.
8.4. LA MÉTHODE DU SIMPLEXE 143

• Le pivot : il est situé à l’intersection de la colonne variable qui entre en base et de la ligne variable
qui sort de la base, ce pivot est 3. Afin d’obtenir un pivot de 1, on divise tous les coefficients de la
ligne pivot par ce pivot 3. On obtient la nouvelle ligne pivot :
1 2 1 40
L p : x1 + x 2 + x 3 + x 4 =
3 3 3 3
soit
1 2 40
Lp 1 1 0 0
3 3 3

3. Deuxième tableau :

PP
PP VHB
PP x2 x5 x6
VDB PP
P x1 x3 x4 cste
• • •
1 2 1 40
x2 1 0 0
3 3 3 3
x5
x6
Z

• On recopie la ligne du pivot avec le pivot de 1.


• Pour remplir ce second tableau, par des combinaisons avec la ligne pivot, on élimine la variable x2
qui est entrée en base :

. pour la ligne Lx5 :

Lx 5 3 2 1 0 1 0 45
1 2 1 40
Lp 1 0 0
3 3 3 3
7 1 2 55
Lx5 − 2Lp 0 − − 1 0
3 3 3 3
. pour la ligne Lx6 :

L x6 1 1 4 0 0 1 38
1 2 1 40
Lp 1 0 0
3 3 3 3
2 10 1 74
L x 6 − Lp 0 − 0 1
3 3 3 3
. pour la ligne LZ :
LZ 10 14 12 0 0 0 0
1 2 1 40
Lp 1 0 0
3 3 3 3
16 8 14 560
LZ − 14Lp 0 − 0 0 −
3 3 3 3

Le deuxième tableau s’écrit alors :


144 . LA PROGRAMMATION LINÉAIRE

PP
PP VHB
PP x2 x5 x6
VDB PP
P x1 x3 x4 cste
• • •
1 2 1 40
x2 1 0 0
3 3 3 3
7 1 2 55
x5 0 − − 1 0
3 3 3 3
2 10 1 74
x6 0 − 0 1
3 3 3 3
16 8 14 560
Z 0 − 0 0 −
3 3 3 3

On a par conséquent
16 8 14 560
Z= x1 + x 3 − x 4 +
3 3 3 3

4. Troisième tableau :
16
• La variable entrante est x1 ; en effet, est le coefficient strictement positif le plus grand dans la
3
fonction économique.
• La variable sortante est déterminée à l’aide de la colonne C :

x1 constante C
1 40 40 1
x2 / = 40
3 3 3 3
7 55 55 7 55
x5 / =
3 3 3 3 7
2 74 74 2
x6 / = 37
3 3 3 3
55
On choisit le coefficient strictement positif le plus petit dans la colonne C soit , la variable x5
7
sort de la base.
7
• Le pivot est , situé à l’intersection de la colonne variable qui entre en base et de la ligne variable
3
7
qui sort de la base. Pour obtenir un pivot de 1, on divise la ligne pivot par ce pivot , on obtient
3
1 2 3 55
L p = x1 − x 3 − x 4 + x5 =
7 7 7 7
soit
1 2 3 55
Lp 1 0 − − 0
7 7 7 7

• On exprime le système en fonction des nouvelles variables hors-base x3 et x4 et on élimine x1 qui


est entrée en base.
. Pour la ligne Lx2 :
1 2 1 40
Lx2 1 0 0
3 3 3 3
1 2 3 55
Lp 1 0 − − 0
7 7 7 7
5 3 1 75
Lx2 − 13 Lp 0 1 − 0
7 7 7 7
8.4. LA MÉTHODE DU SIMPLEXE 145

. Pour la ligne Lx6 :


2 10 1 74
Lx6 0 − 0 1
3 3 3 3
1 2 3 55
Lp 1 0 − − 0
7 7 7 7
24 1 2 136
Lx6 − 23 Lp 0 0 − − 1
7 7 7 7
. Pour la ligne LZ :
16 8 14 560
LZ 0 − 0 0 −
3 3 3 3
1 2 3 55
Lp 1 0 − − 0
7 7 7 7
16 24 22 16 1600
LZ − 3 Lp 0 0 − − 0 −
7 7 7 7
On peut maintenant remplir le troisième tableau :
PP
PP VHB
PP x1 x2 x6
VDB PP
P x3 x4 x5 cste
• • •
5 3 1 75
x2 0 1 − 0
7 7 7 7
1 2 3 55
x1 1 0 − − 0
7 7 7 7
24 1 2 136
x6 0 0 − − 1
7 7 7 7
24 22 16 1600
Z 0 0 − − 0 −
7 7 7 7

5. Quatrième tableau :
24 22 16 1600
Z= x3 − x 4 − x 5 +
7 7 7 7
24
• Variable entrante : on sélectionne le coefficient , la variable x3 entre en base.
7
• Variable sortante :
x3 Constante C
5 75 75 5
x2 / = 15
7 7 7 7
1 55 55 1
x1 − / − = −55
7 7 7 7
24 136 136 24 17
x6 / =
7 7 7 7 3
La variable x6 sort de base.
24
• Le pivot est , on divise la ligne pivot par ce pivot et on obtient la nouvelle ligne pivot :
7
1 1 7 17
L p : x3 − x 4 − x 5 + x 6 =
24 12 24 3
1 1 7 17
Lp 0 0 1 − −
24 12 24 3
146 LA PROGRAMMATION LINÉAIRE

Dans la colonne variables dans la base du troisième tableau, on remplace la variable x6 par la variable
x3 et on y recopie la nouvelle ligne pivot
PP
PP VHB
PP x1 x2 x3
VDB PP
P x4 x5 x6 cste
• • •
x2
x1
1 1 7 17
x3 0 0 1 − −
24 12 24 3
Z
On exprime le système en fonction des variables hors-base x4 , x5 et x6 . On élimine la variable x3
qui est entrée en base :
. pour la ligne Lx2 :
5 3 1 75
Lx 2 0 1 − 0
7 7 7 7
1 1 7 17
Lp 0 0 1 − −
24 12 24 3
11 1 5 20
Lx2 − 57 Lp 0 1 0 − −
24 12 24 3
. pour la ligne Lx1 :
1 2 3 55
Lx 1 1 0 − − 0
7 7 7 7
1 1 7 17
Lp 0 0 1 − −
24 12 24 3
7 5 1 26
Lx1 + 17 Lp 1 0 0 −
24 12 24 3
. pour la ligne LZ :

24 22 16 1600
LZ 0 0 − − 0 −
7 7 7 7
1 1 7 17
Lp 0 0 1 − −
24 12 24 3
24
LZ − 7 Lp 0 0 0 −3 −2 −1 −248

Le quatrième tableau est finalement donné par :

PP
PP VHB
PP x1 x2 x3
VDB PP
P x4 x5 x6 cste
• • •
11 1 5 20
x2 0 1 0 − −
24 12 24 3
7 5 1 26
x1 1 0 0 −
24 12 24 3
1 1 7 17
x3 0 0 1 − −
24 12 24 3
Z 0 0 0 −3 −2 −1 −248
8.4. LA MÉTHODE DU SIMPLEXE 147

6. Conclusion :
Z = −3x4 − 2x5 − x6 + 248
Les trois variables x4 , x5 et x6 sont affectées de coefficients négatifs, toute augmentation de x4 , x5 ou
x6 diminuerait la valeur de Z. Il n’est plus possible d’améliorer la fonction économique.
20 26 17
Z est maximum pour x4 = 0, x5 = 0, x6 = 0, x1 = , x2 = , x3 = et Z = 248.
3  3 3
20 26 17
La fonction économique atteint son maximum au point , , . De plus, x4 = 0, x5 = 0 et
3 3 3
x6 = 0, les trois matières premières sont utilisées en totalité.

Exemple 8.4.5 (infinité de solutions)


On se donne le programme linéaire suivant :



 x1 ≥ 0, x2 ≥ 0
x 2 ≤ 45




3x1 + x2 ≤ 120


 x1 + 2x2 ≤ 100
x + x2 ≤ 60


 1


Maximiser Z = x1 + 2x2

1. Résolution graphique

Les côtés du polygone sont définis de la manière suivante :

• le segment [AB] : x2 = 45, 0 ≤ x1 ≤ 10


• le segment [BC] : x1 + 2x2 = 100, 10 ≤ x1 ≤ 20
• le segment [CD] : x1 + x2 = 60, 20 ≤ x1 ≤ 30
• le segment [DE] : 3x1 + x2 = 60, 30 ≤ x1 ≤ 40

 
−2
On trace les droites DZ d’équations Z = x1 + 2x2 , ces droites ont pour vecteur directeur ~v .
1
Elles sont parallèles entre-elles et de plus, elles sont parallèles au côté (BC) d’équation x1 + 2x2 = 100,
10 ≤ x1 ≤ 20. La droite DZ qui rencontre le domaine des solutions réalisables et qui a une ordonnée à
l’origine maximale est la droite qui contient B et C, d’équation x1+2x2 = 100. La fonction économique
x1 + 2x2 = 100
atteint son maximum 100 en tous les points du segment [BC] :
10 ≤ x1 ≤ 20

2. Le simplexe
Comment fait-on apparaı̂tre cette infinité de couples solutions dans les tableaux du simplexe ?
148 LA PROGRAMMATION LINÉAIRE

(a) Tableau initial : les variables hors-base sont x1 et x2 , le programme standard est donné par :

 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0




 x2 + x3 = 45
3x1 + x2 + x4 = 120

 x1 + 2x2 + x5 = 100

x + x2 + x6 = 60


 1


Z = x1 + 2x2 à maximiser

Le tableau initial peut s’écrire sous la forme :


PP
PP VHB
PP x3 x4 x5 x6
VDB PP
P x1 x2 cste C
• • • •
45
x3 0 1 1 0 0 0 45 = 45
1
120
x4 3 1 0 1 0 0 120 = 120
1
100
x5 1 2 0 0 1 0 100 = 50
2
60
x6 1 1 0 0 0 1 60 = 60
1
Z 1 2

(b) Première itération


On sélectionne la variable x2 qui entre en base, la variable qui sort de base est x3 . Le pivot est 1,
la ligne pivot est

Lp 0 1 1 0 0 0 45

les variables x2 et x3 permutent

. Pour la ligne Lx4 :

Lx4 3 1 0 1 0 0 120
Lp 0 1 1 0 0 0 45
Lx4 − Lp 3 0 −1 1 0 0 75
. Pour la ligne Lx5 :

Lx5 1 2 0 0 1 0 100
Lp 0 1 1 0 0 0 45
Lx5 − 2Lp 1 0 −2 0 1 0 10
. Pour la ligne Lx6 :

Lx 6 1 1 0 0 0 1 60
Lp 0 1 1 0 0 0 45
Lx 6 − L p 1 0 −1 0 0 1 15

. Pour la ligne LZ :
8.4. LA MÉTHODE DU SIMPLEXE 149

LZ 1 2
Lp 0 1 1 0 0 0 45
LZ − 2Lp 1 0 −2 0 0 0 −90

PP
PP VHB
PP x2 x4 x5 x6
VDB PP
P x1 x3 cste C
• • • •
45
x2 0 1 1 0 0 0 45 = +∞
0
75
x4 3 0 −1 1 0 0 75 = 25
3
10
x5 1 0 −2 0 1 0 10 = 10
1
15
x6 1 0 −1 0 0 1 15 = 15
1
Z 1 0 −2 0 0 0 −90

Cette première itération conduit du sommet O(0, 0) au sommet A(0, 45) et Z = 90.

(c) Deuxième itération


Z = x1 − 2x3 + 90,
la variable x1 entre en base, la variable x5 sort de base, le pivot est 1, la ligne pivot est
Lp : x1 − 2x3 + x5 = 10
soit
Lp 1 0 −2 0 1 0 10

les variables x1 et x5 permutent

L x2 0 1 1 0 0 0 45
Lp 1 0 −2 0 1 0 10
L x2 0 1 1 0 0 0 45

Lx4 3 0 −1 1 0 0 75
Lp 1 0 −2 0 1 0 10
Lx4 − 3Lp 0 0 5 1 −3 0 45

Lx6 1 0 −1 0 0 1 15
Lp 1 0 −2 0 1 0 10
Lx6 − Lp 0 0 1 0 −1 1 5

LZ 1 0 −2 0 0 0 −90
Lp 1 0 −2 0 1 0 10
L Z − Lp 0 0 0 0 −1 0 −100
150 LA PROGRAMMATION LINÉAIRE

PP
PP VHB
PP x1 x2 x4 x6
VDB PP
P x3 x5 cste C
• • • •
45
x2 0 1 1 0 0 0 45 = 45
1
45
x4 0 0 5 1 −3 0 45 =9
5
10
x1 1 0 −2 0 1 0 10 = −5
−2
5
x6 0 0 1 0 −1 1 5 =5
1
Z 0 0 0 0 −1 0 −100

Les variables hors-base sont x3 , x5 et

Z = 0.x3 + (−1).x5 + 100 = −x5 + 100.

Pour x3 = x5 = 0, on obtient x1 = 10, x2 = 45, x4 = 45 et x6 = 5. On atteint le sommet


B(10, 45). Dans la fonction économique, la variable hors-base x3 est affectée du coefficient 0. Si
on augmente x3 , Z sera invariant et égal à 100.

(d) Troisième itération


On fait entrer en base x3 , x6 sort de base, le pivot est 1, la ligne pivot est

L p : x3 − x5 + x6 = 5

soit

Lp 0 0 1 0 −1 1 5

x3 et x6 ont permuté

Lx2 0 1 1 0 0 0 45
Lp 0 0 1 0 −1 1 5
Lx2 − Lp 0 1 0 0 1 −1 40

Lx4 0 0 5 1 −3 0 45
Lp 0 0 1 0 −1 1 5
Lx4 − 5Lp 0 0 0 1 2 −5 20

Lx1 1 0 −2 0 1 0 10
Lp 0 0 1 0 −1 1 5
Lx1 + 2Lp 1 0 0 0 −1 2 20

LZ 0 0 0 0
Lp 0 0 1 0 −1 1 5
LZ + 0.Lp 0 0 0 0 −1 0 −100
8.4. LA MÉTHODE DU SIMPLEXE 151

PP
PP VHB
PP x1 x2 x3 x4
VDB PP
P x5 x6 cste
• • • •
x2 0 1 0 0 1 −1 40
x4 0 0 0 1 2 −5 20
x1 1 0 0 0 −1 2 20
x3 0 0 1 0 −1 1 5
Z 0 0 0 0 −1 0 −100

La fonction économique s’écrit :


Z = −1.x5 + 0.x6 + 100 = −x5 + 100
Les variables hors-base sont x5 , x6 . Pour x5 = x6 = 0, on obtient x1 = 20, x2 = 40, x3 = 5,
x4 = 20 et Z = 100. Z est maximum pour le deuxième sommet C(20, 40). On a obtenu Z
maximum pour deux sommets adjacents B(10, 45) et C(20, 40). On admettra que la fonction
économique atteint son maximum en tous les points du segment [BC].

Remarque 8.4.1

1. La présence d’un zéro dans la ligne pivot entraı̂ne l’invariance de la colonne correspondante.

Reprenons le tableau initial de l’exemple 8.4.3 :


PP
PP VHB
PP x3 x4 x5 x6
VDB PP
P x1 x2 cste C
• • • •
300
x3 1 0 1 0 0 0 300 = 300
1
400
x4 0 1 0 1 0 0 400 = +∞
0
500
x5 1 1 0 0 1 0 500 = 500
1
700
x6 2 1 0 0 0 1 700 = 350
2
Z 7 5 0 0 0 0 0

Le pivot est 1, dans la ligne pivot, les variables x2 , x4 , x5 , x6 sont affectées du coefficient 0. Ces quatre
colonnes seront invariantes dans le tableau suivant, on peut donc recopier ces quatre colonnes sans
effectuer de calculs.
PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste
• • • •
x1 1 0 1 0 0 0 300
x4 1 1 0 0
x5 1 0 1 0
x6 1 0 0 1
Z 5 0 0 0
152 LA PROGRAMMATION LINÉAIRE

On peut aussi recopier la ligne pivot. De plus, le système doit s’exprimer en fonction des variables
hors-base x2 , x3 donc x4 s’exprime en fonction de x2 , x3 ainsi que x5 , x6 et Z d’où les compléments
dans le tableau “encadrés”. On peut donc, sans effectuer de calculs, remplir certaines cases du tableau.

2. La présence d’un zéro dans la colonne du pivot entraı̂ne l’invariance de la ligne correspondante.

On reprend le second tableau de l’exemple 8.4.3. En utilisant les deux remarques 1. et 2., on ob-
tient
PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste C
• • • •
300
x1 1 0 1 0 0 0 300 = 300
1
400
x4 0 1 0 1 0 0 400 = 400
1
200
x5 0 1 −1 0 1 0 200 = 200
1
100
x6 0 1 −2 0 0 1 100 = 100
1
Z 0 5 −7 0 0 0 −200

x2 entre en base, x6 sort de base, le pivot est 1, la ligne pivot est

Lp 0 1 −2 0 0 1 100

. Dans la ligne du pivot, les variables x1 , x4 ou x5 sont affectées du coefficient 0, on recopiera ces trois
colonnes.
. On recopie la ligne du pivot.
. Dans la colonne du pivot apparaı̂t un zéro, on recopie la ligne Lx1 .
Ces remarques permettent donc d’obtenir deux lignes et trois colonnes du tableau suivant :
PP
PP VHB
PP x1 x4 x5 x6
VDB PP
P x2 x3 cste
• • • •
x1 1 0 1 0 0 0 300
x4 0 1 0
x5 0 0 1
x2 0 1 −2 0 0 1 100
Z 0 0 0

Les variables hors-base étant x2 , x3 , le système s’écrit en fonction des variables hors-base seulement
d’où les compléments dans le tableau “encadrés´’.
Il reste neuf cases à remplir dans le tableau.

3. Si deux coefficients positifs dans la fonction économique sont égaux, on pourra déterminer dans chaque
colonne correspondante le pivot éventuel et le rapport associé. On choisira comme pivot celui qui
correspond au plus grand rapport.

Exemple 8.4.6 On se donne le programme linéaire suivant :


8.4. LA MÉTHODE DU SIMPLEXE 153



 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
3x1 + 5x2 + x3 ≤ 150

x + 4x2 + 2x3 + x5 ≤ 80
 1


Z = 2x1 + 2x2 + x3 à maximiser

Le programme standard s’écrit




 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0
3x1 + 5x2 + x3 + x4 = 150

x + 4x2 + 2x3 + x5 = 80
 1


Z = 2x1 + 2x2 + x3 à maximiser

PP
PP VHB
PP x4 x5
VDB PP
P x1 x2 x3 cste
• •
x4 3 5 1 1 0 150
x5 1 4 2 0 1 80
Z 2 2 1

1. Si l’on choisit comme variable sortante x1 , la colonne C est alors

x1 C
150
x4 3 150 = 50
3
80
x5 1 80 = 80
1
La variable sortante est x4 , le pivot est égal à 3, le rapport vaut 50.

2. Si l’on choisit comme variable sortante x2 , la colonne C est donnée par :

x2 C
150
x4 5 150 = 30
5
80
x5 4 80 = 20
4

La variable sortante est alors x5 , le pivot est égal à 4 et le rapport vaut 20.

On choisit comme variable sortante celle qui correspond au plus grand rapport. Dans l’exemple, 50 > 20, la
variable sortante est x4 , la variable entrante x1 , le pivot est 3.

La règle d’entrée du plus grand gain marginal nous propose une méthode qui permet d’obtenir la valeur
optimale de Z, mais rien n’indique que cette méthode propose le plus court chemin.

Exemple 8.4.7 Soit le programme linéaire




 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
 x1 ≤ 5


4x1 + x2 ≤ 25
8x1 + 4x2 + x3 ≤ 125




Z = 4x1 + 2x2 + x3 à maximiser

Le programme standard s’écrit


154 LA PROGRAMMATION LINÉAIRE



 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
 1 + x4 = 5
x


4x1 + x2 + x5 = 25
8x1 + 4x2 + x3 + x6 = 125




Z = 4x1 + 2x2 + x3 à maximiser

On a le tableau :
PP
PP VHB
PP x4 x5 x6
VDB PP
P x1 x2 x3 cste C
• • •
x4 1 0 0 1 0 0 5 5
25
x5 4 1 0 0 1 0 25 = 6, 25
4
125
x6 8 4 1 0 0 1 125 = 15, 625
8
Z 4 2 1 0 0 0 0

On se trouve au sommet origine O(0, 0), x4 = 5, x5 = 25, x6 = 125 et Z = 0.

On applique la règle du plus grand gain marginal, x1 entre en base, x4 sort de base, le pivot est 1. On
obtient le tableau suivant
PP
PP VHB
PP x1 x5 x6
VDB PP
P x2 x3 x4 cste C
• • •
5
x4 1 0 0 1 0 0 5 = +∞
0
5
x5 0 1 0 −4 1 0 5 =5
1
85
x6 0 4 1 −8 0 1 85 = 21, 25
4
Z 0 2 1 −4 0 0 −20

On se trouve au sommet A1 de coordonnées (5, 0, 0) avec x4 = 0, x5 = 5, x6 = 85 et Z = 20.

x2 entre en base, x5 sort de base, le pivot est 1.


PP
PP VHB
PP x1 x2 x6
VDB PP
P x3 x4 x5 cste C
• • •
5
x1 1 0 0 1 0 0 5 =5
1
5
x2 0 1 0 −4 1 0 5 −
4
65
x6 0 0 1 8 −4 1 65 = 8, 125
8
Z 0 0 1 4 −2 0 −30

On se trouve au sommet A2 de coordonnées (5, 5, 0) avec x4 = 0, x5 = 0, x6 = 65 et Z = 30.


8.4. LA MÉTHODE DU SIMPLEXE 155

x4 entre en base, x1 sort de base, le pivot est 1.

PP
PP VHB
PP x2 x4 x6
VDB PP
P x1 x3 x5 cste C
• • •
x4 1 0 0 1 0 0 5 +∞
x2 4 1 0 0 1 0 25 +∞
x6 −8 0 1 0 −4 1 25 25
Z −4 0 1 0 −2 0 −50

On se trouve au sommet A3 de coordonnées (0, 25, 0) avec x4 = 5, x5 = 0, x6 = 25 et Z = 50.

x3 entre en base, x6 sort de base, le pivot est 1.

PP
PP VHB
PP x2 x3 x4
VDB PP
P x1 x5 x6 cste C
• • •
x4 1 0 0 1 0 0 5 5
x2 4 1 0 0 1 0 25 6, 25
x3 −8 0 1 0 −4 1 25 −3, 125
Z 4 0 0 0 −2 −1 −75

On se trouve au sommet A4 de coordonnées (0, 25, 25) avec x4 = 5, x5 = 0, x6 = 0 et Z = 75.

x1 entre en base, x4 sort de base, le pivot est 1.

PP
PP VHB
PP x1 x2 x3
VDB PP
P x4 x5 x6 cste C
• • •
x1 1 0 0 1 0 0 5 +∞
x2 0 1 0 −4 1 0 5 5
x3 0 0 1 8 −4 1 65 −16, 25
Z 0 0 0 −4 2 −1 −95

On se trouve au sommet A5 de coordonnées (5, 5, 65) avec x4 = 0, x5 = 0, x6 = 0 et Z = 95.

x5 entre en base, x2 sort de base, le pivot est 1.


156 LA PROGRAMMATION LINÉAIRE

PP
PP VHB
PP x1 x3 x5
VDB PP
P x2 x4 x6 cste C
• • •
x1 1 0 0 1 0 0 5 5
x5 0 1 0 −4 1 0 5 −1, 25
x3 0 4 1 −8 0 1 85 −10, 625
Z 0 −2 0 4 0 −1 −105

On se trouve au sommet A6 de coordonnées (5, 0, 85) avec x4 = 0, x5 = 5, x6 = 0 et Z = 105.

x4 entre en base, x1 sort de base, le pivot est 1.

PP
PP VHB
PP x3 x4 x5
VDB PP
P x1 x2 x6 C
• • •
x4 1 0 0 1 0 0 5
x5 4 1 0 0 1 0 25
x3 8 4 1 0 0 1 125
Z −4 −2 0 0 0 −1 −125

On se trouve au sommet A7 de coordonnées (0, 0, 125) avec x4 = 5, x5 = 25, x6 = 0 et Z = 125.

La fonction économique s’écrit alors :

Z = −4x1 − 2x2 − x6 + 125,

les variables hors-base x1 , x2 et x6 sont affectées de coefficients négatifs, Z atteint son maximum au point
A7 (0, 0, 125) et vaut 125.

La règle du plus grand gain marginal nous a contraint au chemin OA1 A2 A3 A4 A5 A6 A7 de coordonnées
respectives (0, 0, 0), (5, 0, 0), (5, 5, 0), 0, 25, 0), (0, 25, 25), (5, 5, 65), (5, 0, 85), (0, 0, 125).

Retour sur le tableau initial :

PP
PP VHB
PP x4 x5 x6
VDB PP
P x1 x2 x3 cste C
• • •
x4 1 0 0 1 0 0 5 +∞
x5 4 1 0 0 1 0 25 +∞
x6 8 4 1 0 0 1 125 125
Z 4 2 1 0 0 0 0

Si on n’utilise pas la règle du plus grand gain marginal et si on décide de faire entrer x3 en base, x6 sort de
base et le pivot est 1 :
8.4. LA MÉTHODE DU SIMPLEXE 157

PP
PP VHB
PP x3 x4 x5
VDB PP
P x1 x2 x6 cste
• • •
x4 1 0 0 1 0 0 5
x5 4 1 0 0 1 0 25
x3 8 4 1 0 0 1 125
Z 4 2 0 0 0 1 125

les variables hors-base x1 , x2 et x6 sont affectées −de coefficients négatifs,−Z atteint
− son maximum au point
A7 (0, 0, 125) et vaut 125. Le résultat est cette fois-ci atteint en une seule itération à l’aide de ce qu’on appelle
la règle du plus petit gain marginal. Il conviendra de choisir alors parmi les deux règles proposées afin de
minimiser les temps de calculs.

8.4.3 Détermination d’une solution de base admissible


Reprenons l’exercice 45 et le cas de l’entreprise Bonvin (1.) mais avec des spécifications supplémentaires :
Bonvin s’est engagée à fournir à sa clientèle :
– au moins 15000 hectolitres de vin “Extra”,
– et au moins 5000 hectolitres de vin “supérieur”.

Sous sa forme canonique le programme linéaire s’écrit :




 X1 , X2 ≥ 0


 0, 5X1 + 0, 2X2 ≤ 13600



 0, 3X1 + 0, 6X2 ≤ 12000



 0, 2X1 + 0, 2X2 ≤ 10400


X1 ≤ 20000
X 2 ≤ 16000




X1 ≥ 15000




X 2 ≥ 5000






max Z avec Z = 400X1 + 500X2

Les données supplémentaires ont été traduites par les deux dernières contraintes qui sous leur forme standard
s’écrivent :
X1 e6 = 15000 X2 e7 = 5000 avec e6 , e7 ≥ 0.
− évidente pour amorcer les calculs car si X1 = X2 = 0
Dans cette hypothèse, il n’existe−plus de base naturelle
alors
e6 = 15000 et e7 = 5000
ce qui est en contradiction avec les conditions−de non-négativité.

Une solution consiste alors à annuler au hasard n variables parmi les m + n variables que comporte le
problème (dans le cas de l’exemple précédent, 2 variables parmi 9).
n
Il y a alors Cm+n solutions de base envisageables (ici C92 = 36). Mais toutes ne sont pas admissibles et,
de plus, si le nombre de variables et de contraintes est important, il devient fastidieux de s’en remettre au
hasard.
C’est pourquoi une procédure plus méthodique consiste :

1. À introduire dans chaque contrainte h qui pose problème une variable artificielle ah affectée
d’un coefficient égal à 1.
2. À infliger à chaque variable artificielle une pénalité sous la forme d’un coefficient négatif (dans le
cas d’un problème de maximisation) et de valeur absolue très élevée dans la fonction économique
originelle.
158 LA PROGRAMMATION LINÉAIRE

Ainsi, l’introduction de variables artificielles permet de déterminer simplement une base, certes artificielle,
mais admissible pour amorcer l’algorithme.
Les pénalités ont pour objet de provoquer l’élimination des variables artificielles au fil des itérations.
La méthode consiste donc ensuite

3. À retenir comme solution de base initiale la base artificielle telle que :


– toutes les variables artificielles sont en base (c’est-à-dire non nulles) ;
– toutes les autres variables des contraintes où figurent des variables artificielles (réelles et
d’écart) sont hors base (c’est-à-dire nulles).
4. À appliquer l’algorithme du simplexe jusqu’à ce que toutes les variables artificielles soient sup-
primées.

Dans le cas étudié, après introduction des variables artificielles a6 et a7 respectivement dans les contraintes
6 et 7, le problème s’écrit :



 X 1 , X2 , e 1 , . . . , e 7 , a 6 , a 7 ≥ 0





 0, 5X1 + 0, 2X2 + e1 = 13600



 0, 3X1 + 0, 6X2 + e2 = 12000
0, 2X1 + 0, 2X2 + e3 = 10400



X1 + e4 = 20000
X2 + e5 = 16000




X1 − e6 + a6 = 15000




X2 − e7 + a7 = 5000






max Z avec Z = 400X1 + 500X2 − Ga6 − Ga7

Les tableaux ci-dessous montrent qu’après deux itérations, une solution de base admissible est obtenue.
Cette base n’est plus artificielle mais réelle. La procédure doit ensuite être poursuivie jusqu’à l’obtention de
l’optimum, sans tenir compte des colonnes concernant les variables artificielles.

PP
PP VHB
PP e1 e2 e3 e4 e5 a6 a7
VDB PP
P X1 X2 e6 e7 cste C
• • • • • • •
e1 0,5 0,2 1 0 0 0 0 0 0 0 0 13600 68000

e2 0,3 0,6 0 1 0 0 0 0 0 0 0 12000 20000

e3 0,2 0,2 0 0 1 0 0 0 0 0 0 10400 52000

e4 1 0 0 0 0 1 0 0 0 0 0 20000 +∞
e5 0 1 0 0 0 0 1 0 0 0 0 16000 16000
a6 1 0 0 0 0 0 0 -1 0 1 0 15000 +∞
a7 0 1 0 0 0 0 0 0 -1 0 1 5000 5000
Z 400 500 0 0 0 0 0 0 0 -G -G 0
8.4. LA MÉTHODE DU SIMPLEXE 159

PP
PP VHB
PP X2 e1 e2 e3 e4 e5 a6
VDB PP
P X1 e6 e7 cste C
• • • • • • •
e1 0,5 0 1 0 0 0 0 0 0,2 0 12600 25200

e2 0,3 0 0 1 0 0 0 0 0,6 0 9000 30000

e3 0,2 0 0 0 1 0 0 0 0,2 0 9400 47000

e4 1 0 0 0 0 1 0 0 0 0 20000 20000
e5 0 0 0 0 0 0 1 0 1 0 11000 +∞
a6 1 0 0 0 0 0 0 -1 0 1 15000 15000
X2 0 1 0 0 0 0 0 0 -1 0 5000 +∞
Z 400 0 0 0 0 0 0 0 500 -G -2500000

PP
PP VHB
PP X1 X2 e1 e2 e3 e4 e5
VDB PP
P e6 e7 cste C
• • • • • • •
e1 0 0 1 0 0 0 0 0,5 0,2 5100
e2 0 0 0 1 0 0 0 0,3 0,6 4500
e3 0 0 0 0 1 0 0 0,2 0,2 6400
e4 0 0 0 0 0 1 0 1 0 5000
e5 0 0 0 0 0 0 1 0 1 11000
X1 1 0 0 0 0 0 0 -1 0 15000
X2 0 1 0 0 0 0 0 0 -1 5000
Z 0 0 0 0 0 0 0 400 500 -8500000

On peut alors démarrer l’algorithme du simplexe avec la solution admissible X1 = 15000 et X2 = 5000.

8.4.4 Utilisation de la méthode du simplexe lorsque la solution optimale n’existe pas


On considère l’exemple suivant :

Exemple 8.4.8


 x≥0 , y≥0
Maximiser ω = 2x + 6y si x y ≤ 30
y − x ≤ 40


En résolvant graphiquement ce problème on remarque que la solution optimale n’existe pas puisque l’en-
semble convexe des solutions réalisables n’est pas borné et la fonction objectif peut augmenter dans ce cas
sans limite.
Appliquons l’algorithme du simplexe à cet exemple : la solution (x, y) = (0, 0) est admissible.
160 LA PROGRAMMATION LINÉAIRE

PP
PP VHB
PP e1 e2
VDB PP
P x y cste C
• •
e1 1 -1 1 0 30 -30
y -1 1 0 1 40 40
ω 2 6 0 0 0

PP
PP VHB
PP y e1
VDB PP
P x e2 cste C
• •
e1 0 0 1 1 70 +∞
y -1 1 0 1 40 -40
ω 8 0 0 -6 -240

Aucun coefficient de la colonne sélectionnée n’est positif donc la colonne C ne donne aucune valeur positive
non infinie, x peut donc augmenter indéfiniment et la fonction objectif ω également. On dira dans ce cas
que la valeur maximale n’existe pas.

8.4.5 Utilisation de la méthode du simplexe dans un problème de minimisation


On considère l’exemple suivant :

Exemple 8.4.9

 x≥0 , y≥0
Minimiser ω = −2x + y si x − 3y ≥ −1
x−y ≤ 1

On définit dans ce cas une façon de transformer les problèmes de minimisation en problèmes de maximisation.
On formule le principe suivant :

minimiser ω = - maximiser(-ω)

Le problème de minimisation précédent devra donc être transformé en un problème de maximisation soit

 x≥0 , y≥0
Maximiser −ω = 2x − y si x − 3y ≥ −1
x−y ≤ 1

Appliquons l’algorithme du simplexe à cet exemple : la solution (x, y) = (0, 0) est admissible.

PP
PP VHB
PP e1 e2
VDB P x
PP y cste C
• •
e1 1 -3 -1 0 -1 -1
e2 1 -1 0 1 1 1
−ω 2 -1 0 0 0
8.4. LA MÉTHODE DU SIMPLEXE 161

PP
PP VHB
PP x e1
VDB PP
P y e2 cste C
• •
e1 0 -2 -1 -1 -2 1
x 1 -1 0 1 1 -1
−ω 0 1 0 -2 -2

PP
PP VHB
PP x y
VDB PP
P e1 e2 cste C
• •
1 1
y 0 1 1
2 2
1 3
x 1 0 2
2 2
1 5
−ω 0 0 − − -3
2 2

L’algorithme s’arrête, la solution maximale est −ω = 3 si x = 2 et y = 1. La solution minimale sera donc


ω = −3 si x = 2 et y = 1.

8.4.6 Exercices récapitulatifs


✞ ☎
✝Exercice 55 ✆ Une entreprise fabrique 3 produits P1 , P2 et P3 à partir des 3 composants C1 , C2 et C3 .
Les composants sont acheminés vers l’usine par l’intermédaire d’une société de transport qui facture le coût
de transport à l’unité. Les données sont rassemblées dans les tableaux ci-dessous :

Produits
P1 P2 P3

Nombre de composants C1 1 2 4

Nombre de composants C2 2 1 2

Nombre de composants C3 3 2 2

Par exemple, pour fabriquer une unité de produit P3 , il faut 4 composants C1 , 2 composants C2 et 2
composants C3 .
On se donne ensuite les coûts unitaires transport et hors transport en euros des différents composants :

C1 C2 C3
Coûts unitaires hors-transport (en euros) 20 25 25
Coûts unitaires transport (en euros) 7 6 5

Les contraintes d’approvisionnement sont telles que l’entrepôt dispose chaque semaine de 70 composants C1 ,
80 composants C2 et 60 composants C3 .
Les marges sur coûts variables unitaires sont de 3 euros pour P1 , 5 euros pour P2 et 6 euros pour P3 .
On note respectivement x, y et z les nombres d’unités de P1 , P2 et P3 fabriquées au cours d’une semaine.
1. Quels sont les coûts totaux hors-transport ainsi que les coûts totaux de transport pour chacun des
composants utilisés ?
162 LA PROGRAMMATION LINÉAIRE

2. Présenter la forme canonique du programme linéaire permettant de maximiser la marge sur coûts
variables hebdomadaires.
3. Présenter la forme standard du programme linéaire permettant de maximiser la marge sur coûts
variables hebdomadaires.
4. Déterminer le programme optimal de production. Quelle est la marge correspondante ?
5. Si l’entreprise fabrique le programme optimal, combien reste t-il de composants de chaque sorte ?
✞ ☎
✝Exercice 56 ✆ Suite à l’incendie d’un entrepôt, une société fait appel à vos compétences pour reconsti-
tuer un programme linéaire retrouvé sur place, dans un état malheureusement assez délabré. Les seules
informations dont vous disposez consistent en le tableau donné ci dessous :

PP
PP VHB
PP x y z e1 e2 e3 cste C
VDB PP
P

e1 1 0 0 0 0 0 400

e2 2 1 1 0 0 0 1000

e3 2 2 3 0 0 0 2000

Z 20 16 12 0 0 0 0

1. À l’aide du tableau, déterminer le programme linéaire réalisé par l’entrepôt.


2. Recréer un contexte économique d’entrepôt utilisant les données du tableau précédent.
3. Résoudre le programme linéaire précédent.
4. Comment procède t-on afin de minimiser la fonction objectif ?
✞ ☎
✝Exercice 57 ✆ Une entreprise fabrique trois types de piles : sèches de type 1 (PS1), sèches de type 2 (PS2)
et à combustible (PC). Le processus de fabrication comporte trois étapes :
– l’assemblage,
– un test de qualité,
– un traitement d’isolation.
Seules les piles satisfaisant le test de qualité sont soumises au traitement d’isolation. Les piles qui ratent le
test de qualité sont mises au rebut.
Au cours du mois prochain, l’entreprise disposera en temps-machine de 9000 heures pour l’assemblage, de
1200 heures pour les tests de qualité et de 8500 heures pour le traitement d’isolation. Le tableau suivant
résume les informations pertinentes du procédé de fabrication :

Assemblage Test Isolation Profit Taux Perte


Type
(seconde/unité) (s/unité) (s/unité) (euros/unités) d’échec (euros/unité)
PS1 33 3 15 1, 25 3% 0, 6
PS2 25 4, 5 22 1 1% 0, 55
PC 24 4 21 1, 1 2% 0, 75

1. Quel type de problème reconnaı̂t-on ?


2. Modéliser cet exercice de façon à pouvoir répondre aux questions suivantes :
(a) Quel est le nombre optimal de piles de chaque type à fabriquer le mois prochain si l’entreprise
est assurée de vendre toute sa production ?
8.4. LA MÉTHODE DU SIMPLEXE 163

(b) Quel sera le profit ?

✞ ☎
✝Exercice 58 ✆ La société SUPERSTOCK désire stocker dans son nouvel entrepôt trois types de produits à
savoir des coussins (produit P1 ), des traversins (produit P2 ) et des couvertures (produit P3 ) à l’aide de trois
conditionnements particuliers C1 (sacs), C2 (palettes) et C3 (cartons). Les données sont rassemblées dans
les tableaux ci-dessous :

Conditionnement
C1 C2 C3

Nombre de coussins P1 20 40 80

Nombre de traversins P2 40 20 40

Nombre de couvertures P3 60 40 40

Les contraintes de fabrication sont telles que l’entreprise stocke journalièrement 1400 coussins, 1600 traversins
et 1200 couvertures. Les gains relatifs au stockage et au transport pour les trois conditionnements sont donnés
ci-dessous :

C1 C2 C3

Gains relatifs au stockage (en euros) 46 55 105

Gains relatifs au transport (en euros) 14 45 15

1. Donner la forme canonique du programme linéaire associé.


2. Une résolution graphique du programme linéaire précédent est-elle possible ? Si oui, comment s’y
prendre pour trouver la solution optimale ?
3. À l’aide de la méthode du simplexe, résoudre le programme linéaire proposé en utilisant la règle du
plus grand gain marginal.
4. Retrouver cette solution à l’aide du plus petit gain marginal.
5. Préciser la valeur maximale de la fonction objectif ainsi que les quantités restantes de coussins, tra-
versins et couvertures.

Vous aimerez peut-être aussi