Bat algorithm (BA)

论文:A newmetaheuristic bat-inspired algorithm

算法描述

step1:初始化种群,即在D维度空间中随机散布初始蝙蝠,最大脉冲音量A0, 最大脉冲率R0 , 搜索脉冲频率范围 【fmin , fmax】,音量衰减系数α, 搜索频率的增强系数γ , 搜索精度ε , 最大迭代次数 iter_max。

step2:随机初始化蝙蝠位置xi , 并根据适应度值寻找当前最优解x*。

step3: 对蝙蝠的搜索脉冲频率,速度以及 位置进行更新。规则如下:
搜索脉冲频率:fi = fmin+(fmax-fmin)*β
速度 : vi^(t+1) = vi^t + (xi^t - x * ) *fi
位置 : xi^(t+1) = xi^t +vi^(t+1)
β 为【0,1】均匀分布的随机数; fi属于【fmin,fmax】; x *为当前蝙蝠最优解。

step4:生成均匀分布随机数 rand , 如果rand>r,则对当前最优解进行随机扰动 ,产生一个新解,并对新解做越界处理(好像是强制归到搜索区间内,超出的解强制放到界线上)。
局部搜索:x(new) = x(old) + ε* A^t
式中ε属于【-1,1】的随机数,A^t 为当前步数中所有蝙蝠中的平均音量;
实现时,提供一个缩放参数来控制布步长:
局部搜索:x( new) =x(old)+ε^t * δ *A^t
δ是缩放因子(应与实际操作时所需优化的变量尺度有关) ε^t 服从高斯正态分布

step5:生成均匀随机分布数 rand,如果rand<Ai 且f(xi)<f(x*),则接受步骤4产生的新解 并更新音量与脉冲率
Ai^(t+1) = αAi^t
ri^(t+1) = r0i*[1-exp(-γ*t)]
α与γ是常数,事实上,α与模拟退火中冷却进度表(cooling schedule)的冷却因子相似。对于任何0<α<1和 γ>0有
Ai^t–>0, ri^t–>0, as t–>无限大

理解:
只有新解被接受后才会 更新音量与脉冲发射率,越靠近目标,音量更小,脉冲发射率提高。

蝙蝠算法寻找最优的方法主要依靠蝙蝠个体之间的相互作用与影响,一旦受到某个局部极值的约束影响同时全局最优在其局部搜索之外自身很难摆脱,并且会吸引其他蝙蝠个体向其靠拢,大大降低了其多样性,同时收敛速度大大降低甚至出现停滞,种群进一步的丧失其进化能力,

改进主要是提高个体变异能力,在其可能陷入局部最优时加入变异能力使其摆脱约束。或者加大蝙蝠数量使其在迭代期间始终保持持续的优化能力

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值