Continuous optimization Département d’Informatique Université Libre de Bruxelles 19 juin 2017 (Some corrections November 26, 2017) Dernière version : https://bitbucket.org/OPiMedia/dualite-lagrangienne
du dual lagrangien Références Principe général de relaxation Pour le programme z = max{c(x) | x ∈ X ⊆ Rn} zR = max{f (x) | x ∈ T ⊆ Rn} est une relaxation si X ⊆ T c(x) ≤ f (x) ∀x ∈ X =⇒ zR est une borne supérieure du problème initial Dualité lagrangienne 3 / 22
du dual lagrangien Références Programme en nombre entiers (PE) Soit z = max cx sous les contraintes Ax ≤ b, k contraintes “faciles” Dx ≤ d, m contraintes “difficiles” x ∈ Nn avec m, n ∈ N∗ c ∈ Rn A ∈ Rk,n b ∈ Rk D ∈ Rm,n d ∈ Rm Dualité lagrangienne 4 / 22
du dual lagrangien Références Reformulation du problème Remplaçons les contraintes “faciles” par une formulation implicite : z = max cx s.c. Dx ≤ d, m contraintes “difficiles” x ∈ X = {x ∈ Nn | Ax ≤ b} Dualité lagrangienne 5 / 22
du dual lagrangien Références Relaxation lagrangienne (RL(u)) ∀u ∈ Rm + on défini le problème RL(u) : z(u) = max cx + u(d − Dx) pénalités s.c. x ∈ X u est appelé multiplicateur de Lagrange ∀u ∈ Rm + : RL(u) est une relaxation de (PE) car {x ∈ X | Dx ≤ d} ⊆ X u ≥ 0 Dx ≤ d =⇒ cx + u(d − Dx) ≥ cx =⇒ RL(u) fournit une borne supérieure pour (PE) Dualité lagrangienne 6 / 22
du dual lagrangien Références Dual lagrangien z(u) = max cx + u(d − Dx) Prenons la meilleure relaxation possible : wLD = min u≥0 z(u) Proposition Une solution x(u) optimale de RL(u) qui est admissible pour (EP) et telle que (Dx(u))i = di si ui > 0 (complémentarité) a est aussi optimale pour (EP) a. Toujours vrai si contraintes d’égalités. En effet : wLD = min u≥0 z(u) ≤ cx(u) + u(d − Dx(u)) = cx(u) x(u) ∈ X Dx(u) ≤ d =⇒ cx(u) ≤ z⋆ z⋆ ≤ wLD =⇒ x(u) est solution optimale de (PE) Dualité lagrangienne 9 / 22
du dual lagrangien Références Qualité du dual lagrangien Supposons, par simplicité, X = {x1 , x2 , . . . , xT } fini, avec T très grand wLD = min u≥0 z(u) = min u≥0 {max x∈X cx + u(d − Dx)} = min u≥0 { max t=1,...,T cxt + u(d − Dxt )} = min η s.c. η ≥ cxt + u(d − Dxt ) pour t = 1, . . . , T u ∈ Rm + η ∈ R η représente une borne supérieure de z(u) Dualité lagrangienne 11 / 22
du dual lagrangien Références Qualité du dual lagrangien wLD = min η s.c. η ≥ cxt + u(d − Dxt ) pour t = 1, . . . , T u ∈ Rm + η ∈ R est un programme linéaire. Prenons son dual : wLD = max T t=1 µt cxt s.c. T t=1 µt = 1 − T t=1 µt (d − Dxt ) ≤ 0 µt ∈ RT + Dualité lagrangienne 12 / 22
du dual lagrangien Références Qualité du dual lagrangien wLD = max T t=1 µt cxt s.c. T t=1 µt = 1 − T t=1 µt (d − Dxt ) ≤ 0 µt ∈ RT + Théorème En posant x = T t=1 µt xt avec T t=1 µt = 1 et µt ∈ RT + : wLD = max cx s.c. Dx ≤ d x ∈ conv(X) Il est possible de montrer que ce résultat reste valable pour X infini. Dualité lagrangienne 13 / 22
du dual lagrangien Références Qualité du dual lagrangien La preuve de ce résultat révèle la structure du dual lagrangien. z(u) est convexe, linéaire par morceaux et non différentiable. Figure – [Wolsey 1998] Dualité lagrangienne 14 / 22
du dual lagrangien Références Qualité du dual lagrangien Corollaire Si conv(X) = {x ∈ Rn + | Ax ≤ b} alors wLD = max{cx | Ax ≤ b, Dx ≤ d, x ∈ Rn + } = zrelaxation linéaire Moyen de résoudre un programme linéaire avec un nombre exponentiel de contraintes sans les traiter explicitement. Dualité lagrangienne 15 / 22
du dual lagrangien Références Résolution du dual lagrangien wLD = min u≥0 z(u) avec z(u) = max t=1,...,T {cxt + u(d − Dxt )} Grand nombre de contraintes. Algorithme de plans coupants souvent difficile et peu efficace. Dualité lagrangienne 17 / 22
du dual lagrangien Références Sous-gradient Définition Soit f : Rm −→ R convexe. Un sous-gradient en u de f est un vecteur γ(u) ∈ Rm tel que f (v) ≥ f (u) + γ(u)T (v − u) ∀v ∈ Rm Si f est de classe C1 alors c’est le gradient γ(u) = ∇f (u) = ∂f ∂u1 , ∂f ∂u2 , . . . , ∂f ∂um , (u) Dualité lagrangienne 18 / 22
du dual lagrangien Références Algorithme de sous-gradient Initialisation : u = u0 Itération k : u = uk Résoudre RL(uk), de solution optimale x(uk ) uk+1 = max{0, uk − µk (d − Dx(uk))} k ← k + 1 d − Dx(uk ) est un sous-gradient de z(u) en uk Algorithme simple, mais difficulté de choisir les pas µk Dualité lagrangienne 19 / 22
du dual lagrangien Références Références Références : Bernard Fortz. Cours INFO-F524 Continuous optimization. Université Libre de Bruxelles, 2017 Laurence A. Wolsey. Integer Programming. Wiley, 1998 Luigi Rados d’après Bosio. Gravure Joseph Louis de Lagrange. Académie des Sciences, Paris Dualité lagrangienne 22 / 22