Recherche Op´erationnelle 1A Programmation Lin´eaire
Dualit´e
Zolt´an Szigeti
Laboratoire G-SCOP INP Grenoble, France
Algorithme du simplexe r´evis´e
Etant donn´es un PL sous forme standard, une base r´ealisable´ J, et sa forme standard par rapport `aJ :
A·x =b x ≥0 cT·x =z(max)
Aˆ·x= ˆb x≥0 ˆ
cT ·x=z(max)−zˆ0
1 bˆ= (AJ)−1·b,
2 πT =cJT ·(AJ)−1,
3 cˆT =cT −cJT ·Aˆ=cT −cJT·(AJ)−1·A=cT −πT ·A,
4 Aˆs = (AJ)−1·As,
5 zˆ0 =cT·x=cJT ·xJ =cJT ·bˆ=cJT ·(AJ)−1·b =πT ·b.
Dualit´e
Introduction du dual Primal
A·x ≤b x ≥0 cT·x =z(max)
On cherche une borne sup´erieure pour z(max).
Dual
Exemple 1x1+ 2x2 ≤3 3x1−1x2 ≤5 x1, x2 ≥0 6x1+ 4x2 =z(max)
On essaie de borner 6x1+ 4x2 par une combinaison lin´eaire des in´egalit´es.
Premi`ere tentative
6x1+ 4x2 ≤6x1+ 5x2=3(1x1+ 2x2) +1(3x1−1x2) ≤3·3 + 1·5 = 14 On sait maintenant que z(max)≤14.
Dual
Deuxi`eme tentative plus intelligente
6x1+ 4x2≤(y1+ 3y2)x1+ (2y1−y2)x2=y1(1x1+ 2x2) +y2(3x1−1x2)
≤y1·3 +y2·5
Pour que ce soit vrai il faut quey satisfasse : 6≤y1+ 3y2,4≤2y1−y2,y1,y2≥0.
On sait maintenant que z(max)≤3y1+ 5y2.
Pour avoir la meilleure borne sup´erieure on minimisera 3y1+ 5y2. D´efinition
Primal
1x1+ 2x2 ≤3 3x1−1x2 ≤5 x1, x2≥0 6x1+ 4x2 =z(max)
Dual
1y1+ 3y2≥6 2y1−1y2≥4 y1, y2≥0 3y1+ 5y2=w(min)
Dual
En g´en´eral (forme canonique) Primal
A·x ≤b x ≥0 cT·x =z(max)
Dual
yT·A≥cT y ≥0 yT·b =w(min)
On essaie de borner cT ·x par une combinaison lin´eaire des in´egalit´es : Borne sup´erieure
cT ·x≤ (yT ·A)·x =yT ·(A·x) ≤yT·b.
Pour que ce soit vrai il faut quey satisfasse : cT ≤yT ·Aet y ≥0.
On sait maintenant que z(max)≤yT·b.
Pour avoir la meilleure borne sup´erieure on minimisera yT ·b.
Dualit´e
En g´en´eral (forme canonique) Primal
A·x ≤b x ≥0 cT·x =z(max)
Dual
yT ·A≥cT y ≥0 yT ·b =w(min) Th´eor`eme faible de la dualit´e
Pour toutes solutions r´ealisablesx du primal et y du dual, on a : cT·x≤yT·b.
Dual
Th´eor`eme
Le dual du dual est le primal.
D´emonstration (forme canonique) (P)
A·x≤b x≥0 cT·x=z(max)
(D)
yT·A≥cT y ≥0 yT·b =w(min)
(D’)
uT ·(−AT)≥(−bT) u≥0 uT·(−c) =w′(min)
(P’)
(−AT)·y≤(−c) y≥0 (−bT)·y=z′(max)
Dual
En g´en´eral
Primal
A11·x1 +A12·x2 +A13·x3 ≤b1 A21·x1 +A22·x2 +A23·x3 =b2 A31·x1 +A32·x2 +A33·x3 ≥b3
0≤x1, x2, 0≥x3
c1T ·x1 +c2T·x2 +c3T ·x3 =z(max)
Dual
y1T·A11 +y2T ·A21 +y3T ·A31≥c1T y1T·A12 +y2T ·A22 +y3T ·A32=c2T y1T·A13 +y2T ·A23 +y3T ·A33≤c3T y1 ≥0, y2, y3 ≤0
y1T·b1 +y2T ·b2 +y3T·b3 =w(min)
Dualit´e
Th´eor`eme fort de la dualit´e Primal
A·x =b x ≥0 cT ·x =z(max)
Dual
yT·A≥cT
yT·b=w(min) S’il existe une solution r´ealisable du primal et du dual, alors on a :
z(max) =w(min).
Th´eor`eme fort de la dualit´e
D´emonstration (pour la forme standard)
1 Par le Th´eor`eme faible de la dualit´e, pour toutes solutions r´ealisables x′ du primal et y′ du dual, on a : cT ·x′ ≤y′T ·b,donc
z(max)≤w(min),et en particulierz(max) est fini.
2 simplexe r´evis´e s’arrˆete avec ˆcT ≤0,avec une solution optimale x du primal, 0≥cˆT =cT −πT ·A,donc
πest une solution r´ealisable du dual.
3 z(max)≤w(min)≤πT ·b =cT ·x =z(max),
par 1,πest une solution r´ealisable du dual,cT·x =πT·b,x est une solution optimale du primal.
4 z(max) =w(min).
Remarque
Les solutions r´ealisables x du primal et y du dual sont optimales si et seulement si cT ·x=yT ·b.(cT·x≤z(max) =w(min)≤yT ·b.)
Th´eor`eme des ´ecarts compl´ementaires
Th´eor`eme (pour la forme canonique)
Les solutions r´ealisables x du primal et y du dual sont optimales si et seulement si
1 si yi >0 alorsai ·x =bi ⇐⇒
si ai·x <bi alors yi = 0 ⇐⇒
yi(ai·x−bi) = 0.
2 si xj >0 alorsyT·aj =cj ⇐⇒
si yT ·aj >cj alors xj = 0 ⇐⇒
xj(yT ·aj −cj) = 0.
Th´eor`eme des ´ecarts compl´ementaires
D´emonstration cT ·x= P
cjxj ≤
P(yT·aj)xj = (yT·A)·x=yT ·(A·x) =P
yi(ai ·x)
≤P
yibi =yT·b.
x ety sont optimales⇐⇒
cT·x=yT·b ⇐⇒
on a ´egalit´e partout ⇐⇒
cjxj = (yT ·aj)xj pour toutj et yi(ai·x) =yibi pour touti (yT·aj −cj)xj = 0 pour toutj et yi(ai ·x−bi) = 0 pour touti.
Perturbation des donn´ees
(P)
A·x ≤b x ≥0 cT ·x =z(max)
(D)
yT·A≥cT y ≥0 bT ·y =w(min)
(Pε)
A·x≤b+ε x≥0 cT·x=zε(max)
(Dε)
yT·A≥cT y ≥0 (b+ε)T ·y =wε(min) Qu’est-ce qui se passe si l’on perturbe un peu le vecteur b ?
Peut-on dire quelque chose sur le changement de la fonction objectif ? Le poly`edre a chang´e, on ne voit pas comment calculer zε(max).
Utilisons la dualit´e ! Le poly`edre du dual n’a pas chang´e.
La solution optimale y du (D) ne change pas pourεpetit.
Perturbation des donn´ees
(P)
A·x ≤b x ≥0 cT ·x =z(max)
(D)
yT·A≥cT y ≥0 bT ·y =w(min)
(Pε)
A·x≤b+ε x≥0 cT·x=zε(max)
(Dε)
yT·A≥cT y ≥0 (b+ε)T ·y =wε(min)
On peut calculer le changement de la fonction objectif en utilisant le th´eor`eme fort de la dualit´e o`u y est une solution optimale du (D) et de (Dε) :
zε(max) = wε(min) = (b+ε)T ·y=bT·y+εT·y
= w(min) +εT ·y
= z(max) +εT ·y.
Une solution optimale du dual
Remarque
1 Peut-on trouver une solution optimale du dualapr`es l’ex´ecution du simplexe sur le primal ?
2 On a vu dans la d´emonstration du th´eor`eme fort de la dualit´e que siJ est une base optimale du primal alors πT =cJT ·(AJ)−1 est une solution optimale du dual.
3 Peut-on trouverπ dans le dernier tableau ?
4 On sait que ˆcT =cT −πT ·A,donc ˆ
cJT1 =cJT1−πT ·AJ1 = 0−πT ·I =−πT.
A J1 I b
cJ
1 0 −πT
Application de la dualit´e (Couplages)
Programme Lin´eaire (Primal)
Le probl`eme de trouver un couplage de cardinal maximum dans un graphe biparti G = (U,V;E) peut ˆetre ´ecrit comme un programme lin´eaire.
X
e∈δ(w)
x(e) ≤ 1 ∀w ∈U∪V, x(e) ≥ 0 ∀e ∈E, X
e∈E
x(e) = z(max).
Application de la dualit´e (Couplages)
Programme Lin´eaire (Primal) pour un graphe biparti G = (U,V;E) X
e∈δ(w)
x(e) ≤ 1 ∀w ∈U∪V, x(e) ≥ 0 ∀e ∈E, X
e∈E
x(e) = z(max).
Remarques
1 Le vecteur caract´eristique d’un couplage de G est une solution r´ealisable du (P).
2 Une solution de base de (P) est le vecteur caract´eristique d’un
couplage deGcar le poly`edre du (P) est entier par la r`egle de Cramer et puisque chaque sous-matrice carr´ee de la matrice d’incidence d’un graphebipartiest de d´eterminant 0,1 ou −1.
Application de la dualit´e (Couplages)
Le dual du (P)
y(u) +y(v) ≥ 1 ∀uv ∈E, y(w) ≥ 0 ∀w ∈U∪V, X
w∈U∪V
y(w) = w(min).
Remarques
1 Le vecteur caract´eristique d’un transversal de G est une solution r´ealisable du (D).
2 Un point d’extrˆeme du poly`edre du (D) est le vecteur caract´eristique d’un transversal de Gcar le poly`edre du (D) est entier par la r`egle de Cramer et puisque chaque sous-matrice carr´ee de la matrice
d’incidence d’un graphe bipartiest de d´eterminant 0,1 ou−1.
Application de la dualit´e (Couplages)
Th´eor`eme (K˝onig) Dans un graphe bipartie,
le cardinal maximum d’un couplage = la valeur optimale du (P) =
la valeur optimale du (D) =
le cardinal minimum d’un transversal.
A l’´epoque, la programmation lin´eaire n’existait pas !`