《Nature-Inspired Metaheuristic Algorithms》——如何处理约束 HOW TO DEAL WITH CONSTRAINTS

优化算法中 如何处理约束

1.1 什么是约束

优化问题中非常重要的问题是如何在 约束条件(不等式约束和等式约束) 下求最优解。处理约束条件的方法主要有三种:直接法、拉格朗日乘数法和惩罚法
在这里插入图片描述很明显,其中的 φi(x)为等式约束,ψj (x)为不等式约束。

一个带约束实际优化问题 弹簧设计问题:拉开弹簧和压缩弹簧的设计是一个著名的基准优化问题。其主要目的是根据偏转、应力、喘振频率和几何形状的限制来最小化重量。它涉及三个设计变量:线圈直径x1,线圈直径x2和线圈的数量/长度x3。这个问题可以概括为
在这里插入图片描述受以下约束条件的约束
在这里插入图片描述
在这里插入图片描述g1(x) g2(x) g3(x) g4(x) g5(x)为不等式约束。

2.1 直接法

直接法 direct approach:即是提出一个可能的解,然后去试验这个解是否满足所有点约束条件,如果满足则是一个潜在最优解,不是则丢弃。
很明显,这样的方法效率是极低且缓慢的

2.2 拉格朗日乘法

拉格朗日乘法 Lagrange multipliers:合并这些约束条件,从而将问题表述为一个无约束的问题。具有严格的数学基础并且更加高效
也就是高数上学到的拉格朗日乘法求条件极值。但是只能用于等式约束,无法用于非等式约束

2.3 惩罚法

惩罚法 penalty method:对于具有等式和不等式约束的非线性优化问题,合并约束的一种常用方法是惩罚法。对于优化问题在这里插入图片描述其思想是定义一个惩罚函数,使有约束问题转化为一个无约束问题。 我们定义
在这里插入图片描述当一个约束被满足时,它对Π的影响为零。然而,当它被违反时,它会被严重惩罚,因为它会显著增加Π。也就是如果φi(x)!=0,则Hi[φi(x)]=1,如果φi(x)==0,则Hi=0。类似地,如果ψj(x)≤0为真,Hj[ψj(x)]=0,如果ψj(x)>0为真则Hj[ψj(x)]>0。µ和ν应该接近10^15左右。显然,如果数值问题太大,它可能会导致数值问题。

简单的说:有约束的情况其实就是把约束带上,直接求整体的函数值Π,因为约束前面的系数极大10^15所以如果要整体最小的话,那么必然要让约束趋近于0才可以,那么当整体最小的时候,约束也必然被满足,这就是惩罚法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值