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