结构力学计算软件_结构力学中的优化分析(2) —— 优化方法

64ebb917d9211eb110369aee81ccf1e1.png

引言

前文介绍了优化方法的基本概念,通常将优化分为三类:

  • 基于撒点的算法
  • 基于梯度的算法
  • 启发式算法
蒙特遇见卡罗:结构力学中的优化分析(1) —— 优化方法基本概念​zhuanlan.zhihu.com
bc7f69a0c30770ad4ee4d2d1912c7cb5.png

本文将对其展开介绍,同时简要介绍对于约束的处理和多目标优化。

撒点算法

这类方法比较容易理解,即:选择一系列数据点,求出对应的函数值,然后在这些函数值中通过比较大小取出最值以及对应的自变量取值,或对数据进行拟合,分析趋势。

2b67ad91bd61eaa1b34c85854d5b4136.png

这类方法最极端的就是穷举法,或将定义域划分成若干区间,分别进行遍历计算。

遍历算法的优点是不会陷入局部极值,一般情况下都可以得到最值;但是缺点也是显而易见的,那就是效率太低。

因此,撒点法主要研究如何进行高效率的撒点,通常采用随机类随机的方法实现撒点。此外,正交试验也可以看作是一种类撒点方法。

d0bc49ee2d08febeeac787c4d53d346a.png

基于撒点的方法严格说来并不是一种优化算法,它没有设计一种“寻优”的策略,效率也相对较低,对于规模较小的优化问题效果较好;但对于规模稍大的优化问题,该算法往往无法得到较高精度的优化结果。

然而撒点的方法可靠性高,不容易陷入局部极值,这在优化分析中是非常重要的。

基于撒点法的以上特点,通常此法可以作为优化问题的第一步“粗搜索”,作为后续介绍优化算法的粗略尝试,划定求解范围,同时可以给出后续搜索的“起点”或初值

梯度算法

由于遍历的效率较低,我们需要考虑设计一套策略,可以较快的搜索到最优解。基于梯度方法的大概原理如下:

  • 给定一个初始值,同时计算对应的目标函数值;
  • 给定一个前进的步长,为了更快的接近目标,依据一定规则选择目标函数下降可能较快的方向,即梯度大的方向;
  • 不断重复以上操作,直到离目标足够的近(误差足够接受),即最优搜索完成。

f7b52134571c3c97b7dfd943e69b7e66.gif

这里提一句,基于“最速下降法”即“梯度下降法”,同时结合了“向后传播”的思想,使得神经网络的训练得以实现,在机器学习中得到了较为广泛的运用,名声大噪。

基于梯度的方法有很多,不同算法适用于不同的问题,但原理上大多都是基于梯度计算每次“前进”的方向和速度,最终“到达”目的地。

该方法有一个较大的缺陷,即“搜索”过程是基于梯度的(类似于导数),本质上是一种局部线性化(差商替代微分),容易陷入局部极值解。

947e2bc7fc6b76888be99b937922bfd7.png

基于梯度的方法理论在凸分析中相对比较完善,但对于非凸集中的寻找全局最优有一定的问题;结合撒点法,首先在整个定义域中随机选取一定数量的起始点和区间,再在这些点和区间上分别进行梯度算法,可以在一定程度上改善陷入局部极值的问题。

启发式算法

对于非凸集的全局优化,梯度方法存在一定困难;此外,还有一些更恶劣的问题:

  • 函数可导性差
  • 函数不连续
  • 局部震荡剧烈
  • ……

对于这类问题,基于梯度的算法几乎无能为力,而启发式算法则可能可以得到相对比较满意的结果。

启发式算法的种类非常多,目前大多以仿生或模拟自然为基础,构造进化和退化的演化过程,实现优化。主要有:退火算法遗传算法蚁群算法等。启发式算法理论相对比较复杂,本篇不做详细的讨论。

5cc5cd96a437add607b45dfadeace19e.png

启发式算法理论上可以解决强非线性优化问题,也不会落入局部极值解。但是该方法可解释性较差,结果不可预知;可能会得到非常好的结果,同时也可能得到非常不好的结果,在应用过程中应该特别注意。

约束问题

前面的讨论均未涉及约束带来的问题,约束使得自变量的取值空间受到限制,给问题带来了额外的困难。

所幸的是,通过引入广义拉格朗日函数,可将约束条件转化为新的目标函数的一部分:

73c752d20cc44f41c4279e219c23345c.png

有最优解的必要条件成为KKT(Karush-Kuhn-Tucker)条件;如果是凸优化问题,则KKT条件为有最优解的充要条件:

c9376efa3b22517647531ff807bd6907.png

多目标优化

我们知道,一个优化问题只能有一个目标函数,因此多目标优化理论上不可能同时成立,常见的有通过“帕累托最优”定义;通常还有其他的处理方法,如加权构造新的目标函数,或将一些目标转换为约束条件。

最后

优化方法的基础暂时介绍到这里,后续若有机会,笔者会对其中几个有趣的专题做详细介绍。

下一篇将介绍优化方法在结构优化中的应用。

蒙特遇见卡罗:结构力学中的优化分析(3) —— 结构优化分析​zhuanlan.zhihu.com
1b4e22c9874ee041461427144b7a2887.png

-完-

公众号同步更新:数联科技工作室

公众号内有更多内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值