Dualité lagrangienne
Olivier Pirson
Présentation pour l’examen oral de
INFO-F524 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
1 Introduction
2 Dual lagrangien
3 Qualité du dual lagrangien
4 Résolution du dual lagrangien
5 Références
Dualité lagrangienne 2 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
1 Introduction
2 Dual lagrangien
3 Qualité du dual lagrangien
4 Résolution du dual lagrangien
5 Références
Dualité lagrangienne 7 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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)
Dualité lagrangienne 8 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
1 Introduction
2 Dual lagrangien
3 Qualité du dual lagrangien
4 Résolution du dual lagrangien
5 Références
Dualité lagrangienne 10 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
1 Introduction
2 Dual lagrangien
3 Qualité du dual lagrangien
4 Résolution du dual lagrangien
5 Références
Dualité lagrangienne 16 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
Algorithme de sous-gradient
Théorème
k
µk → ∞
µk → 0
⇒ z(µk ) → wLD
ρ < 1
µk = µ0ρk
µ0 et ρ suffisamment grands
⇒ z(µk ) → wLD
w ≥ wLD
µk = εk
z(uk
)−w
d−Dx(uk ) 2
0 < εk < 2
⇒
z(µk ) → wLD
ou l’algorithme trouve uk
tel que
w ≥ z(µk ) ≥ wLD
Dualité lagrangienne 20 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution du
dual
lagrangien
Références
1 Introduction
2 Dual lagrangien
3 Qualité du dual lagrangien
4 Résolution du dual lagrangien
5 Références
Dualité lagrangienne 21 / 22
Dualité
lagrangienne
Introduction
Dual
lagrangien
Qualité du
dual
lagrangien
Résolution 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

Dualité lagrangienne