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

5.

Dualité
en
programmation linéaire
Illustration de la notion

• Considérons une entreprise


produisant r produits finis: fk = demande du produit k =1, 2, …, r
utilisant s matières premières: hl = disponibilité de la matière première
l = 1, 2, …, s

• L’entreprise dispose de n procédés de production (activités):


xj = niveau d’utilisation du procédé j = 1, 2, …, n
cj = coût unitaire d’utilisation du procécédé j = 1, 2, …, n
Le procédé j
produit ekj unités de produit k =1, 2, …, r
utilise glj unités de matière l = 1, 2, …, s
pour chaque unité de son utilisation.
Illustration de la notion

• Considérons une entreprise • Problème de l’entreprise: déterminer le


produisant r produits finis: niveau d’utilisation de chaque procédé de
fk = demande du produit k =1, 2, …, r production pour satisfaire les demandes en
utilisant s matières premières: produits sans excéder les disponibilités des
hl = disponibilité de la matière l = 1, 2, …, s matières premières tout en minimisant le
coût total de production.
• L’entreprise dispose de n procédés de production
(activités): • Modèle
xj = niveau d’utilisation du procédé
j = 1, 2, …, n
n
cj = coût unitaire d’utilisation du procédé
j = 1, 2, …, n
min z  c
j 1
jxj

Le procédé j
n
produit ekj unités de produit k =1, 2, …, r
utilise glj unités de matière l = 1, 2, …, s
Sujet à e
j 1
kj x j fk k  1,2,..., r (demandes)
pour chaque unité de son utilisation.
n

g
j 1
lj x j  hl l  1,2,..., s (disponibilités )

xj 0 j  1,2,..., n
Illustration de la notion

• Un entrepreneur propose à l’entreprise d’acheter les quantités de ses


matières premières et de lui vendre les quantités de produits pour satisfaire
les demandes.
• Il doit énoncer (déterminer) des prix unitaires
vk pour les produits k = 1, 2, … , r
wl pour les matières l = 1, 2, …, s.
n
min z  c
j 1
jxj

n
Sujet à e
j 1
kj x j fk k  1,2,..., r (demandes) vk

g
j 1
lj x j  hl l  1,2,..., s (disponibilités ) wl

xj 0 j  1,2,..., n
Illustration de la notion

• L’entrepreneur doit déterminer des n

prix qui soient intéressants pour min z  c


j 1
jxj

l’entreprise. n

• Pour vérifier l’intérêt de faire affaire


Sujet à e
j 1
kj x j fk k  1,2,..., r (demandes) vk

avec l’entrepreneur, l’entreprise doit g


n

lj x j  hl l  1,2,..., s (disponibilités ) wl
j 1
vérifier que pour chacun de ses
xj 0 j  1,2,..., n
procédés de production j, le coût
d’acheter les unités de produits
fabriquées par une unité d’utilisation
du procédé j en tenant compte de ce
qu’elle reçoit de l’entrepreneur pour r s
les unités de matières qu’elle évite  ekj vk   g lj wl ≤ cj
k 1 l 1
alors d’utiliser, que ce coût n’excède  
pas le coût unitaire d’utilisation cj du coût d'achat des revenu de la vente des
produits matières premières
procédé j
Illustration de la notion
r s

e v
kj k
 g lj
wl ≤ cj
k 1 l 1

coût d'achat des revenu de la vente des


produits matières premières

• Le problème de l’entrepreneur est de maximiser son profit en s’assurant


que ses prix restent intéressants pour l’entreprise
r s
max p  f
k 1
k vk  h w
l 1
l l

r s
Sujet à e
k 1
kj v k  g
l 1
lj wl cj j  1,2,..., n

vk  0 k  1,2,..., r
wl  0 l  1,2,..., s
Illustration de la notion

• Problème de l’entreprise: multiplions les contraintes de disponibilités par -1

n n
min z  c
j 1
jxj min z  c x j j
j 1
n n
Sujet à e
j 1
kj x j fk k  1,2,..., r (demandes
Sujet à ) e kj x j fk k  1,2,..., r (demandes)
j 1
n n
1 g
j 1
lj x j  hl l  1,2,..., s (disponibil

 itésg) lj x j  hl l  1,2,..., s (disponibilités )
j 1
xj 0 j  1,2,..., n xj 0 j  1,2,..., n
 E 
Problème de l’entreprise  G 
n
 
min z   c j x j e1 j
j 1
n
Sujet à  ekj x j  fk k  1,2,..., r (demandes ) 
j 1
n
  g lj x j  hl l  1,2,..., s (disponibil ités ) ek1 ek 2  ekj  ekn
j 1
xj  0 j  1,2,..., n 
erj
Problème de l’entrepreneur  g1 j
r s
max p  f k vk  h w l l

k 1
r
l 1
s
 g l1  g l 2   g lj   g ln
Sujet à e
k 1
kj v k  g
l 1
lj wl cj j  1,2,..., n 
vk  0 k  1,2,..., r
e1 j  ekj  erjg sj g1 j   glj   g sj
wl  0 l  1,2,..., s

 E T
G
T

Primal
n
min z  c x j j
min z  c T x
j 1 x 
n Sujet à  y
Sujet à e kj x j fk k  1,2,..., r (demandes)  E
 G  x 
 f    

j 1  h   w
n x0
 g
j 1
lj x j  hl l  1,2,..., s (disponibilités )
min cT x
xj 0 j  1,2,..., n Sujet à Ax  b
x0
Dual
r s
max p  f
k 1
k vk  h w
l 1
l l v 
max p   f T  hT   
 w
r s

e g
Sujet à
Sujet à kj v k  lj wl cj j  1,2,..., n
 E T  G T  v   c x
k 1 l 1    w
vk  0 k  1,2,..., r v, w  0
max bT y
wl  0 l  1,2,..., s
Sujet à AT y  c
y0
min cT x max bT y
Sujet à Ax  b Sujet à AT y  c
x0 y0

min z  8 x  6 y
Sujet à 5 x  3 y  30
2 x  3 y  24
x  3 y  18
x, y  0
min z  8 x  6 y
max  30v1  24v2  18v3
Sujet à  5 x  3 y  30  v1 
v  Sujet à  5v1  2v2  v3  8  x 
 2 x  3 y  24  
 2  3v1  3v2  3v3  6  y 
 x  3 y  18  v3 
v1 , v2 , v3  0
x, y  0

 5  3   30
 2  3   x    24 v1 
   y    5  2  1    8
 1  3    18  3  3  3  v2    6
    
v3 
Problème primal et problème dual

Problème de programmation linéaire avec inégalités


Problème primal Problème dual

min c xT max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0 y0

Problème de programmation linéaire sous forme standard


Problème primal Problème dual

min cT x max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0
min z  8 x  6 y
Sujet à 5 x  3 y  30
2 x  3 y  24
x  3 y  18
x, y  0
min cT x max bT y
Sujet à Ax  b Sujet à AT y  c
x0
min z  8 x  6 y max 30w1  24w2  18w3
Sujet à 5x  3 y  u  30  w1  Sujet à 5w1 + 2w2 + x 
w3  8
w   
2x  3y  p  24  2 3w1  3w2  3w3  6  y 
x  3y  h  18  w3  w1  0 u 
 
x, y , u , p , h  0 w2  0  p
x  5 2 1  8 w3  0  h 
  3 3 3  w1   6 
5 3 1 0 0   y  30  
 2 3 0 1 0  u    24
    
1 0 0   w2    0 
   
1 3 0 0 1   p  18  0 1 0   w3   0 
 h  0 0 1  0 
min z  4 x  6 y
Sujet à 6 x  3 y  10
2 x  2 y  20
x y 6
x, y  0

min z  4 x  6 y
max 10u1  20u2  6u3
Sujet à 6 x  3 y  10 u1 
u  Sujet à 6u1  2u2  u3  4  x 
2 x  2 y  20  
 2 3u1  2u2  u3  6  y 
 x  y  6 u3 
u1  0, u3  0
x, y  0

 6 3 10 
 2  x    u1 
 2     20  6 2  1    4
 1  1   y
 6 3 2 1 u2    6
    
u3 
Problème primal et problème dual

Problème de programmation linéaire avec inégalités


Problème primal Problème dual

min c x T max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0 y0

Problème de programmation linéaire sous forme standard


Problème primal Problème dual

min cT x max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0
min c T x
Sujet à Ax  b
x0

min c T x  0T s max bT y
Sujet à Ax  Is  b  AT 
Sujet à  T  y   
c
x  0, s  0  I  0

max bT y
Sujet à AT y  c
 Iy  0
max bT y
Sujet à AT y  c
y0
Théorèmes de dualité

• Il est facile de démontrer que nous pouvons passer d’une paire de


problèmes primal-dual à l’autre.
• Il est également facile de démontrer que le problème dual du problème dual
est le problème primal.
• Nous allons donc démontrer les théorèmes de dualité en se référant à la
paire où le problème primal est sous forme standard:

primal Dual

min cT x max bT y
Sujet à Ax  b Sujet à AT y  c
x0
Théorèmes de dualité

• Théorème de dualité faible


Si x x : Ax  b, x  0 (i.e., x est réalisable pour le problème primal) et
 
si y  y : A y  c (i.e., y est réalisable pour le problème dual),
T

alors bT y  cT x

Preuve En effet, bT y  xT AT y  xT c puisque AT y  c et que x  0 .

NOTE:
Si y est une solution réalisable du dual et x*est une solution optimale du primal
alors
bT y  c T x*  valeur optimale du primal
et ainsi,
bT y est une borne inférieure sur la valeur optimale du primal
Théorèmes de dualité

* *

• Corollaire Si x x : Ax  b, x  0 et y  y : A y  c , et si
T

bT y*  cT x* ,alors x* et y* sont des solutions optimales respectivement
pour le problème primal et pour le problème dual.

Preuve Du théorème de dualité faible, il découle que pour toute solution


réalisable x du problème primal

cT x  bT y* et par hypothèse bT y*  cT x* . Donc cT x  bT y*  cT x* .

Par conséquent x* est solution optimale du problème primal.


Une preuve similaire est utilisée pour démontrer que y* est solution
optimale du problème dual.
Théorèmes de dualité

• Théorème de dualité forte Si un des deux problèmes primal ou dual


possède une solution optimale avec valeur finie, alors la même chose est
vraie pour l’autre problème, et les valeurs optimales des deux problèmes
sont égales. Si un des deux problèmes n’est pas borné, alors le domaine
réalisable de l’autre problème est vide.

Preuve La seconde partie de l’énoncé découle directement du théorème de


dualité faible. En effet, supposons que le problème primal n’est pas bornée
inférieurement; ainsi cTx→ – ∞. Or si le problème dual était réalisable,
 
alors il existerait un y  y : A y  c et par le théorème de dualité faible,
T

nous aurions que bT y  cT x ;i.e., bTy serait une borne inférieure sur la
valeur de la fonction économique du primal cTx, une contradiction.
Théorèmes de dualité

Pour démontrer la première partie, supposons que le problème primal


possède une solution de base optimale x* pour laquelle la valeur de la
fonction économique est égale à z*.
Soit x j1 , x j2 ,..., x jm les variables de base correspondantes.
Dénotons cB  [c j1 , c j2 ,..., c jm ]T , et π le vecteur des multiplicateurs
associés à la base optimale. Rappelons que les coûts relatifs des variables
sont définis comme suit
c j  c j   T a j j  1, 2,..., n
où a  j dénote la je colonne de la matrice A.
Supposons que cette solution de base optimale est telle que
c j  c j   T a j  0 j  1, 2,..., n
Par conséquent
 T a j  c j j  1, 2,..., n
Théorèmes de dualité

Supposons que cette solution de base optimale est telle que


c j  c j   T a j  0 j  1,2,..., n
Par conséquent
 T a j  c j j  1, 2,..., n
ou aTj  c j j  1, 2,..., n

ce qui s’écrit sous la forme matricielle


aT  .
 T1 
 a2    AT  c     y : AT y  c
 
 T 
 a n 
c’est-à-dire que π est une solution réalisable pour le problème dual.
Théorèmes de dualité

Évaluons maintenant la valeur de la solution réalisable π pour le problème


dual. Rappelons d’abord la définition de π
T
  B 1 c B .
Il s’ensuit que
T T
bT  bT B 1 cB  ( B 1b)T cB  x*B cB  z * .
Par conséquent, il découle du Corollaire du théorème de dualité faible que
π est une solution optimale du problème dual, et que

 T b  z* .
Théorie des écarts complémentaires

• Les prochains résultats introduisent de nouvelles conditions nécessaires et


suffisantes pour que des solutions réalisables respectivement pour les
problèmes primal et dual soient optimales pour ceux-ci.
• Considérons d’abord la paire suivante de problèmes primal-dual

primal Dual

min cT x max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0
Théorie des écarts complémentaires

• Théorème des écarts complémentaires 1


Soit x et y des solutions réalisables respectivement pour les problèmes
primal et dual précédents. Alors x et y sont des solutions optimales pour ces
problèmes si et seulement si pour tout j = 1,2,…,n
i  xj  0  aTj y  c j min cT x max bT y
Sujet à AT y  c
 ii  aTj y  c j  x j  0 Sujet à Ax  b x
x0
Preuve Démontrons d’abord que les conditions sont suffisantes. Supposons
que les conditions (i) et (ii) sont satisfaites pour tout j=1,2,…,n. Alors
x j [aTj y  c j ]  0 j  1, 2,..., n

n
Donc j 1
x j  aTj y  c j   0
n
 x j aTj y   x1aT1  x2aT2   xn aTn  y
Théorie des écarts complémentaires
j 1
 aT1 
 T
  x1n , xn   2  y
x j [aTj y  c j ]  0 j  1, 2,...,
a
, x2 ,
 
n
aT 
Donc j 1
x j  aTj y  c j   0
 x T AT y
 n 

n n n
Or 
j 1
x j  a y  c j  
T
j j 1
x a y
T
j j j 1
x j c j  x T AT y  c T x  b T y  c T x

Par conséquent
bT y  c T x
et le corollaire du théorème de dualité faible implique que x et y sont des
solutions optimales respectivement pour les problèmes primal et dual.
Théorie des écarts complémentaires

Inversement, démontrons que les conditions sont nécessaires. Supposons


que les solutions x et y sont optimales respectivement pour le primal et le
dual. Par conséquent, se référant à la première partie de la preuve
n

j 1
x j  aTj y  c j   bT y  c T x  0

Puisque x j  0 et aTj y  c j j  1, 2,..., n,


il sensuit que x j  aTj y  c j   0 j  1, 2,..., n

et la preuve est complétée.


Théorie des écarts complémentaires

• Considérons maintenant l’autre paire de problèmes primal-dual


min cT x max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0 y0

• Théorème des écarts complémentaires 2


Soit x et y des solutions réalisables respectivement pour les problèmes
primal et dual précédents. Alors x et y sont des solutions optimales pour ces
problèmes si et seulement si
pour tout j = 1,2,…,n pour tout i=1,2,…,m

i  xj  0  aTj y  c j iii  a i  x  bi  yi  0
ii  aTj y  c j  xj  0 iv  yi  0  a i  x  bi
Théorie des écarts complémentaires

Preuve Ce théorème peut être démontré comme un corollaire du


théorème des écarts complémentaires 1. Transformons le problème primal
sous une forme standard en introduisant des variables d’écarts si ,
i=1,2,…,m. Le problème devient alors
min cT x min cT x
Sujet à Ax  Is  b Sujet à Ax  b
x, s  0 x0

Le dual de ce problème s’écrit

max bT y max bT y
Sujet à AT y  c  Sujet à AT y  c
I y0 I y0
Théorie des écarts complémentaires

Appliquons le théorème précédent pour la paire de problèmes suivants


min cT x max bT y
Sujet à Ax  Is  b y Sujet à AT y  c x
x, s  0 I y 0 s
Pour j=1,2,…,n
i  xj  0  aTj y  c j
 ii  aTj y  c j  xj  0

et pour i=1,2,…,m
iii  s i  0   yi  0
iv   y i  0  si  0
Théorie des écarts complémentaires

Pour j=1,2,…,n

i  xj  0  aTj y  c j
 ii  aTj y  c j  xj  0

et pour i=1,2,…,m
min cT x
iii  s i  0   yi  0 Sujet à Ax  Is  b
iv   y i  0  si  0 x, s  0
Or si  ai x  bi et alors les conditions deviennent
iii  a i  x  bi  yi  0
iv  yi  0  a i  x  bi
Algorithme dual du simplexe

• L’algorithme dual du simplexe est une méthode itérative pour résoudre un


problème de programmation linéaire sous sa forme standard
min z  c1 x1  c 2 x 2  c n x n
Sujet à
a11 x1  a12 x 2  ...  a1n x n  b1
a 21 x1  a 22 x 2  ...  a 2 n x n  b2
. . . .
. . . .
a m1 x1  a m 2 x 2  ...  a mn x n  bm
xj 0 j  1,2,..., n
Algorithme dual du simplexe

• À chaque itération nous avons une solution de base du problème qui n’est
pas réalisable, sauf à la dernière itération de l’algorithme, et pour laquelle
les coûts relatifs de toutes les variables sont non négatifs.
• Par exemple, considérons le problème
min z  3 / 2u  1/ 2h  27
Sujet à x  1/ 4u  1/ 4h  6 / 4
 1/ 4u  p  3 / 4h  15 / 2
y  1/12u  5 /12h  13 / 2
x, y , u , p , h  0
Algorithme dual du simplexe

Analysons une itération typique de l’algorithme où le tableau du simplexe


associé à la solution de base actuelle est le suivant:

c j  0 j  1,2,..., n
c ji  0 i  1,2,..., m
Critère de sortie

c j  0 j  1,2,..., n Si b i  0 i  1,2,..., m, alors la solution est réalisable


c ji  0 i  1,2,..., m et optimale. L' algorithme se termine.
Critère de sortie

c j  0 j  1,2,..., n  
Sinon soit b r  min bi  0 . Si a rj  0 j  1, 2,..., n, alors
1i  m
c ji  0 i  1,2,..., m
le problème n'est pas réalisable. En effet puisque
n
 a rj x j  0 et br  0
j 1
n
il est impossible que  a rj x j  b r .
j 1
Critère de sortie

c j  0 j  1,2,..., n
c ji  0 i  1,2,..., m

1i  m
 
Sinon soit b r  min b i  0. x jr est la variable de sortie.
Le pivot se fera dans la ligne r du tableau.
Critère d’entrée

c j  0 j  1,2,..., n
c ji  0 i  1,2,..., m
Nous allons choisir la variable d’entrée xs de telle sorte que
b1  a1s xs i) la valeur de la variable de sortie xr augmente lorsque
a rs  0 
la valeur de xs augmente
ii) les coûts relatifs des variables demeurent non
br  ars xs négatifs lorsque le pivot sur a rs est complété pour
effectuer le changement de base
bm  ams xs
Critère d’entrée

c j  0 j  1,2,..., n
En complétant le pivot sur a rs le coût relatif de la
c ji  0 i  1,2,..., m variable xj devient
a rj
cj  cs
a rs  0 a rs
Si a rj  0, alors puisque c s  0 et a rs  0,
la valeur de c j ne peut qu' augmenter.
Critère d’entrée

c j  0 j  1,2,..., n
En complétant le pivot sur a rs le coût relatif de la
c ji  0 i  1,2,..., m variable xj devient
a rj
cj  cs
a rs  0 a rs
Pour tout j tel que a rj  0, il faut s' assurer que le nouveau cout relatif
de la variable x j demeure non négatif; i.e.,
a rj
cj  cs  0
a rs
Critère d’entrée
Pour tout j tel que a rj  0, il faut s' assurer que le nouveau cout relatif
de la variable x j demeure non négatif; i.e.,
a rj
cj  cs  0 j tel que a rj  0
a rs
cj cs
 0 j tel que a rj  0
a rj a rs
cj cs
 j tel que a rj  0.
a rj a rs
Donc l' indice s de la variable d' entrée est tel que
cs  c j  cs  c j 
 max  : a rj  0 ou  min  : a rj  0
1 j  n  a rj   a rs 1 j  n   a rj 
a rs  
Pivot

• Pour retrouver le tableau du simplexe associé à la nouvelle base où la


variable d’entrée xs remplace la variable de sortie x j il suffit de faire un
r

pivot sur l’élément a rs  0 .


Convergence

• Hypothèse de non dégénérescence:


les coûts relatifs de toutes les variables hors base sont positifs à chaque
itération

• Théorème Considérons le problème de programmation linéaire sous forme


standard
min z  c T x
Sujet à Ax  b
x0
c, x  R n , b  R m
A matrice m  n
Sous l’hypothèse de non dégénérescence, l’algorithme dual du simplexe se
termine en un nombre fini d’itérations.
Convergence

• Preuve:
En supposant que la matrice A est de plein rang m, chaque solution de base
doit comporter m variables de base.

Il y a un nombre fini de façons de choisir m colonnes de A parmi les n


pour former des sous matrices m  m :
n  n!
m 
  m ! (n  m)!

Or les bases non réalisables constituent un sous ensemble de ces-dernières.


n  n!
Donc    est une borne supérieure sur le nombre de
  m ! (n  m)!
m
solutions de base non réalisables.
Convergence

• Considérons l’effet de compléter un pivot sur la valeur de la fonction


économique lors d’une itération de l’alg. dual du simplexe
Division de ligne r

par a rs

br
→  cs
a rs

Soustraire de

br
 z 0  ~ z0   z 0  c s  z0
a rs
puisque b r  0 , a rs  0, et c s  0 par hyp. de non déégénéres ence
dégénérescence
Convergence

~ br
 z 0   z0   z 0  c s  z0
a rs
puisque b r  0 , a rs  0, et c s  0 par hyp. de non dégénérescence
déégénéres ence

Donc ~ z0  z 0 et ainsi la valeur de l’objectif augmente strictement d’une


itération à l’autre.
Par conséquent une même solution de base non réalisable où les coûts
relatifs de toutes les variables hors base sont positifs, ne peut se répéter au
cours de l’application de l’algorithme dual du simplexe.
Puisque le nombre de ces dernières est borné (fini), il s’ensuit que
l’algorithme dual du simplexe doit être complété en un nombre fini
d’itérations.
Parallèle entre
algo. du simplexe et algo. dual du simplexe
Algo. du simplexe Algo. dual du simplexe

Recherche dans le domaine réalisable Recherche à l’extérieur du domaine


réalisable
Choisit la variable d’entrée pour réduire Choisit le variable de sortie pour éliminer
la valeur de la fonction économique une variable de base négative

Choisit la variable de sortie pour Choisit la variable d’entrée pour


préserver la réalisabilité préserver la condition d’optimalité c j  0 j

Stop quand une solution optimale est Stop quand la solution est réalisable ou
trouvée ou que le problème n’est pas quand le problème n’est pas réalisable
borné inférieurement

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