Vous êtes sur la page 1sur 32

OPTIMISATION NUMÉRIQUE

Pr. Khatmi Samira

Année universitaire 2012/2013


Table des matières

1 Introduction 1

2 Optimisation linéaire 3
2.1 Problèmes de programmation linéaire . . . . . . . . . . . . . . . 3
2.2 Formulation d’un programme linéaire (PL) . . . . . . . . . . . . . 3
2.2.1 Les conditions de formulation d’un PL . . . . . . . . . . . 3
2.2.2 Les étapes de formulation d’un PL . . . . . . . . . . . . 4
2.2.3 Exemples de formulations . . . . . . . . . . . . . . . . . . 4
2.2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 La méthode du simplexe 9
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Forme canonique . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Forme standard . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Résolution par la méthode du simplexe . . . . . . . . . . . . . . . 14
3.3.1 Résolution d’un programme linéaire canonique par rapport
à la base I. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2 Résolution d’un programme linéaire quelconque . . . . . . 24
3.4 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

i
Chapitre 1

Introduction

L’analyse numérique et l’optimisation constituent deux aspects importants


et souvent complémentaires des mathématiques de l’ingénieur. Une connaissance
de notions de base dans ces deux domaines est indispensable pour une ingénie-
rie de bon niveau. Les développements rapides de l’informatique ont fait de ces
branches des mathématiques des outils universellement utilisés dans l’industrie et
les services. De nombreux logiciels utilisent divers algorithmes performants d’ana-
lyse numérique et d’optimisation, mais avant de pouvoir les utiliser, il faut déjà
avoir conscience de leur existence, des problèmes qu’ils peuvent résoudre, avec
leurs performances et leurs limitations. Avant même cela, il faut savoir mettre
en forme le problème étudié sous la forme mathématique appropriée à la mise en
oeuvre d’algorithmes.

Tout problème d’optimisation comporte une étape essentielle : la modélisation


mathématique. Elle consiste en trois étapes :
1. Identification des variables de décisions (souvent désignées par un vecteur
de Rn dans ce cours) : ce sont les paramètres sur lesquels l’utilisateur peut
agir pour faire évoluer le système considéré.
2. Définition d’une fonction coût (appelée fonction objectif) permettant d’éva-
luer l’état du système (ex : rendement, performance, : : : ).
3. Description des contraintes imposées aux variables de décision.
Le problème d’optimisation consiste alors à déterminer les variables de déci-
sion conduisant aux meilleures conditions de fonctionnement du système (ce
qui revient à minimiser ou maximiser la fonction coût), tout en respectant les
contraintes d’utilisation définies à l’étape 3. Dans ce cours, nous nous intéres-
sons aux méthodes numériques pour les problèmes d’optimisation avec ou sans
contrainte. Pour chacun de ces problèmes, nous tenterons de répondre aux ques-
tions suivantes :

1
Introduction

1. Existe-t-il une solution (même locale) du problème considéré ?


Si oui, est-elle unique ?
2. Comment la caractériser ? (conditions d’optimalité).
3. Comment la calculer ? Quel type d’algorithme choisir ?
De manière générale, la résolution de problèmes de programmation mathéma-
tique vise à déterminer l’allocation optimale (c’est-à-dire la meilleure combinaison
possible) de ressources limitées pour atteindre certains objectifs. Les allocations
doivent minimiser ou maximiser une fonction dite objectif. Ces problèmes, traités
par la programmation mathématique, se distinguent des problèmes d’optimisa-
tion classique par le fait que leurs solutions sont d’ordre numérique. Celles-ci
sont obtenues par une technique numérique itérative, alors que les solutions à un
problème classique sont en général données sous forme de formules fermées. La
forme générale d’un problème de programmation mathématique est la suivante :

Optimiser z = f (x1 , x2 , . . . , xn )

où la fonction objectif f est une fonction numérique à n variables dans le cas
d’une optimisation sans contraintes.
Dans le cas d’une optimisation avec contraintes, le problème s’écrit alors sous la
forme suivante :

Optimiser z = f (x1 , x2 , . . . , xn ) (1.1)


 

Sous les contraintes hi (x1 , x2 , . . . , xn )  ≥  bi i = 1 . . . m (1.2)
=

où les fonctions f et hi sont des fonctions numériques à n variables.


La fonction f de (1.1) est la fonction objectif à optimiser, tandis que les équations
ou inéquations de (1.2) sont les contraintes.
Selon la nature des fonctions f et hi , on peut être confronté à plusieurs types
de problèmes de programmation mathématique. Lorsque les fonctions f et hi ,
i = 1, ..., m sont linéaires, il s’agit d’un problème de programmation linéaire. Si de
plus, on impose que les variables ne peuvent prendre que des valeurs entières, on
parle de programmation linéaire entière. Les problèmes dans lesquels la fonction
f ou hi sont non linéaires font partie de la programmation non-linéaire. Un cas
particulier est la programmation quadratique relative aux problèmes pour lesquels
la fonction f est quadratique et les fonctions hi linéaires.

2 Programmation linéaire
Chapitre 2

Optimisation linéaire

2.1 Problèmes de programmation linéaire


La programmation linéaire est beaucoup utilisée (pour ne citer que les cas les
plus connus) dans la logistique, la finance d’entreprise ou encore aussi en théorie
de la décision lorsque nous devons résoudre un jeu à stratégie mixte (Théorie
de la décision et des jeux). La programmation linéaire est un cas particulier
de la programmation mathématique pour laquelle la fonction (1.1) et (1.2) sont
linéaires. De plus, les variables sont supposées être non-négatives. Un problème
de programmation linéaire revient donc à :

Optimiser z = c1 x 1 + c2 x 2 + . . . + cn x n (2.1)
 

Sous les contraintes ai1 x1 + ai2 x2 + . . . + ain xn ≥  bi
 (2.2)
=
xj ≥ j = 1...n (2.3)

aij , bi et cj sont des constantes connues, avec i = 1 . . . m et j = 1, . . . n

2.2 Formulation d’un programme linéaire (PL)


2.2.1 Les conditions de formulation d’un PL
La programmation linéaire comme étant un modèle admet des hypothèses
(des conditions) que le décideur doit valider avant de pouvoir les utiliser pour
modéliser son problème. Ces hypothèses sont :

3
Optimisation linéaire

1. Les variables de décision du problème sont positives


2. Le critère de sélection de la meilleure décision est décrit par une fonction
linéaire de ces variables, c’est à dire, que la fonction ne peut pas conte-
nir par exemple un produit croisé de deux de ces variables. La fonction
qui représente le critère de sélection est dite fonction objectif (ou fonction
économique).
3. Les restrictions relatives aux variables de décision (exemple : limitations des
ressources) peuvent être exprimées par un ensemble d’équations linéaires.
Ces équations forment l’ensemble des contraintes.
4. Les paramètres du problème en dehors des variables de décisions ont une
valeur connue avec certitude

2.2.2 Les étapes de formulation d’un PL


Généralement il y a trois étapes à suivre pour pouvoir construire le modèle
d’un programme linéaire :
1. Identifier les variables du problème à valeur non connues (variable de déci-
sion) et les représenter sous forme symbolique (Par exemple x1 ; x2 )
2. Identifier les restrictions (les contraintes) du problème et les exprimer par
un système d’équations linéaires.
3. Identifier l’objectif ou le critère de sélection et le représenter sous une forme
linéaire en fonction des variables de décision. Spécifier si le critère de sélec-
tion est à maximiser ou à minimiser.

2.2.3 Exemples de formulations


La tâche de formulation demande généralement une certaine expertise et
connaissance du problème pour pouvoir relever facilement les différentes com-
posantes du problème et ainsi donner un programme qui modélise au mieux la
situation réelle. Dans ce qui suit, on présentera quelques exemples de formulation
en programme linéaire liés à différents problèmes de décision :

Exemple 2.2.1 (Problème d’agriculture).


Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de
tomates et celles de piments. Il dispose de 480 heures de main d’oeuvre et de 440
m3 d’eau. Un hectare de tomates demande 1 heure de main d’oeuvre, 4 m3 d’eau
et donne un bénéfice net de 100 dhs. Un hectare de piments demande 4 heures de
main d’oeuvre, 2 m3 d’eau et donne un bénéfice net de 200 dhs.
Le ministère d’agriculture veut protéger le prix des tomates et ne lui permet pas
de cultiver plus de 90 hectares de tomates. Quelle est la meilleure allocation de
ses ressources ?

4 Programmation linéaire
2.2 Formulation d’un programme linéaire (PL)

1. Identification des variables de décision


Les deux activités que l’agriculteur doit déterminer sont les surfaces à al-
louer pour la culture de tomates et de piments :
• x1 : la surface allouée à la culture des tomates
• x2 : la surface allouée à la culture des piments
On vérifie bien que les variables de décision x1 ≥ 0 et x2 ≥ 0
2. Identification des contraintes.
Dans ce problème les contraintes représentent la disponibilité des facteurs
de production :
• Terrain : l’agriculteur dispose de 150 hectares de terrain, ainsi la contrainte
liée à la limitation de la surface de terrain est x1 + x2 ≤ 150
• Eau : la culture d’un hectare de tomates demande 4 m3 d’eau et celle
d’un hectare de piments demande 2m3 mais l’agriculteur ne dispose que
de 440m3 . La contrainte qui exprime les limitations des ressources en eau
est 4x1 + 2x2 ≤ 440
• Main d’œuvre : Les 480 heures de main d’oeuvre seront départager
(pas nécessairement en totalité) ente la culture des tomates et celles des
piments. Sachant qu’un hectare de tomates demande une heure de main
d’oeuvre et un hectare de piments demande 4 heures de main d’oeuvre
alors la contrainte représentant les limitations des ressources humaines
est x1 + 4x2 ≤ 480
• Les limitations du ministère d’agriculture : Ces limitations exigent
que l’agriculteur ne cultive pas plus de 90 hectares de tomates. La contrainte
qui représente cette restriction est x1 ≤ 90
3. Identification de la fonction objectif
La fonction objectif consiste à maximiser le profit apporté par la culture
de tomates et de piments. Les contributions respectives 100 et 200, des
deux variables de décision x1 et x2 sont proportionnelles à leur valeur. La
fonction objectif est donc z = x1 + 2x2 . Le programme linéaire qui modélise
le problème d’agriculture est :

Maximiser z = 100x1 + 200x2


Sous contraintes x1 + x2 ≤ 150
4x1 + 2x2 ≤ 440
x1 + 4x2 ≤ 480
x1 ≤ 90
x1 ≥ 0, x2 ≥ 0

Exemple 2.2.2 ( Problème de médecine).


Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir
les sujets atteints d’un rhume. Ces pilules sont fabriquées selon deux formats :
• Petite taille : elle contient 2 grains d’aspirine, 5 grains de bicarbonate et 1
grain de codéine.

Pr.Khatmi 5
Optimisation linéaire

• Grande taille : elle contient 1 grain d’aspirine, 8 grains de bicarbonate et 6


grains de codéine.
Pour guérir la maladie, le sujet a besoin d’au moins 12 grains d’aspirine, 74
grains de bicarbonate et 24 grains de codéine. Déterminer le nombre de pilules
minimales à prescrire au sujet pour qu’il soit guérit.

Le problème de médecine présente certaines ressemblances avec le problème de


l’agriculture, dans les deux cas c’est un problème d’allocation de ressources.
1. Identification des variables de décision
Les variables de décision qui représentent des valeurs inconnues par le dé-
cideur qui est dans ce cas le spécialiste en médecine sont :
• x1 : le nombre de pilules de petite taille à prescrire.
• x2 : le nombre de pilules de grande taille à prescrire.
On vérifie bien que les variables de décision x1 ≥ 0 et x2 ≥ 0
2. Identification des contraintes.
Les contraintes imposées par le problème sur les valeurs possibles de x1 et
x2 sont :
• La prescription doit contenir des pilules avec au moins 12 grains d’aspi-
rine. Sachant qu’une petite pilule contient 2 grains d’aspirine et qu’une
grande pilule contient un seul grain d’aspirine, on obtient la contrainte
suivante : 2x1 + x2 ≥ 12
• De la même façon que pour l’aspirine, la prescription du spécialiste en
médecine doit contenir au moins 74 grains de bicarbonate.Sachant qu’une
petite pilule contient 5 grains de bicarbonate et qu’une grande pilule contient
8 grains de bicarbonate. Ainsi la contrainte suivante doit être satisfaite :
5x1 + 8x2 ≥ 74
• Finalement la contrainte imposée par le fait que la prescription doit conte-
nir au moins 24 grains de codéine et sachant qu’une petite pilule contient
un grain de codéine et qu’une grande pilule contient 6 grains de codéine.
La contrainte est x1 + 6x2 ≥ 24
3. Identification de la fonction objectif
On remarque qu’il y a plusieurs couples de solutions qui peuvent satisfaire
les contraintes spécifiées à l’étape 2. La prescription doit contenir le mini-
mum possible de pilules. Donc le critère de sélection de la quantité de pilules
à prescrire est celle qui minimise le nombre total des pilules z = x1 + x2 . Le
programme linéaire qui modélise ce problème médical est donc le suivant :

Minimiser z = x1 + x2
Sous contraintes 2x1 + x2 ≥ 12
5x1 + 8x2 ≥ 74
x1 + 6x2 ≥ 24
x1 ≥ 0, x2 ≥ 0

6 Programmation linéaire
2.2 Formulation d’un programme linéaire (PL)

2.2.4 Exercices
Faites la formulation mathématique des programmes linéaires suivants.

Exercice 2.2.1.
Une entreprise fabrique des chaises et des tables à l’aide de deux machines A
et B. Chaque produit passe obligatoirement par les deux machines. Pour produire
une chaise, il faut 2 heures de machine A et 1 heure de machine B. Pour produire
une table, il faut 1 heure de machine A et 2 heures de machine B. L’entreprise
réalise un bénéfice de 3Dh sur chaque chaise et de 4 Dh sur chaque table. Les deux
machines A et B sont disponibles 12 heures par jour au maximum. Le problème
consiste à savoir combien de chaises et de tables il faut fabriquer pour maximiser
le bénéfice.

Exercice 2.2.2.
Une compagnie possède deux mines de charbon A et B. La mine A produit
quotidiennement 1 tonne de charbon de qualité supérieure, 1 tonne de qualité
moyenne et 6 tonnes de qualité inférieure. La mine B produit par jour 2, 4 et
3 tonnes de chacune des trois qualités. La compagnie doit produire au moins 90
tonnes de charbon de qualité supérieure, 120 tonnes de qualité moyenne et 180
tonnes de qualité inférieure. Sachant que le coût de production journalier est le
même dans chaque mine, soit 1 000, quel est le nombre de jours de production
dans la mine A et dans la mine B qui minimisent le coût de production de la
compagnie ?

Exercice 2.2.3.
Un tailleur a à sa disposition 10 mètres de coton, 7,5 mètres de laine et 5
mètres de soie. Il a besoin pour un complet d’un mètre de coton, d’un mètre de
laine et de 0,25 mètre de soie. Pour une robe, il emploie un mètre de coton, 0,5
mètre de laine et un mètre de soie. Si un complet coûte 160 Dh et une robe 100
Dh, combien doit-il confectionner de complets et de robes pour maximiser son
revenu ?

Exercice 2.2.4.
Une diététicienne doit préparer un repas composé de deux aliments A et B qui
contienne au moins 300 g de protéines et 400 g d’hydrates de carbone. Chaque
unité de l’aliment A contient 10 g de protéines et 16 g d’hydrates de carbone et
coûte 80 centimes. Chaque unité de l’aliment B contient 12,5 g de protéines et
10 g d’hydrates de carbone et coûte 1,20 Dh. Déterminer le mélange qui coûte
le moins cher et qui apporte la quantité requise de protéines et d’hydrates de
carbone.

Pr.Khatmi 7
Optimisation linéaire

8 Programmation linéaire
Chapitre 3

La méthode du simplexe

3.1 Introduction

On a présenté dans le chapitre précédent une procédure graphique pour ré-


soudre un programme linéaire à deux variables. Par contre, dans la plupart des
problèmes réels, on a plus que deux variables à déterminer. Une procédure algé-
brique pour résoudre les programmes linéaires avec plus que deux variables fera
l’objet de ce chapitre. C’est la méthode de simplexe,elle consiste à suivre un cer-
tain nombre d’étapes avant d’obtenir la solution d’un problème donné. Il s’agit
d’une méthode algébrique itérative qui permet de trouver la solution exacte d’un
problème de programmation linéaire en un nombre fini d’étapes.
Afin de comparer avec la résolution graphique, nous pouvons considérer que nous
sommes dans un espace à n dimensions (nombre de variables d’activité). Les
contraintes délimitent un polyèdre convexe, région des solutions admissibles ; la
fonction objectif est un hyperplan que l’on va déplacer le plus loin possible de
l’origine, jusqu’à l’extrême limite où il n’y aura plus qu’un point d’intersection
(éventuellement un segment, un plan...) avec la région des solutions admissibles.
La solution se trouvant forcément sur le pourtour du polyèdre admissible, la mé-
thode du simplexe consiste en itérations qui font passer d’un sommet du polyèdre
à un autre en sélectionnant le sommet adjacent maximisant la fonction objectif.

3.2 Formulation du problème

Un problème général de programmation linéaire peut se formuler de la manière


suivante :

9
La méthode du simplexe

Optimiser z = c1 x 1 + c2 x 2 + . . . + cn x n (3.1)
 

Sous les contraintes ai1 x1 + ai2 x2 + . . . + ain xn ≥  bi
 (3.2)
=
xj ≥ 0 j = 1...n (3.3)

aij , bi et cj sont des constantes connues, avec i = 1 . . . m et j = 1, . . . n


Chaque contrainte pouvant avoir un signe d’inégalité différent.
En résumé, un programme linéaire est un modèle mathématique qu’on peut écrire
sous la forme matricielle suivante :

Optimiser z = cx (3.4)
 

Sous les contraintes Ax  ≥  b (3.5)
=
x≥0 (3.6)
     
c1 x1 · · · a1n
a11 a12
 c2   x2  · · · a2n 
a21 a22
Avec c =  , x =   et A = 
     
.. .. .... .. ..
 .
   .  . . .  .
cn xn am1 am2 · · · amn
Un problème de programmation linéaire peut se présenter sous différentes
formes. En voici la terminologie.

3.2.1 Forme canonique


Définition 3.2.1. Si la fonction objectif doit être maximisée et si toutes les
contraintes (3.2) sont des inéquations du type ≤, on dit que le programme li-
néaire se présente sous une forme canonique. Matriciellement, un problème de
programmation linéaire se présente sous sa forme canonique de la manière sui-
vante :

Maximiser z = cx (3.7)
Sous les contraintes Ax ≤ b (3.8)
x≥0 (3.9)

Tout problème de programmation linéaire peut être posé sous forme cano-
nique. Deux cas peuvent alors se présenter : La transformation de minimisation
en maximisation, la transformation des contraintes economiques et les contraintes
de signe.

10 Programmation linéaire
3.2 Formulation du problème

1. Transformation minimisation-maximisation
Tout problème de minimisation peut être transformé en un problème équi-
valent de maximisation. En effet, le problème :

Minimiser z = cx ⇔ Maximiser (−z) = −cx

La raison pour laquelle ces deux formulations sont équivalentes est simple :
la solution qui permet d’obtenir la plus petite valeur de z fournit également
la plus grande valeur de (−z). La seule différence réside dans le signe de la
valeur de la fonction objectif. La valeur minimale de z s’obtient en prenant
l’opposé de la valeur maximale de (−z).
Exemple 3.2.1. Minimiser z = 3x1 −2x2 +5x3 La formulation équivalente
en terme de maximisation est : Maximiser (−z) = −3x1 + 2x2 − 5x3
2. Transformation des contraintes économiques

(a) si la ieme contrainte est de la forme :

ai1 x1 + ai2 x2 + . . . + ain xn ≥ bi (1 ≤ i ≤ m)

en la multipliant par (-1) on obtient :

−ai1 x1 − ai2 x2 − . . . − ain xn ≤ −bi (1 ≤ i ≤ m)

(b) si la ieme contrainte est de la forme :

ai1 x1 + ai2 x2 + . . . + ain xn = bi (1 ≤ i ≤ m)

on peut transformer cette équation en deux inéquations :

ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi (1 ≤ i ≤ m)

ai1 x1 + ai2 x2 + . . . + ain xn ≥ bi (1 ≤ i ≤ m)


Il suffit alors de multiplier la deuxième équation par (-1) pour obtenir :

ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi (1 ≤ i ≤ m)

−ai1 x1 − ai2 x2 − . . . − ain xn ≤ −bi (1 ≤ i ≤ m)


3. Transformation des variables sans restriction de signe en variables
positifs.
Dans certains problèmes, il arrive qu’on doive traiter une ou plusieurs va-
riables de signe quelconque. Une variable sans restriction de signe peut alors
être décomposée en deux variables non-négatives x+ et x− .
En posant : x = x+ − x− Avec x+ = max(0, x) et x− = max(0, −x)

Pr.Khatmi 11
La méthode du simplexe

Exemple 3.2.2. Transformer le problème de programmation linéaire suivant


Minimiser z = x1 − 2x2
sous contrainte x1 − 2x2 ≤ 5
3x1 + 2x2 ≥ 2
x1 + x2 = 7
x1 ≥ 0, x2 de signe quelconque
sous forme canonique.
X Transformer minimiser en maximiser

Minimiser z = x1 − 2x2 ⇔ Maximiser (−z) = −x1 + 2x2


X Transformation des contraintes économiques
La première contrainte est déjà sous forme canonique. La deuxième doit
être multipliée par (-1) :
−3x1 − 2x2 ≤ −2
Finalement, pour la troisième contrainte, on pose :
x1 + x2 ≤ 7 et x1 + x2 ≥ 7
La contrainte x1 + x2 ≥ 7 doit être multiplié par (−1).
X Transformation des contraintes de signe

x1 ≥ o, pour x2 , on pose x2 = x+2 − x2
Sous forme canonique, le problème de programmation linéaire s’écrit :

Maximiser (−z) = −x1 + 2x+2 − 2x2

Sous contraintes x1 − 2x+
2 + 2x2 ≤ 5

−3x1 − 2x+2 + 2x2 ≤ −2

x1 + x+
2 − x2 ≤ 7

−x1 − x+2 + x2 ≤ −7

x1 ≥ 0, x+2 ≥ 0, x2 ≥ 0

3.2.2 Forme standard


Définition 3.2.2. Un problème de programmation linéaire se présente sous sa
forme standard si toutes les contraintes sont des équations. La fonction objectif
doit également être maximisée. Sous forme matricielle, la forme standard s’écrit :
Maximiser z = cx (3.10)
Sous les contraintes Ax = b (3.11)
x≥0 (3.12)

12 Programmation linéaire
3.2 Formulation du problème

Tout problème de programmation linéaire peut être posé sous forme stan-
dard. Trois cas peuvent alors se présenter : La transformation de minimisation
en maximisation, la transformation des contraintes de signe et la transforma-
tion des contraintes économiques inégalitées en contraintes égalitées. La transfor-
mation minimisation-maximisation et la transformation des contraintes de signe
sont déja traités au paragraphe précédent, il reste la dernière transformation .
Transformation des contraintes inégalitées en contraintes égalitées

Pour transformer les inégalités en égalités, on introduit des variables non-


négatives appelées variables d’écart.
1. si la ieme contrainte est de la forme :
ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi (1 ≤ i ≤ m)
nous introduisons une nouvelle variable ti ≥ 0 et écrivons :
ai1 x1 + ai2 x2 + . . . + ain xn + ti = bi
avec
ti = bi − ai1 x1 + ai2 x2 + . . . + ain xn
2. si la ieme contrainte est de la forme :
ai1 x1 + ai2 x2 + . . . + ain xn ≥ bi (1 ≤ i ≤ m)
nous introduisons une nouvelle variable ti ≥ 0 et écrivons :
ai1 x1 + ai2 x2 + . . . + ain xn − ti = bi
avec
ti = ai1 x1 + ai2 x2 + . . . + ain xn − bi
Remarque 3.2.1.
– Avec l’introduction des variables d’écart, tout problème sous forme cano-
nique possède une forme standard équivalente.
– La méthode du simplexe requiert des bi ≥ 0. Par conséquent, les contraintes
qui ont un bi négatif doivent être transformées en contraintes aux bi positifs.
Cette transformation se fait simplement en multipliant la contrainte par
(−1).
Exemple 3.2.3. Transformer le problème de programmation linéaire suivant
Minimiser z = x1 − 2x2
sous contrainte x1 − 2x2 ≤ 5
3x1 + 2x2 ≥ 2
x1 ≥ 0, x2 de signe quelconque
sous forme canonique.

Pr.Khatmi 13
La méthode du simplexe

X Transformation de minimiser en maximiser

Minimiser z = x1 − 2x2 ⇔ Maximiser (−z) = −x1 + 2x2


X Transformation des contraintes économiques

• La contrainte x1 − 2x2 ≤ 5
En introduisant la variable d’écart t1 , elle va être transformée en

x1 − 2x2 + t1 = 5

• La contrainte 3x1 + 2x2 ≥ 2


En introduisant la variable d’écart t2 , elle va être transformée en

3x1 + 2x2 − t2 = 2

X Transformation des contraintes de signe



x1 ≥ o, pour x2 , on pose x2 = x+
2 − x2
Sous forme standard, le problème de programmation linéaire s’écrit :

Maximiser (−z) = −x1 + 2x+ 2 − 2x2

Sous contraintes x1 − 2x+
2 + 2x2 + t1 = 5

3x1 + 2x+
2 − 2x2 − t2 = 2

x1 ≥ 0, x+2 ≥ 0, x2 ≥ 0

En résumé, nous avons vu que la fonction objectif d’un programme linéaire peut
être présentée sous forme de maximisation, que les contraintes peuvent toujours
s’écrire sous forme d’égalité (avec des bi positifs) et que les variables sans restric-
tion de signe peuvent être décomposées en variables non-négatives. En d’autres
termes un programme linéaire peut toujours être présenté sous sa forme standard.

3.3 Résolution par la méthode du simplexe


Dans le paragraphe précédent, nous avons montré comment un problème de
programmation linéaire pouvait toujours se présenter sous forme standard avec
un second membre positif :

Maximiser z = cx (3.13)
Sous contraintes Ax = b (3.14)
x≥0 (3.15)
b≥0 (3.16)

14 Programmation linéaire
3.3 Résolution par la méthode du simplexe

Dans cette formulation, le vecteur x contient toutes les variables, y compris les
variables d’écart ; il s’agit d’un vecteur colonne d’ordre (n × 1). Le vecteur c est
un vecteur ligne d’ordre (1×n). Quant à la matrice A, d’ordre (m×n), il s’agit de
la matrice des coeffcients des contraintes transformées. Enfin, le vecteur b d’ordre
(m × 1) est le vecteur (positif) du second membre.

Définition 3.3.1.
• On appelle solution d’un problème de programmation linéaire tout vecteur
x qui satisfait les contraintes (3.14).
• Une solution est appelée solution réalisable si elle vérifie les contraintes de
non-négativité (3.15). Dans le cas contraire, on dit que la solution n’est pas
réalisable.
• Une solution réalisable est une solution optimale s’il n’existe pas d’autres
solutions réalisables qui fournissent une plus grande valeur de la fonction
objectif.

Remarque 3.3.1. À noter que dans un problème possédant des solutions réali-
sables, il se peut que la valeur optimale de la fonction objectif soit infinie. Dans
ce cas, on parle de solution optimale infinie.

L’ensemble des contraintes (3.14) s’écrit donc comme un système de m équa-


tions à n inconnues : Ax = b. Pour développer la méthode du simplexe, nous
avancerons les hypothèses suivantes :
1. r(A) = r(A|b), c’est-à-dire que le système d’équations est compatible.
2. r(A) = m, où m est le nombre de contraintes.
La seconde hypothèse permet de former, à partir de A, une sous matrice B (m×m)
inversivble. Cette matrice B peut être formée par n’importe quel ensemble de m
colonnes linéairement indépendantes de A.. La matrice B est appelée matrice de
base puisqu’elle est formée de m vecteurs linéairement indépendants.
Sans restreindre la généralité, on peut supposer que les colonnes de A ont été
ordonnées de manière à pouvoir écrire A sous la forme A = (B, N ), avec B de
dimension (m×m) la matrice de base et N de dimension (m×(n−m)) contenant
les colonnes de A qui n’appartiennent pas à B. Le vecteur x peut être partitionné
de façon analogue en posant x = (xB , xN ).

Définition 3.3.2 (Variables de base).


Les variables xB sont appelées variables de base et les variables xN les variables
hors base.

Définition 3.3.3 (Base).


La famille I constitué par les indices des variables de bases est dite une base

Finalement le vecteur c peut lui aussi être partitionné de la même manière en


c = (cB , cN ). Le programme linéaire (3.13)-(3.14) peut donc être reformulé de la

Pr.Khatmi 15
La méthode du simplexe

manière suivante :

Maximiser z = cB x B + cN x N (3.17)
Sous contraintes BxB + N xN = b (3.18)
xB ≥ 0, xN ≥ 0 (3.19)
b≥0 (3.20)

La contrainte (3.18) peut s’écrire de manière équivalente :

BxB = b − N xN

etr puisque B est inversible

xb = B −1 b − B −1 N xN

Lorsque toutes les variables hors base sont nulles, xN = 0, la relation (3.3)devient
xb = B −1 b.

Définition 3.3.4 (solution de base).


• On appelle solution de base la solution :
   −1 
xB B b
=
xN 0

• Lorsque xB = B −1 b ≥ 0 et xn = 0, on parle de solution de base réalisable.

Remarque 3.3.2. Si les variables de base forment une solution de base réalisable,
on dit que la base I est réalisable.

Exemple 3.3.1. Soit le problème de programmation linéaire suivant :

Maximiser z = 3x1 + 5x2 + x3


Sous contraintes x1 + 2x2 − x3 ≤ 16
3x1 − 4x2 ≤ 20
x1 ≥ 0, x2 ≥ 0 et x3 ≥ 0

Ce problème peut se mettre sous forme standard en introduisant les variables


d’écart t1 et t2 :

Maximiser z = 3x1 + 5x2 + x3 + 0.t1 + 0t2


Sous contraintes x1 + 2x2 − x3 + t1 = 16
3x1 − 4x2 + t2 = 20
x1 , x 2 , x 3 , t 1 , t 2 ≥ 0

16 Programmation linéaire
3.3 Résolution par la méthode du simplexe

Sous forme matricielle, on obtient donc :


 
x1
   x2   
1 2 −1 1 0 
 , b = 16
 
A= , x= x3 et c = 3 5 1 0 0
3 −4 0 0 1   20
 x4 
x5

Formons à partir de A une matrice de base B en prenant par exemple les colonnes
2 et 4, dans cet ordre :
 
2 1
B=
−4 0

Il s’agit bien d’une base puisque B est inversible (|B| = 4 6= 0).


À cette matrice de base correspond une solution de base donnée par : xB = B −1 b.
Dans notre cas :
0 − 14
 

B −1 =  
1
1 2

0 − 14
      
x2 16 −5
xB =  =  = 
1
x4 1 2
20 26

Les autres variables étant nulles, x1 = x3 = x5 = 0. Dans ce cas la base I = (2, 4)


Cette solution de base n’est pas réalisable pour la simple raison que x2 = −5 viole
la contrainte de non-négativité. Dans cet exemple, il est très facile de trouver une
base qui fournisse une solution réalisable de base. En effet les colonnes 4 et 5
forment une base qui est l’identité :
 
1 0
B=I=
0 1
 
16
La solution de base est le vecteur b puisque : xB = I.b = b =
20
Comme b ≥ 0 lorsque le problème est présenté sous sa forme standard, la solution
est une solution réalisable de base, et z a pour valeur : z = 016 + 020 = 0

Définition 3.3.5. Un programme linéaire sous forme standard est dit sous forme
canonique par rapport à une base I si la matrice B est l’identité et les coûts
correspondant aux variables de base sont nuls.

Pr.Khatmi 17
La méthode du simplexe

3.3.1 Résolution d’un programme linéaire canonique par


rapport à la base I.
On part de l’exemple traité dans la section résolution graphique

Maximiser z = 1200x1 + 1000x2


Sous contraintes 3x1 + 4x2 ≤ 160
6x1 + 3x2 ≤ 180
x1 ≥ 0, x2 ≥ 0

dont la solution optimale est z = 47200 et réalisée au point x1 = 16 et x2 = 28


Écrivons le programme sous sa forme standard

Maximiser z = 1200x1 + 1000x2 + 0.t1 + 0.t2


Sous contraintes 3x1 + 4x2 + t1 = 160
6x1 + 3x2 + t2 = 180
x1 ≥ 0, x2 ≥ 0, t1 ≥ 0, t2 ≥ 0

1. Initialisation
Pour avoir une solution initiale réalisable, on commence par extraire de la
matrice A une base I qui soit réalisable et telle que le programme linéaire
soit sous forme canonique par rapport à cette base.
   
3 4 1 0 1 0
A= ⇒B= et I = (3, 4)
6 3 0 1 0 1

la solution de base réalisable initiale est


 
0
 0 
 
 160 
180

Et la fonction objectif initiale est alors z0 = 1200 × 0 + 1000 × 0 = 0


On forme alors un premier tableau 0 à partir du programme linéaire et de
la base I.
Tableau 0
HH
HB
HH x1 x2 t1 t2 C
B HH
t1 3 4 1 0 160
t2 6 3 0 1 180
4 1200 1000 0 0 -z=0

Ce tableau nous donne la première solution admissible :

18 Programmation linéaire
3.3 Résolution par la méthode du simplexe

X Les variables Hors Base (HB) sont nulles :x1 = 0 ; x2 = 0 (t1 et t2 en


rouge ne sont pas hors base ; elles ne sont présentes que pour rappeler
qu’il s’agit des colonnes des coefficients de ces deux variables dans la
matrice A)
X Les valeurs des variables dans la Base (B) se lisent dans la colonne C :
t1 = 160 et t2 = 180 La dernière cellule (intersection de C et 4) donne
la valeur de −z : −z = 0 donc z = 0
X La ligne 4 donne les valeurs marginales ou taux marginaux de substitu-
tion ; elles s’interprètent de la manière suivante : à ce stade de la solution,
une augmentation de 1 unité de x1 ferait accroı̂tre la fonction objectif de
1200, et une augmentation de 1 unité de x2 ferait accroı̂tre la fonction
objectif de 1000.
L’algorithme du simplexe s’écrit schématiquement ainsi :
– Former le premier tableau du simplexe.
– Vérifier si le test d’arrêt est vérifié.
– Sinon, faire le tableau suivant et changer de base.
Les conditions du tableau du simplexe
A chaque itération les conditions suivantes doivent être vérifiées :
• Le programme linéaire est sous forme canonique par rapport à la base.
• La base est réalisable (les éléments de la dernière colonne sont positifs ou
nuls).
• Les variables de base sont listées sur la première colonne.
• La case en bas à droite vaut −z
• Les coûts des variables de base sont nuls.
2. Tableau suivant
L’objectif est d’augmenter la fonction objectif en faisant entrer une variable
(HB) dans la base à la place d’une autre variable de base qui va sortir de
la base.
Critère de sélection de la variable entrant dans la base :
On sélectionne la variable HB ayant le plus grand coefficient positif dans
la ligne 4, la colonne pivot est alors trouvée. Dans notre exemple x1 entre
dans la base.

HHB :
HH
x1 x2 t1 t2 C
B HHH
t1 3 4 1 0 160
t2 6 3 0 1 180
4 1200 1000 0 0 −z0 = 0

Pour sélectionner la variable sortante de la base, il est nécessaire de rajouter


une colonne R au tableau, obtenue en faisant le rapport membre à membre
de la colonne C et de la colonne de la variable entrant dans la base (x1 ).

Pr.Khatmi 19
La méthode du simplexe

HHB :
HH
x1 x2 t1 t2 C R
B HHH
160
t1 3 4 1 0 160 3
t2 6 3 0 1 180 30
4 1200 1000 0 0 −z0 = 0

Remarque 3.3.3. Sur la colonne R :


– Un 0 dans la colonne C est remplacé par un infiniment petit positif ε pour
effectuer le calcul de R
– Dans la colonne R on ne tient pas compte des valeurs négatives ou indé-
terminées.
Critère de sélection de la variable sortant de la base :
On sélectionne la variable dans la base ayant le plus petit coefficient positif
dans la colonne R, la ligne pivot est alors trouvée. Dans notre exemple t2
sort de la base.

HHB :
HH
x1 x2 t1 t2 C R
B HHH
160
t1 3 4 1 0 160 3
t2 6 3 0 1 180 30
4 1200 1000 0 0 −z0 = 0

On appelle pivot l’intersection de la variable entrante et de la variable sor-


tante, dans notre exemple le pivot est 6.
Pour obtenir le tableau qui suit, on applique les règles suivantes :
N Les coefficients de la ligne du pivot sont divisés par le pivot. Le pivot
prend donc la valeur 1.
N Les coefficients de la colonne du pivot sont remis à 0 excepté le pivot qui
reste à la valeur 1.
N Pour les autres valeurs du tableau procéder comme suit à partir du ta-
bleau précédent :
CCP ∗ CLP
N V = AV −
P
Avec :
• NV : Nouvelle Valeur de la case considérée du tableau
• AV : Ancienne Valeur de la case considérée du tableau
• CCP : Coefficient précédent de la colonne pivot situé sur la même ligne
que AV
• CLP : Coefficient précédent de la ligne pivot situé sur la même Colonne
que AV
• P : Valeur précédente du pivot.

20 Programmation linéaire
3.3 Résolution par la méthode du simplexe

Tableau 1
HHB :
HH
x1 x2 t1 t2 C
B HH
H
t1 0 5/2 1 −1/2 70
x1 1 1/2 0 1/6 30
4 0 400 0 -200 −36000

3. Test d’arrêt

Théorème 3.3.1 (condition suffisante d’optimalité).


Considérons un programme linéaire sous forme canonique par rapport à une
base réalisable I. Si les coûts sur la ligne 4 correspondant aux variables hors
base sont négatifs ou nuls alors la solution de base I est la solution optimale
et l’objectif à l’optimum est z0 .
Théorème 3.3.2 (Problème non borné).
Considérons un programme linéaire sous forme canonique par rapport à une
base réalisable I. S’il existe une variable hors base dont le coût sur la ligne
4 est positif et tous les autres coefficients de la colonne de cette variable
sont négatifs ou nuls alors le programme linéaire n’est pas borné, la solution
est donc l’infini.
Théorème 3.3.3 (Infinité de solutions).
Si, à la fin des itérations, une variable est HB avec un coefficient nul dans
la ligne 4, alors on a une arête (plan,...) optimale. Les autres sommets
solutions sont obtenus en faisant rentrer cette variable dans la base.
Dans le tableau 1, on remarque que la variable x2 a un coût 400, donc positif et il
ya au moins un coefficient de la colonne x2 est positif, donc on passe au tableau
2. Pour ce faire, on doit trouver la colonne et la ligne pivot.

HHB :
HH
x1 x2 t1 t2 C R
B HHH
t1 0 5/2 1 −1/2 70 28
x1 1 1/2 0 1/6 30 60
4 0 400 0 -200 −36000
x2 rentre dans la base et t1 sort de la base.

Pr.Khatmi 21
La méthode du simplexe

T ableau2
HHHB :
H
x1 x2 t1 t2 C
B HHH
x2 0 1 2/5 −1/5 28
x1 1 0 −1/5 4/15 16
4 0 0 -160 -120 −47200
Tous les coefficients de la ligne 4 relatifs aux variables HB, sont négatifs ou
nuls, la solution trouvée est optimale. Nous avons donc ici atteint la solution
optimale.Ce tableau nous donne la solution optimale admissible :
X Les variables Hors Base (HB) sont nulles : t1 = 0 ; t2 = 0
X Les valeurs des variables dans la Base (B) se lisent dans la colonne C :

x2 = 28 et x1 = 16

X La dernière cellule (intersection de C et 4) donne la valeur de -z :

−z = −47200 ⇒ z = 47200

La ligne 4 donne les valeurs marginales ou taux marginaux de substitution ;


elles s’interprètent de la manière suivante : à ce stade de la solution, une aug-
mentation de 1 unité de t1 ferait diminuer la fonction objectif de 160, et une
augmentation de 1 unité de t2 ferait diminuer la fonction objectif de 120 (il est à
noter qu’une augmentation de 1 unité d’une variable d’écart revient à diminuer
le second membre de l’équation correspondante de 1 unité).

Exemple 3.3.2 (Infinité de solutions).

Maximiser z = x1 + 2x2
Sous contraintes −3x1 + 2x2 ≤ 2
x1 + 2x2 ≤ 4
−x1 + x2 ≤ 5
x1 ≥ 0, x2 ≥ 0,

Ecriture sous forme standard :

Maximiser z = x1 + 2x2 + 0t1 + ot2


Sous contraintes −3x1 + 2x2 + t1 = 2
x1 + 2x2 + t2 = 4
−x1 + x2 + t3 = 5
x1 ≥ 0, x2 ≥ 0,

22 Programmation linéaire
3.3 Résolution par la méthode du simplexe

T ableau0
HHB :
HH
x1 x2 t1 t2 t3 C R
B HH
H
t1 -3 2 1 0 0 2 1
t2 1 2 0 1 0 4 2
t3 -1 1 0 0 1 5 5
4 1 2 0 0 0 -z0=0
Dans le tableau 0, on remarque que la variable x2 a un coût 2, donc positif et il
ya au moins un coefficient de la colonne x2 qui est positif,en plus aucune variable
hors base n’a un coût nul donc on passe au tableau 1.
T ableau1
HHB :
HH
x1 x2 t1 t2 t3 C R
B HHH
x2 − 32 1 1
2
0 0 1 − 23
1
t2 4 0 -1 1 0 2 2
1
t3 2
0 − 21 0 1 4 8
4 4 0 -1 0 0 -z0=-2
Dans le tableau 1, on remarque que la variable x1 a un coût 4, donc positif et il
ya au moins un coefficient de la colonne x1 qui est positif,en plus aucune variable
hors base n’a un coût nul donc on passe au tableau 2.
T ableau2
HHB :
HH
x1 x2 t1 t2 t3 C R
B HHH
1 3 7
x2 0 1 8 8
0 4
14
x1 1 0 − 41 1
4
0 1
2
-2
t3 0 0 − 83 - 81 1 15
4
-10
4 0 0 0 -1 0 -z0=-4
Dans le tableau 2, on remarque que le coût de la variable hors base t1 est nul,
donc la solution est un ségement de premier sommet M1 = ( 12 , 74 ), l’autre sommet
est retrouvé en faisant entrer t1 dans la base.
T ableau3
HHHB :
H
x1 x2 t1 t2 t3 C R
B HHH
t1 0 8 1 3 0 14
x1 1 2 0 1 0 4
t3 0 3 0 1 1 9
4 0 -4 0 -1 0 -z0=-4
L’autre sommet est M2 = (4, 0).

Pr.Khatmi 23
La méthode du simplexe

Exemple 3.3.3. Considérons le problème de maximisation suivant :

Maximiser z = x1 + x 2
Sous contraintes 2x1 + 2x2 ≤ 8
x1 ≥ 0, x2 ≥ 0

Sous forme standard le problème s’écrit :

Maximiser z = x1 + x2
Sous contraintes 2x1 + 2x2 + t = 8
x1 ≥ 0, x2 ≥ 0, t ≥ 0

le premier trableau 0 est le suivcant :

HHHB :
H
x1 x2 t C
B H
HH
Tableau 0 :
t 2 2 0 8
4 1 1 0 0

HHB :
HH
x1 x2 t C
B HHH
Tableau 1 :
x1 1 1 0 4
4 0 0 0 -4
Sur la ligne 4 la variable x2 hors base a un coefficient nul, la solution est une
arête dont les sommets sont (x1 = 4, x2 = 0) et (x1 = 0, x2 = 4)

3.3.2 Résolution d’un programme linéaire quelconque


Pour pouvoir traiter les programmes linéaires généraux, la difficulté consiste
à former un premier tableau du simplexe satisfaisant les invariants. En effet, for-
mer ce premier tableau équivaut à identifier un sommet du polyèdre solutions
réalisables (via la solution de base) et donc, en particulier, à démontrer que le
programme linéaire admet au moins une solution réalisable.
Dans le cas d’un programme linéaire sous forme canonique par rapport à la base
, l’origine est une solution évidente mais c’est faux en général.
Dans cette section, on montre que le problème de la recherche d’un premier ta-
bleau peut se réduire en un problème d’optimisation, la résolution d’un autre
programme linéaire, appelé ( programme artificiel ), qui relève, lui, du cas pro-
gramme sous forme canonique par rapport à la base.
Prenons pour exemple le programme suivant qu’on résolu avec la méthode gra-

24 Programmation linéaire
3.3 Résolution par la méthode du simplexe

phique.
Maximiser z = 2x1 + 5x2
Sous contraintes 8x1 + 4x2 ≥ 40
x1 + 5x2 ≥ 10
x1 ≥ 0, x2 ≥ 0
La mise sous forme standard ramène deux variables d’écart.
Maximiser z = 2x1 + 5x2
Sous contraintes 8x1 + 4x2 − t1 = 40
x1 + 5x2 − t2 = 10
x1 ≥ 0, x2 ≥ 0 t1 ≥ 0, t2 ≥ 0

On introduit des variables artificielles dans les équations qui posent problème.
On prends pour objectif artificielle minimiser ses varaibles.
Le programme artificielle associé est

Minimiser w = k1 + k2
Sous contraintes 8x1 + 4x2 − t1 + k1 = 40
x1 + 5x2 − t2 + k2 = 10
x1 ≥ 0, x2 ≥ 0 t1 ≥ 0, t2 ≥ 0 k1 ≥ 0, k2 ≥ 0

m
Maximiser (−w) = −k1 − k2
Sous contraintes 8x1 + 4x2 − t1 + k1 = 40
x1 + 5x2 − t2 + k2 = 10
x1 ≥ 0, x2 ≥ 0 t1 ≥ 0, t2 ≥ 0 k1 ≥ 0, k2 ≥ 0
Le programme artificielle relève du cas de programme canonique par rapport
à la base, en effet :
   
8 4 −1 0 1 0 1 0
A= ⇒B= et I = (5, 6)
1 5 0 −1 0 1 0 1

Les variables de base sont alors k1 et k2 et celles hors base sont x1 , x2 , t1 et t2 .


Il y a bijection entre les solutions du programme linéaire initial et les solutions
du programme artificiel telles que k1 = k2 = 0. Pour déterminer si le programme
initial admet au moins une solution, il suffit donc de déterminer si le programme
artificiel a une solution telle que k1 = k2 = 0. C’est ce qu’on fait en prenant pour
objectif : minimiser k1 + k2 .
Pour pouvoir appliquer l’algorithme du tableau du simplexe, il reste une difficulté
technique à lever : les variable k1 et k2 sont en base alors que leurs coûts sont non
nuls (l’une des conditions du tableau du simplexe n’est pas satisfait). Il suffit de
reformuler l’objectif en utilisant l’équation où figure les variables artificielles :

8x1 + 4x2 − t1 + k1 = 40 ⇔ 8x1 + 4x2 − t1 − 40 = −k1

Pr.Khatmi 25
La méthode du simplexe

x1 + 5x2 − t2 + k2 = 10 ⇔ x1 + 5x2 − t2 − 10 = −k2


La fonction objectif artificielle devient alors :

Maximiser (−w) = −k1 − k2 ⇔ Maximiser ($) = 9x1 + 8x2 − t1 − t2 − 50

Attention, cette fois ci la fonction objectif initiale est $0 = −50. On obtient


ainsi le tableau initial tableau 0 satisfaisant toutes les conditions du tableau du
simplexe. On applique au programme artificiel l’algorithme donné dans le cas fa-
vorable.

HHB :
HH
x1 x2 t1 t2 k1 k2 C R
B HH
H
Tableau 0 : k1 8 4 −1 0 1 0 40 5
k2 1 5 0 −1 0 1 10 10
4 9 9 -1 -1 0 0 50

HHB :
HH
x1 x2 t1 t2 k1 k2 C R
B HH
H
Tableau 1 : x1 1 1/2 −1/8 0 1/8 0 5 10
k2 0 9/2 1/8 −1 −1/8 1 5 10/9
4 0 9/2 1/8 -1 −9/8 0 5

HHB :
HH
x1 x2 t1 t2 k1 k2 C
B HH
H
Tableau 2 : x1 1 0 −5/36 1/9 5/36 -1/9 40/9
x2 0 1 1/36 −2/9 −1/36 2/9 10/9
4 0 0 0 0 −1 -1 0

L’optimum du programme artificiel est $0 = 0. Les variables artificielles k1 et


k2 sont hors base. On obtient une première base réalisable pour le programme
linéaire initial en supprimant simplement les variables artificielles. On
obtient ainsi un programme linéaire équivalent au programme linéaire initial avec
une première base réalisable I = (1,2), les variables dans la base sont alors x1 et
x2 et celles hors bases sont t1 et t2 .

Maximiser z = 2x1 + 5x2 (3.21)


5 1 40
Sous contraintes x1 − t1 + t2 = (3.22)
36 9 9
1 2 10
x2 + t1 − t2 = (3.23)
36 9 9
x1 ≥ 0, x2 ≥ 0 t1 ≥ 0, t2 ≥ 0 (3.24)

26 Programmation linéaire
3.3 Résolution par la méthode du simplexe

Proposition 3.3.1. Le programme linéaire initial admet au moins une solution


réalisable si et seulement si l’objectif réalisé à l’optimum du programme artificiel
est $0 = 0.

Proposition 3.3.2. Supposons que l’objectif réalisé à l’optimum du programme


artificiel soit $0 = 0. La solution optimale du programme artificiel fournit une
première base réalisable au programme linéraire initial si et seulement si aucune
variable artificielle n’est en base.

On remarque que le programme linéaire obtenu ne satisfait pas toutes les


conditions de l’algorithme du tableau du simplexe puisque les coûts correspondant
aux variables de base ne sont pas tous nuls. On applique la même technique que
précédemment : on réécrit l’objectif en se servant des équations des contraintes
(3.22) et (3.23).

5 1 40 5 1 40
x1 − t1 + t2 = ⇔ x1 = t1 − t2 +
36 9 9 36 9 9
1 2 10 1 2 10
x2 + t1 − t2 = ⇔ x2 = − t1 + t2 +
36 9 9 36 9 9
La fonction objectif z est alors égale à :

5 8 130
z= t1 + t2 +
36 9 9
Pour déterminer z0 , on évalue l’objectif (attention à la constante) sur la solution
de base : z0 = 130
9

HHHB :
H
x1 x2 t1 t2 C R
B HHH
Tableau 0 : x1 1 0 −5/36 1/9 40/9 40
x2 0 1 1/36 −2/9 10/9 -5
4 0 0 5/36 8/9 -130/9

HHB :
HH
x1 x2 t1 t2 C
B HHH
Tableau 1 : t2 9 0 −5/4 1 40
x2 2 1 −1/4 0 10
4 -8 0 5/4 0 -50
On remarque que la variable hors base t1 a une valeur positive dans la ligne
4, mais ses autres coefficients sont tous nuls, donc le test d’arrêt est vérifié, le
problème n’est pas borné et la solution optimale est l’infini, résultat confirmé par
la méthode graphique.

Pr.Khatmi 27
La méthode du simplexe

3.4 Exercice
Exercice 3.4.1. Soit le programme linéaire suivant :

Maximiser z = 3x2 + 5x3


Sous contraintes 4x2 − 3x3 ≤ 40
x1 + 4x2 + x3 = 6
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

1. Trouver une base réalisable du programme, la matrice de base associé ainsi


que la solution réalisable initiale.
2. Dresser le premier tableau 0.
3. Résoudre ce programme par la méthode du simplexe.

Exercice 3.4.2. Soit le programme linéaire suivant :

Maximiser z = 5x1 + 3x2


Sous contraintes 5x1 + 2x2 ≤ 40
5x1 + 4x2 ≤ 60
x1 ≥ 0, x2 ≥ 0

1. Ecrire ce programme sous forme matricièlle.


2. Résoudre ce programme par la méthode du simplexe.

Exercice 3.4.3.

Maximiser z = 2x1 + 3x2 + 5x3


Sous contraintes x1 + 4x2 − 3x3 ≤ 8
2x1 − x2 ≤ 5
5x1 + 2x2 − x3 = 19
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

1. Ce programme possède t-il une base réalisable ?


2. si oui est il sous forme caninique par rapport à cette base ?
3. résoudre ce programme par la méthode du simplexe.

28 Programmation linéaire

Vous aimerez peut-être aussi