RELAXATION LAGRANGIENNE (NOTES DE COURS MPRO) On se

Transcription

RELAXATION LAGRANGIENNE (NOTES DE COURS MPRO) On se
RELAXATION LAGRANGIENNE (NOTES DE COURS MPRO)
1. D UALITÉ ET LAGRANGIEN
On se donne un ensemble X , une fonction f : x ∈ X 7→ f (x) ∈ R et une fonction
g:
X
x
→
Rp+q
7→ (g 1 (x), . . . , g p+q (x)).
Les p premières composantes de g permettront d’encoder les contraintes d’égalité, les q dernières les
contraintes d’inégalité. Considérons le problème
Min
s.c.
(P)
f (x)
x∈X
g i (x) = 0 i = 1, . . . , p
g i (x) ≤ 0 i = p + 1, . . . , p + q.
q
Notons Λ = Rp × R+ . On définit alors le lagrangien associé au problème (P)
L:
X × Λ −→
(x, λ) 7−→
R
f (x) + λT · g (x).
On vérifie facilement que
sup L (x, λ) =
λ∈Λ
½
f (x) si x est une solution réalisable de (P)
+∞ sinon.
Le problème (P) peut donc s’écrire
Minx∈X sup L (x, λ).
λ∈Λ
On a toujours (preuve facile)
(1)
inf sup L (x, λ) ≥ sup min L (x, λ).
x∈X λ∈Λ
λ∈Λ x∈X
En définissant G (λ) = infx∈X L (x, λ), on peut regarder le programme mathématique
(D)
Max G (λ)
s.c.
λ ∈ Λ.
appelé dual de (P). Le problème (P) est alors appelé problème primal. Notant v P (resp. v D ) la valeur de
(P ) (resp. (D)), l’inégalité (1) fournit l’inégalité suivante, appelée inégalité de dualité faible
vP ≥ vD .
Cette inégalité est extrêmement utile et constitue un moyen “automatique” de générer des bornes inférieures à un problème. La relaxation lagrangienne est la méthode consistant à utiliser v D comme borne
inférieure du problème (P).
1
2. P ROPRIÉTÉS ET CALCUL
Proposition 1. G est une fonction concave.
Démonstration. G est un infimum de fonctions affines (donc concaves).
La proposition suivante est évidente.
Proposition 2. Si X est fini, G est affine par morceaux.
Soit h une fonction définie sur une partie Y de Rn . Un surgradient p de h en un point λ ∈ Y est tel que
h(µ) − h(λ) ≤ p T (µ − λ) pour tout µ ∈ Y .
Proposition 3. Si x réalise l’infimum de L (x, λ) pour λ fixé, alors g (x) est un surgradient de G au point
λ.
Pp+q
Démonstration. Soit un tel x. Pour tout µ, on a G (µ)−G (λ) ≤ L (x, µ)−L (x, λ) = i =1 g i (x)(µi −λi ). Une méthode pour calculer v D , i.e. pour maximiser G (λ) sur Λ, consiste à utiliser un algorithme de
surgradient.
+
+
Soit P Λ la projection dans Λ définie par P Λ (λ) = (λ1 , . . . , λp , λ+
p+1 , . . . , λp+q ), avec la notation t =
max(0, t ). Supposons que l’on veuille maximiser G (λ) sur Λ, avec G concave. L’algorithme de sur-gradient
consiste à construire la suite
¶
µ
ρk
pk ,
λk+1 = P Λ λk +
||p k ||
où λ0 est choisi arbitrairement dans Λ, où p k est un sur-gradient de G au point λk , et où (ρ k ) est une
suite prédéterminée de réels strictement positifs telle que
lim ρ k = 0 et
k→+∞
+∞
X
ρ k = +∞.
k=0
Lorsque p k vaut 0, l’algorithme s’arrête, λk est alors le maximum de G .
Le fait que G soit concave assure la convergence de l’algorithme vers son supremum. Cette convergence est cependant lente (le pas de convergence devant nécessairement tendre vers 0).
3. R ELAXATION LAGRANGIENNE ET PROGRAMMATION LINÉAIRE
3.1. Hiérarchie des bornes. On s’intéresse maintenant au cas où les g i sont des fonctions affines et où
X est formé par les solutions réalisables d’un programme linéaire, en nombres entiers ou non.
Considérons d’abord le cas de la programmation linéaire en variables continues. Sans perte de généralité, on s’intéresse donc au problème
(PL)
Min c T x
s.c. Ax ≥ b
Qx ≥ r
x ∈ Rn
où A est une matrice réelle m × n et Q une matrice réelle k × n. Considérons le cas où l’on dualise les
contraintes Ax ≥ b. Dans ce cadre, on a G (λ) = inf{c T x +λT (b − Ax) : Qx ≥ r , x ∈ Rn }. Rappelons que v D
est la quantité supλ∈Rm G (λ).
Théorème 1. Si (PL) est réalisable, alors on a v D = v P L .
En d’autres termes, la valeur optimale du dual est égal à la valeur optimal du primal, comme pour
la dualité usuelle de la programmation linéaire. Notons que le cas où k = 0 coïncide d’ailleurs avec ce
dernier cas. Ce théorème dit donc plus : on a dualité forte en programmation linéaire même si on ne
procède qu’à une dualisation partielle des contraintes.
2
Preuve du théorème 1. Si (P) n’est pas réalisable ou d’optimum non borné, on a alors v D = −∞, et il n’y
a rien à montrer. Supposons donc v P fini et considérons d’abord le programme dual (au sens programmation linéaire) de (P). Notons x ∗ la solution optimale de (P) et λ∗ et µ∗ les solutions du dual. etc.
Regardons maintenant le cas de la programmation linéaire en nombres entiers, soit le problème suivant :
Min c T x
s.c. Ax ≥ b
Qx ≥ r
x ∈ Zn
(PLNE)
Considérons à nouveau le cas où l’on dualise les contraintes Ax ≥ b. Cette fois, on a G (λ) = inf{c T x +
λ (b − Ax) : Qx ≥ r , x ∈ Zn }.
T
Théorème 2. Soit v R la valeur du relâché linéaire de (PLNE). On a v D ≥ v R .
En d’autres termes, la relaxation lagrangienne donne toujours une meilleure borne que la relaxation
linéaire.
Preuve du théorème 2. Posons G R (λ) = inf{c T x + λT (b − Ax) : Qx ≥ r , x ∈ Rn }. Pour tout λ, on a donc
G (λ) ≥ G R (λ). D’après le théorème 1, supλ∈Rm G R (λ) est égal à v R . D’où l’inégalité annoncée.
Proposition 4. Posons X = {x ∈ Zn : Qx ≥ r }. Si X est fini ou si Q et r sont à coefficients rationels, alors
supλ∈Rm G (λ) = inf{c T x : Ax ≥ b, x ∈ conv(X )}.
Démonstration. Si X est fini ou si Q et r sont à coefficients rationnels, conv(X ) est un polyèdre dont les
sommets sont des éléments de X . On a donc alors G (λ) = inf{c T x + λT (b − Ax) : x ∈ conv(X )}. Comme
conv(X ) est un polyèdre, c’est l’ensemble des solutions d’un certain système d’inégalités linéaires. Le
théorème 1 permet de conclure.
3.2. Propriété d’intégrité. Dans la cas où X est de la forme {x ∈ Zn : Qx ≤ q}, on dit que la relaxation
lagrangienne a la propriété d’intégrité si pour tout λ, le problème
Min L (x, λ)
s.c. Qx ≥ r .
(2)
a une solution optimale entière. Dans ce cas, la borne obtenue par relaxation lagrangienne n’est pas
meilleure que celle obtenue par relaxation linéaire. En revanche, il peut être tout de même intéressant
de procéder à la relaxation lagrangienne pour des questions algorithmiques, voir Section 4.
Proposition 5. Si la relaxation lagrangienne a la propriété d’intégrité, alors v P = v R .
Démonstration.
4. AVANTAGES DE LA RELAXATION LAGRANGIENNE
Heuristique lagrangienne, non-utilisation de solver, etc.
5. QUELQUES APPLICATIONS
Nous donnons quelques exemples d’application classique de la relaxation lagrangienne. Il en existe
bien d’autres.
5.1. Plus court chemin sous contraintes de temps.
5.2. Voyageur de commerce.
3
5.3. Bin packing. Notons a i le poids de l’objet i et b la capacité commune des boîtes. ...
P
On a G (λ) = nd (λ) − ni=1 λi , avec d (λ) est la valeur optimale de
P
Min y + ni=1 λi x i
Pn
s.c.
i =1 a i x i ≤ b y
x i , y ∈ {0, 1}.
Nous allons maintenant construire un vecteur λ̄ de Rn pour lequel on aura en général G (λ̄) > d abi e,
ce qui montrera que la relaxation lagrangienne donne dans le cas du bin-packing une borne en général
strictement meilleure que celle donnée par relaxation linéaire.
Posons α la valeure maximale du programme suivant
P
Max b1 ni=1 a i x i
Pn
s.c.
i =1 a i x i ≤ b
x i , y ∈ {0, 1}.
α vaut au plus 1.
ai
.
Soit λ̄ défini par λ̄i = − αb
Proposition 6. On a G (λ̄) =
1
αb
Pn
i =1 a i .
Démonstration.
Cette proposition montre que dès que
Un exemple numérique est le suivant :
Pn
i =1 a i
>
l Pn
i =1 a i
b
m
bα, le vecteur λ̄ satisfait ce que l’on souhaite.
a 1 = 3, a 2 = 5, a 3 = 5, b = 7.
Dans
ce cas, on a α = 5/7 et on a l’inégalité ci-dessus. La borne donnée par la relaxation linéaire est
Pn
1 Pn
i =1 a i
= 13/7. La borne donnée par la relaxation lagrangienne est au moins αb
i =1 a i = 13/5. En utilisant
b
le fait que la solution optimale est entière, la relaxation lagrangienne assure alors une borne inférieure
au moins égale à 3 et la relaxation linéaire une borne inférieure égale à 2. La relaxation lagrangienne est
donc strictement meilleure que la relaxation linéaire dans ce cas-là.
4