1.惩罚函数介绍
惩罚函数是处理约束问题的万能方式,在处理约束问题时,通常将惩罚函数加入到目标函数,从而实现约束问题变为无约束问题。
2.惩罚函数作用机理
作用机理:当个体适应度值小,但未在约束条件内,加入惩罚函数以增大适应度值,从而将个体淘汰。
3.惩罚函数作用方式
使用惩罚函数处理等式约束问题,通常是将等式准换为不等式约束:
其中:
是优化问题的等式约束
-是允许的容差,是一个很小的值。
惩罚函数可分为内部方法和外部方法:内部方法是从约束内的可行解进行优化,而外部方法是随机地从大部分为不可行解开始优化。
4.外部惩罚函数种类
外部惩罚惩罚函数可分为死亡惩罚函数,静态惩罚函数,动态惩罚函数,共同进化惩罚函数,自适应惩罚函数等。主要介绍一下死亡惩罚、静态惩罚、动态惩罚。
4.1死亡惩罚
死亡惩罚是对所有不满足约束条件的个体赋值一个指定极差的适应度,在进行下一代选择是时,不满足约束的个体就会被淘汰,仅留下满足约束的个体。方法简单,但是可行域很小时算法会因为个体全部死亡而陷入停滞。
4.2静态惩罚
静态惩罚函数会考虑个体违反约束条件的程度,并经过加权后添加到适应度值,加权的比重是不变。静态惩罚函数由于略微放款约束,效果相比死亡函数好,具体算法为:
其中是Heaviside函数,
4.3动态惩罚
动态惩罚函数是惩罚因子的计算随着时间的推移而增大:
其中-为常量,t为代数
-为非线性约束和线性约束条件
m,p-非线性约束和线性约束约束条件个数