iSIGHT里面的优化方法大致可分为三类:
1 数值优化方法
数值优化方法通常假设设计空间是单峰值的,凸性的,连续的。iSIGHT中有以下几种:
1)外点罚函数法(EP):
外点罚函数法被广泛应用于约束优化问题。此方法非常很可靠, 通常能够在有最小值的情况下,相对容易地找到真正的目标值。外点罚函数法可以通过使罚函数的值达到无穷值,把设计变量从不可行域拉回到可行域里,从而达到目标值。
2)广义简约梯度法(LSGRG2):
通常用广义简约梯度算法来解决非线性约束问题。此算法同其他有效约束优化一样,可以在某方向微小位移下保持约束的有效性。
3)广义虎克定律直接搜索法:
此方法适用于在初始设计点周围的设计空间进行局部寻优。它不要求目标函数的连续性。因为算法不必求导,函数不需要是可微的。另外,还提供收敛系数(rho),用来预计目标函数方程的数目,从而确保收敛性。
4)可行方向法(CONMIN):
可行方向法是一个直接数值优化方法,它可以直接在非线性的设计空间进行搜索。它可以在搜索空间的某个方向上不断寻求最优解。用数学方程描述如下:
Design i = Design i-1 + A * SearchDirection i方程中,i表示循环变量,A表示在某个空间搜索时决定的常数。它的优点就是在保持解的可行性下降低了目标函数值。这种方法可以快速地达到目标值并可以处理不等式约束。缺点是目前还不能解决包含等式约束的优化问题。
5)混合整型优化法(MOST):
混合整型优化法首先假定优化问题的设计变量是连续的,并用序列二次规划法得到一个初始的优化解。如果所有的设计变量是实型的,则优化过程停止。否则,如果一些设计变量为整型或是离散型,那么这个初始优化解不能满足这些限制条件,需要对每一个非实型参数寻找一个设计点,该点满足非实型参数的限制条件。这些限制条件被作为新的约束条件加入优化过程,重新优化产生一个新的优化解,迭代依次进行。在优化过程中,非实型变量为重点考虑的对象,直到所有的限制条件都得到满足,优化过程结束,得到最优解。
6)序列线性规划法(SLP):序列线性规划法利用一系列的子优化方法来解决约束优化问题。此方法非常好实现,适用于许多工程实例问题。
7)序列二次规划法(DONLP):
此方法对拉各朗日法的海森矩阵进行了微小的改动,进行变量的缩放,并且改善了armijo型步长算法。这种算法在设计空间中通过梯度投影法进行搜索。
8)序列二次规划法(NLPQL):
这种算法假设目标函数是连续可微的。基本思想是将目标函数以二阶拉氏方程展开,并把约束条件线性化,使得转化为一个二次规划问题。二阶方程通过quasi-Newton公式得到了改进,而且加入了直线搜索提高了算法的稳定性。
9)逐次逼近法(SAM):
逐次逼近法把非线性问题当做线性问题来处理。使用了稀疏矩阵法和单纯形法求解线性问题。如果某个变量被声明成整型,单纯形法通过重复大量的矩阵运算来达到预期的最优值。逐次逼近法是在M. Berkalaar和J.J. Dirks提出的二次线性算法。
2探索优化方法
探索优化法避免了在局部出现最优解的情况。这种方法通常在整个设计空间中搜索全局最优值。iSIGHT中有以下两种:
1)多岛遗传算法(MIGA):
在多岛遗传算法中,和其他的遗传算法一样每个设计点都有一个适应度值,这个值是建立在目标函数值和约束罚函数值的基数上。个体如有好的目标函数值,罚函数也就有一个更高的适应度值。多岛遗传法区别于传统遗传算法的最大区别在于每个种群都被分为若干个子种群,也称为岛。分别在各自的子种群中进行传统的遗传算法。一些个体被选出来周期的“移民”到其他的岛上。这种操作成为“移民”。有两个参数控制着移民过程:移民间隔(每次移民之后繁殖后代的个数);移民率(移民个体所占的百分比)。
2)自适应模拟退火算法(ASA):
自适应模拟退火算法非常适用于用算法简单的编码来解决高度非线性优化问题,尤其是当发现找全局目标值比寻求好的设计方法更为重要的时候。这种方法能够辨别不同的局部最优解。该算法能够以最小的成本就获得最优解。
3专家系统优化
定向启发式搜索算法(DHS):定向启发式搜索算法只注重于可以直接影响到优化解的参数。
如图通过问题描述特性来选择合适的优化方法:
问题特性描述 | PenMeth | MMFD | SLP | SQP | HJ | SAM | DHS | GA | Sim.Annl. | MOST | LSGRG2 |
只有实型变量 | x | x | x | x | x | x | x | x | x | X** | x |
处理混合或者不混合实型,整型,离散型变量 | x | x | x | x | x | x | |||||
高速非线性问题 | x | x | x | ||||||||
脱离的设计空间(相对最小值) | x | x | x | ||||||||
大量的设计变量(大于20个) | x | x | x | x | x | x | |||||
大量的约束条件(大于2000) | x | x | x | x | |||||||
长时间的运算代码或分析(大量的方程求解) | x | x | x | x | x | ||||||
用户提供梯度的有效性 | x | x | x | X* | x | x |
* 只有NLPQL. DONLP在不能处理用户提供的梯度情况下有效。
**尽管运算需要某些或全部变量是整型或者离散型的,任务过程必须能估计任意实型设计变量。
技术特性描述 | MMFD | SLP | SQP | HJ | SAM | DHS | GA | Sim.Annl. | MOST | LSGRG2 |
不需要目标函数是连续的 | x | x | x | x | x | |||||
处理等式或不等式约束条件 | X* | x | x | x | x | x | x | x | x | x |
基于库塔条件的优化方程 | x | x | x | |||||||
从一系列设计点寻找而不是从单一的某点 | x | X** | ||||||||
使用随机准则 | x | x | ||||||||
在开始就可以得到好的目标值 | x | |||||||||
不需要假设参数的独立性 | x | x | x | x | ||||||
不需要用有限差分法 | x | x | x | x | ||||||
能够通过可控地,有序的方式设定 | x | x | x | |||||||
容易理解 | x | |||||||||
不同阶次的数量级对设计变量的值不敏感 | x |
* 表示只有在修正可行方向法(ADS)才有效,在可行方向法(CONMIN)不可以处理等式约束。
** 先从初始设计点找到一个初始解,然后从这一点向外搜索最优解。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删