简而言之,优点来自以下事实:要计算简化目标的导数,您实际上并不需要知道u (β )关于作为独立对象的β的导数。,但只有导致I (β ,u (β ))变化的那部分一世(β,û (β))ü (β)β一世(β,û (β))。
让我切换到一个我更喜欢的符号:
( u是设计变量, y是状态变量, J是目标)。假设 e (y ,u )足以应用隐函数定理,因此方程 e (y ,u )= 0具有唯一解 y (u ),该解关于 u和导数 y可以连续微分。 '(ü )
分ÿ,üĴ(y,你)服从È (ÿ,u )= 0
üÿĴÈ (ÿ,你)È (ÿ,u )= 0ÿ(u)üÿ′(你)由
(
e y和
e uËÿ(y(u ),u ) y′(u )+ eü(y(u),u )= 0(1)
ËÿËü是偏导数)的解给出。
这意味着您可以定义精简目标,这也是可微的(如果J (y ,u )是可微的)。表征梯度单程∇ Ĵ (Û )是经由定向衍生物(例如,计算所有相对于偏导数的设计空间的基础上)。在此,方向h的方向导数由链规则给出为
j '(u ; hj (u ):= J(y(u ),u )Ĵ(y,你)∇ Ĵ (ü )H
如果Ĵ是好的,唯一困难的事情是计算Ÿ'(ü)^ h对于给定的^ h。这可以通过相乘来进行(1)与ħ从右侧和求解ÿ'(û)Ĥ(其隐函数定理允许),即,计算
Ĵ′(û ; ħ )= ⟨ Ĵÿ(y(u ),u ),y′(û )Ĥ ⟩ + ⟨ Ĵü(y(Û ),Û ),ħ ⟩ 。(2)
Ĵÿ′(ü )^ hH(1 )Hÿ′(ü )^ h
并将此表达式插入
(2)。在PDE约束的优化中,这等于求解线性化的PDE
[ y′(u )h ] = eÿ(y(u ),u )− 1[ eü(y(u ),u )h ](3)
(2 ) 设计空间的
每个基向量。
H
但是,如果我们发现运营商使得
Ĵ “(ü ; ^ h )= ⟨ ∇ Ĵ ,^ h ⟩∇ Ĵ
这必须是所需的梯度。综观(1 ),我们可以写出
⟨ Ĵ ý(Ý (Û ),Û ),ÿ '(û )Ĥ ⟩ = ⟨ Ý '(Û )* Ĵ Ý(Ý (Û ),Û ),ħ ⟩
(与 y '(u )∗
Ĵ′(û ; ħ )= ⟨ ▿ Ĵ ,ħ ⟩所有 ^ h ,
(1 )⟨ Ĵÿ(y(u ),u ),y′(û )Ĥ ⟩ = ⟨ ÿ′(你)∗Ĵÿ(y(Û ),Û ),ħ ⟩
ÿ′(你)∗是伴随运算符),因此我们只需计算
。使用
(A B )* = B ∗ A ∗,可以使用
(3 )来完成,即计算
λ := e y(y (u ),u )- ∗ J y(y (ÿ′(你)∗Ĵÿ(y(u ),u )(A B )∗= B∗一种∗(3 )单一
和设置
∇ Ĵ (Û )= È ù(Ý (Û ),ü )* λ + Ĵ ù(Ý (Û ),ù )。
在PDE约束优化中,
J y(y (u ),u )通常是某种残差,计算
λ涉及求解
λ := eÿ(y(u ),u )- *Ĵÿ(y(u ),u )
∇ Ĵ (Û )= Èü(y(u ),u )∗λ + Jü(y(u ),u )。
Ĵÿ(y(u ),u )λ(线性)伴随PDE,与设计空间的尺寸无关。(实际上,这甚至适用于分布式参数,即,如果
是某个无限维Banach空间中的函数,则第一种方法不可行。)
ü