Dualité en programmation linéaire
Dualité en programmation linéaire
Dualité
en
programmation linéaire
Illustration de la notion
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
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’entreprise. n
lj x j ≤ hl l = 1,2,..., s (disponibilités) wl
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
alors d’utiliser, que ce coût n’excède
k =1
l =1
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
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
n n
min z = ∑c x
j =1
j j 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 (disponibilités) e k1 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 =1
k vk − ∑h w
l =1
l l
•
r 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
j =1
kj x j ≥fk k = 1,2,..., r (demandes) E
−G x ≥
f
−h
ν
w
n x≥0
− ∑g
j =1
lj x j ≥ −hl l = 1,2,..., s (disponibilités)
min c T 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
Sujet à
Sujet à ∑e kj v k − ∑g 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
wl ≥ 0 l = 1,2,..., s
max bT y
Sujet à AT y ≤ c
y≥0
min c T 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
min c x T max bT y
Sujet à Ax ≥ b y Sujet à AT y ≤ c x
x≥0 y≥0
min c T 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 c T x max bT y
Sujet à Ax = b Sujet à AT y ≤ c
x≥0
min z = −8 x − 6 y max 30 w1 + 24 w2 + 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
w ≤ 0 h
x 5 2 1
− 8 3
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
Sujet à 6u1 + 2u2 − u3 ≤ −4 x
2 x + 2 y = 20 u2
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 −6
y 3 2 −1 u2 ≤ −6
u3
Problème primal et problème dual
min c x T max bT y
Sujet à Ax ≥ b y Sujet à AT y ≤ c x
x≥0 y≥0
min c T 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é
primal Dual
min c T x max bT y
Sujet à Ax = b Sujet à AT y ≤ c
x≥0
Théorèmes de dualité
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é
* *
{ T
• Corollaire Si x ∈ {x : Ax = b, x ≥ 0} et y ∈ y : A y ≤ c , et si }
bT y* = cT x* ,alors x* et y* sont des solutions optimales respectivement
pour le problème primal et pour le problème dual.
π T b = z* .
Théorie des écarts complémentaires
primal Dual
min c T x max bT y
Sujet à Ax = b y Sujet à AT y ≤ c x
x≥0
Théorie des écarts complémentaires
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
x j [ a •T j y − c j ] = 0 [ x1n, x2 ,… , xn ] ⋮a•2 y
∀ j = 1, 2 ,=...,
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
T
x a y−
j •j ∑j =1
x j c j = x T AT y − c T x = bT 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
∑j =1
x j a•Tj y − c j = bT y − c T x = 0
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
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 c T x
(iii ) s i > 0 ⇒ − yi = 0 Sujet à Ax − Is = b
(iv ) − y i < 0 ⇒ si = 0 x, s ≥ 0
Or s i = a i • 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
• À 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
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 { }
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 a rs < 0 i) la valeur de la variable de sortie xr augmente lorsque
⇐
la valeur de xs augmente
⋮
ii) les coûts relatifs des variables demeurent non
br − ars xs négatifs lorsque le pivot sur ars 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
a rs 1≤ j ≤ n a rj − a rs 1≤ j ≤ n − a rj
Pivot
• Preuve:
En supposant que la matrice A est de plein rang m, chaque solution de base
doit comporter m variables de base.
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 [Link] non dégénérescence
déégénéresence
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