基于梯度优化
基于梯度优化是一种数学方法,用于查找目标函数的局部最优值(通常为最小值),同时改变一组相关参数。
对于实际工业案例,通常无法按照要研究的几何参数找到目标函数的解析表达式。当无法直接从解析表达式计算导数时,则根据局部离散值以迭代方式查找通向最小值的路径。
序列二次规划 (SQP) 使用离散一阶导数(梯度)查找目标函数局部最小值的路径。在 Simcenter STAR-CCM+ 中,伴随求解器按照几何参数计算目标函数(成本函数)的必要梯度。
例如,要按照几何参数求得管系统的最小压降,则通过伴随求解器计算必要的梯度信息,然后在Design Manager中启动 SQP 搜索以移至最初猜测中压降最小的点。有关工作流程的更多详细信息,请参见设置基于梯度的优化研究。
梯度计算
目标函数的梯度信息定义如下:
其中
- 为设计参数的矢量。
- 为要在有约束或无约束情况下进行优化的目标。
- 为表面网格。
- 为 Simcenter STAR-CCM+ 中的几何灵敏度。请参见几何灵敏度。
- 为 Simcenter STAR-CCM+ 中的表面灵敏度。请参见表面灵敏度。
参数梯度 是为每个边界表面计算的,即几何灵敏度与表面灵敏度之积。完成此步骤后,即求得边界上的参数梯度场。
| 注 | Design Manager仅在 SQP 外部迭代时计算新的参数梯度。在内部迭代(线搜索迭代)时,Design Manager会重用在最新外部迭代中计算的梯度。 |
序列二次规划 (SQP) 法
SQP 方法以迭代方式从所选初始点 开始搜索通向最优值的路径。
考虑基于梯度的优化,其中只有一个几何参数作为Design Manager中的输入参数。则目标函数为 。 函数的最小值符合 。SQP 使用 的逼近值计算每次迭代时朝向目标函数最小值的路径 。
从初始点 开始,可以使用以 为中心的 2 阶泰勒展开式逼近 :
所逼近目标函数的最小值在 处。计算该方程的一阶导数:
Eqn. (5323):根据上面的方程,可以找到下一个点 。
按照一般表示法,从点 开始,下一个点是 。
迭代地构建序列 ,用以转向点 - 参数的收敛值,此处出现 的最小值。
1 阶导数 按 Eqn. (5322) 的梯度灵敏度提供。
由于 2 阶导数的计算成本很高,因此在Design Manager中,它由 1 阶导数进行数值估算,如下所示:
按照优化科学,使用 1 阶和 2 阶导数直接计算 称为牛顿法。从上一时间步的 1 阶导数之间进行 2 阶导数插值称为拟牛顿法。
为目标函数的 1 阶导数,也称为雅可比矩阵:
为目标函数的 2 阶导数,也称为黑塞矩阵:
对于带约束的优化,将简单目标函数 替换为该问题的拉格朗日函数:
- 为拉格朗日函数。
- 为目标函数。
- 为优化问题的不等式约束,它符合 。
- 为优化问题的等式约束,它符合 。
- 为不等式约束 的拉格朗日乘数。
- 为等式约束 的拉格朗日乘数。
该拉格朗日示例基于假设一个几何参数。可以将方程缩放至包含多个几何参数的矩阵。
则设计空间中的下一点是: