Académique Documents
Professionnel Documents
Culture Documents
C'est une des méthodes primales les plus classiques pour la résolution de problèmes avec des limitations linéaires. La
méthode du gradient projeté (Rosen, 1960) a pour principe de construire des directions s° qui permettent de
diminuer f(x) le plus possible tout en restant dans le domaine admissible.
Surface F° définie par
Soit le problème : Min f(x) gj(x)=aj x – bj = 0
Ax ≤ b -∇f(x°)
⎡ a1 ⎤
avec A (m, n)
⎢a ⎥
A=⎢ ⎥
2
x° Gradient ___
⎢ ! ⎥
⎢ ⎥ x1 x°
⎣ am ⎦ et
On peut montrer que la direction de descente s° cherchée est obtenue par projection de -∇f(x°) sur la frontière F°
du domaine définie par les limitations actives. La matrice de projection (P°) sur F° se calcule explicitement (à partir
de la matrice A° des gradients des limitations actives : P°= I – A°T [A°A°T ]-1 A°) et la direction s° s’écrit : s° = - P°
∇f(x°)
(e) si sk≠ 0, calculer le pas maximal possible permettant de vérifier encore les limitations :
α max = max {α tel que aj(xk + α sk) ≤ bj }
(f) calculer le pas optimal α (recherche unidirectionnelle), le point suivant xk+1 , k=k+1 et aller en (b)
(g) si sk= 0 , on a :
∇f(xk) + A°T u = 0
Ø si u ≥ 0 , comme A°T est la matrice des gradients des limitations actives en xk, cette relation exprime
les conditions de KKT en xk, qui est donc solution du problème. (fin des itérations)
Ø Si une composante de u au moins est ≤ 0, cela signifie que la limitation associée j n’est pas
‘réellement’ active : il faut recalculer la matrice de projection en modifiant J°
(prendre par exemple J° - {j} ) et aller en (c) (on projettera sur un autre sous-espace)
Remarque : Très simple, mais n’est pas utilisée telle quelle car:
UTC, MQ14, P2016 3
♦ si les limitations sont non linéaires, les points sortent du domaine admissible il faut une procédure pour les
k
ramener dans le domaine admissible, ou bien imposer à s de s’écarter de la frontière,
♦ un changement de contrainte saturée implique une discontinuité de la direction, d'où risque de non convergence.
⎧ 0 si y ≤ 0 g(x)
Si l’on définit la fonction h telle que : h ( y) = ⎨
⎩ +∞ si y > 0
la résolution du problème d’optimisation revient à résoudre
le problème sans limitation suivant :
Min Π(x)=f(x)+H(x)
m
où H(x)= ∑hj(gj(x))
j=1
La fonction H étant discontinue et ‘infinie’ en dehors du domaine admissible, on ne peut utiliser cette méthode telle
quelle ; les méthodes de pénalité s’appuient cependant sur cette idée, et consistent à minimiser une fonction (dite
‘pénalisée’) de la forme :
Min Φ(x, α) = f(x) + Γ(x, α)
x
où la fonction Γ est telle : qu’elle force l’optimum à saturer approximativement les limitations qui doivent l’être
qu’ elle n’altère pas trop la solution approchée obtenue
UTC, MQ14, P2016 4
Le paramètre de pénalisation α règle l’importance de la pénalité par rapport à la fonction objectif ; il doit être calé pour
que la solution approchée soit précise sans que le système à minimiser soit trop mal conditionné. Il faudra résoudre
plusieurs problèmes successivement, correspondant à des valeurs de α progressives.
Modifier la fonction à minimiser pour qu’elle prenne de « grandes » valeurs en dehors du domaine admissible.
m
On obtient la fonction : Φ(x, r) = f(x) + r ∑ <gj(x)>+2
j =1
m
et on considère le problème : Minimiser Φ(x, r) = f(x) + r ∑ <gj(x)>+2 (P’)
j =1
Soit (x*) la solution de (P’). Si on a choisi r « assez grand », les termes <gj(x*)>+2 seront « petits », ce qui signifie que x*
sera « presque » admissible.
♦ facile à implanter, mais pas très performant (conditionnement), solution toujours légèrement non admissible
Remarque : Dans le cas de limitations d’égalité (hl (x) = 0 l = 1, p), la fonction pénalisée à considérer est :
p
Φ(x, r) = f(x) + r ∑ (hj(x))2
j=1
Si on considère l’équilibre du ressort du paragraphe 8.3.1, le problème à résoudre est :
1 ⎡ k −k ⎤ ⎛ u1 ⎞ 2
Min Φ(u1,u2 ,r) = u1,u2 ⎢ ⎥ ⎜ ⎟ − Fu2 + r u1
2 ⎣ −k k ⎦ ⎝ u2 ⎠
u1,u2
ce qui donne : u1 = 1 F , u2 = k + 2r F
2r 2rk
Ces valeurs tendent vers la solution exacte quand r → + ∞ .
Même principe que la pénalité extérieure, mais pour obtenir un minimum approché par l’intérieur du domaine (donc
toujours admissible). On définit :
m 1
Φ(x, r) = f(x) - r ∑
j = 1 g j (x )
ou bien :
m Φ
Φ(x, r) = f(x) - r ∑ log(- gj(x))
j =1
ou le facteur de pénalité r doit cette fois tendre vers 0 pour que
x s’approche de la frontière du domaine admissible.
On résout donc une succession de problèmes sans contraintes :
m 1
Φ(x, rk) = f(x) + rk ∑ k=1, …
j = 1 g j ( x)
avec : rk+1 = rk × c ( par ex. 0.1 < c < 1 ) f
Il faut connaître un point de départ admissible
gj (x) ≤ 0
gj (x) > 0
♦ cette pénalisation n’est pas valable sur la frontière
ni à l’extérieur du domaine admissible.
Minimiser f(x)
avec : hl(x) = 0 l=1, ..., L
L
La fonction à prendre en compte pour la minimisation sans limitations est alors: Φ(x, rk) = f(x) + rk ∑ hl(x)2
l=1
Les méthodes de pénalité permettent d’obtenir les valeurs des multiplicateurs à l’optimum. Exemple avec la pénalité
extérieure :
Soit J° l’ensemble des indices des contraintes saturées en x*. Pour les autres indices j ∉J°, gj(x*) < 0 . On peut
supposer qu’à partir d’une certaine itération K, tous les points xk* vérifieront aussi gj(xk*) < 0 (on a trouvé les limitations
qui seront saturées à l'optimum)
Les termes associés : <gj(xk*)>+ sont donc nuls pour j ∉J° , et il reste dans (1) :
m
∇f(xk*) + 2 rk ∑ <gj(xk*)>+ ∇gj(xk*) =0 pour k > K (3)
j∈J0
∇f et ∇gj sont continues, les λ j sont uniques donc, en passant à la limite avec (2) et (3):
λ j* = lim 2 rk <gj(xk*)>+ pour j ∈ J°
Les valeurs des λ j* permettent, par exemple, d’estimer l’influence des limitations sur la valeur de f à l’optimum (par ex.
de combien varie f(x*) quand on impose gj (x) ≤ ε j au lieu de gj(x) ≤ 0 , voir paragraphe 6) .
UTC, MQ14, P2016 9
9.5 Méthode d'Uzawa (méthode duale)
Principe : résoudre par une méthode de gradient le problème dual associé: Maximiser w(λ) (D)
λ≥0
m
où w est la fonction duale définie par : w(λ) = Min {L(x,λ)} = f(x) + ∑ λ j g j (x)
j=1
x∈A
Pour cela, deux étapes sont exécutées alternativement à chaque itération k:
• minimisation de L(x,λ k) par rapport à x, pour λ k fixé (par un algorithme sans limitations). Soit x k la solution obtenue.
• maximisation de w(λ), pour x = x k fixé. A cette étape on peut aussi utiliser un algorithme de gradient. La direction de
⎡ g (xk) ⎤
⎢ 1 ⎥
k
∂w (λ) = g(xk)= g2(x ) ⎥
⎢
montée de w est : ∂λ ⎢ ⎥
⎢ ⎥
⎢gm(xk)⎥
⎣ ⎦
Par exemple, pour un problème avec limitations d'égalités seulement, quand on est en µ*, et qu’on résout en x :
Le point solution x* peut-il vérifier cette relation même si r a une valeur finie? Réponse: oui, car en x*, on aura KKT et x*
admissible, donc ∇f(x*) + ∑ µl* ∇hl (x*) + 2r∑ hl (x*) ∇hl (x*)
l
=0 =0
cette expression s'annule donc indépendamment de r, ce qui n'était pas le cas avec les méthodes de pénalité:
∂Φ (x*)= ∇f(x*)) + 2r h (x*) ∇h (x*)
∂x ∑ l l =0
≠0
La solution x* ne peut donc pas être trouvée exactement avec une méthode de pénalité car hl(x*) doit être ≠ 0.
+2
m λkj
(b) Résoudre par une méthode sans limitations : Min A(x, λk , r ) = f(x) + r ∑ 2r
+ gj
x j=1
Soit à minimiser la fonction f(x)=0.5 x sous la limitation g(x)=4-x ≤ 0 par les différentes méthodes de pénalité.
a. Pénalités extérieures.
+2
La fonction pénalisée s’écrit : Pext (x,r) = 0.5x + r 4 − x
0.5
Sa minimisation induit les solutions approchées dépendant de r : xr = 4 − (r → ∝)
2r
b. Pénalités intérieures
t
La fonction pénalisée s’écrit : Pint (x, t) = 0.5x −
4−x
t
La solution approchée associée est : x t = 4 + (t → 0)
0.5
+2
λj
c. Lagrangien augmenté A(x, λ,r) = 0.5x + r +4−x
2r
+
∂A λj λj 0.5
La stationnarité de A par rapport à x donne : (x, λ,r) = 0.5 − 2 r +4−x =0 → x* = 4 + −
∂x 2r 2r 2r
On part de l’estimation initiale : λ 1=0
0.5
La minimisation de A(x,0,r) donne x1 = 4 −
2r
La nouvelle estimation du multiplicateur est : λ2 = max λ1 + 2rgj (x2* ),0 = 0.5
et la minimisation de A(x, λ 2,r) donne : x2 = 4
Minimiser f(x, p)
avec : gj(x, p) ≤ 0 j=1, ..., m (Qp)
Soit x*(p) la solution et f*(p) = f(x*(p), p) la valeur de f associée. On cherche à calculer df * (p)
dp
Si on suppose que l'ensemble des limitations actives à l'optimum (indices j =1, ..., ma) ne change pas pour les variations
de p considérées, on a:
df * (p) T
dg df
et (2) et (3) donnent: dp = λ* dp + dp (5)
UTC, MQ14, P2016 15
Exemple:
On suppose qu’on a résolu le problème :
Minimiser f(x) (minimiser la masse)
avec uj(x) ≤ u° j=1, …, m (limites en déplacements)
pour une valeur de u° fixée (=2mm), et on veut évaluer la masse optimale qu’on obtiendrait si on imposait :
uj(x) ≤ 2.5 mm
uj(x) ≤ 1.5 mm
On étudie donc l'influence de p = u°, valeur limite imposée aux déplacements, sur la valeur de la fonction objectif
optimale f(x*)
df * (p) T
dg df
on a alors (5) : dp = λ* dp + dp
df df dg df * (p) T
ici dp = =0 =-1 donc dp = - λ*
du 0 du 0
Ceci permet d'interpréter les multiplicateurs de KKT à l'optimum comme l'effet d'une perturbation d'une
limitation active sur la valeur de la fonction à l'optimum (le coût marginal)