Vous êtes sur la page 1sur 49

École National des Sciences Appliquées - Fès

Département Génie Électrique et Informatique

M09 : Programmation linéaire

Auteur
Prof. Safae El Haj Benali
safae.elhajbenali@usmba.ac.ma

N.B. : Version provisoire. Merci de me signaler les erreurs !


Table des matières
Table des matières 1
1 Introduction générale 3
1 Exemples et applications de la recherche opérationnelle . . . . . . . . . . . . . . . . . 3
1.1 planier une production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Maximiser le bénéce d'une usine . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Problème de médecine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 problème de production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Programmation linéaire 8
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Formes générales d'un programme linéaire . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 Forme canonique mixte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Forme canonique pure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Forme standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 Résolution graphique d'un problème de maximisation . . . . . . . . . . . . . . 10
3.2 Résolution graphique d'un problème de minimisation . . . . . . . . . . . . . . 11
4 Résolution algébrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 Variable d'écarts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Solutions de base réalisables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Propriétés géométriques des solutions de base réalisables . . . . . . . . . . . 17
5 Marche à suivre de la méthode algébrique . . . . . . . . . . . . . . . . . . . . . . . . 20
3 Méthode du simplexe 21
1 Principe de l'algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1 L'algorithme du simplexe : la phase 2 . . . . . . . . . . . . . . . . . . . . . . . 21
2 Représentation tabulaire du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1 Cas général de la méthode tabulaire du simplexe . . . . . . . . . . . . . . . . 24
2.2 Problème de maximisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Problème de minimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 Méthodes des deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1 Recherche d'une base de départ : Phase I . . . . . . . . . . . . . . . . . . . . 31
3.2 Illustration de la méthode sur un exemple . . . . . . . . . . . . . . . . . . . . 32
3.3 La méthode de "The big M " . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Problèmes irréguliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1 Cas de solution non bornée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Les problèmes impossibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1
2 TABLE DES MATIÈRES
4.3 Les problèmes à solutions multiples . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Les problèmes à solution dégénérée . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Dualité 40
1 Motivation et dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . ........ 40
1.1 Comparaison primal/dual . . . . . . . . . . . . . . . . . . . . . ........ 42
2 Propriétés - Théorèmes de dualité . . . . . . . . . . . . . . . . . . . . . ........ 42
3 Conditions d'optimalité primal-dual (COPD) . . . . . . . . . . . . . . . ........ 44
3.1 Utilisation pratique des COPD . . . . . . . . . . . . . . . . . . ........ 45
3.2 Calcul de la solution du problème dual à partir du tableau du simplexe du
problème primal . . . . . . . . . . . . . . . . . . . . . . . . . . . ........ 46
[ Premier Chapitre \
Introduction générale
Pour le grand public, la recherche opérationnelle est une technique récente, datant tout au plus
de la seconde guerre mondiale. Et, en fait, c'est bien à son application aux opérations militaires
qu'elle doit son nom.
En réalité, elle est bien plus ancienne, car, dès le dix-septième siècle, Pascal et Fermat, inventeurs
de la notion de l'espérance mathématique en 1654, cherchaient, suivis de peu par Jacques Bernoulli
et Waldegrave, à résoudre des problème de décision dans l'incertain. Avant la n de l'ancien ré-
gime, Mongue s'était proposé et avait résolu analytiquement un problème économique de nature
combinatoire : celui des déblais et remblais en 1776. Sous la monarchie de Juillet, Augustin Cournot
s'était attaqué à la théorie mathématique des richesses en 1838, devenant ainsi le précurseur de
l'économétrie. Plus récemment, Emile Borel introduisait la théorie mathématique des jeux, sous sa
forme moderne, à l'académie des Sciences durant la période 1921-25 tandis que Erlang fondait celle
des les d'attente, qu'il utilisait à la conception des réseaux téléphoniques en 1917. Enn, à la veille
de la guerre mondiale (1939-45), Kantorovitch concevait et appliquait la programmation linéaire à
la planication peu après que König se fut intéressait aux graphes en 1936.
La Recherche Opérationnelle est donc une discipline qui vise à résoudre par une démarche scien-
tique des problèmes de décision complexes issus du monde réel. Sa vocation est donc de construire
des modèles pour des problèmes généraux d'aide à la décision (en particulier les problèmes d'opti-
misation), et de proposer des méthodes de résolution ecace pour ces modèles. Généralement, ces
méthodes sont employées sur des problèmes tels que leur utilisation "manuelle" devient impossible.
C'est pourquoi, les démarches proposées par la recherche opérationnelle peuvent être traduites en
programmes informatiques.
La programmation linéaire est certainement l'un des plus beaux succès de la recherche opé-
rationnelle, elle provient d'une part, de la puissance de modélisation qu'elle ore et ce malgré la
limite inhérente imposée par la linéarité des fonctions impliquées, et d'autre part, de la richesse de
la théorie qu'elle a initiée et qui a permis le développement d'algorithmes extrêmement ecaces
pour sa résolution. Depuis sa formulation et le développement de la méthode du simplexe pour sa
résolution vers la n des années 40, la programmation linéaire demeure le modèle d'optimisation le
plus utilisé par les décideurs grâce certainement à la robustesse des algorithmes disponibles.
Le schéma général suivi par ces méthodes est :

1 Exemples et applications de la recherche


opérationnelle
Limité au départ aux problèmes industriels et militaires, de nos jours plusieurs problèmes de divers
domaines sont représentés ou approximés par des modèles de PL. L'utilisation de ces techniques de
3
4 CHAPITRE 1. INTRODUCTION GÉNÉRALE

modélisation s'est renforcée encore après avoir construit des algorithmes et des logiciels capables de
résoudre de plus larges problèmes avec autant de variables de décision que de contraintes.
La tâche de formulation demande généralement une certaine expertise et connaissance du pro-
blème pour pouvoir relever facilement les diérentes composantes 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 de diérents problèmes de décision :

1.1 planier une production


Nous sommes à la tête d'une armée, en guerre contre une nation. Nous prévoyons de produire
20 avions divisés en deux modèles. Selon le modèle, un avion est armé de b j bombes et m j missiles
et il cause des dégâts estimés par d j . On résume tout cela dans le tableau suivant :

modèle A modèle B
bombes 3 15
missiles 5 10
dégâts 5 11

On dispose au total de 225 bombes et 160 missiles. La question est la suivante : combien d'avions
de chaque modèle doit-on produire pour maximiser les dégâts inigés à l'ennemi ?
On appelle x A et xB les quantités d'avions à produire, respectivement du modèle A et du
modèle B. Les dégâts totaux peuvent s'écrire comme 5 x A + 11 xB , et l'on cherche donc à maximiser
f ( x A , xB ) = 5 x A + 11 xB . La première contrainte est évidemment l'ensemble des 20 avions que l'on
peut produire. Ainsi x A + xB ≤ 20. De même, nous disposons de contraintes sur le nombre total
de bombes et de missiles ce qui conduit à deux contraintes supplémentaires : 3 x A + 15 xB ≤ 225 et
5 x A + 10 xB ≤ 160. Enn, il faut rajouter des contraintes logiques : les quantités d'avions à produire
ne peuvent être que positives et donc x A et xB sont positifs.
   
à ! 1 1 20
5
Matriciellement, nous aurions c = , A =  3 15 
 
et b =  225 .
 
11
5 10 160
1. EXEMPLES ET APPLICATIONS DE LA RECHERCHE OPÉRATIONNELLE 5

Sous forme compacte le problème se modélise comme suit



 max
 ct x


Ax ≤b (1.1)
x ∈N

1.2 Maximiser le bénéce d'une usine


Une usine produit deux ciments, rapportant 500Dh et 700Dh par tonne. Une tonne du ciment
N°1 nécessite 40 min de calcination dans un four à chaux et 20 min de broyage. Une tonne du ciment
N°2 nécessite 30 min de calcination dans un four à chaux et 30 min de broyage.
Le four et l'atelier de broyage sont disponibles 6h et 8h par jour. Combien de ciment de chaque
type peut-on produire par jour pour maximiser le bénéce ? Ce problème se modélise comme suit :

max 500 x1 + 700 x2 (1.2)


40 x1 + 30 x2 ≤ 360 (1.3)
20 x1 + 30 x2 ≤ 480 (1.4)
x1 ≥ 0 , x2 ≥ 0 (1.5)

1.2 : est le prot total qui est à optimiser appelé fonction objective.
1.3 et 1.4 sont des contraintes. 1.3 est la disponibilité du four et 1.4 est la disponibilité du broyeur.
1.5 est le domaine des variables.

1.3 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.
• 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 de 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.
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érie bien que les variables de décision x1 et x2 sont positives : x1 ≥ 0, x2 ≥ 0.
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'aspirine. Sachant qu'une
petite pilule contient 2 grains d'aspirine et qu'une grande pilule contient un seul grain d'as-
pirine, on obtient la contrainte suivante : 2 x1 + 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. Ainsi la contrainte suivante doit être satisfaite : 5 x1 +8 x2 ≥
74.
6 CHAPITRE 1. INTRODUCTION GÉNÉRALE
• Finalement la contrainte imposée par le fait que la prescription doit contenir au moins 24
grains de codéine est x1 + 6 x2 ≥ 24.
Étape 3 : Identication de la fonction objectif. On remarque qu'il y a plusieurs couples de solutions
( x1 , x2 ) qui peuvent satisfaire les contraintes spéciées à l'étape 2. La prescription doit contenir le
minimum 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 modélise ce problème médical est donc le suivant :




min x1 + x2
 s.t. 2 x1 + x2 ≥ 12



5 x1 + 8 x2 ≥ 74 (1.6)
x1 + 6 x2 ≥ 24





 x1 ∈ N, x2 ∈ N

1.4 problème de production


Une usine fabrique 2 produits P1 et P2 en utilisant un certain nombre de ressources : équipement,
main d'oeuvre, matières premières. Ces besoins sont indiqués dans le tableau ci-dessous. Par ailleurs,
chaque ressource est disponible en quantité limitée.

P1 P2 disponibilité
équipement 3 9 81
main d'oeuvre 4 5 55
matière première 2 1 20

Les deux produits P1 et P2 rapportent à la vente respectivement des bénéces de 6 euros et 4


euros par unité. Quelles quantités de produits P1 et P2 (valeurs non-nécessairement entières) doit
produire l'usine an de maximiser le bénéce total venant de la vente des 2 produits ?
• Choix des variables (les inconnues) : x1 et x2 sont respectivement les quantités des produits
P1 et P2 fabriqués ( x1 , x2 ∈ R).
• Choix de la fonction objectif à maximiser : La fonction objectif f correspond au bénéce
total. Elle vaut f ( x1 , x2 ) = 6 x1 + 4 x2 . Le problème se traduit donc par
max [ f ( x1 , x2 ) = 6 x1 + 4 x2 ].
(x1 ,x2 )

• Détermination des contraintes.


 La disponibilité de chacune des ressources s'écrit :
3 x1 + 9 x2 ≤ 81
4 x1 + 5 x2 ≤ 55
2 x1 + x2 ≤ 20

 Positivité des variables : x1 , x2 ≥ 0.


2. FORMALISATION 7

En résumé, le problème de production se modélise sous la forme




 max [ f ( x1 , x2 ) = 6 x1 + 4 x2 ]


 (x1 ,x2 )
s.t. 3 x1 + 9 x2 ≤ 81


(1.7)

 4 x1 + 5 x2 ≤ 55




 2 x1 + x2 ≤ 20

 x1 , x2 ≥ 0

2 Formalisation
Tous les problèmes mentionnés ci-dessus et présentés dans ce cours peuvent se formaliser de la
façon suivante. On cherche à maximiser une fonction f sur un ensemble K donné :
max{ f ( x), x ∈ K }.

• f : K → R est la fonction objectif. f peut être linéaire, quadratique, nonlinéaire...


• K est l'ensemble des solutions possibles dites réalisables (les contraintes). L'ensemble K est
ni mais en général de très grande taille.
On peut envisager de façon équivalente un problème de minimisation grâce à la relation
min f = − max(− f ).
[ Deuxième Chapitre \
Programmation linéaire

1 Introduction
La programmation linéaire est une technique mathématique permettant de déterminer la meilleure
solution d'un problème dont les données et les inconnues satisfont à une série d'équations et d'in-
equations linéaires. La programmation linéaire a été formulée par Dantzig en 1947 et connaît un
développement rapide par suite de son application directe à la gestion scientique des entreprises.
Le facteur expliquant l'essor de la P.L est la construction d'ordinateurs puissants qui ont permis de
traiter les problèmes concrets de taille très grande. On l'applique surtout en gestion et en écono-
mie appliquée. On peut citer les domaines d'application de la programmation linéaire qui sont : les
transports, les banques, les industries lourdes et légères, l'agriculture, les chaînes commerciales, la
sidérurgie, et même le domaine des applications militaires. Les méthodes de résolution sont la mé-
thode du simplexe, méthode duale du simplexe, méthodes des potentiels, méthode lexicographique
et des méthodes récentes appelées méthodes des points intérieurs.
Un programme linéaire se dénit par ses composantes, une fonction, dite économique ou ob-
jective, à maximiser ou à minimiser, les contraintes de problème qui s'expriment par égalités ou
inégalités, et les contraintes de non négativité c'est-à-dire les variables ne peuvent être que positives
ou nulles (presque toujours ces variables prennent le sens de quantités).
La résolution d'un problème de la programmation linéaire ne pose incontestablement aucune
diculté car il y a des méthodes pratiques pour le résoudre, plus cela on peut utiliser des logiciels
très ecaces pour la résolution. Mais le problème capital est celui de formuler un problème, si
possible ; comme un programme linéaire La problématique que nous tentons de poser est : Est-
ce que peut recourir à une classication méthodique pour rendre la modélisation sous forme du
programme linéaire très aisée ?

8
2. FORMES GÉNÉRALES D'UN PROGRAMME LINÉAIRE 9

2 Formes générales d'un programme linéaire


2.1 Forme canonique mixte
Il s'agit d'un problème de programmation linéaire (encore appelé programme linéaire) écrit sous
la forme suivante.

X n
max f ( x1 , ..., xn ) = c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn = c jxj
(x1 ,...,xn ) j = 1
 n
contraintes d'inégalités :
X
∀ i ∈ I , a i j x j = a i1 x1 + a i2 x2 + .... + a in xn ≤ b i

1


(2.1)

j =1


n


contraintes d'égalités : ∀ i ∈ I 2 , a i j x j = b i
 X
 j =1
contraintes de signes :


∀ j ∈ J1 , x j ≥ 0



∀ j ∈ J2 , x j de signe quelconque.


L'ensemble I = I 1 ∪ I 2 est l'ensemble des indices de contraintes avec card ( I ) = m. Autrement dit, il
y a m contraintes. L'ensemble J = J1 ∪ J2 est l'ensemble des indices des variables avec card ( J ) = n.
Il y a n variables.

2.2 Forme canonique pure


Sous cette forme, il n'y a pas de contraintes d'égalité c'est-à-dire I 2 = ; et J2 = ;.
On note

x = ( x1 , ..., xn ) t ∈ Rn
c = ( c 1 , ..., c n ) t ∈ Rn
b = ( b 1 , ..., b m ) t ∈ Rn

et la matrice A de taille m × n :
 
a 11 a 12 ··· a 1n
.. ..
. .
 
A=



a m1 a m2 · · · a mn

Un programme linéaire (PL) est dit sous forme canonique pure s'il s'écrit :

max f ( x1 , ..., xn ) = c t x = c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn


£ ¤
(x
s.t. Ax ≤ b, (2.2)
x ≥ 0.
10 CHAPITRE 2. PROGRAMMATION LINÉAIRE
2.3 Forme standard
Sous cette forme, I1 = ; et J2 = ;. Un programme linéaire (PL) est dit sous forme standard
s'il s'écrit :

max f ( x1 , ..., xn ) = c t x = c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn


£ ¤
(x
s.t. Ax = b, (2.3)
x ≥ 0.

On dit de plus que le PL est sous forme standard simpliciale si A de taille m × n avec m ≤ n,
se décompose en :
A = ( I m |H )

où I m désigne la matrice identité de taille m × m et H est une matrice de taille m × (n − m).

3 Résolution graphique
Dans le cas d'un (PL) à deux variables, on peut envisager une résolution graphique. Les contraintes
où apparaissent des inégalités correspondent géométriquement à des demi-plans. L'intersection de
ces demi-plans forme l'ensemble des variables satisfaisant à toutes les contraintes.
Dans cette section, nous allons étudier deux types de problèmes :

3.1 Résolution graphique d'un problème de maximisation


Reprenons l'exemple de production.


 max [ f ( x1 , x2 ) = 6 x1 + 4 x2 ]


 (x1 ,x2 )
s.t. 3 x1 + 9 x2 ≤ 81



 4 x1 + 5 x2 ≤ 55




 2 x1 + x2 ≤ 20

 x1 , x2 ≥ 0

A la fonction objectif f correspond une droite f ( x1 , x2 ) = 6 x1 + 4 x2 = constante, de coecient


directeur (−1, 6/4). La constante précédente qui dénie la droite doit être la plus grande possible
(maximisation) et rencontrer l'ensemble des variables qui satisfont les contraintes. Pour déterminer
cette valeur maximale, on fait donc "glisser" la droite (translation parallèle à la direction de la
droite) du haut vers le bas jusqu'à rencontrer l'ensemble des variables satisfaisant les contraintes.
Le maximum de f sur cet ensemble des contraintes est alors atteint. On obtient ainsi la solution
optimale ( x1 , x2 ) = (15/2, 5) et ce qui donne une valeur maximale max( f ) = 65.
On remarque que l'ensemble des contraintes (la partie hachurée de la gure 2.3) est un polygone
convexe et que le maximum de f est atteint en un sommet de ce polygone. Cette observation est,
en fait, un résultat général que l'on établira dans les sections suivantes.
3. RÉSOLUTION GRAPHIQUE 11

Fig. 2.1  Résolution graphique du problème de production

3.2 Résolution graphique d'un problème de minimisation


Pour résoudre le problème linéaire dans le cas d'une minimisation, nous allons appliquer une
démarche équivalente, mais dans ce cas, nous cherchons la droite (représentant la fonction écono-
mique) la plus rapprochée de l'origine.
Résoudre le problème linéaire suivant :




min 6 x1 + 9 x2
 s.t 3 x1 + 2 x2 ≥ 18



x1 + 3 x2 ≥ 12

x1 + x2 ≥ 8





 x ≥ 0

Représentons graphiquement l'ensemble-solution puis représentons la famille de droites corres-


pondante à :

2 p
6 x1 + 9 x2 = p ⇐⇒ x2 = − x1 +
3 9
−2
⇐⇒ droite de pente
3
12 CHAPITRE 2. PROGRAMMATION LINÉAIRE

Fig. 2.2  Résolution graphique d'un problème de minimisation

Exercice 2.1 Résoudre graphiquement le problème suivant






min −50 x1 − 30 x2
s.t 10 x1 + 6 x2 ≤ 45




4 x1 + 6 x2 ≤ 36

2 x1 + 6 x2 ≤ 27





 x ≥ 0

4 Résolution algébrique
Pour résoudre des problèmes de programmation linéaire ayant un nombre de variables (princi-
pales) 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 linéaire, nous allons découvrir une version modiée "la
méthode algébrique" qui permettra d'étudier les diérentes étapes à franchir pour arriver à une
solution optimale.

4.1 Variable d'écarts


La méthode de resolution que nous étudions dans ce chapitre nécessite que les contraintes du
modèle soient exprimées sous forme d'équations linéaires au lieu d'inéquations.
On peut facilement transformer une inéquations linéaire ayant un signe ≤ en une equation linéaire
en additionnant une variable non negative dite variable d'écart.

Proposition 2.1 Tout PL sous forme standard s'écrit de façon équivalente en un PL sous forme
canonique pure et inversement.

Démonstration
4. RÉSOLUTION ALGÉBRIQUE 13

1. Soit un PL sous forme canonique pure. On a


n
X
Ax ≤ b ⇐⇒ ai j x j + e i = bi, ∀ i = 1, .., m
j =1

où e = b − X a
n
i i ijxj ≥0
j =1

Ainsi,
 Ã !
 x
( A|I m) = b,
( 
 (

Ax ≤ b,  e à x̃ = b,
⇐⇒ Ã ! ⇐⇒
x ≥ 0.  x x̃ ≥ 0.
≥ 0.



 e

où e = (e , ..., e ) sont appelées variables d'écart et à est une matrice de taille m × n + m .


1 m
t

2. Soit un PL sous forme standard. On a


( ( Ã ! Ã !
Ax ≤ b, Ax ≤ b, A b
Ax = b ⇐⇒ ⇐⇒ ⇐⇒ x≤ ⇐⇒ Ø x ≤ b̃˜ .
Ax ≥ b. − Ax ≤ − b. −A −b

où Ø est une matrice de taille 2m × n et b̃˜ ∈ R . 2m

4.2 Solutions de base réalisables


On considère désormais (sauf mention contraire) un PL toujours sous forme standard.

Dénition 2.1 On appelle solution réalisable tout vecteur x qui satisfait les contraintes du PL
i.e. tel que Ax = b et x ≥ 0.

Hypothèse : On suppose désormais que la matrice A est de taille m × n avec rang( A ) = m ≤ n.


On rappelle que le rang de A est le nombre maximal de lignes de A linéairement indépendantes.
C'est aussi le nombre de colonnes de A linéairement indépendantes. L'hypothèse de rang plein n'est
pas restrictive car :
• si rang( A ) < m le système Ax = b n'a pas de solution en général.
• Si rang( A ) < m et b ∈ I m( A ), il y a des équations redondantes dans le système Ax = b,
qu'on peut donc supprimer pour obtenir un nouveau système de rang plein. Sous l'hypothèse
de rang plein, le système Ax = b admet toujours des solutions.
• Si m < n, il y en a une innité.
• Si m = n, la solution est unique et vaut x = A −1 b, dans ce cas, il n'y a rien à maximiser...

Remarque 2.1 Pour la forme canonique pure avec Ax ≤ b, l'hypothèse de rang plein n'est pas
non plus restrictive car si rang( A) < m, il y a des contraintes d'inégalités redondantes qu'on peut
supprimer pour obtenir un système de rang plein.
14 CHAPITRE 2. PROGRAMMATION LINÉAIRE

Dénition 2.2
Soit B ⊆ {1, ..., n} un ensemble d'indices avec card(B) = m tel que les colonnes A , j ∈ B, de A
sont linéairement indépendantes. Autrement dit, la matrice carrée A formée des colonnes A ,
j

j ∈ B, est inversible. On dit que l'ensemble B des indices est une base.
B j

 Les variables x = (x , j ∈ B) sont appelées . variables de base


 Les variables x = (x , j 6∈ B) sont appelées .
B j
H j variables hors-base

Remarque 2.2

 Sous l'hypothèse de rang plein, il existe toujours une base non vide.
 Quitte à renuméroter les indices, on peut toujours écrire les décompositions par blocs :
A = ( A | A ) où A est la matrice formée des colonnes A , j 6∈ B
B H H j

x = ( xB | x H ) t

Le système Ax = b est équivalent à A B xB + A H x H =b .

Par la relation précédente et du fait que la matrice A B est inversible, on peut xer les variables
hors-base et les variables de base sont alors complètement déterminées.

Dénition 2.3 On dit que x = (x |x ) est solution de base associée à la base B si


B H
t

x H = 0.

Propriétés des solutions de base réalisables : Si x = ( xB | x H ) t est une solution de base


réalisable alors xH = 0 et xB = A−1
B b .
Exemple 2.1 Reprenons l'exemple du problème de production de l'introduction. Sous forme stan-
dard (en introduisant des variables d'écart), le PL s'écrit

  max f ( x1 , x2 , e 1 , e 2 , e 3 ) = 6 x1 + 4 x2 + 0 e 1 + 0 e 2 + 0 e 3

 max f ( x1 , x2 ) = 6 x1 + 4 x2 

 (x1 ,x2 )
 (x1 ,x2 ) 

 
 s.t. 3 x1 + 9 x2 + e 1 = 81
 s.t. 3 x1 + 9 x2 ≤ 81

 


=⇒ 4 x1 + 5 x2 + e 2 = 55
4 x1 + 5 x2 ≤ 55

 
 2 x1 + x2 + e 3 = 20

 2 x1 + x2 ≤ 20 

x1 , x2 ≥ 0

 

 
 x1 , x2 ≥ 0 

e1, e2, e3 ≥ 0

On a
, et rang( A) = m = 3.
m=3 n=5

Nous sommes alors en présence d'un système de plus d'inconnues que d'équations.
4. RÉSOLUTION ALGÉBRIQUE 15

Rappelons qu'il est possible de résoudre un système d'équations ayant plus d'inconnues que
d'équations (m ≤ n) en xant arbitrairement (par une valeur ou un paramètre) les valeurs de n − m
variables.
û Programme initial :
Pour déterminer le programme initial, on pose habituellement à zéro les variables principales du
modèle, ceci correspond à ne fabriquer aucun produit :
x = 0 et x = 0.
1 2

Notre système de 3 équations à 5 inconnues devient alors un système de 3 équations à 3 inconnues 


1 0 0
que l'on va pouvoir résoudre. Une base est donnée par B = {3, 4, 5} avec A =  0 1 0  La B
0 0 1
première solution de base réalisable correspondante est x = (x , x , e , e , e ) = (|{z}
1 2 1 0, 0 , 81, 55, 20) ,
2 3
t
| {z }
t

xH

la valeur de la fonction économique est : 0. La première solution de base réalisable correspond


xB = A −1b
B

Fig. 2.3  Résolution graphique du problème de production

au point extreme (0, 0) de la résolution graphique. On peut évidemment améliorer la valeur de


t

la fonction économique en fabriquant quelques unités du produit P ou du produit P .


1 2

û Révision du programme initial :


On doit maintenant examiner la possibilité d'améliorer la valeur de la fonction économique en
introduisant l'une ou l'autre des variables principales (soit x , soit x mais non les deux simulta-
nément) dans le programme de base.
1 2

Le choix de la variable (actuellement hors base) à introduire dans le programme s'eectue à


l'aide d'un critère qui permet d'améliorer le plus rapidement possible la valeur de la fonction
16 CHAPITRE 2. PROGRAMMATION LINÉAIRE
économique, ç-à-d on choisira la variable qui donne la meilleure augmentation de la valeur de la
fonction économique. Dans notre exemple la fonction économique est
f ( x1 , x2 ) = 6 x1 + 4 x2 + 0 e 1 + 0 e 2 + 0 e 3

l'augmentation sera la plus élevée si nous introduisons la variable x dans le programme, Donc :
x est une variable entrante de base
1

Il nous reste maintenant deux choses à déterminer. D'une part, calculer la quantité du P que
1

l'on doit fabriquer et d'autre part, quelle variable actuellement dans le programme doit devenir
1

une variable hors programme c.-à-d. déterminer la variable sortante.


û Détermination de la valeur entrante :
Déterminons la plus grande valeur pouvant être prise par x dans chaque équation.
1
1
x1 = 27 − 3 x2 − e 1 (2.4)
3
55 5 1
x1 = − x2 − e 2 (2.5)
4 4 4
1 1
x1 = 10 − x2 − e 3 (2.6)
2 2
Pour s'assurer que toutes les contraintes soient respectées en même temps, on choisit parmi ces
valeurs la plus petite quantité positive :
x1 = 10.

Ce minimum s'obtient dans l'équation 2.6, ce qui se traduit par e =0 et donc c'est la variable
e qui sort du programme :
3

e est une variable hors base.


3
3

I Détermination de la nouvelle solution :solution


 de base N° 2 :
3 1 0
Une deuxième base est donnée par avec
B = {1, 3, 4} La première solution de
AB =  4 0 1 
 

2 0 0
base réalisable correspondante est t
, la valeur de
x = ( x1 , x2 , e 1 , e 2 , e 3 ) = (|{z} 0 )t
0 , 51, 15, |{z}
10 , |{z}

la fonction économique est : 60.


| {z }
xB xH xB xH

Il correspond au point-sommet (10, 0) de la résolution graphique. S'agit-il d'une solution op-


t

timal? Toutefois, avant de tester si le programme est optimal, il faut d'abord transformer les
contraintes de mon problème pour exprimer les variables de base en fonction des variables hors-
base :
• les variables de base sont : x , e , e .
• les variables hors-base sont
: x ,e .
1 1 2
2 3
1 1 15 3

 e 1 = 81 − 3 x1 − 9 x2
  e 1 = 81 − 3(10 − 2 x2 − 2 e 3 ) − 9 x2
  e 1 = 51 − 2 x2 + 2 e 3

1 1
e 2 = 55 − 4 x1 − 5 x2 =⇒ e 2 = 55 − 4(10 − 2 x2 − 2 e 3 ) − 5 x2 =⇒ e 2 = 15 − 3 x2 − 2 e 3
1 1
x1 = 10 − 12 x2 − 21 e 3
  
e 3 = 20 − 2 x1 − x2 x1 = 10 − 2 x2 − 2 e 3
  
(2.7)
Il nous reste à exprimer la valeur de la fonction économique, en fonction des variables hors-base
x et e à l'aide de la substitution :
2 3

f ob j = 6 x1 + 4 x2 = 60 + x2 − 3 e 3 .

Cette dernière expression nous indique qu'on peut améliorer encore la valeur de la fonction
économique puisque le coecient de la variable x est positif.
2
4. RÉSOLUTION ALGÉBRIQUE 17

û Détermination de la troisième base : variable entrante est x2 :


Déterminons la valeur de x , par le même principe, on obtient que la variable x peut prendre la
valeur 20, ou 5, Ainsi x devant respecter les diérentes contraintes, nous choisirons x = 5
2 2
102

qui se réalise dans l'équation e = 15 − 3x + 2e et qui impose que e devienne nulle, ainsi : e
15 2 2

devient variable hors base.


2 2 3 2 2

• les variables de base sont : x , e , x .


• les variables hors-base sont : e , e .
1 1 2

Exprimons à nouveau les variables dans le programme en fonction des variables hors-base.
2 3

15 1 1

 x1 = 2 + 6 e 2 − 3 e 3

e 1 = 27 5 7
2 + 2 e2 − 2 e3
x2 = 5 − 31 e 2 + 32 e 3

La valeur de la fonction économique est alors :


15
f ob j = 6 × + 4 × 5 = 65.
2

Puis on exprime la valeur de la fonction économique, en fonction des variables hors-base e et


e à l'aide de la substitution :
2
3

15 1 1 1 2
µ ¶ µ ¶
f ob j = 6× + e2 − e3 + 4 × 5 − e2 + e3 ,
2 6 3 3 3
1 7
= 65 − e 2 − e 3 .
3 3

Pouvons-nous améliorer encore la valeur de la fonction économique?


La réponse est non puisque les coecients des variables hors-base e et e sont négatifs.
2 3

Remarque 2.3 Un programme de base est optimal si tous les coecients des variables hors-
base, dans l'expression de la fonction économique, sont ≤ 0.
On constate qu'elle correspond bien à la solution optimale obtenue lors de la résolution graphique.

Remarque 2.4 Il y a au plus C solutions de base (toutes ne sont pas réalisables).


m
n

4.3 Propriétés géométriques des solutions de base réalisables


On note
DR = { x ∈ Rn | Ax = b, x ≥ 0}, (2.8)

l'ensemble des solutions réalisables d'un PL sous forme standard.


Commençons par rappeler les notions d'ensemble convexe et de polyèdre :
18 CHAPITRE 2. PROGRAMMATION LINÉAIRE

Dénition 2.4 Un ensemble E est dit convexe si ∀x, y ∈ E, λx+(1−λ) y ∈ E pour tout 0 ≤ λ ≤ 1.

Dénition 2.5 Un polyèdre P ⊆ Rn est l'ensemble de solutions d'un système ni d'inégalités
linéaires, i.e.,
P = { x ∈ Rn | Ax ≤ b}

où A est une matrice m × n et b ∈ R , et m et n sont deux entiers positifs.


m

Un polyèdre borné est appelé polytope. En d'autres termes, un polyèdre P ⊆ Rn est un


polytope s'il existe x, y ∈ Rn tel que x ≤ z ≤ y pour tout z ∈ P .
Noter que tout polyèdre est convexe, c'est-à-dire si x et y sont deux points quelconques de P ,
alors λ x + (1 − λ) y ∈ P pour tout 0 ≤ λ ≤ 1.

Remarque 2.5 L'ensemble D des solutions réalisables est un polyèdre convexe, fermé.
R

Exemple 2.2 L'ensemble D = { x ∈ R3 |2 x1 + 3 x2 + x3 = 3, x1 , x2 , x3 ≥ 0} est représenté sur la gure


2.4.
R

Dénition 2.6 Un modèle mathématique est dit non borné si son domaine réalisable est non
borné, ç-à-d si au moins l'une de ses variables peut tendre vers l'inni sans quitter le domaine
réalisable.

Dénition 2.7 Un point x ∈ D est un sommet (ou point extrême ) si et seulement s'il n'existe
pas y, z ∈ D , y 6= z tels que x = λ y + (1 − λ) z avec 0 < λ < 1.
R
R

Théorème 2.1 x est une solution de base réalisable si et seulement si x est un sommet de D . R

On a vu sur l'exemple de production que la solution était atteinte sur un sommet de DR et


correspond donc à une solution de base.
4. RÉSOLUTION ALGÉBRIQUE 19

Fig. 2.4  Polyèdre des solutions réalisables

Proposition 2.2 Si le domaine réalisable D n'est pas vide, alors ce polytope comprend au moins
un point extrême.
R

Le résultat général s'énonce ainsi :

Théorème 2.2 L'optimum de la fonction objectif f sur D , s'il existe, est atteint en au moins
un sommet de D .
R
R

Démonstration Voir les propriétés géométrique des polyèdres.


Pour résoudre un PL sous forme standard, il sut de se restreindre aux solutions de base réali-
sables (les sommets de DR ). Tout se passe donc avec les solutions de base.
L'ensemble DR n'est pas nécessairement borné. En fait pour un PL, 3 situations (et seulement
3) peuvent se produire :
1. DR = ; : le PL n'a pas de solution.
2. DR 6= ; mais la fonction objectif f n'est pas majorée sur DR : le maximum de f vaut +∞. Si
DR est borné, ce cas est exclu.
3. DR 6= ; et la fonction objectif f est majorée sur DR : le PL admet une solution optimale (non
nécessairement unique).

Remarque 2.6 Il y a au plus C solutions de base réalisables. Pour déterminer une solution de
m

base, on doit résoudre un système linéaire (x = A b). La résolution d'un système linéaire par
n
−1
B B
20 CHAPITRE 2. PROGRAMMATION LINÉAIRE
une méthode directe de type Gauss/LU requière de l'ordre de m opérations. Si on explore toutes
3

les solutions de base et que l'on compare les coûts correspondants, on eectue de l'ordre de m C
3 m

opérations. Ce nombre est vite très grand avec n et m. Par exemple, avec n = 20 et m = 10, on
n

a 3 × 10 opérations. Dans la méthode du simplexe, on va explorer seulement les sommets qui


8

permettent d'augmenter la fonction objectif. On va réduire ainsi le nombre de solution de base à


explorer et donc le nombre de système linéaire à résoudre.

5 Marche à suivre de la méthode algébrique


La méthode algébrique est une recherche systématique de programmes de base (points sommets)
jusqu'à l'obtention d'un programme optimal.
Pour ce faire, il s'agit :
1. De structurer le problème sous forme standard.
2. De déterminer les variables de base qui servirons de départ au
cheminement vers la solution optimale (programme optimal).
3. D'expliciter la fonction économique et de déterminer si elle
peut être améliorée : recherche de l'éventuelle variable (hors-
base) admettant le plus grand coecient positif.
4. En introduisant cette variable dans le programme, on choi-
sira la plus petite valeur positive obtenue à l'aide du système
d'équations calculé lors de l'étape précédente. Cela induira la
variable sortante.
5. Pour déterminer une nouvelle variable de base, on doit expri-
mer la fonction économique ainsi que les nouvelles variables
de base en fonction des variables hors-base.
6. Retourner à 3) jusqu'à l'obtention du programme de base
optimal.
7. Donner le programme optimal en précisant la valeur de toutes
les variables ainsi que la valeur optimisée de la fonction éco-
nomique.
[ Troisième Chapitre \
Méthode du simplexe
La présentation algébrique de la méthode du simplexe nous a permis de donner une interprétation
pratique et économique aux diérentes opérations à eectuer dans la résolution d'un problème de
programmation linéaire pouvant comporter deux variables ou plus. Toutefois, la méthode algébrique
devient rapidement laborieuse à mesure que le nombre de contraintes et le nombre de variables
augmentent.
Nous allons donc systématiser toutes ces opérations algébriques sous forme d'un simple tableau
dit  tableau du simplexe . Ceci permettra de résoudre plus facilement des problèmes ayant beau-
coup plus de variables et de contraintes. Malgré l'ecacité de cette méthode, il n'en demeure pas
moins que la résolution à l'aide d'un ordinateur devient indispensable à mesure que les problèmes
prennent de fortes dimensions.

1 Principe de l'algorithme du simplexe


La méthode du simplexe est due à G. Dantzig (1947). Elle comporte 2 phases.
• Phase I - Initialisation : Trouver une solution de base réalisable (ou bien détecter l'impos-
sibilité).
• Phase II - Progression : On passe d'un sommet à un sommet voisin pour augmenter la
fonction
objectif (ou bien on détecte une fonction objectif f non majorée).

1.1 L'algorithme du simplexe : la phase 2


Dans cette section, nous allons présenter la Phase II de la méthode du simplexe. La Phase I qui
sert plus à initialiser la Phase II, sera aborder plus tard. Cette phase s'applique à des problèmes du
type
ct x ct x
 
 max

x  min

x

 s.t. Ax ≤ b, où  s.t. Ax ≤ b,
x ≥ 0. x ≥ 0.
 

où A est une matrice de taille m × n.


On fera l'hypothèse que b ≥ 0. Cette supposition est cruciale pour la Phase II. Ceci garantie que
0 ∈ K = { x ≥ 0, Ax ≤ b}. De plus, nous savons que le point 0 est un sommet. Ce point servira de
point de départ de l'algorithme du simplexe. En gros, l'algorithme va pivoter autour de ce point pour
trouver un meilleur sommet. On poursuit l'algorithme jusqu'à l'obtention de la solution optimale.
Supposons qu'on dispose d'une solution de base réalisable x̄ d'un PL sous forme standard. A une
permutation près des colonnes, la matrice A peut s'écrire
A = ( A B | A H ),

21
22 CHAPITRE 3. MÉTHODE DU SIMPLEXE
avec A B une matrice carrée de taille m × m, inversible, correspondant aux variables de base et A H
une matrice de taille m × (n − m), correspondant aux variables hors-base. On décompose également
(à la même permutation près des composantes)
x̄ = ( x̄B | x̄H ) t .

Le but est de trouver une autre base B∗ et une solution de base x∗ associée telles que
f ( x∗ ) > f ( x̄) ( x∗ est meilleur que x̄).
La méthode du simplexe consiste à faire rentrer une variable hors-base dans la nouvelle base (variable
entrante) et faire sortir à la place une variable de base (variable sortante).

a) Calcul des coûts réduits et variable entrante


On écrit la fonction objectif f avec les variables de base/hors-base. On a b = Ax = A B xB + A H xH
avec A B inversible donc xB = A −B1 (b − A H xH ). On obtient donc

f ( x) = c t x = c B
t
xB + c tH xH avec c = ( cB | c H )t
t 1 t
= cB A−
B ( b − A H xH ) + c H xH
t 1 t t −1
= cB A−
B b + ( c H − c B A B A H ) xH

Or xB = A −B1 b (car xH = 0) et cBt A −B1 b = c t x = f ( x) donc


f ( x) = f ( x) + ( c tH − c B
t
A−1
B A H ) xH .

Le vecteur
L tH = c tH − c B
t
A−1
B AH,

s'appelle vecteur des coûts réduits.


 Si les coûts réduits sont tous négatifs i.e. L tH ≤ 0, il n'est alors pas possible d'augmenter
la fonction objectif f : l'algorithme se termine normalement c'est-à-dire qu'on a trouvé une
solution de base réalisable optimale.
 Dans le cas contraire (i.e. ∃ (L H )i > 0), on a intérêt à faire entrer dans la base, la variable
hors-base qui a le coût réduit positif le plus grand possible.
On note e ∈ B l'indice de la variable entrante. On choisit e tel que
© ª
(L H ) e = max (L H ) j , (L H ) j > 0
j

ce qu'on note par © ª


e = ar gmax j (L H ) j , (L H ) j > 0

Remarque 3.1 Si on traite d'un problème de minimisation c'est-à-dire avec min f (x), alors la
variable entrante x est déterminée par l'indice
e

© ª
e = ar gmin j (L H ) j , (L H ) j < 0
1. PRINCIPE DE L'ALGORITHME DU SIMPLEXE 23

b) Variable sortante
Une fois l'indice e choisi, il faut déterminer quelle variable doit quitter la base. En maintenant
la relation Ax = b, on augmente xe jusqu'à annuler une des variables de base. Cette variable sera
alors la variable sortante.

Ax = b ⇐⇒ A B xB + A e x e = b o`u A e désigne la e-ième colonne de A


1
⇐⇒ xB = A− B (b − A e xe )
1
⇐⇒ xB = x̄B − A −
B A e xe
⇐⇒ xB = x̄B − zx e


1 m
z = A−
B Ae ∈ R .

 Si z ≤ 0, on peut augmenter xe autant qu'on veut, on aura toujours la positivité de la variable


de base xB . La fonction objectif n'est pas majorée sur DR i.e. le maximum de f vaut +∞.
Dans ce cas, l'algorithme s'arrête.
 Sinon (i.e. il existe z i > 0), pour avoir la positivité ( x̄B )i − z i xe ≥ 0 pour tout i, on choisit la
variable sortante pour laquelle le rapport (x̄zBi)i pour i = 1, ..., m avec z i > 0, est le plus petit
possible. On choisit
( x̄B ) i
½ ¾
s = ar gmin i , zi > 0 .
zi
On a, dans ce cas, xs = 0 et xB ≥ 0. La valeur de la variable entrante est donnée par
( x̄B ) i
½ ¾
x e = min , zi > 0 .
i zi

Algorithme (Résumé de la méthode du simplexe en phase 2 (progression))

1.  Calcul des variables de base réalisables : étant donné A = ( A | A ), on calcule les va-
riables de base réalisables x = A b ≥ 0.
B H
−1

 Calcul des coûts réduits : L = c − c A A .


B B
t t t −1

 Si L ≤ 0 alors x̄ est une solution optimale (→ª arrêt de l'algo.).


H H B B H
H B

2. variable entrante : e = ar gmax (L ) , (L ) > 0


©
j H j H j

3. variable sortante : Calcul de z = A A puis s = ar gmin z , z > 0 .


( x̄ )
½ ¾
−1 B i
B e i i

4. On obtient une nouvelle base B et une nouvelle matrice A dans laquelle la colonne A
i

remplace la colonne A . Calcul de A et retour en 1.


B∗ e
−1
s B∗

Nous allons maintenant systématiser cet algorithme en présentant la méthode du simplexe sous
la forme d'un tableau.
24 CHAPITRE 3. MÉTHODE DU SIMPLEXE
2 Représentation tabulaire du simplexe
An de simplier la présentation des diérentes itérations de la méthode du simplexe, nous
systématisons cette procédure sous forme de tableaux sur deux types de problèmes : de maximisation
et de minimisation.

2.1 Cas général de la méthode tabulaire du simplexe


Considérons le programme linéaire sous forme standards suivant :


 max z = c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn


 (x1 ,...,xn )
s.t. a 11 x1 + a 12 x2 + .... + a 1n xn = b 1





a 21 x1 + a 22 x2 + .... + a 2n xn = b 2
(3.1)

..





.



 a m1 x1 + a m2 x2 + .... + a mn xn = b m

 x1 , ..., xn ≥ 0

Ce programme peut s'écrire sous la forme équivalente




 max z

s.t. a 11 x1 + a 12 x2 + .... + a 1n xn = b 1





 a 21 x1 + a 22 x2 + .... + a 2n xn = b 2
..


(3.2)

 .
a m1 x1 + a m2 x2 + .... + a mn xn = b m





c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn − z = 0





x1 , ..., xn ≥ 0

Sans perte de généralité, nous pouvons supposer que les variables x1 , ..., xm sont les variables de
base. Le problème 3.2 peut donc être représenté par le tableau suivant, dit tableau du simplexe :

Variables variable}|de base variable }|hors base Termes


de base x1
z
x2 ··· xm
{
xm+1
z
xm+2 ··· xn
{
z de droite R
x1 a 11 a 12 ··· a 1m a 1m+1 a 1m+2 ··· a 1n 0 b1
x2 a 21 a 22 ··· a 2m a 2m+1 a 2m+2 ··· a 2n 0 b2
.. .. .. .
.. .. . .. 0. . ..
. . ··· ··· ··· .
xm a m1 a m2 · · · a mm a mm+1 a mm+2 · · · a mn 0 bm
z c1 c2 · · · c m c m+1 c m+2 · · · c n −1 0

2.2 Problème de maximisation


Pour bien visualiser la similitude qui existe entre l'approche algébrique et celle des tableaux du
simplexe, nous allons résoudre à nouveau le problème de production.
Le problème, après l'introduction des variables d'écart, était le suivant :
2. REPRÉSENTATION TABULAIRE DU SIMPLEXE 25

• maximiser la fonction économique :


f ( x1 , x2 , e 1 , e 2 , e 3 ) = 6 x1 + 4 x2 + 0 e 1 + 0 e 2 + 0 e 3 .

• sous les contraintes : 



 3 x1 + 9 x2 + e 1 = 81

 4x + 5x + e
1 2 2 = 55


 2 x1 + x2 + e 3 = 20
x1 , x2 , e 1 , e 2 , e 3 ≥ 0

Que l'on peut écrire sous la forme




 3 x1 + 9 x2 + e 1 + 0 e 2 + 0 e 3 = 81

 4x + 5x + 0e + e + 0e
1 2 1 2 3 = 55


 2 x 1 + x2 + 0 e 1 + 0 e 2 + e 3 = 20
x1 , x2 , e 1 , e 2 , e 3 ≥ 0

Remarque 3.2 Cette présentation sous forme d'un tableau de nombres est appelé matrice du
problème de programmation linéaire. Toutes les propriétés que vous connaissez sur les calculs à
propos des matrices peuvent être alors utilisées.

û ÉTAPE no 1 : Matrice du programme de base no 1 :


Variables de base x1 x2 e 1 e 2 e 3 z b R
e1 3 9 1 0 0 0 81
e2 4 5 0 1 0 0 55
e3 2 1 0 0 1 0 20
z 6 4 0 0 0 −1 0

û ÉTAPE No 2 : Matrice du programme de base no 2 :

Pour augmenter le plus rapidement possible la valeur de la fonction économique, il faut donner
une valeur positive à x1 puisque c'est qui a le plus grand coecient positif sur la dernière ligne
du tableau. Quelle est la plus grande valeur que l'on peut attribuer à x1 ?
Pour la déterminer, on prend les rapports des éléments de la colonne de b sur les éléments de la
colonne des x1 . On trouve alors :
Variables de base x1 x2 e 1 e 2 e 3 z b R
81
e1 3 9 1 0 0 0 81 3 = 27
55
e2 4 5 0 1 0 0 55 4
20
e3 2 1 0 0 1 0 20 2 = 10 ←
z 6 4 0 0 0 −1 0

Le plus petit de ces rapports est 10 et c'est la plus grande valeur qu'on peut attribuer à x1 . Nous
utiliserons donc l'élément de la troisième ligne première colonne ; encadrons-le pour le mettre en
26 CHAPITRE 3. MÉTHODE DU SIMPLEXE
évidence. Nous l'appellerons pivot de la 1ère étape.
Variables de base x1 x2 e 1 e 2 e 3 z b R
81
e1 3 9 1 0 0 0 81 3 = 27
55
e2 4 5 0 1 0 0 55 4
e3 2 1 0 0 1 0 20 20
2 = 10 ←
z 6 4 0 0 0 −1 0

Nous devons maintenant annuler les autres éléments de la première colonne. Pour ce faire, nous
eectuons des opérations sur les lignes. En premier lieu, nous allons rendre le pivot unitaire en
divisant les termes de la troisième ligne par 2 :
Variables de base x1 x2 e 1 e 2 e 3 z b R
e1 3 9 1 0 0 0 81
e2 4 5 0 1 0 0 55
L 3 ← 12 L 3 x1 1 12 0 0 21 0 10
z 6 4 0 0 0 −1 0

En deuxième lieu, on soustrait 4 fois la troisième ligne à la deuxième, 3 fois la troisième à la


première et nalement 6 fois la troisième à la dernière :
Variables de base x1 x2 e1 e2 e3 z b R
15 3
L 1 ← L 1 − 3L 3 e1 0 2 1 0 −2 0 51
L 2 ← L 2 − 4L 3 e2 0 3 0 1 −2 0 15
1 1
x1 1 2 0 0 2 0 10
L 4 ← L 4 − 6L 3 z 0 1 0 0 −3 −1 −60

Ce tableau représente alors le système d'équations que nous avions obtenu après la deuxième
étape de la résolution algébrique 2.7.
On constate également que la valeur obtenue en bas à droite du tableau correspond à l'opposé
de la valeur numérique obtenue dans la fonction économique :

z = 60 + x2 − 3 e 3 .

On constate que l'on peut encore augmenter la valeur de la fonction économique en introduisant
une valeur pour x2 .
û ÉTAPE No 3 : Matrice du programme de base no 3 :
Nous avons
Variables de base x1 x2 e1 e2 e3 z b R
15
e1 0 2 1 0 − 32 0 51
15
2
e2 0 3 0 1 −2 0 15
3 =5 ←
1 1 10
x1 1 2 0 0 2 0 1 = 20
2
z 0 1 0 0 −3 −1 −60

2. REPRÉSENTATION TABULAIRE DU SIMPLEXE 27

Le plus petit rapport étant sur la deuxième ligne, notre pivot sera l'élément de la deuxième ligne,
deuxième colonne. Rendons-le unitaire en le divisant par 3 :
Variables de base x1 x2 e1 e2 e3 z b R
15 3
e1 0 2 1 0 −2 0 51
1 1 2
L2 ← 3 L2 x2 0 1 0 3 −3 0 5
1 1
x1 1 2 0 0 2 0 10
z 0 1 0 0 −3 −1 −60

Eectuons à nouveau les opérations sur les lignes an d'annuler les autres éléments de la 2ème
colonne :
Variables de base x1 x2 e 1 e 2 e3 z b R
15
L1 ← L1 − 2 L2 e1 0 0 1 − 52 7
2 0 27
2
1
x2 0 1 0 3 − 32 0 5
L 3 ← L 3 − 12 L 2 x1 1 0 0 − 16 5
6 0 15
2
L4 ← L4 − L2 z 0 0 0 − 13 −7
3 −1 −65

Il n'y a plus de coecients positifs sur la dernière ligne du tableau et il n'est donc plus possible
d'augmenter la valeur de la fonction économique.
La solution optimale est donc
¶t
15 27
µ
t
( x1 , x2 , e 1 , e 2 , e 3 ) = , 5, , 0, 0 ,
2 2

qui correspond à un bénéce maximum de z = 65 produits en produisant 15


2 unités du produit
P1 et 5 unités du produit P2 .

2.3 Problème de minimisation


Nous avons vu dans que tout programme de minimisation peut se transformer en un problème de
maximisation. Pour la résolution d'un problème de minimisation par l'algorithme du simplexe, nous
devons adapter le critère d'optimalité. Ainsi pour que la solution de base soit optimale il faut que
les coûts marginaux de toutes les variables hors base soient positifs ou nuls. Pour mieux comprendre
ce cas, je vous propose l'exemple suivant :
Considérons le programme de minimisation sous forme canonique suivant :




min − x1 − 2 x2
 s.t. − 3 x1 + 2 x2 ≤ 2



− x1 + 2 x2 ≤ 4

x1 + x2 ≤ 5





 x1 ≥ 0, x2 ≥ 0

Après l'introduction des variables d'écart, le problème s'écrit


• minimiser la fonction économique :

z = f ( x1 , x2 , e 1 , e 2 , e 3 ) = − x1 − 2 x2 + 0 e 1 + 0 e 2 + 0 e 3 .
28 CHAPITRE 3. MÉTHODE DU SIMPLEXE
• sous les contraintes : 

 min z

−3 x1 + 2 x2 + e 1 = 2





 −x + 2x + e
1 2 2 = 4


 x1 + x2 + e 3 = 5
− x1 − x2 − z = 0





x1 , x2 , e 1 , e 2 , e 3 ≥ 0

û ÉTAPE no 1 : Matrice du programme de base no 1 : On a donc le tableau du simplexe suivant


où les variables e 1 , e 2 et e 3 jouent le rôle des variables de base :
Variables de base x1 x2 e 1 e 2 e 3 − z b R
e1 −3 2 1 0 0 0 2
e2 −1 2 0 1 0 0 4
e3 1 1 0 0 1 0 5
−z −1 −2 0 0 0 1 0

Cette base n'est pas optimale puisque les coûts relatifs des variables hors base dans la dernière
ligne ne sont pas positifs ou nuls.
bi
½ ¾
min , a i2 > 0 .
a i2

û ÉTAPE No 2 : Matrice du programme de base no 2 :


Choisissons comme variable entrante dans la nouvelle base la variable hors base ayant le plus
petit coût négatif négatif, c'est à dire x2 . cherchons la variable sortante en appliquant la règle
du plus petit rapport :
Variables de base x1 x2 e 1 e 2 e 3 − z b R
e1 −3 2 1 0 0 0 22 = 1 ←
4
e2 −1 2 0 1 0 0 2 =2
5
e3 1 1 0 0 1 0 1 =5
−z −1 -2 0 0 0 1 0

Le plus petit de ces rapports est 1 et c'est la plus petite valeur qu'on peut attribuer à x2 . Nous
utiliserons donc l'élément de la première ligne deuxième colonne, autrement, la variable e 1 quitte
la base et sera remplacée par la variable x2 , ainsi on obtient la tableau suivant.
Variables de base x1 x2 e 1 e 2 e 3 − z b R
L 1 ← 12 L 1 x2 −3
21 1
2 0 0 0 1
e2 −1 2 0 1 0 0 4
e3 1 1 0 0 1 0 5
−z −1 −2 0 0 0 1 0

Nous devons maintenant annuler les autres éléments de la deuxième colonne.


Variables de base x1 x2 e 1 e 2 e 3 − z b R
−3 1
x2 2 1 2 0 0 0 1
L 2 ← L 2 − 2L 1 e2 2 0 −1 1 0 0 2
5
L3 ← L3 − L1 e3 2 0 − 21 0 1 0 4
L 4 ← L 4 + 2L 1 −z −4 0 1 0 0 1 2
2. REPRÉSENTATION TABULAIRE DU SIMPLEXE 29

La solution de base correspondante n'est pas optimale car c 1 = −4 < 0. la variable x1 va donc
entrer dans la base.
û ÉTAPE No 3 : Matrice du programme de base no 3 :

Variables de base x1 x2 e 1 e 2 e 3 − z b R
−3 1
x2 2 1 2 0 0 0 1
e2 2 0 −1 1 0 0 2 2
2 =1 ←
5
e3 2 0 − 12 0 1 0 4 4 8
5 = 5
2
−z -4 0 1 0 0 1 2

Le plus petit rapport étant sur la deuxième ligne donc e 2 est une variable sortante, notre pivot
sera l'élément de la deuxième ligne, première colonne. Rendons-le unitaire en le divisant par 2 :

Variables de base x1
x2 e 1 e2 e3 −z b R
−3 1
x2 1
2 2 0 0 0 1
1
L2 ← 2 L2 x1 1 0 − 21 1
2 0 0 1
5
e3 2 0 − 21 0 1 0 4
−z −4 0 1 0 0 1 2

Ainsi,
Variables de base x1 x2 e 1 e 2 e3 −z b R
3
L1 ← L1 + 2 L2 x2 0 1 − 14 34 0 0 52
x1 1 0 − 12 12 0 0 1
L 3 ← L 3 − 52 L 2 e3 0 0 3
4 − 54 1 0 32
L 4 ← L 4 + 4L 2 −z 0 0 −1 2 0 1 6

La solution de base obtenue a pour coût z = −6, cependant elle n'est pas optimale car c3 = −1 < 0,
la variable e 1 va donc entrer dans la base.
û ÉTAPE No 4 : Matrice du programme de base no 4 :

Variables de base x1 x2 e 1 e2 e3 −z b R
x2 0 1 − 41 3
4 0 0 52
x1 1 0 − 21 1
2 0 0 1
3
3
e3 0 0 4 − 54 1 0 3
2
2
3 =2 ←
4
−z 0 0 −1 2 0 1 6

Par suite, on obtient


Variables de base x1 x2 e 1 e 2 e3 −z b R
x2 0 1 − 14 34 0 0 5
2
x1 1 0 − 12 12 0 0 1
4
L3 ← 3 L3 e1 0 0 1 − 53 4
3 0 2
−z 0 0 −1 2 0 1 6
30 CHAPITRE 3. MÉTHODE DU SIMPLEXE
rendons la colonne associé a e 1 unitaire
Variables de base x1 x2 e 1 e 2 e3 −z b R
1 1 1
L1 ← L1 + 4 L3 x2 0 1 0 3 3 0 3
1
L2 ← L2 + 2 L3 x1 1 0 0 − 31 2
3 0 2
e1 0 0 1 − 35 4
3 0 2
1 4
L4 ← L4 + L3 −z 0 0 0 3 3 1 8

La nouvelle solution de base est


( x1 , x2 , e 1 , e 2 , e 3 ) t = (2, 3, 2, 0, 0) t ,

qui correspond à un coût minimum de z = −8, comme les coût réduit de toutes les variables sont
positifs ou nuls, cette solution est optimale et l'algorithme du simplexe s'arrête.

2.4 Conclusion
L'algorithme du simplexe consiste à se déplacer d'un point extrême du polytope K = { x : Ax =
b, x ≥ 0} à un autre point extrême adjacent jusqu'à ce qu'on se rende compte que la solution
réalisable actuelle est optimale ou que le problème n'est pas réalisable ou que le problème n'est pas
borné supérieurement (ou inférieurement dans le cas de minimisation).

3 Méthodes des deux phases


Nous avons vu comment trouver une base de depart lorsque les contraintes du problème sont
toutes de type ≤ : les variables d'écart constituent alors une base de depart naturelle, leurs
colonnes formant a une permutation pres une matrice identité.
En pratique il est frequent que le PL comporte également des contraintes de type ≥ ou de type
=. Dans ce cas, nous n'avons plus de base de depart évidente, il faut en chercher une. Ce sera la
premiere phase de la méthode du simplexe.
La méthode du simplexe consiste donc en deux phases :
Phase I : recherche d'une base de depart par la resolution par l'algorithme du simplexe du pro-
gramme auxiliaire (dénit plus loin) ou mise en evidence que le problème de depart n'admet
aucune solution admissible.
Phase II : application de l'algorithme du simplexe au problème de depart cette fois, en partant de
la base mise en evidence a la n de la phase I
Exemple 3.1 Comment, par exemple trouver une solution de base réalisable initiale au problème
suivant

 max 2 x1 + 3 x2
x



s.t. x1 + x2 ≤ 10,

(P ) :


 5 x1 + 4 x2 ≥ 20


x1 , x2 ≥ 0.
3. MÉTHODES DES DEUX PHASES 31

On transforme ce problème sous la forme canonique Ax ≤ b et ensuite on ajoute les variables


d'écart.


 max 2 x1 + 3 x2
x



s.t. x1 + x2 + e 1 = 10,
(3.3)



 −5 x1 − 4 x2 + e 2 = −20


x1 , x2 , e 1 , e 2 ≥ 0.

Clairement le point (0, 0, 10, −20), n'est pas admissible.

3.1 Recherche d'une base de départ : Phase I


L'objectif est de trouver une solution de base admissible qui servira de point de départ pour
l'algorithme du simplexe. L'idée est de résoudre un problème intermédiaire de minimisation dont la
solution fournira le point de départ de la méthode du simplexe. Ce problème intermédiaire porte le
nom de Phase I du simplexe.

Démarche à suivre :
On commence par écrire le programme auxiliaire (PA) associé au problème de départ (P) :
1. On s'assure que les membres de droite b i sont tous positifs ou nuls, quitte à multiplier la
contrainte correspondante par -1 si son membre de droite est négatif (sinon on aboutirait à
des solutions de base non réalisables),
2. On introduit une variable d'écart e i pour chaque contrainte i de type ≤, aectée d'un signe
+ dans la contrainte ré-écrite, comme on le faisait jusqu'à présent,
3. On introduit aussi une variable d'écart e i pour chaque contrainte i de type ≥, mais aectée
d'un signe - dans la contrainte ré-écrite : l'écart qu'elle mesure est en eet négatif ou nul,
mais la variable d'écart doit rester positive ou nulle,
4. Le problème ne comporte plus que des contraintes d'égalité, mais seules les variables d'écart
associées aux contraintes initiales de type ≤ forment des colonnes de la matrice identité.
Pour chacune des autres contraintes (c'est-à-dire les contraintes initiales ≥ ré-écrites avec une
variable d'écart aectée d'un signe -, et les contraintes initiales =), on introduit une variable
articielle t i positive ou nulle de la même façon qu'on introduisait les variables d'écart.
5. La fonction objectif de (PA) est alors la somme des variables articielles. On cherche à la
minimiser (en fait à l'annuler).
32 CHAPITRE 3. MÉTHODE DU SIMPLEXE
3.2 Illustration de la méthode sur un exemple
Dans l'exemple ci-dessus, il s'agit d'introduire deux variables d'écart e1 et e2 et une variable
articielle t1 et de considérer le problème de minimisation associé
 
 max 2 x1 + 3 x2  max 2 x1 + 3 x2
x x
 
Var. d'écart

 

s.t. x1 + x2 ≤ 10, s.t. x1 + x2 + e 1 = 10,
 
(P ) : =⇒


 5 x1 + 4 x2 ≥ 20 

 5 x1 + 4 x2 − e 2 = 20
 

x1 , x2 ≥ 0. 
x , x , e , e ≥ 0.
 1 2 1 2
 min z t = t 1 (20 − 5 x1 − 4 x2 + e 2 )
Var. articiel


 s.t. x1 + x2 + e 1 = 10,
=⇒ (P A )
+ new obj 

 5 x1 + 4 x2 − e 2 + t 1 = 20
x1 , x2 , e 1 , e 2 , t 1 ≥ 0.

I Phase I
Le problème (PA) admet toujours une solution admissible, il sut de prendre le point ( x1 , x2 , e 1 , e 2 , t1 ) =
(0, 0, 10, 0, 20).

On forme le tableau initial du simplexe pour ce problème.


Variables de base x1 x2 e 1 e 2 t 1 − z t b R
e1 1 1 1 0 0 0 10
t1 5 4 0 −1 1 0 20
−zt 0 0 0 0 1 1 0

Pour que t1 joue le rôle d'une variable de base, il faut faire apparaître un 0 sur la dernière ligne de
la colonne de t1 , pas suite, on transforme le tableau en soustrayant la deuxième ligne de la dernière.
Nous obtenons le tableau suivant :
Variables de base x1 x2 e 1 e 2 t1 − z t b R
10
e1 1 1 1 0 0 0 10 1
t1 5 4 0 −1 1 0 20 20
5 =4 ←
−zt −5 −4 0 1 0 1 −20

Cette solution de base n'étant pas optimale, on poursuit avec la méthode standard du simplexe.
Dans notre cas, on choisit la variable entrante x1 et la variable sortante t1 , on obtient le tableau
suivant
Variables de base x1 x2 e 1 e 2 t1 − z t b R
1 1
e1 0 5 1 5 − 15 0 6
4
x1 1 5 0 − 51 1
5 0 4
−zt 0 0 0 0 1 1 0
On ne peut améliorer ce résultat car la fonction objective z = t1 = 0.
Nous avons obtenu la solution optimale de la Phase I (4, 0, 6, 0, 0) avec la base { e 1 , x1 }. De plus,
la variable t1 = 0 devient inutile car hors-base. Ainsi, on peut enlever la colonne correspondante à
t1 .

Donc (4, 0, 6, 0, 0) constitue une solution de base initiale du problème (P), ce qui va nous per-
mettre de construire le tableau du simplexe de (P) pour démarrer la phase II.
3. MÉTHODES DES DEUX PHASES 33

I Phase II
Après avoir terminer la phase I avec une solution optimale de valeur optimale nulle et où les
variables articielles sont toutes des variables hors base. Pour commencer la première itération de la
phase II, il faudra remplacer les coecients de la fonction objectif z t par ceux de la fonction objectif
original z, puis recalculer les coûts relatifs.
Variables de base x1 x2 e 1 e 2 z b R
e1 0 15 1 1
5 0 6
x1 1 45 0 − 51 0 4
z 2 3 0 0 −1 0

x1 étant une variable de base nous devons remplacer 2 par 0 dans la dernière ligne du tableau par
l'opération suivante L 3 ← L 3 − 2L 2
Variables de base x1 x2 e1 e2 z b R
1 1
e1 0 5 1 5 0 6 6 × 5 = 30
4
x1 1 5 0 − 15 0 4 4 × 45 = 5 ←
7 2
z 0 5 0 5 −1 −8

La variable x2 entre dans la base et la variable x1 sort de la base.


Variables de base x1 x2 e 1 e 2 z b R
e1 0 15 1 1
5 0 6 6 × 5 = 30
5
x1 4 1 0 − 15 0 4 4 × 45 = 5 ←
z 0 75 0 2
5 −1 −8

On poursuit avec la méthode standard du simplexe


Variables de base x1 x2 e 1 e 2 z b R
e1 − 14 0 1 1
4 0 5 5 × 4 = 20 ←
5
x2 4 1 0 − 14 0 5
z − 75 0 0 3
4 −1 −15

La variable e 2 entre dans la base et la variable e 1 sort de la base.


Variables de base x1 x2 e 1 e 2 z b R
e2 −1 0 4 1 0 20
x2 1 1 1 0 0 10
z −1 0 −3 0 −1 −30

L'algorithme se termine à cette étape. La solution optimale est (0, 10, 0, 20) avec z = 30. Ceci est
bien conforme au graphique ci-dessous.

3.3 La méthode de "The big M"


L'idée ici est de remplacer le programme (P) par un autre qui a la même solution. Pratiquement
il s'agit de faire deux choses :
34 CHAPITRE 3. MÉTHODE DU SIMPLEXE

Fig. 3.1  Le graphe associé à l'exemple 3.3

• créer la base articiellement en ajoutant les colonnes manquantes de la matrice identité, cela
revient à introduire des variables supplémentaires, appelées "variables articielles",
• modier la fonction objective de sorte que les variables articielles quittent la base au fur et
à mesure des itérations.
Pour le méthode du grand M on pénalise les variables articielles dans la fonction objective avec un
coecient négatif très grand noté − M pour un problème de maximisation (+ M pour un problème
de minimisation). Ainsi, la maximisation de la fonction objective passe nécessairement par forcer les
variables articielles à quitter la base. Si à l'optimum, certaines variables articielles sont dans la
base, avec une valeur non nulle, alors le programme n'à pas de solution réalisable.
Pour l'exemple donné plus haut, le programme associé, noté M , est le suivant.


 max z = 2 x1 + 3 x2 − Mt 1

 s.t. x1 + x2 + e 1 = 10,
(P A )


 5 x1 + 4 x2 − e 2 + t 1 = 20
x1 , x2 , e 1 , e 2 , t 1 ≥ 0.

Le tableau initial du simplexe est :


Variables de base x1 x2 e 1 e 2 t1 z b R
e1 1 1 1 0 0 0 10
t1 5 4 0 −1 1 0 20
z 2 3 0 0 − M −1 0

Pour que t1 joue le rôle d'une variable de base, il faut faire apparaître un 0 sur la dernière ligne de
la colonne de t1 , pas suite, on transforme le tableau en soustrayant M fois la deuxième ligne de la
dernière. Nous obtenons le tableau suivant :
Variables de base x1 x2 e 1 e 2 t1 z b R
10
e1 1 1 1 0 0 0 10 1
t1 5 4 0 −1 1 0 20 20
5 =4 ←
z 2 + 5M 3 + 4M 0 −M 0 −1 20 M

La variable articiel t1 est toujours dans la base, nous devons eectuer une autre itération
Variables de base x1 x2 e 1 e 2 t1 z b R
1 1
e1 0 5 1 5 − 15 0 6
4
x1 1 5 0 − 51 1
5 0 4
7 2
z 0 5 0 5 −2 − 5 M −1 −8
4. PROBLÈMES IRRÉGULIERS 35

la variable articiel t1 est hors base avec un fort coecient négatif et ne peut plus entrer dans la
base. La phase I s'achève en éliminant la colonne de la variable t1 du tableau. Nous retrouvons ainsi
le tableau suivant avec lequel on va démarrer la phase II du simplexe comme on l'a déjà fait dans la
section précédente.

Remarque 3.3 • Il se peut que la phase I se termine avec une solution de base optimale
comportant une ou plusieurs variables articielles.
• Si l'une de ces variables articielles de base prend une valeur négative, alors le problème
initial est non réalisable.
• Si toutes les variables articielles de base ont une valeur nulle, il faut les sortir de la base
pour trouver le tableau initial du simplexe pour le problème (P). Pour cela, on doit remplacer
chacune de ces variables articielles par l'une des variables hors base, qui ne doit pas être
une variable articielle. Puisque la variable de sortie a une valeur nulle, alors la nouvelle
variable de base aura aussi une valeur nulle.

4 Problèmes irréguliers
4.1 Cas de solution non bornée
Graphiquement, ce problème est caractérisé par le fait qu'on peut déplacer la droite de la fonction
objectif indéniment de manière à accroître la valeur, en gardant toujours une intersection non vide
avec l'ensemble des solutions réalisables.
Avec la méthode de simplexe, on reconnaît ce problème lorsque la variable entrante n'admet
aucune limite sur sa valeur d'entrée, c'est à dire que tous les ratios abiij sont négatifs ou nuls.
On considère le problème suivant :

 min z
min −2 x1 − 3 x2 + x3


 
− x1 − x2 − x3 + e 1 = 3

 

 − x1 − x2 − x3 ≤ 3 rajout des variables d'écart

 

 
 x1 − x2 + x3 + e 2 = 4
x1 − x2 + x3 ≤ 4 =⇒
  − x1 + x2 + 2 x3 + e 3 = 1
− x 1 + x2 + 2 x3 ≤ 1

 

− 2 x1 − 3 x2 + x3 − z = 0

 

 
 x1 , x2 , x3 ≥ 0 

x1 , x2 , x3 , e 1 , e 2 , e 3 ≥ 0

Le tableau initial s'écrit


Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
e1 −1 −1 −1 1 0 0 0 3
e2 1 −1 1 0 1 0 0 4
e3 −1 1 2 0 0 1 0 1 ←
−z −2 −3 1 0 0 3 1 0

Variable sortante : e3.


Variable entrante : x2 .
36 CHAPITRE 3. MÉTHODE DU SIMPLEXE
On pivote autour de de la troisième ligne et on trouve le tableau suivant
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
e1 −2 0 1 1 0 0 0 4
e2 0 0 3 0 1 0 0 5
e3 −1 1 2 0 0 1 0 1
−z −5 0 7 0 0 0 1 3

La variable entrante est x1 . Toutefois, le critère du quotient ne s'applique plus car toutes les entrées
(lignes 1 à 3) de la colonne 1 sont négatives ou nulles.

Remarque 3.4 Selon cet exemple, on peut conclure que s'il n'est pas possible de calculer la ligne
de pivot pour un choix de colonne de pivot j, le problème n'admet pas de solution optimale car il
sera toujours non borné.

4.2 Les problèmes impossibles


Graphiquement, on a caractérisé ces problèmes par un ensemble de solutions réalisables vide. Avec
la méthode de simplexe, on reconnaît que le problème est impossible si une ou plusieurs variables
articielles sont présentes dans la base dans le tableau de simplexe optimal, ce qui signie que la
solution donnée par ce tableau n'est pas réellement réalisable.
Vérions à l'aide de la méthode de simplexe, que le problème suivant est réellement impossible :


 max 4 x1 + 3 x2

 x1 + x2 ≤ 2


 3 x1 + x2 ≥ 10
x1 , x2 ≥ 0

En introduisant les variables d'écarts et les variables articielles le programme s'écrit :




 max 4 x1 + 3 x2 − Mt

 x1 + x2 + e 1 = 2


 3 x1 + x2 − e 2 + t = 10
x1 , x2 , e 1 , e 2 , t ≥ 0

La résolution par le simplexe donne les tableaux suivant


Variables de base x1 x2 e 1 e 2 t1 z b R
e1 1 1 1 0 0 0 2
t1 3 1 0 −1 1 0 10
z 4 3 0 0 − M −1 0

Ainsi,
Variables de base x1 x2 e 1 e 2 t1 z b R
e1 1 1 1 0 0 0 2
t1 3 1 0 −1 1 0 10
z 4 + 3M 3 + M 0 − M 0 −1 10 M
4. PROBLÈMES IRRÉGULIERS 37

D'où,
Variables de base x1 x2 e1 e2 t1 z b R
x1 1 1 1 0 0 0 2
t1 0 −2 −3 −1 1 0 10
z 0 −1 − 2 M −4 − 3 M 0 − M −1 4 M − 8
Le tableau de simplexe ci-dessus est optimal avec une variable articielle dans la base.

4.3 Les problèmes à solutions multiples


Nous avons vu dans l'algorithme du simplexe que lorsque les coûts marginaux de toutes les
variables hors base sont ≤ 0, alors la solution actuelle est optimale. Mais s'ils sont tous non nuls
(< 0), alors la solution optimale est unique. Si par contre, l'un de ces coûts des variables hors base
est nul, alors on peut avoir deux ou plusieurs solutions de base optimales. Pour illustrer, reprenons
l'exercice de la section résolution graphique qui admet une innité de solutions optimales.




min −50 x1 − 30 x2
s.t 10 x1 + 6 x2 ≤ 45




4 x1 + 6 x2 ≤ 36

2 x1 + 6 x2 ≤ 27





 x ≥ 0

Variables de base x1 x2 e 1 e 2 e 3 − z b R
e1 10 6 1 0 0 0 45
e2 4 6 0 1 0 0 36
e3 2 6 0 0 1 0 27
−z −50 −30 0 0 0 1 0
La variable x1 entre dans la base pour remplacer la variable e 1
Variables de base x1 x2 e1 e2 e3 −z b R
3 1 9
x1 1 5 10 0 0 0 2
18
e2 0 5 − 52 1 0 0 18
24
e3 0 5 − 51 0 1 0 18
−z 0 0 5 0 0 1 225

Nous obtenons une solution de base optimale dont les variables de base sont x1 , e 2 et e 3 . Mais
le coût marginal de la variable hors base x2 est nul. Faisons entrer cette variable dans la base et
appliquons la règle du plus petit rapport pour choisir la variable de sortie qui est dans ce cas e 3 .
Nous obtenons le tableau suivant
Variables de base x1 x2 e 1 e2 e3 −z b R
1
x1 1 0 8 0 − 81 0 9
4
e2 0 0 − 14 1 − 34 0 9
2
1 5 15
x2 0 1 − 24 0 24 0 4
−z 0 0 5 0 0 1 225

Nous obtenons donc une autre solution de base optimale dont les variables de base sont x1 , e2 et
x2 .
38 CHAPITRE 3. MÉTHODE DU SIMPLEXE
4.4 Les problèmes à solution dégénérée
En appliquons la règle du plus petit rapport pour désigner la variable de sortie, il est possible
que le plus petit rapport soit atteint pour deux contraintes. En eectuant le changement de base,
nous obtenons alors une solution de base avec l'une des composante nulle. Nous disons qu'on a
une dégénérescence. Ceci peut entraîner des dicultés d'execution et d'ecacité de l'algorithme du
simplexe. En eet, nous pouvons faire plusieurs changement de base sans améliorer la valeur de la
fonction objectif. Nous pouvons même retrouver une base déjà rencontrer à une itération précédente.
On dit alors qu'on a un phénomène de cyclage. An d'illustrer ce type de dégénérescence. considérons
l'exemple suivant : 

 min −4 x1 − 3 x3

 s.t x1 − x2 ≤ 2



2 x1 + x3 ≤ 4

x1 + x2 + x3 ≤ 3





 x1 , x2 , x3 ≥ 0
Introduisons les variables d'écart et écrivons le premier tableau du simplexe :
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
e1 1 −1 0 1 0 0 0 2
e2 2 0 1 0 1 0 0 4
e3 1 1 1 0 0 1 0 3
−z −4 0 −3 0 0 0 1 0

La variable x1 entre dans la base, mais en appliquons la règle du plus petit rapport, nous constatons
que le minimum des rapports est atteint pour les deux premières contraintes, alors que seulement une
des deux doit quitter la base. Choisissons arbitrairement e 1 comme variable sortante. nous obtenons
alors le tableau suivant :
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 1 0 0 0 2
e2 0 2 1 −2 1 0 0 0
e3 0 2 1 −1 0 1 0 1
−z 0 −4 −3 4 0 0 1 8

cette solution de base n'est pas optimale puisque les coûts marginaux des variables hors base ne
sont pas tous positifs. Cette solution de base est dite dégénérée puisque l'une des variables de base
est nulle ( e 2 = 0). La variable x2 entre dans la base. En appliquons la règle du plus petit rapport,
nous constatons que la variable e 2 quitte la base et nous obtenons le tableau suivant
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
1 1
x1 1 0 2 0 2 0 0 2
1 1
x2 0 1 2 −1 2 0 0 0
e3 0 0 0 1 −1 1 0 1
−z 0 0 −1 0 2 0 1 8

Nous constatons que la nouvelle solution de base est non optimale et qu'elle est aussi dégénérée
( x2 = 0). Ce changement de base n'a pas modié la valeur de la fonction objectif ( z = −8). A
l'itération suivante de l'algorithme du simplexe, cette variable x2 quitte la base et sera remplacée
4. PROBLÈMES IRRÉGULIERS 39

par la variable x3
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 1 0 0 0 2
x3 0 2 1 −2 1 0 0 0
e3 0 0 0 1 −1 1 0 1
−z 0 2 0 −2 3 0 1 8

Encore une fois, ce changement de base n'a pas modié la valeur de la fonction objectif. En plus la
nouvelle solution de base est aussi non optimale. Nous pouvons donc se poser la question de savoir
si nous allons continuer ainsi sans pouvoir trouver la solution de base optimale. Heureusement ce
phénomène de dégénérescence s'arrête à l'itération suivante
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 0 1 −1 0 1
x3 0 2 1 0 −1 2 0 2
e1 0 0 0 1 −1 1 0 1
−z 0 2 0 0 1 2 1 10

Remarque 3.5 Dans le cas où on a plusieurs variables candidates d'entrer en base et plusieurs
variables candidates de sortir de la base, la règle du plus petit indice, découverte par R. Bland,
peut nous éviter le cyclage inni. Cette règle consiste à choisir systématiquement, comme variable
entrante, parmi les multiples candidats, la variable x qui correspond au plus petit indice e et
comme variable sortante, la variable x qui correspond au plus petit indice s.
e
s
[ Quatrième Chapitre \
Dualité

1 Motivation et dénitions
Revenons encore une fois au problème de production de l'introduction.

P1 P2 disponibilité
équipement 3 9 81
main d'oeuvre 4 5 55
matière première 2 1 20
bénéce 6 4

- Supposons à présent qu'un acheteur se présente pour acheter toutes les ressources b i , 1 ≤ i ≤ m,
de l'entreprise. Il propose à l'entreprise un prix unitaire yi , 1 ≤ i ≤ m, pour chacune des ressources.
L'entreprise acceptera de lui vendre toutes ses ressources uniquement si elle obtient pour chaque
produit P j un prix de vente au moins égal au prot c j qu'elle ferait en vendant ses produits. On
doit donc avoir
3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6
9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4
y1 , y2 , y3 ≥ 0
De son côté, l'acheteur cherche à minimiser le prix total d'achat. On se demande alors quels sont
les prix unitaires yi , 1 ≥ i ≥ m, que l'acheteur doit proposer à l'entreprise en question pour qu'elle
accepte de vendre toutes ses ressources ? Le problème peut donc s'écrire

 min g( y) = 81 y1 + 55 y2 + 20 y3


 y
s.t 3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6 (4.1)



 9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4

y1 , y2 , y3 ≥ 0

Dénition 4.1 Au programme linéaire primal



 maxn

 f ( x) = c t x
x∈R
(PL) : s.t Ax ≤ b


 x≥0

on associe le programme linéaire dual



 min g( y) = b t y
 y∈Rm

(PLD ) : s.t At y ≥ c


y≥0

40
1. MOTIVATION ET DÉFINITIONS 41

Exemple 4.1 Illustration graphique du problème primal et dual :


On considère le problème suivant :

 min f ( x) = − x1 − x2
x∈R2



s.t − x1 − 3 x2 ≥ −3



 −2 x1 − x2 ≥ −2

x1 , x2 ≥ 0

qui admet la solution x ∗


= ( x1 , x2 ) =
¡3 4
5, 5
¢
et f (x ) = − . Le problème dual s'écrit sous la forme :
∗ 7
5


 max g( y) = −3 y1 − 2 y2
2
 y∈R



s.t − y1 − 2 y2 ≤ −1



 −3 y1 − y2 ≤ −1
y1 , y2 ≥ 0

qui admet la solution y ∗


= ( y1 , y2 ) =
¡1 2
5, 5
¢
et g( y ) = − . Dans cet exemple, on observe que la
∗ 7
5

valeur minimale du primal est égale à la valeur maximale du dual.


42 CHAPITRE 4. DUALITÉ
1.1 Comparaison primal/dual
Primal Dual
max( f ) min( g)
coecient c de f second membre c
second membre b coecient b de g
m contraintes inégalités (≤) m contraintes de positivité
n contraintes de positivité n contraintes inégalités (≥)

Si le problème primal est sous forme standard avec les contraintes à Ax != bà alors !on passe à
A b
la forme canonique pure en écrivant les contraintes Ax = b ⇐⇒ ≤ . De façon
−A −b
générale, on a la dénition suivante lorsque le problème primal est sous forme canonique mixte :
Primal Dual
t
maxn f ( x) = c x min g( y) = b t y
x∈R y∈Rm
n
X
∀i ∈ I1, ai j x j ≤ bi ∀ i ∈ I 1 , yi ≥ 0
j =1
n
de signe quelconque
X
∀i ∈ I2, ai j x j = bi ∀ i ∈ I 2 , yi
j =1
m
X
∀ j ∈ J1 , x j ≥ 0 ∀ j ∈ J1 , a i j yi ≥ c j
i =1
m
de signe quelconque
X
∀ j ∈ J2 , x j ∀ j ∈ J2 , a i j yi = c j
i =1

2 Propriétés - Théorèmes de dualité

Proposition 4.1 Le dual du dual est le primal.

Démonstration A partir de la dénition du dual d'un PL sous forme canonique pure :


− g( y) = (− b) t y

g( y) = b t y

 min  − maxm
 y∈Rm
 
 y∈R
s.t At y ≥ c ⇐⇒ s.t − A t y ≤ −c

 

y≥0 y≥0
 

Si on prend le dual du dual, on a donc


 

 − minn (− c) t x 
 maxn ct x
 x∈R  x∈R

 s.t (− A t ) t x ≥ (− b) ⇐⇒
 s.t Ax ≤ b
 
 x≥0  x≥0

et on reconnaît le problème primal du départ.


On s'intéresse à présent au lien entre les solutions de programmes linéaires en dualité.
2. PROPRIÉTÉS - THÉORÈMES DE DUALITÉ 43

Théorème 4.1 (Théorème faible de dualité)


Soit x une solution réalisable d'un (PL) sous forme canonique mixte et y une solution réalisable
du problème dual (PLD). Alors :
1. f (x) ≤ g( y).
2. Si f (x) = g( y) alors x et y sont des solutions optimales de (PL) et (PLD) respectivement.
Démonstration Dans le cas où (PL) est sous forme canonique pure :
1. On a d'une part Ax ≤ b, x ≥ 0 et d'autre part A y ≥ c, y ≥ 0. Par conséquent,
t

t t t
Ax ≤ y b = g( y) car y ≥ 0.
f ( x) = c x ≤ ( A y) x = y |{z} t t

≤b

2. Soient x et y des solutions réalisables de (PL) et (PLD) respectivement telles que f (x ) =


∗ ∗ ∗

g( y ). D'après 1., pour toute solution réalisable x de (PL), on a f ( x) ≤ g( y ) = f ( x ) donc x


∗ ∗ ∗ ∗

est une solution réalisable optimale. Idem pour y . ∗

Théorème 4.2 (Théorème fort de dualité)


Si le problème primal (PL) admet une solution réalisable optimale x alors le problème dual (PLD)

admet lui aussi une solution réalisable optimale y et on a ∗

f ( x∗ ) = g( y∗ ).

Démonstration On suppose que (PL) est sous forme standard. Si (PL) admet une solution réali-
sable optimale, alors il admet une solution de base réalisable optimale. On note B la base optimale ∗

et on désigne par x la solution de base réalisable optimale : x = A b. On choisit alors


∗ ∗ −1
B∗
1 t
y∗ = ( A −
B∗ ) c B .

Montrons que y est une solution réalisable optimale pour le dual (PLD). On a

t ∗ t −1 t
AH ∗y = AH ∗ ( A B∗ ) c B∗

1 t
= ( A−
B∗ A H ) c B
∗ ∗

= c H∗ − L H∗
Or, à l'optimum tous les coûts réduits sont négatifs ou nuls (L ≤0 ) donc A t
y∗ ≥ c H∗ . Par
dénition, on a A y = c et donc on obtient
H∗ H∗
t ∗
B∗ B∗

A t y∗ ≥ c
est de signe quelconque.
y∗
Par conséquent, y est une solution réalisable du dual (PLD). On remarquera que le problème primal

(PL) étant mis sous forme standard, il n'y a pas de contrainte de positivité sur les variables y du
dual. Par ailleurs
f ( x∗ ) = c t x∗ = c B
t −1
∗ A B∗ b

1 t t
= (( A − ∗ ) c B∗ ) b
| B {z }
y∗
= g( y∗ )
44 CHAPITRE 4. DUALITÉ
et donc par le Théorème faible de dualité, y est optimale pour (PLD).

On a vu qu'il y avait 3 cas possibles (et seulement 3) pour le problème primal (PL) :
1. il existe (au moins) une solution optimale.
2. l'ensemble DR des solutions réalisables n'est pas borné et l'optimum est inni.
3. pas de solution réalisable (DR = ;)
Les mêmes situations se retrouvent pour le problème dual. Plus précisément, le lien entre les
deux problèmes en dualité est donné par le résultat suivant.

Théorème 4.3
Étant donnés un problème primal (PL) et son dual (PLD), une et une seule des trois situations
suivantes peut se produire.
a) les deux problèmes possèdent chacun des solutions optimales (à l'optimum, les coûts sont
égaux).
b) un des problèmes possède une solution réalisable avec un optimum inni, l'autre n'a pas de
solution.
c) aucun des deux problèmes ne possède de solution réalisable.

Il y a donc 3 situations (au lieu de 9) qui peuvent se résumer dans le tableau suivant :

3 Conditions d'optimalité primal-dual (COPD)


On s'intéresse au cas (a) où les problèmes primal et dual possèdent chacun des solutions optimales
(optimum ni). On peut alors calculer l'une à partir de l'autre.

Théorème 4.4
Soient x et y des solutions réalisables respectivement du problème primal (PL) et du problème
dual (PLD). Alors x et y sont des solutions réalisables optimales si et seulement si les conditions
d'optimalité primal-dual (COPD) suivantes sont vériées :
 Si une contrainte est satisfaite en tant qu'inégalité stricte dans (PL) (resp. dans (PLD))
alors la variable correspondante de (PLD) (resp. de (PL)) est nulle.
 Si la valeur d'une variable dans (PL) ou (PLD) est strictement positive alors la contrainte
correspondante de l'autre programme est une égalité.
3. CONDITIONS D'OPTIMALITÉ PRIMAL-DUAL (COPD) 45

Supposons que le problème primal s'écrive sous forme canonique mixte. Alors x et y sont op-
timales respectivement pour le problème primal et le problème dual si et seulement si on a les
COPD :  n
a i j x j = b i ou yi = 0
X
∀ i ∈ I ,

1



j =1
m
ou x j = 0
 X
 ∀ j ∈ J1 , a i j yi = c j


i =1

Démonstration (Démonstration de la condition nécessaire du Théorème 3.)


Supposons pour simplier que le problème primal (PL) soit mis sous forme canonique pure. Soient x
et y des solutions réalisables optimales de (PL) et (PLD) respectivement. On a donc Ax ≤ b, x ≥ 0
et A y ≥ c, y ≥ 0. En introduisant les variables d'écart e et ² respectivement pour (PL) et (PLD),
t

on a
et
t
Ax + e = b A y−² = c
x, e ≥ 0 x, ² ≥ 0
Dans ces conditions,
f ( x) = c t x = ( A t y − ²) t x = y t Ax − ² t x
g( y) = b t y = ( Ax + e) t y = ( Ax) t y + e t y = y t Ax + e t y.

Or d'après le Théorème de la dualité forte, f (x) = g( y) donc on obtient


² t x + e t y = 0. (4.2)
Puisque x ≥ 0 et y ≥ 0, on a nécessairement
(
² i x i = 0, ∀ i
e j y j = 0, ∀ j

ce qui donne les COPD (encore appelées "relations d'exclusion") :


(
Si ² 6= 0 alors x = 0 , ( Si e 6= 0 alors y = 0
Si x 6= 0 alors ² = 0 Si y 6= 0 alors e = 0
i i j j
i i j j

La réciproque (condition susante) se démontre à partir du Théorème faible de dualité.


3.1 Utilisation pratique des COPD
La dualité et les COPD permettent souvent de vérier si une solution réalisable d'un (PL) est
optimale ou non, à partir de la connaissance d'une solution optimale du problème dual. Lorsque (PL)
et (PLD) ont des solutions réalisables optimales x∗ et y∗ respectivement, on a :
n
a i j x∗j < b i =⇒ yi∗ = 0
X
j =1
m
a i j yi∗ > c j =⇒ x∗j = 0
X
i =1

et n
a i j x∗j = b i
X
yi∗ > 0 =⇒
j =1
m
a i j yi∗ = c j
X
x∗j > 0 =⇒
i =1
46 CHAPITRE 4. DUALITÉ
Exemple 4.2 Le problème dual du problème de production s'écrit

 min g( y) = 81 y1 + 55 y2 + 20 y3


 y
s.t 3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6 (4.3)



 9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4

y1 , y2 , y3 ≥ 0

Le problème primal (PL) admet la solution optimale :


27 COPD
e∗1 = >0 =⇒ y1∗ = 0
2
15 COPD
x1∗ = >0 =⇒ 3 y1∗ + 4 y2∗ + 2 y3∗ = 6 (²∗1 = 0)
2
COPD
x2∗ = 5 > 0 =⇒ 9 y1∗ + 5 y2∗ + y3∗ = 4 (²∗2 = 0)
e∗2 = e∗3 = 0

En résolvant le système pour y , on obtient la solution optimale du problème dual :


1 7
y1∗ = 0, y2∗ = , y3∗ = .
3 3

3.2 Calcul de la solution du problème dual à partir du tableau du


simplexe du problème primal
Dans cette section, nous allons voir comment nous pouvons calculer la solution du problème dual
à l'aide du tableau nal du simplexe appliqué au problème primal.
On considère le problème de production


 max [ f ( x1 , x2 ) = 6 x1 + 4 x2 ]


 (x1 ,x2 )
s.t. 3 x1 + 9 x2 ≤ 81



 4 x1 + 5 x2 ≤ 55




 2 x1 + x2 ≤ 20

 x1 , x2 ≥ 0

le tableau nal du simplexe est :

Variables de base x1 x2 e 1 e 2 e3 z b R
e1 0 0 1 − 15 6
7
2 0 27
2
1
x2 0 1 0 3 − 32 0 5
x1 1 0 0 − 16 5
6 0 15
2
z 0 0 0 − 13 − 37 −1 −65

La solution optimale est donc


¶t
15 27
µ
t
( x1 , x2 , e 1 , e 2 , e 3 ) = , 5, , 0, 0 ,
2 2

qui correspond à un bénéce maximum de z = 65.


3. CONDITIONS D'OPTIMALITÉ PRIMAL-DUAL (COPD) 47

Calculons la solution du problème dual. Le dual s'écrit



 min g( y) = 81 y1 + 55 y2 + 20 y3


 y
s.t 3 y1 + 4 y2 + 2 y3 ≥ 6 (4.4)



 9 y1 + 5 y2 + 1 y3 ≥ 4

y1 , y2 , y3 ≥ 0

On applique la méthode du simplexe au problème dual, après la Phase I et la Phase II on obtient


le tableau est

Variables de base y1 y2 y3 ²1 ²2 −z b R
y3 − 27 0 1 − 56 2
3 0 7
3
5 1
y2 2 1 0 6 − 13 0 1
3
27
−z 2 0 0 152 5 1 −65

La solution optimale est ¶t


1 7
µ
t
( y1 , y2 , y3 , ²1 , ²2 ) = 0, , , 0, 0 ,
3 3

On observe que la solution y se trouve à la dernière ligne du tableau nal du simplexe du problème
primal. En eet, les coecients c i de la dernière ligne du tableau correspondent à
(
y j = − c n+ j , j = 1, ..., m
² i = − c i , i = 1, .., n

en applique sur le tableau primal et on obtient


1 7
c 3 = y1 = 0; c 4 = y2 = ; c 5 = y3 = ; c 1 = ²1 = 0; c 2 = ²2 = 0.
3 3

En parfaite dualité, on a les mêmes relations par rapport au tableau du problème dual. On obtient
que les coecients ci de la dernière du tableau du dual correspondent à
(
x i = c m+ i , i = 1, ..., n
e j = c j , j = 1, .., m

en applique sur le tableau dual et on obtient


15 27
c 4 = x1 = ; c 5 = x2 = 5; c 1 = e 1 = ; c 2 = e 2 = 0; c 3 = e 3 = 0.
2 2

Vous aimerez peut-être aussi