改进遗传算法


利用上篇文章上的 遗传算法,对控制尺寸参数进行优化时一些问题:

  1. 优化10代左右就很快收敛
    在这里插入图片描述

  2. 使用优化后的参数计算的适应度函数并不是最大的

初步考虑是种群早熟引起的,因此从参考了下面这文献
参考文献:[1]于光帅,于宪伟.一种改进的自适应遗传算法[J].数学的实践与认识,2015,45(19):259-264.

IAGA自适应遗传算法

IAGA算法是对(AGA)自适应遗传算法的改进,其中 p c p_c pc p m p_m pm表达式如下:
p c = { p c 1 − ( p c 1 − p c 2 ) ( f − f a v g ) f m a x − f a v g f ≥ f a v g p c 1 f < f a v g p m = { p m 1 − ( p m 1 − p m 2 ) ( f a v g − f ′ ) f m a x − f a v g f ≥ f a v g p m 1 f < f a v g p_c= \begin{cases} p_{c1}-\frac{(p_{c1}-p_{c2})(f-f_{avg})}{f_{max}-f_{avg}}&f\geq f_{avg}\\ p_{c1}&f<f_{avg} \end{cases}\\ p_m= \begin{cases} p_{m1}-\frac{(p_{m1}-p_{m2})(f_{avg}-f')}{f_{max}-f_{avg}}&f\geq f_{avg}\\ p_{m1}&f<f_{avg} \end{cases} pc={pc1fmaxfavg(pc1pc2)(ffavg)pc1ffavgf<favgpm={pm1fmaxfavg(pm1pm2)(favgf)pm1ffavgf<favg
式中, f m a x f_{max} fmax代表群体中的最大适应度值, f a v g f_{avg} favg代表群体的平均适应度值, f f f代表交叉两个个体适应度值较大的较大值, f ′ f' f代表待变异个体的适应度值。 p c 1 = 0.9 , p c 2 = 0.6 , p m 1 = 0.1 , p m 2 = 0.01 p_{c1}=0.9,p_{c2}=0.6,p_{m1}=0.1,p_{m2}=0.01 pc1=0.9,pc2=0.6,pm1=0.1,pm2=0.01
IAGA算法使 p c p_c pc p m p_m pm随着每代个体适应度值的变化而自行调整,既保护了群体中优质的个体,又令具有最大适应度的个体的 p c p_c pc p m p_m pm不为0,这会使每代的最优个体不会处于一种不发生变化的状态,但根据公式,当种群中优良个体数目过大时,整体会陷入停滞不前,不易跳出局部最优解,造成未成熟收敛。以个体为单位,缺乏整体精神,当出现未成熟收敛的趋势时无法处理,因此文献作者提出了一种新的自适应遗传算法。

改进的IAGA算法

p c = { 0.8 f m a x − f a v g f a v g − f m i n + λ 当 f m a x − f a v g f a v g − f m i n + λ < 1 且 M 1 > M 2 时 p c 1 − ( p c 1 − p c 2 ) ( f − f m i n ) f m a x − f m i n 其 它 p m = { 0.1 f m a x − f a v g f a v g − f m i n + λ 当 f m a x − f a v g f a v g − f m i n + λ < 1 且 M 1 > M 2 时 p m 1 − ( p m 1 − p m 2 ) ( f ′ − f m i n ) f m a x − f m i n 其 它 p_c= \begin{cases} 0.8\frac{f_{max}-f_{avg}}{f_{avg}-f_{min}+\lambda}&当\frac{f_{max}-f_{avg}}{f_{avg}-f_{min}+\lambda}<1且M_1>M_2时\\ p_{c1}-\frac{(p_{c1}-p_{c2})(f-f_{min})}{f_{max}-f_{min}}&其它 \end{cases}\\ p_m= \begin{cases} 0.1\frac{f_{max}-f_{avg}}{f_{avg}-f_{min}+\lambda}&当\frac{f_{max}-f_{avg}}{f_{avg}-f_{min}+\lambda}<1且M_1>M_2时\\ p_{m1}-\frac{(p_{m1}-p_{m2})(f'-f_{min})}{f_{max}-f_{min}}&其它 \end{cases} pc={0.8favgfmin+λfmaxfavgpc1fmaxfmin(pc1pc2)(ffmin)favgfmin+λfmaxfavg<1M1>M2pm={0.1favgfmin+λfmaxfavgpm1fmaxfmin(pm1pm2)(ffmin)favgfmin+λfmaxfavg<1M1>M2
式中, f m i n f_{min} fmin代表群体中的最小适应度值; M 1 M_1 M1代表每代个体中适应度值大于平均适应度值的个体数目; M 2 M_2 M2代表每代个体中适应度值小于平均适应度值的个体数目; λ \lambda λ为一无穷小正数,主要为了防止分母等于0;其余同上。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值