基于梯度优化

基于梯度优化是一种数学方法,用于查找目标函数的局部最优值(通常为最小值),同时改变一组相关参数。

对于实际工业案例,通常无法按照要研究的几何参数找到目标函数的解析表达式。当无法直接从解析表达式计算导数时,则根据局部离散值以迭代方式查找通向最小值的路径。

序列二次规划 (SQP) 使用离散一阶导数(梯度)查找目标函数局部最小值的路径。在 Simcenter STAR-CCM+ 中,伴随求解器按照几何参数计算目标函数(成本函数)的必要梯度。

例如,要按照几何参数求得管系统的最小压降,则通过伴随求解器计算必要的梯度信息,然后在Design Manager中启动 SQP 搜索以移至最初猜测中压降最小的点。有关工作流程的更多详细信息,请参见设置基于梯度的优化研究。

梯度计算

目标函数的梯度信息定义如下:

d L T d D = d X s u r f a c e T d D ⋅ d L T d X s u r f a c e
(5322)

其中

  • D 为设计参数的矢量。
  • L 为要在有约束或无约束情况下进行优化的目标。
  • X s u r f a c e 为表面网格。
  • d X s u r f a c e T d D 为 Simcenter STAR-CCM+ 中的几何灵敏度。请参见几何灵敏度。
  • d L T d X s u r f a c e 为 Simcenter STAR-CCM+ 中的表面灵敏度。请参见表面灵敏度。

参数梯度 d L T d D 是为每个边界表面计算的,即几何灵敏度与表面灵敏度之积。完成此步骤后,即求得边界上的参数梯度场。

注Design Manager仅在 SQP 外部迭代时计算新的参数梯度。在内部迭代(线搜索迭代)时,Design Manager会重用在最新外部迭代中计算的梯度。

序列二次规划 (SQP) 法

SQP 方法以迭代方式从所选初始点 x 0 开始搜索通向最优值的路径。

考虑基于梯度的优化,其中只有一个几何参数作为Design Manager中的输入参数。则目标函数为 。 f ( x ) 函数的最小值符合 f ´ ( x ) = 0 。SQP 使用 的逼近值计算每次迭代时朝向目标函数最小值的路径 。 f ( x ) Δ x

从初始点 x 0 开始,可以使用以 x 0 为中心的 2 阶泰勒展开式逼近 f ( x ) :

f ( x ) ≈ f ( x 0 ) + f ⁢ ´ ( x 0 ) ( x − x 0 ) + 1 2 f ⁢ ´´ ( x 0 ) ( x − x 0 ) 2
(5323)

所逼近目标函数的最小值在 f ´ ( x ) = 0 处。计算该方程的一阶导数:

Eqn. (5323):
f ⁢ ´ ( x ) = f ⁢ ´ ( x 0 ) + f ⁢ ´´ ( x 0 ) ( x − x 0 ) = 0
(5324)

根据上面的方程,可以找到下一个点 x 1 = x 0 − f ⁢ ´ ( x 0 ) f ⁢ ´´ ( x 0 ) 。

按照一般表示法,从点 x k 开始,下一个点是 x k + 1 = x k − f ⁢ ´ ( x k ) f ⁢ ´´ ( x k ) 。

迭代地构建序列 x 0 , x 1 , … x k , x k + 1 , … x * ,用以转向点 x * - 参数的收敛值,此处出现 f ( x ) 的最小值。

1 阶导数 f ⁢ ´ ( x k ) 按 Eqn. (5322) 的梯度灵敏度提供。

由于 2 阶导数的计算成本很高,因此在Design Manager中,它由 1 阶导数进行数值估算,如下所示:

f ⁢ ´´ ( x k ) = f ⁢ ´ ( x k ) − f ⁢ ´ ( x k − 1 ) x k − x k − 1

按照优化科学,使用 1 阶和 2 阶导数直接计算 x k + 1 = x k − f ⁢ ´ ( x k ) f ⁢ ´´ ( x k ) 称为牛顿法。从上一时间步的 1 阶导数之间进行 2 阶导数插值称为拟牛顿法。

在具有 n 个参数的优化中,将方程缩放至:
[ x 1 ,   k + 1 x 2 ,   k + 1 ⋮ x n ,   k + 1 ] = [ x 1 ,   k x 2 ,   k ⋮ x n ,   k ] − ( ∇ 2 f ) − 1 ⋅ ∇ f ⁢          
(5325)

∇ f 为目标函数的 1 阶导数,也称为雅可比矩阵:

J = ∇ f = [ ∂ f ∂ x 1 ⋯ ∂ f ∂ x n ]
(5326)

∇ 2 f 为目标函数的 2 阶导数,也称为黑塞矩阵:

H = ∇ 2 f = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮                                     ⋮                     ⋱                       ⋮ ∂ 2 f ∂ x n ∂ x 1 ⁢ ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ]
(5327)

对于带约束的优化,将简单目标函数 f ( x ) 替换为该问题的拉格朗日函数:

L ⁢   ⁢ ( x , λ ,   σ ) = f ⁢ ( x ) − λ ⁢   h ( x ) − σ ⁢   g ( x )
(5328)
其中
  • L ⁢   为拉格朗日函数。
  • f ( x ) 为目标函数。
  • h ⁢   ( x ) 为优化问题的不等式约束,它符合 h ⁢   ( x )   ≥ 0 。
  • g ⁢   ( x ) 为优化问题的等式约束,它符合 g   ( x )   = 0 。
  • λ ⁢ 为不等式约束 h ⁢   ( x ) 的拉格朗日乘数。
  • σ 为等式约束 g ⁢   ( x ) 的拉格朗日乘数。

该拉格朗日示例基于假设一个几何参数。可以将方程缩放至包含多个几何参数的矩阵。

则设计空间中的下一点是:

[ x k + 1 λ k + 1 σ   k + 1 ] = [ x k λ k σ k ] − ( ∇ 2 L ) − 1 ⋅ ∇ L
(5329)