Vous êtes sur la page 1sur 17

Dualité en programmation linéaire Analyse de sensibilité

RO: Dualité et analyse de sensibilité

Prof: A. El maliki

ENCGC

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 1 / 17


Dualité en programmation linéaire Analyse de sensibilité

1 Dualité en programmation linéaire

2 Analyse de sensibilité

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 2 / 17


Dualité en programmation linéaire Analyse de sensibilité

Utilité de la dualité en programmation linéaire

La dualité est une notion essentielle en programmation linéaire. A chaque


programme linéaire initial dit primal (P), on associe un autre programme
linéaire dit dual (D).
La dualité présente un double intérêt :
1 Pour l’économiste et le gestionnaire, la dualité admet une
interprétation économique importante : la dualité permet de montrer
qu’un problème d’allocation optimale des ressources rares est aussi un
problème de tarification optimale de ces ressources ;
2 Pour le mathématicien, les propriétés liant le programme primal et
son dual permettront de développer des alogorithmes de résolution
rapides.
Les relations entre le primal et le dual se sont révélées extrêmement utiles
pour plusieurs applications particulièrement dans l’analyse de sensibilité.

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 3 / 17


Dualité en programmation linéaire Analyse de sensibilité

Illustration de la notion

Une compagnie, appelé MEUBLE, produit des bureaux, tables et chaises.


La fabrication de chaque type de produit nécessite de la matière première
(bois) et deux types d’activités : menuiserie et finition. La quantité requise
de chaque ressource est donnée comme suit :
Bureau Table Chaise Qté disp de ressource
Bois (plaque) 8 6 1 48
Menuiserie (heure) 2 1.5 0.5 8
Finition (heure) 4 2 1.5 20
Prix de vente ($) 60 30 20

On désire maximiser le revenu. On définit


x1 = nombre de bureaux fabriqués
x2 = nombre de tables fabriquées
x3 = nombre de chaises fabriquées

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 4 / 17


Dualité en programmation linéaire Analyse de sensibilité

Problème primal (P)

Le problème primal (P) est donné par

max
 z = 60x1 + 30x2 + 20x3

 8x1 + 6x2 + x3 ≤ 48 (ressource bois)
2x1 + 1.5x2 + 0.5x3 ≤ 8 (ressource menuiserie)

(P) s.c

 4x1 + 2x2 + 1.5x3 ≤ 20 (ressource finition)
x1 , x2 , x3 ≥ 0

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 5 / 17


Dualité en programmation linéaire Analyse de sensibilité

Problème dual (D)

Supposons qu’un entrepreneur veut acheter toutes les ressources de


MEUBLE. Il veut certainement que le prix total de ces ressources soit
minimal. On définit alors :
y1 = prix d’une plaque de bois
y2 = prix d’une heure de menuiserie
y3 = prix d’une heure de finition

L’entrepreneur doit payer : w = 48y1 + 8y2 + 20y3 et désire minimiser w ,


mais il doit payer suffisamment pour convaincre MEUBLE de vendre
ses ressources.
Par exemple, il doit payer au moins 60$ pour une combinaison de 8 plaques
de bois 2 heures de menuiserie et 4 heures de finition car MEUBLE peut
utiliser ces ressources pour fabriquer un bureau et le vendre pour 60 $.

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 6 / 17


Dualité en programmation linéaire Analyse de sensibilité

Problème dual (D)

L’entrepreneur doit payer au moins 60$, sinon MEUBLE ne verra aucune


raison de lui vendre ses ressources =⇒ 8y1 + 2y2 + 4y3 ≥ 60
De même on a :
6y 1 + 1.5y 2 + 2y 3 ≥ 30 et
y 1 + 0.5y 2 + 1.5y 3 ≥ 20
de plus y 1, y 2, y 3 ≥ 0
yi désigne le coût fictif ou prix ombre (shadow price)

Le problème dual (D) peut être donné comme :

min
 w = 48y1 + 8y2 + 20y3

 8y1 + 2y2 + 4y3 ≥ 60
6y1 + 1.5y2 + 2y3 ≥ 30

(D) s.c

 y1 + 0.5y2 + 1.5y3 ≥ 20
y1 , y2 , y3 ≥ 0

(yi désigne la valeur (prix) d’une unité de la ressource i.)


A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 7 / 17
Dualité en programmation linéaire Analyse de sensibilité

Interprétation économique du primal/dual

Le problème primal :Problème de production des activités


max z = nj=1 cj xj
P
 Pn
s.c j=1 aij xj ≤ bi , i = 1, · · · , m
xj ≥ 0, j = 1, · · · , n

-Variables de décision :
xj ≥ 0 : quantité de l’activité j à réaliser, pour j = 1, · · · , n.
- Modèle (vision du producteur) :
Pn
Maximiser le gain total lié à la réalisation des activités : max j=1 cj xj
Garantir que la consommation d’une ressource liée à la réalisation des
activités
P ne dépasse pas la quantité de ressource disponible :
j=1 aij xj ≤ bi , pour i = 1, · · · , m

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 8 / 17


Dualité en programmation linéaire Analyse de sensibilité

Interprétation économique du primal/dual

Le problème dual : Problème de détermination des prix des ressources


Pm
min
 Pm w = i=1 bi yi
i=1 aij yi ≥ cj , j = 1, · · · , n
s.c
yi ≥ 0, i = 1, · · · , m

- Variables de décision :
yi ≥ 0 : prix d’achat fictif (coût marginal) de la ressource i, i = 1, · · · , m.
-Modèle (vision de l’acheteur) :
minimiser le coût total lié
Pàm l’achat de toutes les ressources par un
acheteur extérieur : min i=1 bi yi
garantir au producteur que le gain lié à la vente des ressources
nécessaires
Pm à la réalisation d’une activité dépasse sa valeur :
i=1 aij yi ≥ cj , pour j = 1, · · · , n

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 9 / 17


Dualité en programmation linéaire Analyse de sensibilité

Règles de construction

Règles de construction :
Problème max Problème min
Contrainte Variable
≤ ≥0
= non restreinte
Variable Contrainte
≥0 ≥
non restreinte =

Exemples : Voir en classe

Théorème : Le problème dual du problème dual est le problème primal.

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 10 / 17


Dualité en programmation linéaire Analyse de sensibilité

Règles de construction

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 11 / 17


Dualité en programmation linéaire Analyse de sensibilité

Théorèmes de la dualité faible et forte

Théorème de la dualité faible :


Soient x et y deux solutions réalisables du problème primal (P) et du
problème dual (D), alors,
w = b · y ≥ z = c · x.

Interprétation de la dualité faible :


z ≤ w : profit ≤ valeur des ressources.
Théorème de la dualité forte :
Si le primal et le dual admettent tous les deux une solution
admissible, ils ont tous deux une solution optimale finie et la même
valeur objectif optimale ( zmax = wmin ).
Si le primal (dual) est non borné, le dual (primal) n’admet pas de
solution admissible.
Interprétation de la dualité forte : Le profit maximal est atteint si les
ressources ont été exploitées complètement, i.e. jusqu’à épuisement de leur
valeur, zmax = wmin .
A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 12 / 17
Dualité en programmation linéaire Analyse de sensibilité

Théorème des écarts complémentaires

(P) : (D) :
 z =c ·x
max min
 w =b·y
Ax ≤ b AT y ≥ c
s.c s.c
x ≥ 0 y ≥ 0
x1 , · · · , xn y1 , · · · , ym
m contraintes n contraintes
↓ ↓
s1 , · · · , sm e1 , · · · , en

Les variables d’écart du primal sont si = bi − (Ax)i , i = 1, · · · , n.


Les variables de surplus du dual sont ej = (AT y )j − cj , j = 1, · · · , m.

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 13 / 17


Dualité en programmation linéaire Analyse de sensibilité

Théorème des écarts complémentaires :exemple

soient x = (x1 , · · · , xn ) et y = (y1 , · · · , ym ) deux solutions réalisables de P


et de D.
Théorème des écarts complémentaires de la dualité
x et y sont respectivement deux solutions optimales pour (P) et (D) si et
seulement si
si ∗ yi = 0, i = 1, · · · , m ;
ej ∗ xj = 0, j = 1, · · · , n

Si la solution du primal ou du dual est connue, on peut déterminer la


solution optimale du problème complémentaire.
Relations entre variables et contraintes
Si une contrainte n’est pas saturée (si 6= 0) la variable duale yi
associée à cette contrainte est nulle
Si une contrainte est saturée (si = 0) la variable duale associée yi est
6= 0 et a pour valeur au signe près, le coefficient de si (coût marginal)
dans la fonction économique à l’optimum.
A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 14 / 17
Dualité en programmation linéaire Analyse de sensibilité

Théorème des écarts complémentaires : exemple

La solution optimale du problèm primal de MEUBLE


est :(x1 , x2 , x3 ) = (2, 0, 8). En utilisant le théorème des écarts
complémentaires déterminer la solution du probème dual : Les variables
d’écart
 pour le problème primal sont
 s1 = b1 − a11 x1 − a12 x2 − a13 x3 = 48 − 8x1 − 6x2 − x3
(I ) s2 = b2 − a21 x1 − a22 x2 − a23 x3 = 8 − 2x1 − 1.5x2 − 0.5x3
s3 = b3 − a31 x1 − a32 x2 − a33 x3 = 20 − 4x1 − 2x2 − 1.5x3

On remplace dans le système ci-haut les valeurs de x1 = 2, x2 = 0, x3 = 8
et on obtient

 s1 = 24
s2 = 0
s3 = 0

Les  variables d’écart (surplus) pour le problème dual sont
 e1 = 8y1 + 2y2 + 4y3 − 60
(II ) e2 = 6y1 + 1.5y2 + 2y3 − 30
e3 = y1 + 0.5y2 + 1.5y3 − 20

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 15 / 17


Dualité en programmation linéaire Analyse de sensibilité

Théorème des écarts complémentaires : exemple



 s1 ∗ y1 = 0 =⇒ y1 = 0 puisque s1 6= 0
s2 ∗ y2 = 0 =⇒?
s ∗ y = 0 =⇒?

 3 3
 e1 ∗ x1 = 0 =⇒ e1 = 0 puisque x1 6= 0
e2 ∗ x2 = 0 =⇒?
e3 ∗ x3 = 0 =⇒ e3 = 0 puisque x3 6= 0

On remplace dans le système (II) les valeurs de y1 = 0, e1 = 0, e3 = 0 et
on
 obtient un système à deux équations et deux variables :
e1 = 2y2 + 4y3 − 60 = 0
e3 = 0.5y2 + 1.5y3 − 20 = 0
On a
e1 − 4e3 = 2y2 + 4y3 − 60 − 4(0.5y2 + 1.5y3 − 20) = 0 =⇒ −2y3 − 20 = 0
donc y3 = 10. On remplace y3 = 10 :
e1 = 2y2 + 4 ∗ 10 − 60 = 0 =⇒ y2 = 10. Donc la solution optimale du
problème dual est (y1 , y2 , y3 ) = (0, 10, 10).
Les valeurs optimales du primal et dual :
zmax = 280 = wmin (Théorème de la dualité forte)
A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 16 / 17
Dualité en programmation linéaire Analyse de sensibilité

Analyse de sensibilité

Voir le fichier ListingAnalyseSensibilite.xls et des explications en classe.

A. El maliki (ENCGC) RO: Dualité et analyse de sensibilité 17 / 17