Вы находитесь на странице: 1из 39

Recherche Oprationnelle Programmation linaire : dualit

Recherche
Oprationnelle

Programmation
linaire:
dualit
Yves Correc
Yves Correc 25/11/2007

61

Recherche Oprationnelle Programmation linaire : dualit

Sommaire
6.

PROGRAMMATION LINEAIRE: DUALITE ...............................................................................63


6.4. Le problme dual ...................................................................................................................63
6.4.1.
Dfinitions .......................................................................................................................63
6.4.2.
Interprtation conomique ..............................................................................................63
6.4.3.
Problme dual du simplexe ............................................................................................67
6.4.4.
Algorithme dual du simplexe.........................................................................................610
6.4.5.
Difficults diverses ........................................................................................................613
6.4.6.
Cots de substitution ....................................................................................................616
6.4.7.
Cots marginaux...........................................................................................................617
6.5. Post-optimisation..................................................................................................................619
6.5.1.
Paramtrage du second membre .................................................................................619
6.5.2.
Paramtrage de la fonction conomique......................................................................626
6.6. Complments .......................................................................................................................629
6.6.1.
Exercice 12-9-7-6-10 ...................................................................................................629
6.6.2.
Exercice 1-14-6............................................................................................................631
6.6.3.
Exercice raffinerie ........................................................................................................638

Yves Correc 25/11/2007

62

Recherche Oprationnelle Programmation linaire : dualit

6.

PROGRAMMATION LINEAIRE: DUALITE


6.4.

LE PROBLEME DUAL
6.4.1. Dfinitions

Reprenons le problme de fabrication du dbut (problme des tables et des chaises).


A l'optimum, la fonction conomique s'crit:
-2 x5 - x4 = z - 26
Considrons la variable x5 (variable d'cart de distribution).
Elle est nulle l'optimum, ie la contrainte correspondante est sature. Mais si l'on augmentait le
second membre (RHS) de b, on pourrait la dbloquer, et ainsi augmenter la fonction conomique, ici
de 2 b.
De mme un dblocage de la deuxime contrainte (x4) entrainerait une variation de la fonction
conomique z de b.
Par contre la premire contrainte nest pas sature (x3=3), et l'on ne peut rien en attendre.
Les quantits introduites ici sont les cots marginaux affects aux contraintes : Ce sont les
coefficients des variables dcart apparaissant dans lcriture de la fonction conomique loptimum
(ce sont aussi, au signe prs, les valeurs des variables duales yj, comme on le verra plus loin).
Si l'on trouve loptimum des variables naturelles dans la fonction conomique, leur coefficient sera
un cot de substitution.
Nous voyons ainsi apparatre des quantits donnant une ide de l'volution de la solution du problme
en fonction des petites variations des donnes. Ces quantits sont lies une autre approche de
notre problme, moins immdiate que l'approche gomtrique, ou primale, utilise jusqu' prsent.
Aprs avoir trait le problme primal, nous allons donc introduire le problme dual associ:
max c x
Axb
x0

min y b
yAc
y0

o le vecteur ligne y a pour composantes les variables duales yi (i=1,m).


NB. Ici les deux problmes sont exprims sous forme canonique (ingalits). Le problme dual peut
t t
t
encore s'crire sous la forme A y c .

6.4.2. Interprtation conomique


Si linterprtation "physique" du problme primal est vidente, celle du problme dual lest moins.
Une approche intressante peut tre de raisonner en termes d'units physiques pour dterminer la
signification des variables duales.
On utilisera l le concept d'quation aux dimensions, employ en physique pour vrifier la cohrence
des termes d'une quation, ramens des masses M, des longueurs L, et des temps T.
Dans la formulation primale expose plus haut, les variables xj correspondent des quantits d'objets
produits (sortie j), et la fonction conomique z une valeur . L'quation aux dimensions de la
fonction conomique nous donne immdiatement la signification des coefficients cj de la fonction
conomique Z = c x, qui correspondent la valeur unitaire (valeur / sortie j) de ces objets:
n

valeur

( sortie
j =1

)( sortie j ) = (valeur )

Yves Correc 25/11/2007

63

Recherche Oprationnelle Programmation linaire : dualit

Pour les contraintes, on observe que le second membre correspond une limitation des ressources
utilises, des matires premires consommes en entre (entre i), ce qui nous donne de la mme
manire la signification des coefficients aij de la matrice: C'est la quantit de la ressource i ncessaire
la fabrication d'une unit du produit j, savoir un rapport (entre i / sortie j), comme cela ressort
immdiatement de l'quation aux dimensions des contraintes:
n

entrei

( sortie
j =1

)( sortie j ) (entrei )

pour (i=1,m)

Voyons maintenant le problme dual qui consiste, en jouant sur les variables duales yi, minimiser le
produit scalaire W = y b, o les bi sont les ressources (entre i) utlises dans la fabrication des
produits:
m

y (entre ) = ?
i =1

sous des contraintes o l'on sait interprter les a ij ainsi que les cj:
m

entrei

( sortie
i =1

) yi (

valeur
) avec yi 0
sortie j

pour (j=1,n)

On peut alors voir que les contraintes duales seront consistantes si les variable duales yi sont

exprimes en termes de

valeur
) , c'est dire de la valeur unitaire des ressources i.
entrei

Il en rsulte finalement que le problme dual consiste minimiser W qui est une valeur:
m

valeur

( entre )(entre ) = (valeur )


i

i =1

sous les contraintes:


m

entrei

( sortie
i =1

)(

valeur
valeur
)(
)
entrei
sortie j
valeur
(
)0
entrei

pour (j=1,n)

pour (i=1,m)

Une description verbale des deux problmes peut alors tre la suivante:
Pb Primal :

maximiser le chiffre des ventes

Etant donn la valeur unitaire (cj) de chaque produit (cela peut tre un bnfice) et une borne
suprieure la disponibilit de chaque ressource (bi), combien de chaque produit (xj) doit-on
fabriquer pour maximiser la valeur totale des produits raliss ?
Pb Dual :

minimiser le cot de production

Etant donn la disponibilit de chaque ressource (bi) et une borne infrieure la valeur unitaire (cj) de
chaque produit vendu, quelles devront tre les valeurs unitaires yi des ressources pour minimiser la
valeur totale des ressources utilises ?
NB.

entre = ressource, matire premire utilise par le processus tudi, en entre


sortie = produit fabriqu issu du processus, en sortie

Yves Correc 25/11/2007

64

Recherche Oprationnelle Programmation linaire : dualit

Un couple primal-dual : Le problme du rgime.


Cette interprtation conomique va tre illustre par le problme du rgime, o l'on considrera les
deux points de vue duaux du consommateur et du fabricant.
Minimisation du cot de lalimentation
(pb du consommateur)
Maximisation du profit
(pb du fabricant de pilules vitamines)
Un consommateur essaie de se constituer un rgime dittique de cot minimal partir de 6 aliments
de base (numrots de 1 6), de manire absorber au moins 9 units de vitamine A et 19 units de
vitamine C par unit de temps.
Le prix des aliments (cents/kg) et leur contenu en vitamines (units/kg) est donn dans le tableau
suivant:
Aliments

Minimum vitamines

Contenu en vitamine A

Contenu en vitamine C

19

Cot des aliments

35 30 60 50 27 22

Si l'on suppose que le rgime cherch comporte yj


consommateur ditticien amateur s'crit:
Min

kg de chaque aliment, le problme du

35 y1 + 30 y2 + 60 y3 + 50 y4 + 27 y5 + 22 y6 = w
y1

+ 2 y3 + 2 y4 + y5 + 2 y6 9
y2 + 3 y3 + y4 + 3 y5 + 2 y6 19

sous les contraintes:


avec les yj 0 (j=1,m)

Dans ces conditions, un industriel de la pharmacie, fabricant de pilules, sattaque au march en


proposant au consommateur des pilules contenant les vitamines. Mais pour le convaincre, il doit
proposer les pilules un prix infrieur celui des aliments ncessaires pour arriver au mme rsultat.
NB. Ce raisonnement n'est videmment valable que si l'on suppose le consommateur uniquement
proccup d'conomie et de dittique, et non de gastronomie En fait cet exemple est extrait d'un
livre amricain !
Soit alors x1 et x2 le prix des vitamines A et C en pilules (en cents/unit).
Considrons maintenant un aliment, par exemple le numro 5:
Un kilogramme de n 5 contient 1 unit de vitamine A et 3 units de vitamine C, de valeur x1+3x2 pour
le fabricant. Sachant quun kilogramme de n 5 cote 27 cents au consommateur, le fabricant n'aura
de chances de le convaincre que si ses prix vrifient la contrainte x1+3x2 27 .
Il en sera de mme pour les autres aliments
Et sous ces contraintes, le fabricant cherchera maximiser son profit, c'est dire ici son prix de vente,
soit 9 x1 + 19 x2 .
Le problme du fabricant, dual de celui du consommateur, est donc le suivant:
max 9x1+19x2 = z
x1
x2
2 x1 + 3 x2
2 x 1 + x2
x1 + 3 x2
2 x1 + 2 x2

Yves Correc 25/11/2007

sous les contraintes:


35
30
60
50
27
22

avec les xi 0 (i=1,n)

65

Recherche Oprationnelle Programmation linaire : dualit

Si l'on prend les dfinitions du dbut de ce chapitre au pied de la lettre, on peut aussi bien considrer
le problme du fabricant comme le primal, et celui du consommateur qui veut se passer des pilules
vitamines en consommant des aliments naturels, comme le dual
Les deux problmes sont quivalents et constituent une paire primal-dual (le dual du dual est le
primal) On remarquera seulement que le problme de minimisation n'admet pas ici de solution de
base ralisable, ce qui nous ennuie un peu.
Nous allons donc rsoudre le problme du fabricant de pilules, le plus facile car il revt la forme d'un
primal sans souci particulier (maximisation d'un bnfice sous des contraintes ). Les tableaux de
Tucker associs sont les suivants:
x1

x2

x3

35

x4

x5

x6

x1

x7

x3

35

30

x4

-1/3

-1/3

21

60

x5

-1

33

50

x6

5/3

-1/3

41

x7

27

x2

1/3

1/3

x8

22

x8

4/3

-2/3

19

8/3

-19/3

-171

x8

x7

x3

-3/4

1/2

32

x4

1/4

-1/2

22

x5

-3/4

-1/2

30

x6

-5/4

1/2

36

x2

-1/4

x1

3/4

-1/2

-2

-5

-179

OPTIMUM
La solution trouve nous donne un prix de vente respectif de 3 et 8 cents/unit pour les pilules de
vitamines A et C, pour un chiffre des ventes de 179 cents.
Les variables d'cart x3, x4, x5, x6 sont positives, ce qui signifie que le prix des pilules quivalentes
aux 4 premiers aliments est sensiblement plus intressant que celui des aliments naturels. Il est est
gal pour les deux derniers (variables d'cart x7 et x8 nulles): ce sont justement ceux qui donnent le
plus bas prix pour le consommateur, comme on va le voir.
Revenons aux variables xi solutions du problme complmentaire du consommateur, dont les valeurs
nous seront fournies par le tableau de correspondance du paragraphe suivant (6.4.3).
x1=3 et x2=8, >0
carts y7 = y8 = 0
(la consommation de vitamines l'optimum
pour le consommateur est exactement le minimum ncessaire, savoir 9 et 19 units)
carts x3, x4, x5, x6 > 0
y1 = y2= y3 = y4 = 0
(le consommateur
d'aliments de type 1, 2, 3, 4, car les pilules quivalentes sont moins chres)
carts x7 = x8 = 0

y5 = 5, y6 = 2

n'achte

pas

pour un cot de 179

Moyennant quoi l'interprtation du couple primal-dual devient claire si l'on se rfre au schma du
paragraphe suivant.
Yves Correc 25/11/2007

66

Recherche Oprationnelle Programmation linaire : dualit

Problme dual:
Le consommateur minimise sa dpense pour y5=5 et y6=2 (aliments 5 et 6), et tous les autres yi nuls.
Toute autre solution recherche en se dplaant dans la direction des y n'est pas optimale et fait
remonter sa dpense w.
Problme primal:
Le fabricant de pilules maximise son bnfice pour des prix de vente x1=3 et x2=8. Toute autre
solution recherche en se dplaant dans la direction des x n'est pas optimale et fait descendre son
bnfice z.
Notons qu'une augmentation sauvage des prix de vente ferait sortir du domaine admissible dfini par
les contraintes "les vitamines en pilules ne doivent pas tre plus chres que les vitamines issues des
aliments naturels".
La solution unique et commune au couple de problmes primal-dual (qui ne sont en ralit que les
deux facettes d'un mme problme) est donc reprsente par le point selle de la figure, o les deux
solutions sont quivalents au point de vue prix pour le consommateur.

6.4.3. Problme dual du simplexe


Nous allons donc pouvoir considrer tout problme d'optimisation linaire (donn sous forme
canonique, d'ingalits) sous deux angles:
Un problme primal de maximisation de c x sous contraintes A x b,

ou bien

Un problme dual de minimisation de y b sous contraintes A y c .


t

Ces deux problmes lis possdent quelques proprits intressantes qui nous seront utiles.
Tout d'abord le Thorme de dualit faible nous dit que si x est une solution admissible du problme
primal, et y une solution admissible du problme dual, alors c x y b .
En effet x 0 et c y A entrainent c x (y A) x, d'une part, tandis que y 0 et A x b entrainent y (A
x) y b , d'autre part.
Il en rsulte que les valeurs de la fonction conomique du primal, que l'on cherche maximiser, sont
toujours majores par celles de la fonction conomique du dual, que l'on cherche minimiser.
On dmontre de mme le Thorme de dualit forte, qui nous dit que si un programme linaire
possde une solution optimale x* de valeur z* = c x*, alors son dual possde aussi une solution
optimale y* et la valeur de cette solution est w* = y* b = z* .
Cette proprit peut se visualiser en observant que l'optimum unique du couple primal-dual est point
selle de la surface (en forme de selle de cheval: on maximise en x et on minimise en y) sur laquelle
s'opre le cheminement de l'optimisation: la solution est d'aprs ce qui prcde le plus petit maximum
admissible susceptible d'tre construit (min max), ou bien le plus grand minimum.
En pratique, la rsolution du primal part d'une solution primal-admissible (c'est--dire ralisable,
vrifiant les contraintes) mais non primal-optimale (on peut gagner sur la fonction conomique) pour
tenter de l'amliorer (par l'algorithme primal de Dantzig vu plus haut) jusqu' la solution optimale.
Tandis que la rsolution du dual partira d'une solution primal-optimale (la fonction conomique atteint
la meilleure valeur possible) mais non primal-admissible (cette valeur est hlas obtenue en dehors du
domaine admissible dfini par les contraintes ingalits du primal), pour dcrotre jusqu' nous
permettre de rentrer dans le domaine en restant malgr tout optimale (on va donc essayer de perdre
le moins possible dans ce cheminement).

Yves Correc 25/11/2007

67

Recherche Oprationnelle Programmation linaire : dualit

Admissible
Non optimale

PRIMAL

Admissible
Optimale

DUAL

Non admissible
Optimale

z...w (fonction conomique)

point selle
min
max

y (variables duales)
x (variables primales)

Problme primal
max c x
Axb
x0
n variables naturelles x(j)
m variables d'cart x(n+i) : contraintes bi

Problme dual
min y b
yAc
y0
m variables duales y(i)
n variables d'cart y(m+j) : contraintes cj

Le thorme de dualit forte nous permet en outre d'tablir les relations possibles entre les solutions
d'une paire de programmes linaires duaux:
Existence des solutions

Ou bien les deux problmes n'ont pas de solution


Ou bien l'un n'a pas de solution et l'autre n'a pas de solution finie
Ou bien les deux problmes ont une solution, et l'optimum Zmax. = W min.

A ce stade, le thorme des carts complmentaires va nous aider prciser les relations entre les
variables des deux problmes. Il nous dit en effet que des solutions admissibles x et y (des problmes
primal et dual sous forme canonique) sont optimales si et seulement si:
yi (bi - j aij xj) = 0 pour i=1,,m et xj ( i yi aij - cj) = 0 pour j=1,,n
Ce qui peut tre interprt en termes de relations entre les variables naturelles et d'cart xj du
problme primal, et leurs homologues yi du problme dual:
Relation entre variables et contraintes

Si une contrainte n'est pas sature (xn+i = ei 0) la variable duale yi associe cette
contrainte est nulle.
Si une contrainte est sature (xn+i = ei = 0) la variable duale associe yi est 0, et a pour
valeur au signe prs, le coefficient de ei (cot marginal) dans la fonction conomique
l'optimum (sauf cas de dgnrescence). De mme les coefficients des variables naturelles xj
dans la fonction conomique l'optimum sont les cots de substitution.

Yves Correc 25/11/2007

68

Recherche Oprationnelle Programmation linaire : dualit

On peut alors rsumer ci-dessous de manire synthtique l'interprtation du tableau de Tucker obtenu
l'optimum:

xj

ei = xn+i
Variables hors base

Solution primale:
Variable primale x j > 0
Ecart dual ym+j = 0

xj
Variables
en base

Variable d'cart > 0


Contrainte non sature
Variable duale y i = 0

e i = xn+i

Fonction
conomique
c

Second membre b

Variable primale nulle


Cot de substitution Cj
cart dual ym+j = -Cj

Variable d'cart nulle


contrainte sature
cot marginal Cn+i
Var. duale y i = -Cn+I

On peut encore prciser la correspondance entre primal et dual en remarquant qu'une solution primaladmissible (b0) est dual-optimale, tandis qu'une solution primal-optimale (c0) est dual-admissible.

Yves Correc 25/11/2007

69

Recherche Oprationnelle Programmation linaire : dualit

6.4.4. Algorithme dual du simplexe


La notion de dualit va avoir l'intrt de fournir une autre approche du problme, quand le traitement
direct du primal pose des problmes. Ce cas peut se prsenter quand il n'y a pas de solution de
dpart triviale qui soit primal-admissible (ie l'origine n'est pas dans le domaine), ou bien quand aprs
avoir trouv un premier optimum primal au moyen de l'algorithme de Dantzig, on dcide de modifier
quelque peu les donnes.
La mthode que nous allons employer consiste en fait traiter le problme dual en utilisant
l'algorithme de Dantzig. Mais au lieu de travailler sur le tableau transpos, nous allons en fait adapter
l'algorithme pour travailler directement sur le tableau du primal.
Nous allons illustrer la dmarche sur un exemple:
Min

200 x1 + 300 x2
x1 + 2 x2 60
4 x1 + 2 x2 120
6 x1 + 2 x2 150

(xj0) sous les contraintes:

Soit encore, mis sous forme primale canonique (max cx / Axb):

Max - 200 x1 - 300 x2


- x1 2 x2 - 60
-4 x1 2 x2 -120
-6 x1 2 x2 -150
Ce problme est peu sympathique car il n'admet pas de solution de dpart vidente (pas de solution
de dpart primal-admissible car les composantes du second membre sont ngatives).
Le dual de ce problme sous sa premire formulation s'crit aprs quelques oprations:
Max

60 y1 + 120 y2 + 150 y3
y1 + 4 y2 + 6 y3 200
2 y1 + 2 y2 + 2 y3 300

(yi0)

c'est dire (max b y / -A y-c )


t

Nous allons donc lui appliquer l'algorithme primal bien connu. Rappelons que celui-ci formalise le
cheminement sur les artes du polydre du domaine primal-admissible, en choisissant
successivement une direction de dplacement (qui maximise la fonction conomique: on cherche
devenir primal-optimal) et un pas de dplacement (qui nous fasse rester sur la frontire du domaine:
on cherche rester primal-admissible):
C'est dire que l'on part d'une solution admissible du dual (-c 0), en recherchant
t

(1) une direction de maximisation ralisant (max -b 0 ?)


dans laquelle on pourra effectuer
t

(2) un dplacement minimal ralisant (min -c / -a ij ? pour -a ij>0)


t
t
t
ou encore (min c / a ij ? pour a ij<0)

puis on pivote, etc

dual

y1

y2

y3

-c

y4

200

y5

300

60

120

150

-b

max

(2)

(1)

A quoi cela correspond-il dans le tableau primal?


Yves Correc 25/11/2007

610

Recherche Oprationnelle Programmation linaire : dualit

Le point de dpart est dual-admissible, c'est dire primal-optimal (ici c0 pour une minimisation),
mais pas primal-admissible (car il existe des bi 0), c'est dire pas dual-optimal.
Le choix du pivot dans l'algorithme dual sera par consquent dcalqu, dans le tableau primal originel,
de l'application de l'algorithme primal au tableau dual que nous venons de voir. Ce choix va par
consquent ncessiter les tapes suivantes:
(1) rechercher le bi le plus ngatif (max b0 quivaut min b0)
(c'est dire que l'on s'attaque la contrainte la moins satisfaisante)
(2) dans cette ligne i, choisir le pivot dans la colonne ralisant min ( cj/aij ) pour aij<0 et cj 0
primal

x1

x2

x3

-1

-2

-60

x4

-4

-2

-120

x5

-6

-2

-150

-200

-300

max

(2)

(1)

L'algorithme dual du simplexe va donc partir d'une base dual-admissible (ie primal-optimale: c0 pour
une maximisation, ou c0 pour une minimisation), pour arriver la primal-admissibilit tout en restant
primal-optimal, c'est dire en prservant le signe des cj lors des transformations.
Pour cela on part (cas d'une maximisation) d'un tableau o l'on a tous les cj0, mais o il existe des
bi0.
On choisit pour ligne pivot celle du bi le plus ngatif (le plus "inadmissible").
Puis on choisit la colonne pivot suivant deux critres:

pivot ngatif
rapport minimal

aij 0
- cj / aij = maxk (- ck / aik ) avec aik 0 et ck 0

Cela se justifie en examinant l'effet (dans le prsent cas de maximisation) du pivotage qui va suivre:

Ligne pivot i: aprs pivotage, le terme bi 0 devient (bi / aij)


qui va devenir positif (primal-admissible) si aij 0

Colonne pivot j: aprs pivotage, le terme cj 0 devient - cj / aij


qui va rester ngatif (primal-optimal pour la maximisation) car aij 0 et cj 0

Autres coefficients ck de la ligne c: aprs pivotage, le terme ck 0 devient ck (cj / aij) aik
qui reste ngatif si aik 0,
car alors (cj / aij) > ( ck / aik) entrane que
et mme si aik < 0
(cj / aij) aik < ck soit ck (cj / aij) aik < 0

Le premier critre a pour effet de gagner en primal-admissibilit, tandis que le second va conserver la
primal-optimalit. On peut d'ailleurs le rcrire sous une forme plus gnrale en recherchant le
minimum des | ck / aik | pour aik 0 et (ck 0 si maximisation ou ck 0 si minimisation).

Yves Correc 25/11/2007

611

Recherche Oprationnelle Programmation linaire : dualit

En rsum, la mise en uvre de l'algorithme dual du simplexe va se drouler en quatre tapes:

(0) Initialisation:

solution de dpart dual-admissible

(ci 0 si max) ou (ci 0 si min) i

Tableau rduit (de Tucker) de dpart


x1 .. .xn
xn+1
.
.

xn+m

(1) Choix de la contrainte traite = Choix de la variable xi sortant de la base


Trouver i qui ralise min bi (avec bi0)
S'il n'existe pas de variable sortante, alors l'optimum est atteint

(2) Choix de la direction de dplacement = Choix de la variable xj entrant en base


Trouver j qui ralise min | cj / aij | pour

aij 0 et (cj 0 si max ou cj 0 si min)

S'il n'existe pas de variable entrante, alors le dual a une solution infinie
et le primal n'a pas de solution admissible.

(3) Dplacement = Nouvelle solution = Nouvelle base = Pivotage de Gauss


Permuter xi et xj (xi sort de la base et xj entre en base)
et transformer le tableau par pivotage de Gauss (pivot aij).

Yves Correc 25/11/2007

612

Recherche Oprationnelle Programmation linaire : dualit

6.4.5. Difficults diverses


L'application de l'algorithme dual est souvent envisage au dmarrage quand l'origine n'est pas dans
le domaine admissible (pas de solution de dpart primal-admissible ie dual-optimale), pour viter de
recourir aux variables artificielles dans l'algorithme primal. Mais on ne dispose pas au dpart d'un
tableau dual-admissible (ie d'une solution primal-optimale, caractrise par la positivit ou la
ngativit, suivant le sens de l'optimisation, de tous les cj).
Nous devrons alors modifier temporairement les donnes afin de rendre dual-admissible la base
initiale. Ne pouvant jouer sur le vecteur c, nous commencerons travailler avec une fonction
conomique ad hoc provisoire, et pour cet objectif artificiel la fonction nulle (c=0) fera parfaitement
l'affaire, sous la forme d'une ligne M rajoute au bas du tableau.
Notons que son aspect dgnr ncessitera de recourir la rgle de Bland.
Nous atteindrons de la sorte une solution primal-admissible, partir de laquelle nous terminerons
l'optimisation au moyen de l'algorithme primal (phase II), ou bien directement la solution optimale (sauf
incident en cours de route).
Exemple (traitement dual du 5.4.1)

max x1 x2
-2 x1 + x2 - 2
x1 - 2 x2 2
x1 + x2 5
x1

x2

x3

-2

-2

x4

-2

x5

-1

min bi < 0

On est parfois amen dans ce cas faire appel la rgle de Bland pour le choix de la colonne. Ce
n'est pas le cas ici car on a un seul aij<0.
x3

x2

x1

-1/2

-1/2

Tous les bi > 0

x4

1/2

-3/2

On est primal-admissible

x5

1/2

3/2

On abandonne la ligne M

1/2

-1/2

-1

et on continue en primal

x4

x2

x1

-2

x3

-3

x5

-1

-1

x4

x5

x1

1/3

2/3

x3

x2

-1/3

1/3

-2

-2/3

-1/3

-3

Yves Correc 25/11/2007

OPTIMUM

613

Recherche Oprationnelle Programmation linaire : dualit

Exercice

(problme de fabrication)

Une usine produit, sur deux chaines, des appareils lectroniques. En raison de diffrences
importantes dans les procds de fabrication, les temps ncessaires aux machines outils "fabrication"
(FAB) et "finition-rglage" (FIR) pour traiter un appareil diffrent sensiblement sur chaque chaine, avec
des prix de revient eux aussi sensiblement diffrents.
L'laboration d'un appareil sur la chaine 1 ncessite 3 heures de FAB et 1 heure de FIR, pour un prix
me
de revient unitaire de 20KF, tandis que la 2
chaine le produit pour 60KF avec 1 heure de FAB et 2
heures de FIR.
La machine FAB est disponible 60 heures par mois, et la machine FIR 70 heures.
(1) La demande tant de 30 appareils par mois au moins, dterminer le plan de production de cot
minimal.
Solution

La fonction conomique est


La contrainte FAB est
La contrainte FIR est
La contrainte "ventes" est

20 x1 + 60 x2
x2 60
3 x1 +
x1 + 2 x2 70
x1 +
x2 30

minimiser

On voit tout de suite qu'il n'y a pas de solution de dpart vidente (la troisime contrainte exclut
l'origine du domaine admissible).
Dans un premier temps, nous dmarrerons donc avec une variable artificielle x6, qui nous permet de
-x1 - x2 + x5 = -30
x1 + x2 - x5 + x6 = 30
rcrire la contrainte:
x1 + x2 30
Ce qui nous donne le problme primal (sous forme standard):
20x1 + 60x2
3x1 + x2 + x3 = 60
x1 + 2x2 + x4 = 70
x1 + x2 x5 + x6 = 30

Min

et conduit aux tableaux de Tucker suivants:

x1

x2

x5

x1

x6

x5

x3

60

x3

-1

30

x4

70

x4

-1

-2

10

x6

-1

30

x2

-1

30

20

60

-40

-60

60

-1800

M
-1
-1
1
-30
La ligne M est la recopie au signe prs de la
contrainte car ici l'on cherche minimiser !
Pour la recherche du pivot, on prend donc
la valeur la plus ngative sur la ligne M

Le choix qui a t fait ne suit pas la rgle de Bland qui aurait


donn pour solution suivante le point E (x2 et x3 hors base),
encore non admissible (b1<0), mais va nous permettre
d'abandonner la forme linaire provisoire au second tableau
(tous les bi deviennent positifs), ainsi que la colonne de la
variable artificielle, et conduit ainsi au tableau final ci-contre:

x3

x5

x1

1/2

1/2

15

x4

1/2

5/2

25

x2

-1/2

-3/2

15

20

80

-1200

Le cheminement suivi lors de cette optimisation part de l'origine O:


x1 = x2 = x5 = 0, x3 = 60, x4 = 70, x6 = 30
Pour aller au point A:
x1 = 0, x2 = 30, x3 = 30, x4 = 10, x5 = 0, x6 = 0
Et finir l'optimum B:
x1 = 15, x2 = 15, x3 = 0 (FAB sature), x4 = 25 (reste 25h FIR), x5 = 0 (demande sature)
Yves Correc 25/11/2007

614

Recherche Oprationnelle Programmation linaire : dualit

x1=0

gradient
C

A
B

x2=0

x3=0

x5=0

x4=0

Interprtation:
Primal:

Min 20 x1 + 60 x2
x2 60
3 x1 +
x1 + 2 x2 70
x1 +
x2 30

ou encore

Max - 20 x1 - 60 x2
3 x1 +
x2 60
x1 + 2 x2 70
- x1 x2 - 30

Etant donn la valeur (prix de revient) unitaire de chaque produit (20, 60) et une borne suprieure la
disponibilit des ressources (60, 70, -30), combien fabriquer de chaque produit pour minimiser le cot
total ?
Min 60 y1 + 70 y2 - 30 y3

Dual:

y2 3 y1 +
y1 + 2 y2 -

Max -60 y1 - 70 y2 + 30 y3

y3 - 20
y3 - 60

- 3 y1 - y2 + y3 20
- y1 - 2 y2 + y3 60

ou encore

Etant donn la disponibilit de chaque ressource (60, 70, -30) et une borne suprieure au prix de
revient (valeur) de chaque produit fini (20, 60), quelles valeurs unitaires devront tre affectes aux
ressources pour minimiser la valeur totale des ressources utilises?

Autres approches:

Comme il s'y prte, nous pouvons aussi traiter le problme dual au moyen de l'algorithme primal:
t

y1

y2

y3

-C

y4

-3

-1

20

y5

-1

-2

60

-b

Max

-60

-70

30

Yves Correc 25/11/2007

y2

y4

-C

y3

-3

-1

20

y3

3/2

-5/2 -1/2

80

y5

-1

-1

40

y1

1/2

-1/2 -1/2

20

-15

-25

-b

30

-40

-30

-600

y5

-b

y2

y4

-C

y1

-15 -1200

OPTIMUM

615

Recherche Oprationnelle Programmation linaire : dualit

Nous pouvons aussi utiliser l'algorithme dual pour le dmarrage du primal (canonique):
Min 20 x1 + 60 x2
x2 60
3 x1 +
x1 + 2 x2 70
- x1 - x2 -30
x1

x2

x3

60

x4

70

x5

-1

-1

-30

20

60

0
dual

x5

x2

x5

x3

x3

-2

-30

x2

-3/2

-1/2

15

x4

40

x4

5/2

1/2

25

x1

-1

30

x1

1/2

1/2

15

20

40

80
20
OPTIMUM

-600
dual

-1200

Cette fois le cheminement suivi (en orange sur la figure) au dpart de l'origine (O) passe par le point F
(x2= 0 et x5=0) avant de rentrer dans le domaine directement l'optimum (point B).

6.4.6. Cots de substitution


On appelle cot de substitution le cot associ une variable naturelle qui apparat dans la fonction
conomique loptimum (elle est donc nulle l'optimum).
Dans le problme primal de fabrication par exemple, il ny a pas de cot de substitution, x1 et x2 tant
en base et 0).
Par contre dans le problme des mlanges de cafs, le tableau final scrit :
x6

x2

x5

x4

-1/3

-1/3

44/3

x3

1/2

1/2

30

x1

1/3

1/2

-1/6

10/3

-1/2

-1/20

-1/4

-35

La variable x2 (quantit de mlange n2 produite) est principale et n'appartient pas la solution de


base optimale.
La fonction conomique a pour expression l'optimum:

Z 35 =

x6 x 2 x5

2 20 4
me

activit du modle) est nulle l'optimum, et l'y introduire de force


La variable x2 (taux de la 2
conduirait se pnaliser de 1/20 par unit de x2 utilise (c'est dire ici 1/20 K$ par Klb substitue
autre chose dans la solution).
Bien sr, rien ne permet d'affirmer qu'avec un tel taux (une telle valeur de la variable) le problme
resterait le mme, ou aurait seulement une solution. Cependant ce critre permet dans une certaine
mesure de juger de l'importance relative d'une activit du modle.

Yves Correc 25/11/2007

616

Recherche Oprationnelle Programmation linaire : dualit

6.4.7. Cots marginaux


Revenons au problme primal de l'exercice prcdent. La question pose est celle de la minimisation
d'un cot sous contraintes de disponibilit de ressources. Si l'on note x3, x4, x5 les variables d'cart, ce
problme s'crit l'optimum:
x1 + x3 + x5 = 15
x4 + x3 + 5/2 x5 = 25
x2 - x3 - 3/2 x5 = 15
20 x3 + 80 x5 = z 1200

Minimum

Les variables d'cart x3 et x5 sont nulles, ie les contraintes correspondantes sont satures
l'optimum.
La premire contrainte s'crit dans le problme originel:

3x1 + x2 = 60 - x3

(3x1 + x2 60 heures)

Si l'on augmente le nombre dheures disponibles en fabrication, on peut esprer dbloquer cette
contrainte, et par suite amliorer encore la valeur de la fonction conomique.
En pratique, augmenter le second membre conduira ici faire glisser vers le haut, sur l'axe (x1 = 0),
l'intersection de celui-ci avec la droite correspondant cette contrainte (x3 = 0). Soit encore dplacer
"vers le nord-est" cette droite (x3 = 0). On voit alors que le domaine admissible va s'agrandir vers la
droite avec le dplacement de sa frontire orientale, ce qui laisse esprer la possibilit d'amliorer la
fonction conomique, qui trouve justement son optimum cet endroit (point B).
Supposons que lon dispose d'une heure supplmentaire: Le second membre prend la valeur 61. Cela
revient donner x3 la valeur -1, et l'expression de la fonction conomique loptimum suggre que
lon peut esprer un gain de 20 fois (-1), soit 20KF de moins sur le cot (que l'on cherche minimiser).
Inversement, si lon ne dispose plus que de 59 heures sur FAB, x3=1, et l'on risque de dgrader le
cot qui augmente de 20KF (moins optimal dans un domaine ainsi lgrement rtrci).
Bien sr, ce raisonnement (appel marginaliste) donne uniquement l'ordre de grandeur du gain ou de
la perte susceptibles d'tre ainsi raliss, mais nindique pas si et jusqu quel point cela peut se
raliser. Cette question trouvera une rponse avec les techniques de postoptimisation du chapitre
suivant (paramtrage du second membre).
On appelle cot marginal le cot associ une variable d'cart dans la fonction conomique
l'optimum. On montre quil y a identit au signe prs entre les variables duales et les cots marginaux.
Nous avons en effet l'optimum
z z* = j cj* Xj
o c* est la dernire ligne du tableau.
Ce qui pour une variable d'cart Xe nous donnera
z* / Xe = - ce*
(ce* cot marginal)
Les contraintes du problme originel s'crivent
Xe + j aij Xj = bi
Xe / bi = 1
D'o l'on tire videmment
On en dduit le rsultat cherch:
z* / bi = (z* / Xe)( Xe / bi) = - ce*
On voit ainsi que les petites variations de la fonction conomique autour de l'optimum, quand on
perturbe le second membre b, sont proportionnelles au signe prs aux cots marginaux.
Nous pouvons alors observer, d'aprs le thorme de dualit forte, qu' l'optimum:
z* = j cj xj* = i yi* bi = w*
ce qui nous donne par drivation
z* / bi = yi*

Yves Correc 25/11/2007

617

Recherche Oprationnelle Programmation linaire : dualit

Exercice
Un investisseur souhaite placer une somme de 50000 $ en actions. Trois catgories d'actions
sont envisageables :
Des valeurs sres (1) donnent un rendement de 5 %, des valeurs de croissance (2) un rendement de
8 %, tandis que des valeurs spculatives haut risque (3) atteignent 16 %.
(1) Dterminer le placement maximisant le rapport annuel, sachant que notre investisseur
souhaite prudemment limiter 25000 $ au plus le placement 3 (haut risque), et 30000 $ au
plus la somme des placements 2 et 3 (croissance et haut risque).
(2) Peut-on avoir une ide des consquences d'une ventuelle volution de ces plafonds?

Solution

Nous allons prendre pour variables les placements raliser en valeurs sres (x1), de croissance
(x2), et spculatives (x3), exprimes en K$ pour viter d'encombrer les tableaux de calcul.
La fonction conomique sera le rapport associ ( un facteur multiplicatif 100 prs pour la mme
raison), soit:
Z = 5 x1 + 8 x2 + 16 x3
maximiser sous les contraintes:
x1 + x2 + x3 50
(k$)
x2 + x3 30
x3 25
avec bien sr x1, x2, x3 0.
La rsolution de ce programme linaire se fait sans problmes en quatre tableaux:

x1

x2

x3

x4

50

x5

x6

x1

x2

x6

x4

-1

25

30

x5

-1

25

x3

25

16

-16

-400

x1

x5

x6

x4

-1

20

x2

-1

x3

-8

x4

x5

x6

x1

-1

20

x2

-1

25

x3

25

-8

-440

-5

-3

-8

-540

Optimum

La solution optimale consiste investir respectivement 20 k$, 5 K$, et 25 K$ dans les placements
proposs, pour un rapport global de 540 x 1000 / 100 = 5400 $.
Les cots marginaux s'interprtent immdiatement:
Augmenter b1 (capital investi) d'un K$ augmentera le rapport global de 5 x 1000 / 100 = 50 $ (5% d'un
K$).
Augmenter le plafond (2+3) d'un K$ augmentera le rapport global de 30 $.
Augmenter le plafond (3) d'un K$ augmentera le rapport global de 80 $.

Yves Correc 25/11/2007

618

Recherche Oprationnelle Programmation linaire : dualit

6.5.

POST-OPTIMISATION
6.5.1. Paramtrage du second membre

Paramtrer le second membre revient le faire varier linairement en fonction d'un paramtre entre
deux extrema b et b', c'est dire tenter de rsoudre le problme d'optimisation associ au second
membre b = b + (b' - b) avec 0 1 (b=b pour =0, et b=b' pour =1).
Que devient le problme lorsque l'on effectue une telle transformation?
Examinons pour commencer ce qui se passe gomtriquement:
Les coefficients de la fonction conomique ne changent pas, la direction d'optimisation non plus.
En dimension 2, les composantes de b correspondent l'ordonne des points d'intersection des
droites de contraintes avec l'axe des y, tandis que les cosinus directeurs, qui apparaissent dans la
matrice A, sont inchangs. Faire varier les bi reviendra donc translater ces droites dans le plan tout
en conservant leur direction.
L'effet prvisible sera donc une dformation du domaine admissible, qui sera restreint ou agrandi,
avec une ventuelle volution du nombre des facettes. Le point optimal prcdemment atteint,
l'intersection de deux des droites de contraintes, va donc le rester mais se dplacer pour suivre leur
volution. C'est ce dplacement qu'il va falloir calculer, en vrifiant que des soucis nouveaux
n'apparaissent pas en l'occurrence une modification de la gomtrie du domaine admissible.
La figure qui suit l'illustre en visualisant l'effet d'une augmentation de la premire composante de b
(relaxation de la contrainte FAB par augmentation du nombre d'heures disponibles): la droite se
translate vers la droite, tandis que son intersection avec la droite associe la troisime contrainte se
dplace de B en B1 puis en B2. Le domaine se dforme homothtiquement dans un premier temps, le
polydre ABCD devenant AB1C1D, puis change de forme en devenant AB1B2C1D
x1=0

x3=0

x3=0

D
x5=0

C1
B

C2

gradient
O

x4=0

B1

B2

x2=0

Que devient alors la solution du problme d'optimisation qui nous proccupe?


L'examen de la figure nous fait suspecter qu'elle va dans un premier temps de dplacer B en B1, mais
qu'elle n'en bougera plus si la droite continue son dplacement, en raison de l'orientation constante du
vecteur gradient de la fonction conomique.
Yves Correc 25/11/2007

619

Recherche Oprationnelle Programmation linaire : dualit

Que peut-on en dduire en ce qui concerne le calcul des solutions de bases successives?
Lors de la transformation qui remplace le second membre b par b = b + (b' - b), les coefficients de
la fonction conomique ne sont pas affects. On reste donc optimal.
Par contre la solution de base optimale va changer, avec plusieurs cas possibles:
Quand varie entre 0 et 1, les variables de base prennent les valeurs correspondant aux
composantes du vecteur b, et sont toujours positives (admissibilit).
Il existe une valeur 1 pour laquelle une (ou plusieurs) variable(s) de base s'annule(nt). Cela
signifie que le dplacement dcrit plus haut nous amne intercepter un nouveau plan de
contrainte. Il faut donc effectuer un changement de base en vue de poursuivre ventuellement
le cheminement du simplexe, suivant la dmarche maintenant classique, tout en respectant la
condition d'optimalit. Deux cas de figure se prsentent alors:
Le changement de base est possible, et on continue le paramtrage sur cette
nouvelle base.
Le changement n'est pas possible, et on s'arrte la valeur 1.
Exemple

Nous allons revenir au problme de fabrication du chapitre prcdent.


Encourag par le succs de ses produits, et voyant que la contrainte FAB est sature l'optimum, le
chef de l'entreprise envisage d'augmenter sa capacit de 60 240 heures par mois, et se pose la
question de l'intrt de la chose jusqu'o doit-il aller?
Le paramtrage du second membre se traduit ici par la nouvelle formulation du problme d'origine:
Min 20 x1 + 60 x2
3 x1 + x2 60 + 180
x1 + 2 x2 70
x1 + x2 30
Pour connatre le tableau optimal paramtr, nous allons en fait nous borner complter le tableau de
dpart avec une colonne supplmentaire , et lui appliquer l'ensemble des calculs correspondant aux
changements de base successifs ( faire ds le dpart, quand on sait qu'un paramtrage du second
membre sera demand).
x1

x2

x5

x1

x6

x5

x3

60

180

x3

-1

30

180

x4

70

x4

-1

-2

10

x6

-1

30

x2

-1

30

20

60

-40

-60

60

-1800

-1

-1

-30

la solution optimale est donc:

Yves Correc 25/11/2007

x3

x5

x1

1/2

1/2

15

90

x4

1/2

5/2

25

90

x2

-1/2

-3/2

15

-90

20
80
OPTIMUM

-1200

3600

x1 + x3 + x5 = 15 + 90
x4 + x3 +5/2 x5 = 25 + 90
x2 x3 - 3/2 x5 = 15 - 90
20 x3 + 80 x5 = z - 1200 + 3600

minimum
620

Recherche Oprationnelle Programmation linaire : dualit

La dernire ligne nous indique que quand augmente, z diminue. Mais la variation de va tre limite
me
quation dont le second membre va s'annuler (la plus proche contrainte rencontre par le
par la 3
point B lors du dplacement correspondant), tandis que les autres bi vont rester positifs (admissibilit).
En pratique, on calcule les valeurs de qui annulent les bi (la plus petite tant la limite cherche 1):
X1 = 0 pour = - 15 / 90
X4 = 0 pour = - 25 / 90
X2 = 0 pour = 15 / 90 qui est dans l'intervalle de variation permis [0,1]
Nous pouvons donc dplacer la droite (x3 = 0) jusqu' 1 = 15/90 = 1/6, que nous allons faire
apparatre dans les quations au moyen du changement de variable = 1 + ' . Les composantes du
second membre, coordonnes du point courant, deviennent alors respectivement, au point B1:
X1 = 15 + 90 (15/90 + ') = 30 + 90 '
X4 = 25 + 90 (15/90 + ') = 40 + 90 '
X2 = 15 90 (15/90 + ') = 0 90 ' par construction
Z = 1200 + 3600 (15/90 + ') = 600 + 3600 '
On observe l que ce calcul est conduit de la mme manire que dans l'algorithme classique du
simplexe pour le choix du pas de dplacement:
(1) On recherche dans la colonne le pivot i < 0 qui ralise min ( bi / i ) > 0
(2) On transforme la colonne b par pivotage de Gauss (le bi sur la ligne du pivot s'annule)
(1)

x3

x5

(2)

x3

x5

'

x1

1/2

1/2

15

90

x1

1/2

1/2

30

90

x4

1/2

5/2

25

90

x4

1/2

5/2

40

90

x2

-1/2

-3/2

15

-90

x2

-1/2

-3/2

-90

20

80

-1200

3600

20

80

-600

3600

Pour continuer l'optimisation, on va maintenant pivoter l'ensemble du tableau en utilisant l'algorithme


dual pour la dtermination de la nouvelle base (quelle variable doit remplacer xi sortant de base?):
(3) On choisit le pivot aik dans la ligne i du i identifi l'tape (1), dans la colonne k qui
ralise min | ck / aik | pour aik 0 (et ck 0 car on minimise)
(4) On opre un pivotage classique de l'ensemble du tableau pour rcrire les quations sur la
nouvelle base
(3)

x3

x5

'

(4)

x2

x5

'

x1

1/2

1/2

30

90

x1

-1

30

x4

1/2

5/2

40

90

x4

40

x2

-1/2

-3/2

-90

x3

-2

180

20

80

-600

3600

40

20

-600

Il est inutile de poursuivre ce stade, car la fonction conomique ne dpend plus de ', les quations
s'crivant alors (nouvel optimum atteint pour = 1 = 1/6):
x1 + x2 - x5 = 30
x4 + x2 + x5 = 40
x3 - 2 x2 + 3 x5 = 180 '
40 x2 + 20 x5 = Z 600
minimum
Il est donc possible d'abaisser le cot de production de 1200KF 600KF, en augmentant le nombre
d'heures disponibles sur la machine FAB jusqu' 60 + (15/90) 180 = 90 heures. Tous les appareils
seront dans ce cas fabriqus sur la premire chane. Augmenter davantage le nombre d'heures (FAB)
n'offre aucun intrt car une augmentation de n'a plus d'incidence sur la fonction conomique.
Yves Correc 25/11/2007

621

Recherche Oprationnelle Programmation linaire : dualit

Exercice
Un atelier mdival fabrique deux modles d'armure, nots A et B. Le modle A requiert, par
unit produite, 5 heures de forgeage, 4 heures de montage, et 1 heure de finition, tandis que le
modle B ncessite 5 heures de forgeage, 1 heure de montage, et 3 heures de finition.
Compte tenu du personnel disponible, la forge peut fonctionner 75 heures par semaine au
maximum, l'atelier de montage 42 heures, et celui de finition 27 heures (NB. Un atelier ne traite qu'une
armure la fois).
Enfin, pour des raisons obscures que nous ne discuterons pas ici mais dont l'intrt est
vident pour l'exercice, le nombre total d'armures fabriques chaque semaine doit tre au moins gal
4, tandis que le nombre d'armures A produites chaque semaine doit tre au plus gal au nombre
d'armures B plus 8.
Dans ces conditions, sachant que le bnfice sur la vente d'une armure A est de 5 cus, et
celui sur la vente d'une armure B de 4 cus, nous allons chercher optimiser la production dans
l'optique du bnfice maximum.
(1)

Formuler le problme en termes de programmation linaire.

(2)

Le rsoudre par la mthode du simplexe (utiliser les tableaux rduits de TUCKER).


Que peut-on remarquer ?

(3)

Refaire le calcul en utilisant lalgorithme dual plutt que les variables artificielles.

(4)

L'embauche de personnel supplmentaire doit permettre d'augmenter le temps de


fonctionnement hebdomadaire de l'atelier de montage jusqu' 50 heures. En
dterminer les consquences sur la solution du problme.

Solution

Le problme pos consiste maximiser le bnfice sous diverses contraintes, dont l'une interdit la
solution de dpart triviale (b<0) et ncessitera l'introduction d'une variable artificielle x8. La forme
canonique du problme est:

Max.5 x1 + 4 x2
5 x1 + 5 x2 75

4 x1 + x2 42
x1 + 3x2 27
x + x 4 x x + x = 4 x + x x + x = 4
1
2
7
1
2
7
8
1 2
x1 x2 8
Soit sous forme standard:

Max 5 x1 + 4 x2
5 x1 + 5 x2 + x3 = 75

4 x1 + x2 + x4 = 42

x1 + 3 x2 + x5 = 27
x x + x = 8
6
1 2
x1 + x2 x7 + x8 = 4
Il peut tre intressant, pour mieux comprendre le cheminement de l'algorithme, de dessiner le
polydre (puisqu'on a la chance de travailler en dimension 2).
Yves Correc 25/11/2007

622

Recherche Oprationnelle Programmation linaire : dualit

x3=0
paramtrage
x4=0

x5=0

x4=0
x6=0
optimum

x1=0

x7=0

x2=0

La dernire question implique une post-optimisation, avec paramtrage du second membre (sa
seconde composante devenant b2 = 42 + 8 avec variant entre 0 et 1).
Nous introduirons par consquent ds le dbut du calcul la colonne supplmentaire ncessaire au
paramtrage. Les tableaux de Tucker rsultants sont donc les suivants:
x1

x2

x7

x8

x2

x7

x3

75

x3

-5

55

x4

42

x4

-4

-3

26

x5

27

x5

-1

23

x6

-1

x6

-1

-2

x8

-1

x1

-1

-5

-1

-20

-1

-1

On abandonne la colonne x8 et la ligne M (on est rentr dans le domaine) avant le second pivotage
x2

x6

x4

x6

x3

10

-5

35

x3

-2

15

-16

x4

-4

10

x2

1/5

-4/5

8/5

x5

-1

19

x5

-4/5

11/5

11

-32/5

x7

-2

x7

2/5

-3/5

16/5

x1

-1

x1

1/5

1/5

10

8/5

-5

-40

-9/5

11/5

-58

-72/5

Yves Correc 25/11/2007

623

Recherche Oprationnelle Programmation linaire : dualit

On obtient le tableau final:


x4

x3

x6

-2/3

1/3

-16/3

x2

-1/3

4/15

-8/3

x5

2/3

-11/15

16/3

x7

1/5

11

x1

1/3

-1/15

8/3

-69

-8/3

-1/3 -11/15
OPTIMUM

On produira donc 9 armures de type A et 6 armures de type B par semaine.


On observe la prsence d'une dgnrescence de deuxime espce. Ce point multiple est dtectable
ds l'avant-dernier tableau (non-unicit du choix de la variable sortante: x3 et x5 donnent la mme
valeur 5 du rapport b/a). Il est aussi apparent dans le tableau final (x5 = 0).
On a donc l'optimum x3 = x4 = x5 = 0 et les ateliers forge, montage et finition seront utiliss 100%
(contraintes satures).
La contrainte (x6=5) n'est pas sature.
La contrainte (x7=11) non plus: L'excdent de production est de 11 units par rapport l'objectif de 4.
Enfin le bnfice total atteint 69 cus.
Nous pouvions aussi utiliser l'algorithme dual, en lieu et place du primal.
Dans ce cas nous devions pour contourner la non admissibilit duale (non optimalit primale) de
l'origine (c=5,4) utiliser un objectif artificiel pour dmarrer, sous la forme d'une ligne M nulle ajoute
sous la ligne c (choix de colonne faire au moyen de la rgle de Bland).
Les tableaux correspondants sont:
x1

x2

x7

x2

x3

75

x3

55

x4

42

x4

-3

26

x5

27

x5

23

x6

-1

x6

-2

x7

-1

-1

-4

x1

-1

-1

-20

(2)

(3)

Le cheminement sur le domaine est ici (par hasard) le mme que celui du primal, et le second tableau
identique celui que nous avions obtenu prcdemment. Il est primal admissible et nous pouvons
alors poursuivre la phase 2 en primal, suivant la squence expose plus haut.

Quelle consquences peut avoir une augmentation du quota d'heures de montage entre 42 et 50
heures?

La rponse cette question viendra d'un paramtrage du second membre, o comme on l'a dit plus
haut sa seconde composante devient 42 + 8 avec variant entre 0 et 1.

Yves Correc 25/11/2007

624

Recherche Oprationnelle Programmation linaire : dualit

La variation de va tre limite par la positivit du second membre, dont la premire composante
s'annuler va tre la premire, pour = 15/16. On fait donc le changement de variable et on pivote la
colonne b, puis tout le tableau suivant l'algorithme dual (avec a<0 et c<0 car on maximise):
x4

x3

x4

x3

x6

-2/3

1/3

-16/3

x6

-2/3

1/3

-16/3

x2

-1/3

4/15

-8/3

x2

-1/3

4/15

7/2

-8/3

x5

2/3

-11/15

16/3

x5

2/3

-11/15

16/3

x7

1/5

11

x7

1/5

11

x1

1/3

-1/15

8/3

x1

1/3

-1/15

23/2

8/3

-1/3

-11/15

-69

-8/3

-1/3

-11/15 -143/2

-8/3

Ce qui nous donne pour tableau final (optimum toujours dgnr avec 3 contraintes satures x3, x4,
et x6):
x6

x3

x4

-3/2

-1/2

x2

-1/2

1/10

7/2

x5

-2/5

x7

1/5

11

x1

1/2

1/10

23/2

-1/2

-9/10

-143/2

Le bnfice maximal correspond = 15/16, c'est dire une dure de fonctionnement de l' atelier de
montage de 49 heures 1/2 par semaine. Par contre on doit remarquer que la solution optimale trouve
n'est pas entire: on devra produire 11,5 armures A et 3,5 armures B par semaine pour un bnfice
de 71 cus et demi !
Nous ne pouvons pas nous arrter cette solution, qui bien que valable sur le plan mathmatique, n'a
pas de sens pour le problme physique de production initialement pos.
Nous pouvons bien sr penser raisonner sur un cycle de deux semaines et non d'une semaine, mais
c'est une fausse rponse car la taille du cycle temporel dpendrait alors, on le voit bien, de la taille du
dnominateur de la solution trouve, ce qui n'est pas raliste Nous pouvons aussi penser tronquer
ou arrondir la solution continue trouve, mais des contre-exemples sont l pour prouver que l'on peut
trs bien aboutir des solutions assez loignes de l'optimum entier recherch.
La bonne solution se trouve du ct de la programmation linaire en nombres entiers (PLNE), dont les
mthodes visent trouver des solutions entires aux problmes poss. Mais nous abordons l une
autre branche (fort intressante) de la recherche oprationnelle.

Yves Correc 25/11/2007

625

Recherche Oprationnelle Programmation linaire : dualit

6.5.2. Paramtrage de la fonction conomique


A l'optimum, les cots ont une valeur bien dtermine: ils font partie des donnes du problme, en
principe fixes. Mais en pratique ces cots sont de fait soumis des variations ou des incertitudes non
ngligeables. L'optimum trouv avec les donnes initiales a par consquent peu de chances de rester
valable. La question qui se pose alors est: jusqu' quel point? Aprs avoir rsolu le problme avec les
donnes initiales, que peut-on savoir de l'volution de la solution en fonction de celle des coefficients
de la fonction conomique?
Imaginons par exemple qu' la lumire des rsultats du paragraphe prcdent le chef d'entreprise
dcide d'allouer 90 heures la fabrication (FAB). Dans ces conditions, que se passera-t-il si le cot de
production sur la premire chane (de laquelle sortiront alors tous les appareils) augmente de 20KF
120KF?
Nous allons donc rcrire cette fonction conomique en fonction d'un paramtre qui variera entre 0 et
1 quand C variera entre C et C' :
C = C + (C' C)
avec 0 1
C'est cette fonction conomique que nous allons chercher optimiser, en x et . Pour cela nous
allons rsoudre le problme initial avec =0, et partir de ce premier optimum faire varier .
Que va-t-il se passer ?
Gomtriquement, on observe que le domaine admissible dfini par les contraintes ne bouge pas,
mais que la direction d'optimisation, le vecteur gradient de la fonction conomique, C , va voir sa
direction (en rouge) changer en fonction de l'volution de ses composantes, et donc de . La direction
d'optimisation va donc se rapprocher de la normale (en bleu) l'une des facettes contenant le point
optimum, puis la dpasser (en vert), entranant la reprise du dplacement dans cette nouvelle
direction (vers le point A).
Cela signifie que la solution de base ne change pas avec l'volution de , et reste admissible, mais
qu'elle ne va sans doute pas tester optimale. Ce qui se produira lorsque les coefficients de la ligne C
cesseront d'tre tous ngatifs (maximisation) ou tous positifs (minimisation). Et il faudra reprendre
l'optimisation dans cette nouvelle direction, c'est dire le cheminement classique du simplexe, aprs
un changement de variable = 1 + ' , partir de la valeur 1 qui l'annule.
x1=0

x3=0

D
x5=0

A
C1

x4=0

B1

x2=0

gradient

Deux cas pourront alors se prsenter, aprs avoir trouv une nouvelle base ralisable:
Yves Correc 25/11/2007

626

Recherche Oprationnelle Programmation linaire : dualit

On peut continuer le paramtrage, jusqu' un ventuel nouvel optimum, directement ou bien


par l'intermdiaire d'un ou plusieurs sommets intermdiaires (domaine ferm)
Le problme n'admet plus de solution finie (domaine ouvert d'un ct)
Min z = (20 + 100 ) x1 + 60 x2
3 x1 + x2 + x3 = 90
x1 + 2 x2 + x4 = 70
x1 + x2 - x5 = 30

Le problme initial s'crit:

(01, x10, x20)

De la mme manire qu'au paragraphe prcdent, on va complter le tableau de Tucker initial, ici
d'une ligne supplmentaire associe la ligne c pour le paramtrage de la fonction conomique.
On ne dtaillera pas le calcul qui s'opre classiquement, les choix tant faits sur la ligne c et la
colonne b (puisque est en fait nul durant cette premire phase, et qu'il nous importe seulement de
connatre les termes en dans l'criture de la fonction conomique l'optimum B1, point de dpart
effectif de la post-optimisation. La ligne supplmentaire subit donc simplement les pivotages).
On peut aussi tout simplement partir du tableau final du paragraphe prcdent, o l'on rcrira la
fonction conomique initiale z = (20 + 100 ) x1 + 60 x2 en fonction des variables hors base (ici x2
et x5, en remplaant x1 par son expression tire de la premire ligne, soit x1 = 30 x2 + x5.
Ce qui donne

Z = 600 + 3000 + (40 100 ) x2 + (20 + 100 ) x5

Quelle que soit la mthode utilise, le tableau final et le systme associ (x1, x3, x4 en base) sont :
(1)

x2

x5

x1

-1

30

x1 + x2 - x5 = 30

x4

40

x4 + x2 + x5 = 40

x3

-2

x3 2 x2 + 3 x5 = 0

40

20

-600

-100

100

-3000

z - 600 - 3000 = (40 - 100 ) x2 + (20 + 100 ) x5

La transformation du tableau va s'effectuer en deux tapes, comme au paragraphe prcdent.


Choix de la variable entrante:
(1)
On recherche dans la ligne le pivot qui ralise min (Cj / j ) compris entre 0 et 1
(intervalle de variation de ). Si l'on n'en trouve pas, la solution optimale actuelle le
restera dans tout l'intervalle de variation de , et le paramtrage est termin. Seule
voluera la valeur de la fonction conomique en fonction de .
(2)
Puis on pivote la ligne c pour tenir compte du changement de variable = 1 + '
(attention le Ci de la colonne pivot devient nul)
Ici, quand augmente, le coefficient de x2 s'annule pour 1 = 40/100 et devient ensuite ngatif. Le
pivot retenu pour transformer la ligne c est 100 (changement de variable = 40/100 + ') et la
variable x2 va entrer en base: on augmente x2 jusqu'o?

Choix de la variable sortante:


(3)
On applique le critre du simplexe primal (i tel que min bi / aij avec bi >0 et aij >0)
(4)
Puis on transforme l'ensemble du tableau par pivotage sur l'lment trouv

Yves Correc 25/11/2007

627

Recherche Oprationnelle Programmation linaire : dualit

Les tableaux correspondants sont:


(2-3)

x2

x5

(4)

x1

x5

x1

-1

30

x2

-1

30

x4

40

x4

-1

10

x3

-2

x3

60

60

-1800

60

-1800

-100

100

-3000

100

OPTIMUM

L'optimum est atteint car aucune augmentation de ne permet plus d'amliorer (minimiser) la fonction
conomique, dont l'criture en ce point (A: x1 = 0 et x2 = 30) est:
ou encore:
Z = 1800 + 100' x1 + 60 x5
Z = 1800 + (100 - 40) x1 + 60 x5
Revenant au problme originel, nous pouvons maintenant dire que:
lorsque le cot unitaire de production sur la premire chane volue de
20KF
(20+100x40/100) = 60KF, le cot total de production passe de 600 KF 1800KF (toute la
production tant assure par la premire chane (gradient rouge, point B1, x1 = 30 et x2 = 0).
Pour un cot unitaire de 60KF, et un cot global de production de 1800KF, toute rpartition de
la production entre les deux chanes est valable (facette B1A orthogonale au gradient).
Lorrsque le cot unitaire sur le premire chane devient suprieur 60KF, le cot total reste
gal 1800KF tandis que la production est assure intgralement sur la deuxime chane
(gradient vert, point A, x1 = 0 et x2 = 30).

Yves Correc 25/11/2007

628

Recherche Oprationnelle Programmation linaire : dualit

6.6.

COMPLEMENTS
6.6.1. Exercice 12-9-7-6-10

Exercice
Une grande banque nationalise souhaite investir des fonds importants. Cinq choix sont
possibles, dont les rapports annuels sont les suivants :
Actions de socits offshore: 12% , immobilier aux Bahamas: 9% , studios de cinma en
Amrique du sud : 7% , nouvel emprunt russe: 6% , loterie nationale : 10%.
Ces taux tant supposs rester constants dans un futur proche, on cherche dterminer la
politique d'investissement assurant le rendement global maximal, tout en respectant les rgles
suivantes, issues d'une analyse trs fine des risques du march par les spcialistes d'Andersme
Hatoovan Consulting :

$
$
$

La somme des investissements en actions et en studios ne doit pas excder la somme des
investissements en emprunt russe et en loterie nationale.
La somme des investissements en immobilier et en loterie nationale doit tre au moins gale
l'investissement en studios.
L'investissement immobilier ne doit pas excder celui ralis en loterie nationale.

(1)

Formuler le problme en termes de programmation linaire.

(2)

Dterminer la politique d'investissement qui maximise le rendement global.

(3)

Peut-on avoir une indication simple de l'incidence sur ce rendement du choix forc de l'un des
investissements non retenus dans la solution optimale ?

(4)

Lactionnaire majoritaire de la banque amne celle-ci investir malgr tout dans limmobilier.
Que devient la solution optimale ?

Solution

Appelons x1, x2, x3, x4, x5 les fractions de la capacit d'investissement de la banque alloues aux
actions, l'immobilier, aux studios, l'emprunt et la loterie.
La fonction maximiser est le rapport global (exprim en % par an de l'investissement):
Z = 12 x1 + 9 x2 + 7 x3 + 6 x4 + 10 x5
Les rgles d'investissement s'crivent:
x1 + x3 x4 + x5
sans oublier la contrainte additionnelle x1 + x2 + x3 + x4 + x5 1
x2 + x5 x3
x2 x5
qui rsulte de la dfinition des variables utilises !
x1, x2, x3, x4, x5 0
Ce qui donne l'nonc:
Max Z = 12 x1 + 9 x2 + 7 x3 + 6 x4 + 10 x5
x1
+ x3 - x4
- x5 0
-x2 + x3
- x5 0
x2
- x5 0
x1 + x2 + x3 + x4
+ x5 1

avec avec xi 0 (i=1,5)

Ce problme sans difficults particulires est rsolu en 3 tableaux par l'algorithme primal, et donne
pour solution optimale:
x1 = 1/2, x2 = x3 = x4 = 0, et x5 = 1/2.
Soit un investissement rparti par moitis entre actions offshore et loterie nationale.
Yves Correc 25/11/2007

629

Recherche Oprationnelle Programmation linaire : dualit

Tab1

x1

x2

x3

x4

x5

Tab2

x6

x2

x3

x4

x5

x6

-1

-1

x1

-1

-1

x7

-1

x7

-1

x8

-1

-1

x8

-1

-1

x9

x9

-1

12

10

-12

-5

18

22

Tab3

x6

x2

x3

x4

x9

Tab4

x6

x7

x3

x4

x9

x1

1/2

1/2

1/2

1/2

x1

2/3

-1/3

-1/3

1/3

1/3

x7

-1/2

3/2

1/2

1/2

x2

-1/3

2/3

2/3

1/3

1/3

x8

-1/2

-1/2

1/2

1/2

x8

-2/3

1/3

4/3

2/3

2/3

x5

-1/2

1/2

1/2

1/2

x5

-1/3

-1/3

2/3

1/3

1/3

-1

-2

-5

-4

-11

-11

-5/3

4/3

-5

-8/3 -31/3 -31/3

( )

OPTIMUM

Pivotage forc sur x2

A l'optimum, la fonction conomique a pour expression:


Z 11 = - x6 2 x2 5 x3 4 x4 11 x9
Le rendement espr est donc de 11%, et les cots de substitution sont respectivement de -2, -5, et 4 pour les variables x2, x3, x4.
On en dduit immdiatement la perte de rendement par unit de chaque variable investie de force la
place des choix optimaux:
Donner par exemple la valeur 1 (c'est dire 100% de l'investissement) x2 (immobilier Bahamas)
fera chuter le rendement de 2% (on observe effectivement qu'il passe de 11% 9%).
Par contre les contraintes lies aux rgles d'investissement ne seront probablement plus vrifies car
on sera sans doute sorti du domaine admissible.
Que va-t-il se passer si l'actionnaire majoritaire de la banque oblige celle-ci investir dans
l'immobilier?
On vient d'avoir grce au cot de substitution (2) une ide des consquences de ce choix, mais
seulement pour une petite augmentation de la variable x2. Ce choix revient donc introduire x2 en
base, c'est dire s'loigner du plan de contrainte associ. Jusqu'o peut-on se dplacer ainsi?
La rponse est donne par un pivotage classique, qui fera sortir x7 de la base (la plus proche
contrainte rencontre dans ce dplacement est alors x7), suivant le calcul qui conduit au tableau 4 cidessus. La solution (qui n'est plus optimale rappelons-le car on vient d'imposer une contrainte
arbitraire sur l'investissement x2) devient alors:
X1 = 1/3
X2 = 1/3
X3 = 0
X4 = 0
X5 = 1/3

au lieu de

x1 = 1/2
x2 = 0
x3 = 0
x4 = 0
x5 = 1/2

On peut donc aller jusqu' 1/3 d'immobilier, ce qui diminue le rendement global 10,33%
On remarquera au passage que l'origine, solution de dpart, est point multiple (la premire itration
donne un dplacement nul).

Yves Correc 25/11/2007

630

Recherche Oprationnelle Programmation linaire : dualit

6.6.2. Exercice 1-14-6


Exercice
On souhaite investir une somme comprise entre 1 et 4 millions d'cus. Trois choix sont
possibles, dont les rapports annuels sont les suivants :
Immobilier : 1% , actions : 14% , obligations : 6%.
Ces taux tant supposs rester constants dans un futur proche, on cherche dterminer la
politique d'investissement assurant le rendement global maximal, tout en respectant les rgles
suivantes, issues d'une analyse des risques du march :
L'investissement immobilier ne doit pas excder 2 millions d'cus.
L'investissement en obligations ne doit pas excder 3 millions d'cus.
L'investissement en actions ne doit pas excder 2 millions d'cus diminus du tiers de
l'investissement en obligations.
(1)

Formuler le problme en termes de programmation linaire.

(2)

Dterminer la politique d'investissement qui maximise le rendement global.

(3)

Que peut-on dire de plus sur cette solution ?

(4)

On s'affranchit de la contrainte limitant l'investissement en obligations, et on envisage de


doubler (passer 8 millions d'cus) la borne suprieure du capital investi. Etudier les
consquences sur la politique d'investissement (paramtrage du second membre)

Solution

Soit x1, x2, x3 les sommes investies en immobilier, actions, obligations, exprimes en millions d'cus.
Optimiser le rendement global (%) quivaut optimiser le rapport effectif (en ME), c'est dire
maximiser la fonction conomique Z = (x1 + 14 x2 + 6 x3) / 100. Pour la suite on laissera de ct le
facteur 100 pour allger le calcul (sans l'oublier la fin pour l'interprtation!).
Dans ces conditions, les contraintes sont les suivantes:
(immobilier x4)
X1 2
(obligations x5)
X3 3
X2 2 1/3 x3 (x6) que l'on rcrira 3 x2 + x3 6 (on n'oubliera pas la fin le facteur 3!)
(investissement max x7)
X1 + x2 + x3 4
X1 + x2 + x3 x8 + x9 = 1 (variable artificielle x9)
X1 + x2 + x3 1 qui peut tre rcrit
(si l'on utilise l'algorithme dual)
Ou encore
- x1 x2 x3 -1
Avec bien sr x1, x2, x3 0.
Dans un premier temps on va dmarrer avec une variable artificielle x9, et une colonne en vue du
paramtrage du second membre (placement passant de 4 8), ce qui donne les tableaux successifs:
(1)

x1

x2

x3

x8

(2)

x9

x2

x3

x8

x4

x4

-1

-1

-1

x5

x5

x6

x6

x7

x7

-1

x9

-1

x1

-1

14

-1

13

-1

-1

-1

Et on abandonne ligne M et variable x9

Yves Correc 25/11/2007

631

Recherche Oprationnelle Programmation linaire : dualit

(3)

x1

x3

x8

(4)

x1

x3

x6

x4

x4

x5

x5

x6

-3

-2

x8

-1

-2/3

1/3

x7

x7

2/3

-1/3

x2

-1

x2

1/3

1/3

-13

-8

14

-14

4/3

-14/3

-28

On note le choix possible entre x5 et x7 pour la variable sortante: On se dirige vers un point multiple
Nous choisissons ici de pivoter en sortant x5 de la base (plus petit indice).
(5)

x1

x5

x6

(6)

x7

x5

x6

x4

x4

-1

2/3

1/3

-4

x3

x3

x8

-1

2/3

1/3

x8

x7

-2/3

-1/3

x1

-2/3

-1/3

x2

-1/3

1/3

x2

-1/3

1/3

-4/3

-14/3

-32

-1

-2/3

-13/3

-32

-4

Optimum

On croit pouvoir encore poursuivre (c = 1), mais le plus petit rapport b/a trouv est nul, et le
dplacement associ la sortie de base de x7 est nul.
Les valeurs optimales trouves sont donc x1 = 0, x2 = 1, x3 = 3, c'est dire un placement d'un million
d'cus en actions, de trois millions d'cus en obligations, et rien en immobilier, pour un rapport de 0,32
millions d'cus.
Les variables d'cart nulles X5, x6, x7, correspondent aux contraintes satures (rgles 2 et 3, et
investissement en bute).
La relaxation de la contrainte sur les obligations revient supprimer le plan de contrainte (x5 = 0), et
lancer une postoptimisation en paramtrant le second membre (ce que nous avions fait par prcaution
pour viter d'avoir reprendre tous les calculs avec la colonne ). Il faudra tout de mme repartir du
tableau (4) amput de la ligne x5.
La solution trouve reste la mme car nous n'avons fait que supprimer la contrainte responsable du
point multiple.
4bis

x1

x3

x6

5bis

x1

x7

x6

x4

x4

x8

-1

-2/3

1/3

x8

x7

2/3

-1/3

x3

3/2

3/2

-1/2

x2

1/3

1/3

x2

-1/2

-1/2

1/2

-2

4/3

-14/3

-28

-1

-2

-4

-32

-8

Optimum

0 = 1/2

On poursuit maintenant avec le paramtrage du second membre: le plan de contrainte (x2=0) est le
premier atteint dans le dplacement de la contrainte (x7=0) qui rsulte de l'augmentation de
l'investissement maximum permis, c'est dire de jusqu' la valeur 0 = 1/2.
Yves Correc 25/11/2007

632

Recherche Oprationnelle Programmation linaire : dualit

6bis

x1

x7

x6

7bis

x2

x7

x6

x4

x4

-1

-4

x8

x8

x3

3/2

3/2

-1/2

x3

x2

-1/2

-1/2

1/2

-2

x1

-2

-1

-1

-2

-4

-36

-8

-2

-1

-5

-36

-4

1 = 1/2

La nouvelle contrainte atteinte lors de l'augmentation de est le plan (x4=0), pour = 0 + 1 = 1.


8bis

x2

x7

x6

9bis

x2

x4

x6

x4

-1

-4

x7

-2

-1

-1

x8

x8

x3

x3

x1

-2

-1

x1

-2

-1

-5

-38

-4

-4

-1

-6

-38

Nouvel optimum pour = 1


Le nouvel optimum (Z ne dpend plus ) est obtenu pour x1 = 2, x2 = 0, x3 = 6, x4 = 0 (max 2 atteint
pour l' immobilier), x6 = 0 (rgle du tiers), x7 = 0 (investissement max), x8 = 7 (en plus de 1), et donne
un rapport de 380000 cus.
La contrainte sur l'investissement maximum est pousse sa borne suprieure de 8 millions d'cus
(=1), tandis que le domaine admissible s'est gomtriquement dform deux fois (passage aux
valeurs 1/2 puis 1 de ).
Les figures correspondant ces calculs sont donnes ci-aprs:
(1) Polydre du problme originel
(2) Polydre du problme modifi (contrainte x5 relaxe)
(3) Polydre associ la valeur = 1/2 (0)
(4) Polydre associ la valeur = 1 (1)

Yves Correc 25/11/2007

633

x3

Recherche Oprationnelle Programmation linaire : dualit

x5

5-6

x8

x1

3
x4

x6
4

x7

x2

Figure 1: Problme d'investissement originel (investissement max 4 M cus)

Yves Correc 25/11/2007

634

x3

Recherche Oprationnelle Programmation linaire : dualit

x7

5bis

x8

x1

x4

4bis

x6

x2

Figure 2: Problme d'investissement modifi (contrainte x5 relaxe)

Yves Correc 25/11/2007

635

x3

Recherche Oprationnelle Programmation linaire : dualit

6-7bis

x7

5bis

x8

x1

x4

4bis

x6

x2

Figure 3: Problme paramtr pour = 1/2 (0, investissement max 6 M cus)

Yves Correc 25/11/2007

636

x3

Recherche Oprationnelle Programmation linaire : dualit

8-9bis

6-7bis

x7

5bis

x8

x1

x4

4bis

x6

x2

Figure 4: Problme paramtr pour = 1

Yves Correc 25/11/2007

(1, investissement max 8 M cus)

637

Recherche Oprationnelle Programmation linaire : dualit

6.6.3. Exercice raffinerie


Exercice
Une raffinerie peut traiter deux types de ptrole brut. Par distillation fractionne, ces bruts
donnent des hydrocarbures varis, qui subissent ensuite des traitements complmentaires (puration,
dsulfurisation, cracking, reforming analytique) pour devenir des "bases" qui convenablement
mlanges permettent d'obtenir les produits commerciaux dsirs. Ceux-ci sont pour la raffinerie
considre au nombre de trois: essence, gasoil, fuel.
Pour une tonne de chaque brut, on extrait les quantits suivantes de ces trois produits (les
dchets tant ngligeables):
Produits:

Brut N1
(Moyen-Orient)

Brut N2
(Afrique)

Essence

0,5 tonne

0,5 tonne

Gasoil
Fuel

0,2 tonne
0,3 tonne

0,3 tonne
0,2 tonne

La production tant limite (par la capacit de certaines units de traitement, par les
possibilits de vente, et par les stockages disponibles), la raffinerie peut produire au maximum 6500
tonnes d'essence, 3000 tonnes de gasoil, et 3600 tonnes de fuel par jour.
Le bnfice ralis est de 8 units montaires par tonne de brut N1 traite, et de 10 units
montaires par tonne de brut N2 traite. Le problme est de savoir combien on doit traiter de ces
deux bruts par jour pour maximiser le bnfice.
(1)

Formuler le problme en termes de programmation linaire.


NB. On pourrait multiplier les contraintes par des entiers convenables pour rendre entiers les
coefficients initiaux du programme linaire. On ne le fera pas, pour ne pas se priver
d'indications utiles dans la suite de l'nonc.

(2)

Le rsoudre par la mthode du simplexe (tableaux rduits de Tucker).

(3)

A la suite d'alas conjoncturels, le profit c1 ralis sur 1 tonne de brut n1 peut varier de plus
ou moins 15% autour de 8 units montaires. Etudier l'impact de cette variation sur la solution
optimale.

Solution

Appelons x1 et x2 respectivement le nombre de tonnes de brut n1 et n2 traits.


La fonction conomique maximiser est le bnfice, qui s'crit

8 x1 + 10 x2

Les contraintes de production portant sur les produits drivs s'crivent (en tonnes):
Pour l'essence
0,5 x1 + 0,5 x2 6500
Pour le gasoil
0,2 x1 + 0,3 x2 3000
Pour le fuel
0,3 x1 + 0,2 x2 3600
Avec bien sr
x1, x2 0
Ce problme se rsout simplement en trois tableaux de Tucker, auxquels on aura pris la prcaution
d'ajouter une ligne supplmentaire sous la ligne c, pour se prparer rpondre la troisime
question qui porte sur le paramtrage de la fonction conomique.
Le profit c1 ralis sur 1 tonne de brut n1 peut varier de plus ou moins 15% autour de 8 units
montaires, ce qui veut dire que c1 a pour expression: 8 (0,15 * 8 * ) avec 0 1
ou plus simplement pour les calculs qui vont suivre:
8 + 1,2 avec -1 1
tandis que c2 reste gal 10, ce qui nous donne la dernire ligne mentionne plus haut.
Yves Correc 25/11/2007

638

Recherche Oprationnelle Programmation linaire : dualit

Les tableaux successifs sont donc:


x1

x2

x1

x4

x3

1/2

1/2

6500

x3

1/6

-5/3

1500

x4

2/10

3/10

3000

x2

2/3

10/3

10000

x5

3/10

2/10

3600

x5

1/6

-2/3

1600

10

4/3

-100/3

-100000

6/5

6/5

x3

x4

x1

-10

9000

x2

-4

10

4000

x5

-1

100

-8

-20

-112000

-36/5

12

-10800

OPTIMUM
La solution optimale cherche consiste donc traiter 9000 tonnes de brut n1 et 4000 tonnes de brut
n2, pour un bnfice de 112000 units montaires. La production rsultante est de 6500 tonnes
d'essence et 3000 tonnes de gasoil (contraintes satures), et 3500 tonnes de fuel (capacit rsiduelle
100 tonnes).
A l'optimum, le problme s'crit:
Max z 112000 10800 = ( - 8 7,2 ) x3 + ( -20 + 12 ) x4
Que va-t-il se passer si varie entre 1 et +1 ? On peut vrifier simplement que la solution trouve
reste optimale quand varie en tudiant le signe des coefficients de la fonction conomique:
Le coefficient de x3 reste ngatif si > -10/9, et celui de x4 si < 5/3, ce qui reste toujours vrai dans
l'intervalle [-1,+1]. Par consquent la solution optimale trouve le reste dans l'intervalle de variation de
, les valeurs correspondantes de x1 et x2 restant inchanges. Par contre le bnfice variera entre
112000 10800 et 112000 + 10800.
On peut aussi appliquer brutalement la mthode de paramtrage de la fonction conomique partir
de la solution optimale obtenue, et observer que l'on ne peut trouver de pivot dans la ligne ralisant
le minimum du rapport cherch entre 1 et +1 (car c'est ici l'intervalle de variation de ).

Yves Correc 25/11/2007

639

Вам также может понравиться