Vous êtes sur la page 1sur 60

www.livecours.

com
Universit Ibn Zohr
Facult des Sciences Juridiques conomiques et Sociales

Programmation
Linaire
Mohamed HACHIMI

EG
FILIRE SCIENCES CONOMIQUES ET GESTION
TROISIME ANNEE

Semestre 5
www.livecours.com

Table des matires

1 Formulation 4
1. Introduction 4
2. Formulation dun problme de maximisation 4
3. Formulation dun problme de minimisation 8
4. Formulation dun problme linaire 10

2 Mthode graphique 11
1. Quelques rappels de gomtrie 11
2. Problme de maximisation 13
3. Problme de minimisation 18

3 Algorithme du simplexe : Mthode algbrique 22


1. Principe de lalgorithme 22
2. Caractrisation algbrique des sommets 23
3. Illustration de lalgorithme 25
4. Algorithme du simplexe 31
5. Application 32

4 Algorithme du simplexe : Mthode des tableaux 35


1. Recherche dun sommet de dpart 35
2. Illustration de lalgorithme 35
3. Algorithme du simplexe en tableaux 42
4. Application 45
Table des matires 3

5 Dualit en programmation linaire 48


1. La construction du modle dual 48
2. Proprits de la dualit 53

www.livecours.com
1 Formulation

1. Introduction

La programmation linaire est lune des plus importantes techniques doptimisation


utilises en recherche oprationnelle. Ceci est d la facilit de la modlisation,
lefficacit des algorithmes dvelopps et lexistence sur le march de nombreux
logiciels. La gnralisation de micro-informatique a mis la programmation linaire
la porte de tous.
Le objectif de programmation linaire est de dterminer laffectation optimale
de ressources rares entre des activits ou produits concurrents. Les situations
conomiques demandent souvent quon optimise une fonction sous plusieurs
contraintes prenant la forme dingalits.

2. Formulation dun problme de maximisation

2.1. Enonce du problme

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


matires premires p et q. On dispose chaque jour de 8 heures de m, de 10 kg de p et
de 36 kg de q. On suppose que :

la production dune unit de A ncessite 2 kg de p et 9 kg de q, et utilise la


machine m durant 1 heure ;
la production dune unit de B ncessite 2 kg de p et 4 kg de q, et utilise la
machine m durant 2 heure ;
les profits raliss sont de 50 dh par unit de A et 60 dh par unit de B.

Lobjectif que poursuit lentreprise est de maximiser le profit quelle pourra tirer, par
jour, de ces 2 produits en utilisant au mieux ses ressources.
Le tableau suivant rsume les donnes affrentes ce problme de production :
1 Formulation 5

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

2.2. La construction dun modle linaire

Quelles sont les informations dont doit disposer le directeur de lentreprise pour
considrer que son problme est rsolu ? Il suffit de connatre la quantit du
produit A et la quantit du produit B fabriquer quotidiennement, nest-ce pas ?
Agissons comme si ces quantits nous taient connues et dnotons-les par :

x1 = la quantit du produit A produire


x2 = la quantit du produit B produire

Les variables x1 et x2 sont dites variables de dcision.


Quel profit lentreprise retirera-t-elle de la vente de ces deux produits ? Il sagit
dadditionner les bnfices tirer de chacun des 2 produits :

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


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

Le profit total tirer des deux produits slve donc :

(50 x1 + 60 x2 ) dh

Nous dnoterons ce profit total par z et laisserons implicite lunit montaire :

z = 50 x1 + 60 x2

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


x2 des valeurs appropries.
La grandeur z est une fonction qui, chaque plan de production (une quantit
de A, une quantit de B), associe le nombre de dirhams que lentreprise retirerait
comme profit si elle adoptait ce plan. Cette fonction z, qui traduit lobjectif de notre
problme, sappelle fonction objectif ou fonction conomique. Et, comme nous
cherchons rendre z aussi grand que possible, nous crivons :

Maximiser z o z = 50 x1 + 60 x2

www.livecours.com
1 Formulation 6

ce que gnralement lon convient dabrger comme suit :

Max z = 50 x1 + 60 x2

Sil ne sagissait pour lentreprise que de maximizer z, il suffirait de laisser


augmenter x1 ou x2 pour que z prenne une valeur aussi grande quelle le souhaite.
Mais sattendre de tels profits sapparente plus au rve qu la situation de notre
entreprise. Il y a bien sr des empchements naturels, appels contraintes, qui
freinent le rve dun profit infini. Prenons en considration tour tour chacune
des contraintes.
Contrainte relative la machine m Le temps dutilisation de la machine m pour
fabriquer les produits A et B ne peut excder les 8 heures disponibles :

Temps dutilisation de m 6 8.

Or, ce temps utilis est la somme des heures consacres chacun des types de
produits. Pour le produit A, le temps ncessaire la fabrication de la quantit x1
se calcule ainsi :

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

pour le produit B, on procde de faon analogue :

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

La contrainte relative la machine m scrit donc :

x1 + 2x2 6 8 (m)

On emploie le signe 6 , et non = , car il nest pas obligatoire que toutes les
heures disponibles soient utilises pour la fabrication des produits A et B, bien quil
ne soit pas interdit quil en soit ainsi.
Contraintes relatives aux matires premires En sinspirant de la contrainte
relative la machine, ces contraintes scrivent tout naturellement :

2x1 + 2x2 6 10 (p)


9x1 + 4x2 6 36 (q)

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


valeurs ngatives (inacceptables).

x1 , x2 > 0,
www.livecours.com
1 Formulation 7

Le modle se rsume ainsi :



Max z = 50x1 + 60x2






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

9x1 + 4x2 6 36






x1 , x 2 > 0

2.3. Variables dcart

Afin de ramener les contraintes des galits (qui sont plus faciles traiter que les
ingalits), on introduit des variables dcart. Ces variables seront toujours, comme
les variables de dcision x1 et x2 , positives ou nulles.
Aprs lajout des variables dcart x3 , x4 et x5 relatives aux contraintes (m), (p) et
(q), nous obtenons la formulation :


Max z = 50x1 + 60x2





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

9x1 + 4x2 + x5 = 36






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

La variable dcart dune contrainte reprsente la quantit disponible non utilise.


Cest lcart entre la disponibilit et le besoin.

2.4. Gnralisation : Problme de production

Soient m machines Mi (i = 1, . . . , m) qui fabriquent en srie n types de produits Pj


(j = 1, . . . , n). La machine Mi a une capacit maximum de bi units de temps. La
fabrication dune units du produit Pj ncessite lutilisation de la machine Mi durant
aij units de temps.
Si cj reprsente le gain relatif la production dune unit du produit Pj , la rsolution
du problme


Max z = c1 x1 + c2 x2 + + cn xn


a11 x1 + a12 x2 + + a1n xn 6 b1 (M1 )






a21 x1 + a22 x2 + + a2n xn 6 b2 (M2 )
.. .. ..
. . .





am1 x1 + am2 x2 + + amn xn 6 bm (Mm )






x1 , x2 , . . . , xn > 0
1 Formulation 8

fournira les valeurs optimales des quantits xj produire de chacun des produits ;
la fonction conomiques reprsente le gain total ; le premier membre de chaque
contrainte (Mi ) reprsente le temps total dutilisation de la machine Mi . Les valeurs
des variables dcart associes chacune de ces contraintes correspondent au temps
disponible non utilis de chaque machine.

3. Formulation dun problme de minimisation

3.1. Enonc du problme

Un agriculteur souhaite que son troupeau consomme la plus faible ration


quotidienne de trois lments nutritifs A, B et C. Les exigences quotidiennes sont
de 16 pour A, 12 pour B et 18 pour C. Lagriculteur achte deux types daliments P
et Q :

une unit de P comprend 2 units de A, 1 unit de B et 1 unit de C ; et elle cote


20 dh ;
une unit de Q comprend 1 unit de A, 1 unit de B et 3 units de C ; et elle cote
40 dh.

Lagriculteur cherche la combinaison la moins coteuse des quantits de P et Q qui


respectera lexigence de consommation minimale dlments nutritifs.
Le tableau suivant rsume les donnes affrentes ce problme :

P Q Besoins minimaux
A 2 1 16
B 1 1 12
C 1 3 18
Cot unitaire 20 dh 40 dh

3.2. La construction dun modle linaire

Appelons x1 et x2 les quantits des aliments P et Q quil faut acheter. Lobjectif


de lagriculteur est videmment de minimiser le cot total des aliments quil faut
acheter. Mathmatiquement cela scrit :

Minimiser z = 20x1 + 40x2

ce que gnralement lon convient dabrger comme suit :

Min z = 20x1 + 40x2

www.livecours.com
1 Formulation 9

Chacun des 3 lments nutritifs considrer donne lieu une contrainte, qui vise
exiger que les aliments, dans leur ensemble, satisfassent les besoins quotidiens du
troupeau. On obtient :

2x1 + x2 > 16 (A)


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

Les contraintes ci-dessus emploie le signe > parce quil faut respecter les
exigences de consommation minimales, mais que celles-ci peuvent tre dpasses.
Enfin, il faut pas oublier quon peut pas acheter des quantits ngatives de P ou Q :

x1 , x 2 > 0

Le modle se rsume ainsi :




Min z = 20x1 + 40x2





2x1 + x2 > 16
x1 + x2 6 12
x1 + 3x2 6 18






x1 , x 2 > 0

3.3. Gnralisation : Problme de mlange

Il sagit de rechercher un rgime alimentaire qui, tout en tant le meilleur march


possible, garantisse un apport suffisant en lments nutritifs.
Soient n aliments de prix cj (j = 1, . . . , n) par unit ; m lments nutritifs ; aij la
quantit du ime lment nutritif contenue dans une unit du j me aliment ; bi (i =
1, . . . , m) les besoins respectifs en les m lments nutritifs.
Si les variables xj (j = 1, . . . , n) reprsentent les quantits des divers aliments du
rgime, on obtient le problme



Min z = c1 x1 + c2 x2 + + cn xn


a11 x1 + a12 x2 + + a1n xn > b1






a21 x1 + a22 x2 + + a2n xn > b2
.. .. ..
. . .





am1 x1 + am2 x2 + + amn xn > bm






x1 , x2 , . . . , xn > 0
1 Formulation 10

Ce problme nest rien dautre quun problme de mlange. Il se prsente dans


de nombreuses situations, par exemple, le cas de la composition dun rgime
alimentaire pour animaux.

4. Formulation dun problme linaire

www.livecours.com
2 Mthode graphique

Dans ce chapitre nous prsentons une technique de rsolution de programme


linaire deux variables x1 et x2 . Dans ce cas on peut utiliser une reprsentation
graphique du programme linaire. La reprsentation graphique sera utile pour
acqurir une comprhension intuitive des principes de base de la programmation
linaire. La formulation canonique dun programme linaire deux variables peut
scrire sous lune des deux formes suivantes :


Max z = a0 x1 + b0 x2
Min z = a0 x1 + b0 x2





a1 x1 + b1 x2 6 c1

a1 x1 + b1 x2 > c1
(P) a2 x1 + b2 x2 6 c2 (D) a2 x1 + b2 x2 > c2

... ... ... ... ... ...







x1 , x 2 > 0 x1 , x 2 > 0

1. Quelques rappels de gomtrie

1.1. La construction de la rgion ralisable

Chacune des quations ai x1 + bi x2 = ci dfinit une droite qui partage le plan en


deux demi-plans P1 et P2 dquation :

(P1 ) ai x 1 + b i x 2 > c i , (P2 ) ai x1 + bi x2 6 ci

p lan
mi
De
o
p lan
e mi x
D

Chaque contrainte dtermine lun des deux demi-plans (P1 ) ou (P2 ) que lon
trouvera en vrifiant si un point particulier (lorigine (0, 0) par exemple) est contenu
2 Mthode graphique 12

dedans ou non. Lintersection de tous les demi-plans correspondant aux contraintes


constitue lensemble des points ralisables : ce sont les solutions communes toutes
les contraintes. Cet ensemble correspond une rgion D du plan et est souvent
appele rgion ralisable. Cette rgion est parfois vide ou non born.
y y

D
D

o x o x

Rgion born Rgion non born

1.2. La recherche dune solution optimale

Nous venons de construire la rgion ralisable dun programme linaire deux


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

(Dp ) a0 x1 + b0 x2 = p

Cette droite est appel droite diso-valeur de fonction z. Elle reprsente les points
du plan qui donnent z la valeur p.
On sintresse la famille des droites (Dp ) (p paramtre). Ce sont toutes des droites
a
parallles de pente : , que lon peut crire :
b
a0 p
x2 = x1 + (si b0 6= 0).
b0 b0
p
Ici yp = est lordonne lorigine de la droite (Dp ). Ainsi, on a :
b0

Si b0 > 0 alors p1 < p2 yp1 < yp2

Si b0 < 0 alors p1 < p2 yp1 > yp2

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


de z est obtenu pour la droite ayant au moins un point commun avec la rgion
ralisable et ayant une ordonne lorigine la plus leve possible.

www.livecours.com
2 Mthode graphique 13

y sens des z croissants y sens des z croissants

D
B
D D

A
C
o x o x

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

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


maximum de z est obtenu pour la droite ayant au moins un point commun avec
la rgion ralisable et ayant une ordonne lorigine la plus basse possible.

y sens des z croissants y sens des z croissants

D
B
D D

A
C
o x o x

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

Tous les points sur une mme droite assurent la mme valeur pour z. Quand on
passe dune droite une autre, les valeur de z varient : ils augmentent si on se
dplace dans le sens du vecteur normal n (a0 , b0 ) au droites iso-valeurs : do la
signification de la flche indiquant le sens des z croissants .

2. Problme de maximisation

2.1. Enonc du problme

Une entreprise de fabrication de chassis envisage la production de deux nouveaux


modles au moyen des capacits de ses trois ateliers. Il sagit respectivement dun
chassis en aluminium et dun chassis en bois. Le premier produit ncessite le
passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le
troisime atelier o le verre est mont sur le chassis. Tandis que le second produit
2 Mthode graphique 14

ncessite le passage dans le deuxime atelier pour fabriquer le cadre en bois et dans
le troisime atelier o le verre est mont sur le chassis. Les profits unitaires, les
temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les
capacits hebdomadaires de ces ateliers sont donns au tableau suivant :

Produit 1 Produit 2 Capacit disponible


(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 1 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Profit 300 dh 500 dh
La question qui se pose est la suivante : "Combien faut-il produire de chassis de
chaque type par semaine afin dobtenir un profit maximal ?"

2.2. Le modle linaire

Quelles sont les quantits de chassis que lentreprise devrait produire par semaine,
si elle veut maximiser son profit ? Les variables de dcision seront :

x1 = nombre de chassis de type 1 produire par semaine


x2 = nombre de chassis de type 2 produire par semaine

Le problme de planification de la production de chassis se traduit par le modle


linaire suivant :

Max z = 300x1 + 500x2



x1 6 4 (atelier 1) (A1)





2x2 6 12 (atelier 2) (A2)

(P)


3x1 + 2x2 6 18 (atelier 3) (A3)




x1 > 0

x2 > 0

A chaque couple de valeurs des variables de dcision x1 et x2 on associe un point


(x1 , x2 ) du plan R2 : le point (x1 , x2 ) sinterprte comme la proposition dun plan de
production indiquant le nombre de chassis fabriquer par semaine. Gnralement,
on parle indiffremment du point (x1 , x2 ) ou du plan de production (x1 , x2 ) ou
encore de la solution (x1 , x2 ).

2.3. Construction de la rgion ralisable

Les contraintes x1 > 0 et x2 > 0 signifient que tous les points (x1 , x2 ) reprsentant
des solutions acceptables doivent tre dans le premier quadrant, soit droite de

www.livecours.com
2 Mthode graphique 15

laxe Ox2 et au-dessus de laxe Ox1 .


Notons que toutes les contraintes du modle, y inclus les contraintes de non-
ngativit, peuvent scrire sous la forme suivante :

ax1 + bx2 6 c

Pour prciser la procdure qui mne la reprsentation graphique de la rgion


ralisable, considrons tout dabord la contrainte relative latelier 1. La droite
associe cette contrainte est la droite dquation :

x1 = 4 (1)

La reprsentation graphique de lquation (1) sobtient en traant la droite verticale


qui passe par le point (4, 0). La contrainte (A1) est satisfaite pour les points du plan
du mme cte de la droite (1) que lorigine du repre.
x2 x2

8 8
Droite D1 Droite D1
6 6

4 4

2 2

0 2 4 6 8 x1 0 2 4 6 8 x1
droite associe la 1re contrainte prise en compte de la 1re contrainte

Puisque toutes les contraintes du modle linaire sont de la mme forme, il suffit
de les prendre en considration tour tour, en procdant, pour chaque contrainte,
comme suit :

choisir 2 points de la droite associe. Afin de faciliter les calculs, on peut choisir
les deux points ayant chacun une coordonne nulle. Puis tracer cette droite ;
dterminer de quel ct de la droite associe la contrainte est satisfaite. Pour
reprer rapidement le bon cte, il suffit de regarder si le point (0, 0) est du bon
cte ;
tracer une flche pointant vers ce ct.

Illustrons nouveau cette procdure laide de la contrainte (A2). La droite associe


cette contrainte est la droite dquation :

x2 = 6 (2)
2 Mthode graphique 16

les points (0, 6) et (8, 6) appartiennent la droite (2) associe (A2) ;


le point (0, 0) vrifie cette dernire et les points ralisables selon la seule
contrainte (A2) se trouvent sous la droite (2) ;
la flche pointant vers le bon ct est place.

Le rsultat graphique de la prise en considration des contraintes (A1) et (A2) est


illustr sur la figure suivante :

x2 (1) x2 (1)
8<Points ou (A1)
8 8
:est respectee mais
(A2) ne lest pas
6 6
(2) (2)

4 4

2 2

0 2 4 6 8 x1 0 2 4 6 8 x1
effet de la 2me contrainte prise en compte des contraintes (A1) et (A2)

La prise en considration graphique de la contrainte (A3) se traduit par le trac de


la droite dquation :
3x1 + 2x2 = 18 (3)
et par lexclusion des points situs au-dessus de cette droite.

x2 (1) x2 (1)

8 8

6 6
(2) (2)

4 4

2 (3) 2 (3)

0 2 4 6 8 x1 0 2 4 6 8 x1
effet de la 3me contrainte prise en compte de toutes les contraintes

Lensemble des points qui nont pas t limins aprs la prise en considration de
toutes les contraintes constitue la rgion ralisable. En conomie, cet ensemble est
aussi appel lensemble de production.

www.livecours.com
2 Mthode graphique 17

2.4. Recherche dune solution optimale

La rgion ralisable que nous venons de construire ne dtermine pas une solution,
mais tout un domaine contenant un nombre infini de points. Il va falloir reprer
un plan de production optimal, cest--dire un point (x1 , x2 ) vrifiant toutes les
contraintes et permettant z de prendre sa plus grande valeur sur la rgion
ralisable.
Pour cela, on va considrer des valeurs successives de la fonction conomique :

z = p.

Ce qui correspond graphiquement des droites parallles

300x1 + 500x2 = p. (4)

Les points dune de ces droites sont donc le lieu de tous les points donnant la mme
valeur du profit (do le nom de droites disoprofits).
Tracer une premire droite disoprofit permet dobtenir une illustration de la pente
de z. En tracer une deuxime permet de dterminer la direction selon laquelle
la valeur de z augmente. Ainsi, en augmentant petit petit la valeur de p dans
lquation (4), on obtient des droites parallles, chacune plus loin de lorigine que
les prcdentes.

x2 (1)

6
(2)

4 z=
200
0
2 z= (3)
100
0
0 2 4 6 8 x1
droites disoprofits z = 0, z = 1000 et z = 2000

Comme on cherche ici maximiser la fonction conomique z, on dtermine une


solution optimale en cherchant la droite disoprofit la plus leve qui comporte au
moins un point de la rgion ralisable.
2 Mthode graphique 18

x2 (1) x2

8 8
(x1 , x2 ) = (2, 6)
6 6
(2)

4 z= 4 z=
200 200
0 0
2 z= (3) 2 z=
100 100
0 0
0 2 4 6 8 x1 0 2 4 6 8 x1
droite disoprofit la plus leve reprage de la solution graphique

Ici, il ny a quune seule solution optimale quest le point

(x1 , x2 ) = (2, 6)

Ce point se trouve lintersection des droites (2) et (3). On utilise donc plein les
capacits disponibles des ateliers 1 et 2. Par contre, pour cette solution optimale, les
capacits disponibles de latelier 1 seront plus que suffisantes. Au point optimal, la
fonction conomique prend la valeur 3600 :

z = (300 2) + (500 6) = 3600

3. Problme de minimisation

3.1. Enonc du problme

Une entreprise a besoin de trois matires premires A, B et C pour fabriquer un


produit. Il lui faut au moins 14 kg de A, 12 kg de B et 18 kg de C. Il ne peut acheter
que les mlanges X et Y . Le produit X contient 2 kg de A, 1 kg de B et 1 kg de C.
Le produit Y contient 1 kg de A, 1 kg de B et 3 kg de C. Le produit X cote 20 dh et
Y cote 40 dh. Par ailleurs il ne peut pas acheter plus de 22 kg de X et ?? kg de Y
La question qui se pose est la suivante : "Quelle quantit de X et Y doit-on acheter
pour rpondre aux besoins de lentreprise au moindre cot ?"

www.livecours.com
2 Mthode graphique 19

3.2. Formulation et rsolution graphique

Appelons x1 et x2 les quantits de X et Y acheter. On obtient aisment le


programme linaire suivant :



Min z = 20x1 + 40x2 (O)


2x1 + x2 > 14 (A)





x1 + x2 > 12 (B)



(P) x1 + 3x2 > 18 (C)


x1 6 14 (L)








x2 6 16 (K)

x1 , x 2 > 0

Les contraintes (A), (B) et (C) scrivent > parce quil faut respecter les besoins
minimaux en matires premires, mais ceux-ci peuvent tre dpasses.
Ce programme diffre du programme prcdent sous 2 aspects : la fonction
conomique sest minimiser ; certaines contraintes sont de signe > et lorigine
O = (0, 0) du plan nest pas une solution ralisable.
La technique de rsolution graphique reste la mme, mais, puisquil sagit de la
recherche dun minimum, la droite iso-valeur le plus proche de lorigine et qui reste
en contact avec la rgion ralisable, fournit le minimum.
En premier temps, nous construisons la rgion ralisable. La zone hachure dans le
graphe ci-dessous est lensemble des points satisfaisant toutes les contraintes.
x2 x2

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

0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
reprage des bons cts rgion ralisable

Le polydre ABCDEF, qui constitue la rgion ralisable, est reproduit a la figure


suivante, accompagn des droites isocots z = 0, z = 100 et z = 440. Comme
lobjectif est de minimiser z, loptimum satteint en cherchant la droite disocot la
plus basse possible qui touche la rgion ralisable D.
2 Mthode graphique 20

x2 x2

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

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

Le graphique indique le sommet B=(9,3) comme le point o sobtient la solution


optimale recherche. Le cot au point B est infrieur celui qui correspond tous
les autres sommets de la rgion ralisable. On confirme ce rsultat en valuant la
fonction conomique en chacun des sommets voisins B :

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


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

Supposons que le cot du produit X augmente de 20 dh. La fonction conomique


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

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

0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
isocots parallles une contrainte solutions optimales multiples

www.livecours.com
2 Mthode graphique 21

Comme la droite disocot la plus basse possible est tangente la contrainte (B), la
valeur minimale serait attente aux sommets B(9, 3) et C(2, 10). De plus, tout point
du segment [B, C] minimisera la fonction conomique sous les contraintes poses.
Cette multiplicit des solutions optimales provient du fait que les droites disocots
sont parallles la droite associe la contrainte (B).

www.livecours.com
Algorithme du simplexe
3 Mthode algbrique

Nous avons rsolu des cas de programmes linaires simples : deux variables et trois
ou cinq contraintes. Au fur et mesure que le nombre des contraintes saccrot, la
mthode graphique savre de plus en plus difficile mettre en uvre. En prsence
de trois variables, nous devons faire appel une reprsentation graphique dans
lespace, exercice trs dlicat . . . Or, dans la pratique, les programmes linaires
comportent plusieurs dizaines de variables et de contraintes. Ainsi, le recours
une mthode gnrale devient indispensable.
Lalgorithme du simplexe est la plus utilise des mthodes de rsolution des
programmes linaires. Il a t mis au point en 1948 par B. Dantzig. Depuis, cet
algorithme a fait lobjet de certaines darticles scientifiques et a servi la rsolution
de nombreux modles linaires

1. Principe de lalgorithme

Lorsquon considre un programme linaire ayant plus de 2 variables, la rsolution


graphique devient difficile, mais les proprits restent les mmes. Si la fonction
objectif peut avoir une valeur optimale dans la rgion ralisable, celle-ci se trouve
en un des sommets de la rgion ralisable. Pour atteindre la valeur optimale, seuls
les sommets doivent donc tre examins.
On pourrait donc en dduire quil suffit de calculer la valeur de la fonction objectif
chaque sommet et de choisir finalement la plus grande de ces valeurs ; mais cette
approche est impraticable pour les grands programmes : un programme de 100
variables et 10 contraintes, qui est un programme de taille moyenne, sinon faible,
aurait dj plus de 1 730 milliards de sommets!
Une procdure "intelligente" est donc ncessaire : lalgorithme du simplexe utilise
une procdure itrative qui permet de trouver la valeur optimale ou, dfaut, met
en vidence que la rgion ralisable est vide.
Le principe de lalgorithme du simplexe est le suivant :
3 Algorithme du simplexe : Mthode algbrique 23

Phase I : procdure dinitialisation


Dterminer un premier sommet de la rgion ralisable D. Si cette procdure
choue, cela signifie que la rgion ralisable D est vide ;
Phase II : procdure itrative
Passer dun sommet de D un autre sommet voisin de D, de faon amliorer
chaque fois la valeur de la fonction objectif. Ce nouveau sommet sera voisin au
prcdent en ce sens quils seront les deux extrmits dune arte de D ;
Test darrt : procdure darrt
Deux tests darrt permettent de savoir si lon doit arrter le calcul, parce quon a
atteint une solution optimale ou parce quil nexiste pas de de solution optimale
finie, ou si lon doit passer vers un nouveau sommet.
Soit le programme linaire de maximisation sous la forme standard

Max z = cx

Ax = b
x>0

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


Nous dcrirons le droulement de la mthode du simplexe en lappliquant au
modle de fabrication des chassis (FC) introduit au chapitre 2. Rappelons quaprs
lajout dune variable dcart dans chaque contrainte relles, le programme (FC) se
rcrit sous la forme


Max z = 300x1 + 500x2

+ x3 = 4



x1
(FC) 2x2 + x4 = 12

3x1 + 2x2 + x5 = 18





x1 , x2 , x 2 , x4 , x5 > 0

2. Caractrisation algbrique des sommets

Les sommets ont t dfinis gomtriquement. Il faut transcrire cette dfinition en


termes algbriques pour dcrire notre procdure. Pour effectuer cette description, il
faut que le programme linaire soit sous la forme standard.
Soit B une sous matrice de A qui est carre inversible dordre m. Nous dirons que
B est une base.
Soit B une base. Alors en permutant les colonnes de A, on peut toujours mettre A
sous la forme :

A= B H

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 24

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

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

Les m composantes de xB sont appeles variables de base. Les n m composantes


de xH sont appeles variables hors base.
La solution du systme Ax = b obtenue en posant xH est appele la solution de
base associe la base B. Cette solution de base est donc

xB = B1 b
xH = 0

Lorsque les variables de base sont positifs (xB > 0), la solution de base est ralisable
et appartient D. Par extension, la base B sera dite base ralisable. Une solution de
base est dite dgnre si au moins une variable de base est nulle.

Proprit fondamentale

Le programme linaire tant mis sous forme standard, chaque sommet de la


rgion ralisable correspond une et une seule solution de base ralisable
et inversement.

On peut vrifier cette proprit sur lexemple de fabrication des chassis (FC) dont la
reprsentation graphique est donne la figure suivante. A la figure, les sommets
(0, 0), (0, 6), (2, 6), (4, 3), (4, 0) correspondent des solutions de base ralisables
tandis que les points (0, 9), (4, 6) et (6, 0) correspondent des solutions de base non
ralisables ; comme le montre le tableau suivant
(1)
x2
(0, 9)
var. de base (x1 , x2 ) sol. de base
8 x3 , x 4 , x 5 (0, 0) (4, 12, 18)
(2, 6) (4, 6) x2 , x 3 , x 5 (0, 6) (6, 4, 6)
(0, 6) x2 , x 3 , x 4 (0, 9) (9, 4, 6)
(2)
x1 , x 2 , x 3 (2, 6) (2, 6, 2)
4
(4, 3) x1 , x 2 , x 5 (4, 6) (4, 6, 6)
2 (3) x1 , x 2 , x 4 (4, 3) (4, 3, 6)
x1 , x 4 , x 5 (4, 0) (4, 6, 6)
(0, 0)
2 (4, 0) (6, 0) 8 x1 x1 , x 3 , x 4 (6, 0) (6, 2, 12)
Correspondance entre solution de base ralisable et sommet
3 Algorithme du simplexe : Mthode algbrique 25

On appelle solutions de base adjacentes deux solutions de base dont les variables
de base sont les mmes sauf une qui est de base dans la premire base et hors base
dans la seconde.
Dans lexemple (FC), les deux solutions de base suivantes sont adjacentes :

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

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

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

ne sont pas adjacentes puisquelles diffrent pas plus dune variable hors base.

3. Illustration de lalgorithme

Nous allons maintenant voir commet effectuer les procdures de lalgorithme du


simplexe en utilisant uniquement lalgbre.

3.1. Initialisation de lalgorithme

La question qui se pose est : "Commet choisir le point de dpart ?"


Si les contraintes sont mis sous forme dingalits Ax 6 b avec b > 0, il suffit de
prendre lorigine comme point de dpart. Dans lexemple (FC), cela donne :

(x1 , x2 ) = (0, 0)

En termes algbriques, toutes les variables de dcision (originales) sont mises hors
base. Automatiquement, dans le systmes dgalits :


x1 + x3 = 4
2x2 + x4 = 12

3x1 + 2x2 + x5 = 18

on lit la valeur des variables de base :

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

Do la solution de base ralisable de dpart :

(0, 0, 4, 12, 18)

Notons que si une composante du second membre b avait t ngatif ou si une


contrainte avait t sous forme dgalit, on aurait pas pu dmarrer ainsi. Ces

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 26

embches peuvent tre leves en passant par une phase prliminaire appele phase I
de lalgorithme du simplexe.
Que vaut la fonction objectif pour cette premire solution de base ?

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

cest--dire un bnfice nulle, ce qui nest pas tonnant. Cette solution correspond
au plan de production : on ne produit rien, on nutilise aucune ressource et on ne
gagne rien.
La formulation de lexemple (FC), sous la forme standard, permet dexprimer
facilement chaque variable dcart (ici variable de base) ainsi que la fonction objectif
z comme fonctions affines des variables de dcision seulement (ici variables hors
base) :
x3 = 4 x1
x4 = 12 2x2
(Dic 1)
x5 = 18 3x1 2x2
z = 300x1 + 500x2
Le tableau ci-dessus est appel un dictionnaire. La solution de base de dpart peut
tre rsume ainsi :
variables hors-base : x1 = 0, x2 = 0 ;
variables de base : x3 = 4, x4 = 12, x5 = 18 ;
la valeur de la fonction objectif : z = 0.

3.2. Passage dun sommet un autre

La phase II de lalgorithme du simplexe consiste passer dun sommet un sommet


adjacent de faon amliorer chaque fois la fonction objectif z. Algbriquement,
cette opration correspond un changement de base : la nouvelle base ne diffre de
lancienne base que par une seule variable. On va donc se dplacer partir de notre
solution de base de dpart vers une autre solution de base ralisable en suivant une
arte le long de laquelle la valeur de z augmente.

Choix de la variable entrante

La question qui se pose est alors : commet choisir une arte le long de laquelle la
valeur de z va augmenter ? Algbriquement, cette question se formule de manire
quivalente par : quelle variable hors base va entrer en base ?
On a :
z = 300x1 + 500x2
3 Algorithme du simplexe : Mthode algbrique 27

Pour obtenir une meilleure solution, il suffit de faire passer lune des deux variables
x1 ou x2 de la valeur zro une valeur positive. Il est donc prfrable de choisir
x2 qui vaut 500 par unit alors que x1 ne vaut que 300. On peut ainsi esprer
aller "plus vite" vers la solution optimale. Par contre la valeur de x1 restera nulle.
conomiquement, on va donc produire des chassis de type 2 et toujours pas des
chassis de type 1.

Le critre de slection de la variable entrante est donc le suivant : on choisit


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

Notons que pour pouvoir appliquer ce critre simple (le choix de la variable
entrante), la fonction objectif z doit tre exprime en fonction des seules variables
hors base.

Choix de la variable sortante

On peut prsent se poser les deux questions suivantes :


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

x3 = 4 (C1)
x4 = 12 2x2 (C2)
x5 = 18 2x2 (C3)

Mais pour conserver une solution ralisable et ne pas quitter la rgion ralisable, il
faut aussi que les composantes restent positifs. Nous devons avoir x3 > 0, x4 > 0 et
x5 > 0. En fait :

x3 = 4 >0 12
x2 6 =6
ou encore 2
x4 = 12 2x2 > 0
18
x5 = 18 2x2 > 0 x2 6 =9
2
La contrainte (C1) ne place aucune restriction sur laugmentation de x2 car elle ne
contient pas x2 . Au total, la contrainte la plus restrictive pour x2 est (C2). Il faut
donc sarrter la valeur x2 = 6 (cest une rponse la question a) pour la quelle
la variable x4 dvient nulle et aller au del conduirait la rendre ngative. Donc,

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 28

on peut supposer que x4 est prsent hors base (cest une rponse la question b).
On en conclut que la variable sortante est x4 , cest--dire la premire qui sannule
lorsque x2 saccrot partir de 0.

On effectue les rapports des seconds membres des contraintes aux


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

Gometriquement, en partant du sommet (0, 0) de la rgion ralisable D, on se


dplace sur une arte de D (laxe des x2 ). Lorsque la variable dcart x4 devient
nulle, cela veut dire quon a rencontr la droite associe la deuxime contrainte.
On arrive alors dans un nouveau sommet, lintersection des hyperplans x1 = 0 et
x4 = 0 (dans R5 ) cest--dire lintersection des droite x1 = 0 et x2 = 6 (dans R2 )
x2
(2, 6)
(0, 6)

(4, 3)

(0, 0)
(4, 0) x1

le cheminement du sommet initial vers le nouveau sommet

Calcul du nouveau sommet

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


On va y rpondre en utilisant la rsolution des systmes. Plus prcisment, on va
faire un changement de dictionnaire en changeant les rles des x2 et x4 . On utilise la
deuxime quation du (Dic 1) pour exprimer x2 en fonction des nouvelles variables
hors base, x1 et x4 :
1
x2 = 6 x4
2
On remplace ensuite x2 par cette expression dans les autres quations du
dictionnaire :
x3 = 4 x1
1
x2 = 6 x4
2 (Dic 2)
x5 = 6 3x1 + x4
z = 3000 + 300x1 250x4
3 Algorithme du simplexe : Mthode algbrique 29

La premire itration est termine. La deuxime solution de base peut tre rsume
ainsi :
variables hors-base : x1 = 0, x4 = 0 ;
variables de base : x2 = 6, x3 = 4, x5 = 6 ;
la valeur de la fonction objectif : z = 3000.
Elle correspond au sommet (0, 6) de la rgion ralisable. conomiquement, cette
solution dfinit un plan de production beaucoup plus intressant : on fabrique 6
chassis du type 2 (x2 = 2) en consommant entirement la capacit de production de
latelier 2 et x5 = 6 units de la capacit de production de latelier 3. La capacit de
fabrication de latelier 1 nest pas encore utilis (x3 = 4). Le profit est z = 3000.

Test darrt

La question qui se pose maintenant est : commet savoir le fait que la solution
optimale est trouve ?
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
infrieures ou gales la fonction objectif. Comment peut-on savoir sil existe encore
un sommet adjacent profitable ?
Pour rpondre cette question, nous allons examiner la nouvelle expression de la
fonction z. La dernire quation du dictionnaire (Dic 2) :

z = 3000 + 300x1 250x2

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


entrane une deuxime itration.

Le critre darrt sera donc le suivant : la solution de base courante est


optimale si tous les coefficients de la fonction objectif z sont ngatifs ou nuls
lorsque z est exprime en fonction des seuls variables hors base.

Deuxime itration

Au vu de
z = 3000 + 300x1 250x2
on slectionne donc pour la variable entrante x1 . En effet, cest la variable ayant le
plus grand coefficient positif, et dailleurs la seule possible.
Pour dterminer la variable sortante, tudions la variation des variables de base en

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 30

fonction dune augmentation de x1 . On a les limites suivantes :

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

La variable sortante est x5 , cest elle qui est la premire sannuler (pour x1 = 2).
Pour calculer le nouveau sommet, on utilise la troisime quation du (Dic 2) pour
exprimer x2 en fonction des nouvelles variables hors base, x5 et x4 :
1 1
x1 = 2 x5 + x4
3 3
On remplace ensuite x1 par cette expression dans les autres quations du
dictionnaire :
1 1
x3 = 2 x5 + x4
3 3
1
x2 = 6 x4
2 (Dic 3)
1 1
x1 = 2 x5 + x4
3 3
z = 3600 100x5 150x4
La deuxime itration est termine. La troisime solution de base peut tre rsume
ainsi :
variables hors-base : x4 = 0, x5 = 0 ;
variables de base : x1 = 2, x2 = 6, x3 = 2 ;
la valeur de la fonction objectif : z = 3600.
Elle correspond au sommet (2, 6) de la rgion ralisable. conomiquement, cette
solution dfinit le plan de production suivant : on fabrique 2 chassis du type 1 et
6 chassis du type 2 en consommant entirement les capacits de production des
ateliers 2 et 3. Le profit est z = 3600.
x2
(2, 6)
(0, 6)

(4, 3)

(0, 0)
(4, 0) x1

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


3 Algorithme du simplexe : Mthode algbrique 31

Tous les coefficients de la dernire ligne, dans (Dic 3), sont ngatifs :

z = 3600 100x5 150x4

Faire entrer x5 ou x4 diminuera la valeur de z. Il nest plus possible damliorer


z. La solution courant
x1 = 2, x2 = 6
est optimale et donne la valeur maximal la fonction objectif : z = 3600.

4. Algorithme du simplexe

tape 0. Initialisation

crire le programme linaire sous standard : Ajouter les variables dcart.

Dfinir une solution de base de dpart ; prciser les variables de base et les
variables hors base de cette solution. Gnralement, les variables dcart sont
pris comme variables de base et les variables de dcision comme variables hors
base.

tape 1. Choix de la variable entrante

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

Si tous les coefficients de z sont ngatifs ou nuls, lalgorithme sarrte. La


solution courante est optimale.

Sinon, soit r lindice de cette variable entrante.

tape 2. Choix de la variable sortante

La variable sortante est la premire sannuler lorsque xr augmente : cest


celle pour laquelle le minimum est atteint dans :

bs bi
= min : asr > 0, i = 1, . . . , m
asr air

s est lindice de la ligne correspondante.

Si tous les asr sont infrieurs 0, alors la solution est non born.

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 32

tape 3. Calcul de la nouvelle solution de base

Utiliser lquation relative la variable xs pour exprimer xr en fonction de xs


et les autres variables qui vont rester dans la base.

liminer xr des autres quations en la remplaant par son expression.

Retour ltape 1.

5. Application

5.1. nonce du problme

Une entreprise fabrique quatre produits. La fabrication de chaque produit ncessite


une certaine quantit de ressources. Les ressources consommes, les stocks des
ressources et les bnfices des produits sont rcapituls dans le tableau suivant :

Produit 1 Produit 2 Produit 3 Produit 4 Stock


Ressource A 2 4 5 7 42
Ressource B 1 1 2 2 17
Ressource C 1 2 3 3 24
Bnfice 7 9 18 17

On souhaite tablir un plan de production de faon maximiser le chiffre daffaires.

5.2. Formulation mathmatique

La forme standard, exige par lalgorithme du simplexe, ne correspond pas en


gnral lcriture spontane des modles conomiques o les contraintes ont le
plus souvent la forme dingalits. Cest pourquoi la forme la plus naturelle est
plutt la forme standard.
Appelant x1 ; x2 ; x3 ; x4 les quantits respectives de produits 1, 2, 3, 4, le problme
admet la modlisation suivante :

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


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

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


dcart x5 , x6 et x7 , qui mesurent pour chaque ressource lcart entre la quantit
3 Algorithme du simplexe : Mthode algbrique 33

initialement disponible et la quantit consomme par le plan de fabrication donn


par les variables de dcision x1 , x2 , x3 et x4 . On obtient :

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


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

5.3. Dictionnaire initial

La formulation standard prcdente nous permet dexprimer facilement les


variables dcart comme fonctions affines des variables de dcision :

x5 = 42 2x1 4x2 5x3 7x4


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

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


hors-base.

5.4. Premire itration

Daprs les critres dentre et de sortie en base,

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

www.livecours.com
3 Algorithme du simplexe : Mthode algbrique 34

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

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

Puisquil y a encore un coefficient positif dans la nouvelle expression de z (celui de


x1 ), nous ne sommes pas la solution optimale.

5.5. Deuxime itration

Par un raisonnement analogue celui de la premire itration, nous dduisons que :

La variable x1 entre en base


La variable x6 sort de la base.

Construisons le nouveau dictionnaire :

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

Puisque tous les coefficients de la fonction objectif z sont ngatifs, il nest plus
possible damliorer z. La solution obtenue

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

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


Algorithme du simplexe
4 Mthode des tableaux

La mthode algbrique, de rsolution des programmes linaires, devient


complique et ncessite une trs grande attention ds que le nombre des variables
et de contraintes est important.
Il est possible dadopter une reprsentation sous forme de tableaux qui facilite
considrablement les calculs. On effectue gnralement les calculs sur le tableau des
coefficients qui porte le nom de tableau Simplexe. Mais il faut bien garder lesprit
que ce tableau et les oprations que lon va y effectuer ne sont quune traduction des
oprations sur le systme dquations algbriques correspondantes.

1. Recherche dun sommet de dpart

1.1. Forme simpliciale

1.2. Phase I du simplexe

2. Illustration de lalgorithme

Nous dcrirons le droulement de la mthode du simplexe en lappliquant au


modle de fabrication des chassis (FC) introduit au chapitre 2. Reprenons la
formulation du programme (FC) dans laquelle les variables dcart taient incluses


Max z = 300x1 + 500x2

+ x3 = 4



x1
(FC) 2x2 + x4 = 12

3x1 + 2x2 + x5 = 18





x1 , x2 , x 2 , x4 , x5 > 0

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 36

On exprime le problme sous forme matricielle, o :



1 0 1 0 0

4 h i

A= 0 2 0 1 0 b = 12 c = 300 500 0 0 0


3 2 0 0 1 18

Nous allons maintenant voir commet effectuer les procdures de lalgorithme du


simplexe en utilisant les tableaux.

2.1. Tableau initial

On construit un tableau initial du simplexe, qui se compose du vecteur b, de la


matrice A, et dune ligne [0, c] situs sous les prcdents o 0 correspond la valeur
de z lorigine (lorsque x1 = x2 = 0) :

B b x1 x2 x3 x4 x5

vecteur b
x3 4 1 0 1 0 0

variables x4 12 0 2 0 1 0 matrice A
de base B

x5 18 3 2 0 0 1

z 0 300 500 0 0 0

valeur de z vecteur c

On a ajout au-dessus du tableau le nom des variables pour voir quelle variable
correspond chaque colonne du tableau.
Plusieurs caractristiques dun tableau simplex sont remarquer

Tout dabord, on peut lire directement sur le tableau les valeurs des variables
de base. Si x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b.
Dans la dernire ligne, on trouve un coefficient gal 0 pour chaque variable
de base (la fonction z est exprime en fonction des seuls variables hors base).
La matrice carre correspondant aux variables de base est la matrice identit.
Enfin, le premier coefficient de la dernire ligne donne loppos de la valeur
de z
4 Algorithme du simplexe : Mthode des tableaux 37

2.2. Pivot et changement de base

Pour augmenter la valeur de z, on examine une nouvelle solution de base. Pour


lobtenir, on doit introduire une nouvelle variable dans la base et exclure une des
variables qui y figurait prcdemment. On appelle changent de base le processus
qui consiste choisir la variable entrante et la variable sortante.
Choix de la variable entrante
Dans la dernire ligne, le coefficient dont la valeur est la plus leve dtermine la
variable entrer dans la base. Donc la variable entrante est x2 . On indique ceci dans
le tableau en colorant la colonne de la variable entrante que lon appelle la colonne
pivot.
variable entrante

B b x1 x2 x3 x4 x5

x3 4 1 0 1 0 0

x4 12 0 2 0 1 0

x5 18 3 2 0 0 1

z 0 300 500 0 0 0

colonne pivot

Choix de la variable sortante


On choisit la variable sortante comme tant la variable de base qui sannule la
premire. Comme nous lavons vu au chapitre prcdent, cela revient calculer
le minimum du rapport du coefficient du membre de droite de chaque contrainte
sur le coefficient correspondant de la colonne pivot lorsque ce dernier est strictement
positif :
12 18
min , =6
2 2
Dans le cas o le coefficient dans la colonne entrante est ngatif ou nul, la ligne
nentre pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple.
Supposons que le coefficient de x2 dans la premire contrainte soit 1 la place de
0. Lquation correspondante se rcrit de manire quivalente comme suit :

x1 = 4 + x2

Quelle que soit la valeur de x2 > 0, la variable de base x1 reste positive.

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 38

La variable sortante est alors la variable de base dont la valeur se lit dans la ligne
o le minimum se produit : ici, il sagit de la deuxime ligne et donc de la variable
x4 . On encadre alors la ligne o le minimum se produit. Cette ligne reoit le nom de
ligne pivot :
variable entrante

able sortante ; elle ne fait pas


est daider au choix de la vari-
Le seul interet de cette colonne
b

partie du tableau du simplexe.


B b x1 x2 x3 x4 x5
x2
x3 4 1 0 1 0 0
variable x4 12 0 2 0 1 0 6
sortante
x5 18 3 2 0 0 1 9

z 0 300 500 0 0 0

nombre pivot colonne pivot ligne pivot

On appelle nombre pivot ou pivot le coefficient situ lintersection de la colonne


pivot et de la ligne pivot. Cest donc le centre de la croix ainsi forme par la ligne et
la colonne pivot.

2.3. Pivotage et tableaux simplexe

Le pivotage est le processus qui consiste amener la colonne de la variable sortante


en lieu et place de la variable entrante. Le pivot nous permettra de transformer le
tableau actuel en un deuxime tableau correspondant la nouvelle base. Ceci peut
tre fait par trois types doprations :

1. Transformation de la ligne pivot : pour obtenir la ligne du pivot transforme,


il suffit de diviser tous ses lments par le pivot.
2. Transformation de la colonne pivot : aprs avoir ramen par division le pivot
1, toutes les lments situ au-dessus et au-dessous du pivot deviennent zro.

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 39

B b x1 x2 x3 x4 x5 B b x1 x2 x3 x4 x5

x3 4 1 0 1 0 0 x3 4 1 0 1 0 0
1 1
x4 6 0 1 0 2 0 x2 6 0 1 0 2 0

x5 18 3 2 0 0 1 x5 18 3 0 0 0 1

z 0 300 500 0 0 0 z 0 300 0 0 0 0

3. Transformation des autres cases du tableau : pour obtenir la transforme des


autres nombres, il suffit dappliquer la rgle dite du rectangle :

bc
a = a
2
a est la valeur modifie du coefficient a qui est considr
b est llment situ sur la mme ligne que a, mais dans la colonne du pivot
c est llment situ dans la mme colonne que a, mais sur la ligne du pivot

Dans le tableau modifier, le pivot et les coefficient a, b et c forment les coins dun
rectangle. Do le nom de la mthode.

B b x2 xj

b a

x4 2 c

Remarquons que la rgle du rectangle implique :

si une ligne contient un 0 lintersection avec la colonne du pivot, cette ligne ne


sera pas modifie.
si une colonne contient un 0 lintersection avec la ligne du pivot, cette colonne
ne sera pas modifie.

En appliquant ces oprations au tableau initial, on obtient le deuxime tableau :


4 Algorithme du simplexe : Mthode des tableaux 40

B b x1 x2 x3 x4 x5

x3 4 1 0 1 0 0
1
x2 6 0 1 0 2 0

x5 6 3 0 0 1 1

z 3000 300 0 0 250 0

On peut lire directement sur ce tableau la deuxime solution de base ralisable. En


posant x1 = x4 = 0, nous conservons une matrice identit qui donne x2 = 6, x3 = 4
et x5 = 6. Le premier coefficient de la dernire ligne (ici, 3000) donne loppos de la
valeur z dans la deuxime solution de base ralisable :
deuxime solution de base : xB2 = (0, 6, 4, 0, 6)
valeur de la fonction z en xB2 : z2 = 3000

2.4. Deuxime itration

Le maximum de la fonction z est atteint lorsquil ny a plus de coefficients positifs


dans la dernire ligne. On poursuit les changements de base et les pivotages,
conformment aux rgles exposes ci-dessus, jusqu ce quon y parvienne.
Comme il ne reste plus comme coefficient positif (dans la dernire ligne) que 300,
on introduit x1 dans la base. La colonne de x1 devient la colonne pivot.
La division de la colonne des seconds membres par la colonne pivot rvle que
le plus faible rapport correspond la ligne x5 . Cest x5 qui quitte la base. Alors le
nombre 3 devient le nouveau pivot
nouvelle variable entrante
b
B b x1 x2 x3 x4 x5
x1
x3 4 1 0 1 0 0 4
1
x2 6 0 1 0 2 0
nouvelle
variable x5 6 3 0 0 1 1 2
sortante
z 3000 300 0 0 250 0

Le dernier pas de la deuxime itration consiste dterminer la nouvelle solution


de base au moyen du pivotage :

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 41

1. Transformation de la ligne et la colonne pivot : Divisons la ligne pivot par 3,


puis annuler tous les lments de la colonne pivot sauf le pivot qui est remplac
par 1.

B b x1 x2 x3 x4 x5

x3 4 0 0 1 0 0
1
x2 6 0 1 0 2 0
1 1
x1 2 1 0 0
3 3
z 3000 0 0 0 250 0

2. Transformation des autres cases du tableau : Nous utilisons la rgle du rectangle


pour transformer le reste des coefficients. Le rsultats est le suivant :

B b x1 x2 x3 x4 x5
1 1
x3 2 0 0 1 3

3
1
x2 6 0 1 0 2 0
1 1
x1 2 1 0 0
3 3
z 3600 0 0 0 150 100

On peut lire directement sur ce tableau la troisime solution de base ralisable et la


valeur de la fonction objectif z dans cette solution :

troisime solution de base : xB3 = (2, 6, 2, 0, 0)


valeur de la fonction z en xB3 : z3 = 3600

Comme il ny a plus de coefficients positifs sur la dernire ligne, la solution courante


est optimale. Ainsi :
(x1 , x2 ) = (2, 6) et z = 3600
Le chemin suivi par la mthode des tableaux est illustr par la figure suivante.
4 Algorithme du simplexe : Mthode des tableaux 42

x2 deuxieme iteration
(2, 6)
(0, 6)

premiere iteration
(4, 3)

(0, 0)
(4, 0) x1

le chemin suivi par lalgorithme du simplexe

Cest le mme chemin suivi par la mthode algbrique. Ce qui nest pas tonnant.

3. Algorithme du simplexe en tableaux

Lalgorithme du simplexe comporte 4 tapes dont les 3 dernires sont rptes


chaque itration. La mthode des tableaux du simplexe permet dappliquer toutes
les tapes de lalgorithme du simplexe sous forme dune sequence de tableaux
reprsents par la figure suivant :

B b x1 x2 ... xn xn+1 xn+2 . . . xn+m

xn+1 b1 a11 a12 ... a1n 1 0 ... 0

xn+2 b2 a21 a22 ... a2n 0 1 ... 0

..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0

xn+m bm am1 am2 . . . amn 0 0 ... 1

z z B c1 c2 ... cn 0 0 ... 0

tape 1 :

Dans le cas o toutes les contraintes initiales dun programme linaire se prsentent
sous forme de contraintes dingalits du type "infrieur ou gal" avec un membre
de droite positif, on rcrit dabord le programme sous forme standard en ajoutant
des variables dcart. Puis on met les variables de dcisions (variables originales)
hors base et les variables dcart en base. On indique en section 5 comment
construire le tableau initial dans le cas dun programme linaire quelconque.

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 43

tape 2 :

Si les coefficients cj sont tous 6 0, alors STOP : la solution de la base actuelle est
optimale. Sinon, choisir la variable hors base dont le coefficient dans la dernire
ligne est positif et le plus grand possible. Soit xr la variable entrante.

Soit xr telle que cr > cj , pour tout cj > 0

On colore la colonne correspondante qui est appele colonne pivot. Il en rsulte le


tableau suivant :

B b x1 . . . xr . . . xn xn+1 xn+2 . . . xn+m

xn+1 b1 a11 . . . a1r . . . a1n 1 0 ... 0

xn+2 b2 a21 . . . a2r . . . a2n 0 1 ... 0

..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0

xn+m bm am1 . . . amr . . . amn 0 0 ... 1

z z B c1 . . . cr . . . cn 0 0 ... 0

tape 3 :

Choisir comme variable sortante la premire variable de base sannuler. Pour cela,
on calcule le minimum du rapport du second membre bi sur le coefficient air de la
variable entrante dans la mme ligne lorsque air > 0. Soit la ligne o le minimum
se produit :
b bi
= min : air > 0
a r air
La variable sortante est celle qui correspond la ligne o le minimum se produit.
Soit xs la variable sortante. On colore la ligne correspondante qui est appele ligne
pivot. Il en rsulte le tableau suivant :

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 44

B b x1 . . . xr . . . xn xn+1 xn+2 . . . xn+m

xn+1 b1 a11 . . . a1r . . . a1n 1 0 ... 0


..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0
xs bs as1 . . . asr . . . asn 0 1 ... 0
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0
xn+m bm am1 . . . amr . . . amn 0 0 ... 1

z z B c1 . . . cr . . . cn 0 0 ... 0

Le pivot est le nombre qui se trouve lintersection de la colonne pivot et la ligne


pivot. Dans la section gauche du nouveau tableau, on remplace la variable sortante
xs par la variable entrante xr .

tape 4 :

Cette tape permet de construire un nouveau tableau de simplexe partir du tableau


prcdent. Elle comprend trois oprations :

Ligne de pivot : pour obtenir la ligne du pivot transforme, il suffit de diviser


tous ses lments par le pivot.
Colonne de pivot : pour obtenir la colonne du pivot transforme, il suffit de
remplacer tous ses lments par 0 sauf la place du pivot.
Ailleurs : pour obtenir la transforme des autres nombres, il suffit dappliquer
la rgle du rectangle :

b a

asr c

si a est llment de lancien tableau (bi , aij (i 6= s, j 6= r), z B , cj ) dont on cherche


la transforme a , asr est le pivot et b, d les lments permettant de construire un
rectangle partir de a et asr ,
4 Algorithme du simplexe : Mthode des tableaux 45

alors a , la transforme de a, sobtient en retranchant a le produit b c divis par


le pivot asr :
bc
a = a
asr

Remarquons que toute ligne possdant un zro dans la colonne du pivot reste
inchange ; de mme, toute colonne possdant un zro dans la ligne du pivot reste
inchange.

4. Application

Reprenons la forme standard du problme qui a servi dapplication au chapitre


prcdent :

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


2x1 + 4x2 + 5x3 + 7x4 + x5 = 42
x1 + x2 + 2x3 + 2x4 + x6 = 17
x1 + 2x2 + 3x3 + 3x4 + x7 = 24
xi > 0 i = 1, . . . , 7

Tableau initial :

Il est vident que

x1 = x2 = x3 = x4 = 0, x5 = 42, x6 = 17, x7 = 24

est une solution de base ralisable. Construisons le premier tableau simplexe :

B b x1 x2 x3 x4 x5 x6 x7

x5 42 2 4 5 7 1 0 0

x6 17 1 1 2 2 0 1 0

x7 24 1 2 3 3 0 0 1

z 0 7 9 18 17 0 0 0

Comme, dans la dernire ligne, il y a des coefficients des variables hors base qui sont
positifs (valeurs 7, 9, 17 et 18), cette solution de base ralisable nest pas optimale.

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 46

Deuxime tableau :

Daprs les critres dentre et de sortie prsents la section 4 :

x3 hors base entre en base. Car elle possde le plus grand coefficient positif,
dans la dernire ligne, qui est 18.
x7 en base sort de base, puisque cest elle qui correspond la ligne pour laquelle
le rapport de bi sur air est le plus petit avec air > 0, i = 1, 2, 3; r = 3. En
effet, a13 , a23 , a23 sont positifs et

b1 42 b2 17 b3 24
= = 8.4, = = 8.5, = = 8,
a13 5 a23 2 a33 3
24
le plus faible ration est correspond la ligne dindice 3.
3
ce que nous indiquons dans le tableau initial en colorant la colonne pivot et la ligne
pivot ; nous y entourons aussi le pivot, qui est gal 3.
Construisons le nouveau tableau simplexe en appliquant les rgles du pivotage :

B b x1 x2 x3 x4 x5 x6 x7
1 2 5
x5 2 3 3 0 2 1 0 3
1 1 2
x6 1 3 3 0 0 0 1 3
1 2 1
x3 8 3 3 1 1 0 0 3
z 144 1 3 0 1 0 0 6

Puisquil y a encore, dans la dernire ligne, un coefficient positif (valant 1), nous
ne sommes pas la solution optimale et nous devons donc rechercher une nouvelle
meilleure solution de base ralisable.

Troisime tableau :

Par un raisonnement analogue celui de ltape (2), nous dduisons que :

x1 hors base entre en base.

x6 en base sort de base

ce que nous indiquons dans le tableau prcdent.


Construisons le nouveau tableau simplexe :

www.livecours.com
4 Algorithme du simplexe : Mthode des tableaux 47

B b x1 x2 x3 x4 x5 x6 x7

x5 1 0 1 0 2 1 1 1

x1 3 1 1 0 0 0 3 2

x3 7 0 1 1 1 0 1 1

z 147 0 2 0 1 0 3 4

Puisque tous les coefficients de la dernire ligne sont ngatifs, le tableau trouv
correspond une solution optimale. Celle-ci est dfinie par :

x1 = 3, x3 = 7, x5 = 1, x2 = x4 = x6 = x7 = 0.

Le profit maximal est z = 147.

www.livecours.com
Dualit en programmation
5 linaire

La dualit est une notion essentielle en programmation linaire. A un programme


linaire donn que nous appelons primal, lopration de dualit associe un autre
programme linaire dit son dual, qui ne sera dfini qu laide des seules donnes
du primal. La dualit prsente un double intrt :

dune part, le programme dual une interprtation conomique importante :


il constitue une autre vision du programme initial, le primal. En particulier, la
dualit permet de montrer quun problme dallocation optimale des ressources
rares est aussi un problme de tarification optimale de ces ressources ;
dautre part, les proprits liant le programme primal et son dual permettront
de rsoudre des problmes de minimisation en termes de maximisation, ce
qui est souvent plus facile, et de dvelopper de nouveaux algorithmes qui se
rvleront plus performants dans un grand nombre de situations.

1. La construction du modle dual

Avant de donner la definition formelle dun problme dual, nous allons expliquer
comment il sexplique en terme de problme de production.

1.1. Exemple 1

Reprenons le modle de lentreprise Remox dcrit au chapitre 3, que nous


dnoterons (P) :


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





2x1 + 4x2 + 5x3 + 7x4 6 42
(P) x1 + x2 + 2x3 + 2x4 6 17

x1 + 2x2 + 3x3 + 3x4 6 24






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

5 Dualit en programmation linaire 49

Brahim, propritaire dune entreprise concurrente de la mme ville, se propose de


racheter les ressources de lentreprise Remox. Brahim connat bien les paramtres
du modle (P), quil sait formuler mais sans savoir le rsoudre. Il offre Ahmed
de lui racheter les ressources de lentreprise Remox des prix unitaires quil reste
fixer. Ahmed se montre intress, condition dy trouver son compte.
Les prix u1 dh, u2 dh et u3 dh sont les mondants unitaires que Brahim proposera
Ahmed pour sapproprier chaque unite des ressources A, B et C respectivement.
Brahim ne jette pas son argent par les fentres. Comme il veut dbourser le moins
possible pour lachat de la totalit des trois ressources de lentreprise Remox, il
cherche minimiser :
w = 42u1 + 17u2 + 24u3
tout en proposant Ahmed une offre quitable.
Quand Ahmed vend une unit du Produit 1, il empoche 7 dh. Mais pour vendre
une unit du Produit 1, il lui faut consacrer sa production 2 units de la ressource
A, 1 unit de la ressource B et 1 unit de la ressource C. Brahim estime quAhmed
nacceptera pas de cder ce paquet de ressources pour moins de 7 dh. Brahim devra
donc fixer les prix offerts pour les ressources dAhmed de faon ce que

2 u1 + 1 u2 + 1 u3 > 7 (Produit 1)

Une dmarche simillaire propos des autres produits lamne crire que

4 u1 + 1 u 2 + 2 u3 > 9 (Produit 2)
5 u1 + 2 u2 + 3 u3 > 18 (Produit 3)
7 u1 + 1 u2 + 3 u3 > 17 (Produit 4)

Et il est raisonnable de penser que

u1 , u 2 , u 3 > 0

Finalement, pour dterminer les prix unitaires minimaux quil proposera Ahmed,
Brahim devrait rsoudre le programme linaire suivant :


Min w = 42u1 + 17u2 + 24u3


2u1 + u2 + u3 > 7





4u1 + u2 + 2u3 > 9

(D)


5u1 + 2u2 + 3u3 > 18




7u1 + 2u2 + 3u3 > 17

u1 , u 2 , u 3 > 0

www.livecours.com
5 Dualit en programmation linaire 50

Les problmes (P) et (D) utilisent en fait exactement les mmes donnes
numriques. On peut les lire directement partir du tableau ci-dessous ; (P)
correspond une lecture ligne par ligne, (D) une lecture colonne par colonne.

Primal (Max)
Coeff. des xi S.M
x1 x2 x3 x4 b
u1 2 4 5 7 6 42

Coeff. dans w
Coeff. des uj

u2 1 1 2 2 6 17
Dual (Min)

u3 1 2 3 3 6 24
6

6
S.M.

18

17
c

Coeff. dans z

1.2. Exemple 2

Un pharmacien doit prparer une poudre vitamine contenant au moins 25 units


de vitamine A, 60 units de vitamine B et 15 units de vitamine C. Il sapprovisionne
auprs un laboratoire qui vend deux types de poudre vitamine en sachet :

au prix de 60 dh une poudre X contenant 20 units de vitamine A, 30 units de


vitamine B et 5 units de vitamine C ;
au prix de 90 dh une poudre Y contenant 5 units de vitamine A, 20 units de
vitamine B et 10 units de vitamine C ;

Combien doit-il se procurer de poudre X et de poudre Y pour assurer, au cot


minimum, son nouveau poudre ? Le problme du pharmacien se formule :


Min z = 60x1 + 90x2





20x1 + 5x2 > 25
(D) 30x1 + 20x2 > 60

5x1 + 10x2 > 15






x1 , x 2 > 0

o x1 et x2 les nombres de poudres de types X et Y quiil doit mlanger.


Le laboratoire dcide de vendre sparment les vitamines A, B et C en sachet de
25, 60 et 15 units. Combien doit-il vendre lunit de chaque vitamine pour tre
comptitif avec le pharmacien ?
5 Dualit en programmation linaire 51

Soient u1 , u2 et u3 les prix unitaires respectifs des vitamines A, B et C. Le laboratoire


cherche donc maximiser son chiffres daffaires :

w = 25u1 + 60u2 + 15u3

Le laboratoire doit fixer les prix offerts pour les vitamines de faon ce que :

un mlange quivalent la poudre X ne cote pas plus cher que la poudre X ;

un mlange quivalent la poudre Y ne cote pas plus cher que la poudre Y.

Ce quon peut crire :


20u1 + 30u2 + 5u3 6 60
5u1 + 20u2 + 10u3 6 90
Et il est raisonnable de penser que

u1 , u 2 > 0

Finalement, pour dterminer les prix unitaires maximaux quil ne doit pas dpasser
pour rester comptitif, le laboratoire devrait rsoudre le programme linaire
suivant :


Max w = 20u1 + 60u2 + 15u3


20u1 + 30u2 + 5u3 6 60

(D)


5u1 + 20u2 + 10u3 6 90


u1 , u 2 , u 3 > 0

1.3. Dfinition du problme dual

La dualit associe tout problme linaire un autre problme linaire qui est appel
problme dual du problme initial ; par opposition le problme initial est appel
problme primal. Considrons un problme de maximisation sous canonique :

X n
Max z = cj xj






j=1

n
X
(D) aij xj 6 bi i = 1, . . . , m

j=1




xj > 0 j = 1, . . . , n



www.livecours.com
5 Dualit en programmation linaire 52

Le problme dual est le suivant :



X m
Min w = b i ui







i=1

Xm
(D) aij ui > cj j = 1, . . . , n


i=1



ui > 0 i = 1, . . . , m



Les variables xj sont appeles variables primales et les variables ui sont appeles
variables duales.
Cette dfinition est caractrise par les rgles suivantes :

le sens de loptimisation est invers. La maximisation (resp. minimisation) dans


le primal devient une minimisation (resp. maximisation) dans le dual ;
les signes sont inverss dans les ingalits correspondant aux contraintes, mais
la contrainte de non-ngativit sur les variables de dcision subsiste ;
les coefficients de la fonction conomique du primal deviennent les seconds
membres des contraintes duales ; les seconds membres des contraintes primales
deviennent les coefficients de la fonction conomique du dual ;

Comme le problme dual du dual est le problme primal initial, il convient donc de
parler dune paire de problmes de programmation linaire lis par la dualit.
Souvent le problme primal est considre soit sous sa forme canonique ou sous sa
forme standard. Dans ces deux, le problme dual devient, en notation vectorielle,
la forme canonique :

Max z = cx Min w = ub


le primal : Ax 6 b le dual : uA > c

x>0 u>0

la forme standard :

Max z = cx

(
Min w = ub

le primal : Ax = b le dual :
uA > c
x>0

Nous pouvons vrifier cette dernire relation, en mettant la forme standard sous
une forme canonique quivalente.
5 Dualit en programmation linaire 53

Exemple

Considrons le problme suivant :





Max z = x1 + 3x2

x1 + x2 6 14




(P) 2x1 + 3x2 6 12

2x1 x2 6 12






x1 , x 2 > 0

son dual scrit



Min w = 14u1 + 12u2 + 12u3


u1 2u2 + 2u3 6 1
(P)


u1 + 3u2 u3 6 3

u1 , u 2 , u 3 > 0

1.4. Rgles de dualisation

Le tableau suivant donne un ensemble de rgles formelles permettant de passer


dun problme de programmation linaire gnral son problme dual. Nous
laissons le soin au lecteur, titre dexercice de vrifier la cohrence de ces rgles
avec les dfinitions de la section prcdente.

Max z Min w
variable xj > 0 contrainte j est une ingalit ">"
variable xj 6 0 contrainte j est une ingalit "6"
variable xj sans signe contrainte j est une galit "="
contrainte i est une ingalit "6" variable ui > 0
contrainte i est une ingalit ">" variable ui 6 0
contrainte i est une galit "=" variable ui sans signe

2. Proprits de la dualit

Nous allons montrer que la relation entre deux problmes va beaucoup plus loin que
lesthtique mathmatique de cette symtrie. En fait nous allons tudier certaines
rsultats concernant les relations entre le problme primal et son dual.
Considrons un problme linaire de maximisation (le primal) sous sa forme

www.livecours.com
5 Dualit en programmation linaire 54

canonique et son dual

z = Max z = cx w = Min w = ub

Ax 6 b uA > c
x>0 u>0

2.1. Dualit faible

Proprit 1

Si x et u sont des solutions ralisables respectivement du primal


(maximum) et du dual (minimum), elles vrifient :

cx 6 ub

En effet,
) )
Ax 6 b et u>0 uAx 6 ub
= = cx 6 uAx 6 ub
uA > c et x>0 uAx > cx

Corollaire 1

Une solution ralisable du dual (resp. primal) fournit une borne suprieur
(resp. infrieur) de z (resp. w) :

z 6 ub u ralisable du dual
w > cx u ralisable du primal

Corollaire 2

Soient x et u des solutions ralisables respectivement du primal et du dual.


Si cx = ub, alors x et u sont solutions optimales.

En effet, supposons, par exemple, que x nest pas une solution optimale. Alors, il
existe une solution ralisable x tel que

c x > c x

Do c x > ub, ce qui est en contradiction avec la proprit 1.


Le corollaire 2 indique que lgalit des fonctions conomiques du primal et du dual
est une condition suffisante doptimalit pour des solutions ralisables des deux
problmes.
5 Dualit en programmation linaire 55

Corollaire 3

Si un problme possde une valeur optimale infinie, son dual est impossible.

En effet, si z = +., Daprs le corollaire 1, toute solution ralisable u du dual


devrait vrifier + 6 u b. Ce qui est impossible. Mme dmarche si w = .

2.2. Dualit forte

Proprit 2

Si le problme primal (resp. dual) possde une solution optimale finie, alors
il en est de mme pour le problme dual (resp. primal) et de plus z = w.

En effet, sil existe une solution de base optimale finie x du problme primal mis
sous forme standard, cette solution est de la forme

xB = B1 b > 0, xH = 0

avec z = cB xB et cB B1 A c 6 0 (critre doptimalit).


Posons
uB = cB B1
Cette solution duale est ralisable puisque

uB A 6 c

et de plus vrifie
uB b = z
Cette solution est donc une solution optimale finie du problme dual.

Corollaire 4

Lgalit des fonctions objectifs du primal et du dual est donc une condition
ncessaire et suffisante doptimalit pour des solutions ralisables des deux
problmes.

Thorme fondamentale de la dualit

Parmi les neuf situations potentielles pour une paire de problmes lis par la dualit,
il nexiste que quatre situations possibles

1. Les deux problmes ont des solutions optimales finies ;

www.livecours.com
5 Dualit en programmation linaire 56

2. a) Le problme primal a une valeur optimale infinie, et son dual est impossible ;
b) Le problme primal est impossible, et son dual a une valeur optimale infinie ;
3. Les deux problmes sont impossibles.

Le tableau suivant rcapitule la situation

Solution Valeur Problme


Primal/ Dual
optimale finie optimale infinie impossible
Solution optimale finie 1. Non Non
Valeur optimale infinie Non Non 2. a)
Problme impossible Non .2 b) 3.

Daprs ce qui prcde, on obtient le rsultat suivant.

Dans un couple de problmes lis par la dualit :


soit les deux problmes ont des solutions optimales finies ;
soit un problme est impossible et lautre a une valeur optimale infinie ;
soit les deux problmes sont impossibles.
Toutes les autres situations sont irralisables.

Illustrations

1. Les deux problmes ont des solutions optimales finies




min 2x1 + 2x2
max u1 u2

x1 x2 > 1 u 1 u2 6 2



(P) (D)


x1 + x2 > 1

u1 + u2 6 2

x1 , x 2 > 0 u1 , u 2 > 0

4 4

0 0
0 4 0 4
le premier cas du thorme fondamentale de la dualit
5 Dualit en programmation linaire 57

2. Un problme est impossible et lautre a une valeur optimale infinie




max 2x1 + 2x2
min u1 + u2

x1 + x2 6 1 u1 + u2 > 2



(P) (D)


x1 x2 6 1

u1 u2 > 2

x1 , x 2 > 0 u1 , u 2 > 0

4 4

0 0
0 4 0 4
le deuxime cas du thorme fondamentale de la dualit

3. Les deux problmes sont impossibles




max 2x1 + 2x2
min u1 u2

x1 x2 6 1 u 1 u2 > 2



(P) (D)


x1 + x2 6 1

u1 + u2 > 2

x1 , x 2 > 0 u1 , u 2 > 0

4 4

0 0
0 4 0 4
le troisime cas du thorme fondamentale de la dualit

2.3. Thorme des carts complmentaires

Ce thorme est une autre prsentation de la condition ncessaire et suffisante


doptimalit du corollaire 4, et sendduit facilement :

www.livecours.com
5 Dualit en programmation linaire 58

Soient x et u deux solutions ralisables respectivement du primal et du


dual. Une CNS pour que x et u soient solutions optimales, est quelles
vrifient les relations :
u (Ax b) = 0
(c uA) x = 0

Etant donn que par hypothse,



u (b Ax) = > 0
= cx ub = + > 0
(uA c) x = > 0

Une CNS doptimalit quivalente cx = ub est donc

==0

Appelons
(Li x 6 bi , ui > 0) i = 1, . . . , m
ou
(xj > 0, uCj > cj , ) j = 1, . . . , n
des couples de contraintes duales.
Convenons quune contrainte dingalit (6 ou >) est dite serre pour une solution,
si elle est vrifie avec le signe dgalit (=) et non serre dans le cas o elle est
vrifie avec le signe dingalit stricte (< ou >).
Le thorme des carts complmentaires peut alors snoncer :

A loptimum, dans tout couple de contraintes duales, il y a au moins une


contrainte serre.

Ainsi, si x et u sont des solutions optimales, respectivement du primal et du dual,


on en dduit :
xj > 0 uCj = cj
Li x < bi ui = 0
ui > 0 Li x = bi
uCj > cj xj = 0
En introduisant les variables dcart y et v des contraintes relles du primal et du
dual :

Ax + y = b
uA v = c
5 Dualit en programmation linaire 59

Le thorme des carts complmentaires scrit simplement :

xi v i = 0 i = 1, . . . , n
yj uj = 0 j = 1, . . . , m

ce qui justifie lappellation carts complmentaires .

Exemple :
Appliquons le TEC au problme linaire suivant :


max 15x1 + 25x2

x1 + 3x2 6 96





(P) x1 + x2 6 40





7x1 + 4x2 6 238

x1 , x2 0

Son dual est le problme linaire suivant :





min 96u1 + 40u2 + 238u3


u1 + u2 + 7u3 > 15
(D)


3u1 + u2 + 4u3 > 25

u1 , u2 , u3 0

Soit la solution primale


x1 = 0, x2 = 32

Les deux dernires contraintes ne sont pas satures


= les deux variables duales associes sont nulles ;

x2 > 0 = 2ieme contrainte duale sature ;

Donc 3u1 = 25 = u1 = 25/3 (et u2 = u3 = 0) ;

Cette solution ne satisfait pas la 1ere contrainte duale


= non ralisable ! ;

La solution primale prcdente nest donc pas optimale !

Considrons maintenant la solution primale :

x1 = 12, x2 = 28

La dernire contrainte nest pas sature


= la variables duale associe est nulle ;

www.livecours.com
5 Dualit en programmation linaire 60

x1 , x2 > 0 = 2 contraintes duales satures ;

On obtient donc le systme suivant :

u1 + u2 = 15
3u1 + u2 = 25

On fait la diffrence des 2 galits

2u1 = 10 = u1 = 5 = u2 = 10

Cette solution est admissible pour (D) = x1 = 12, x2 = 28 est optimale

www.livecours.com