融合收敛因子和樽海鞘群的蝴蝶优化算法
文章目录
- 融合收敛因子和樽海鞘群的蝴蝶优化算法
- 1.蝴蝶优化算法
- 2. 改进蝴蝶优化算法
- 2.1 收敛因子
- 2.2 融合樽海鞘群领导者策略
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对蝴蝶优化算法存在收敛速度慢、寻优精度差和易陷入局部最优等缺陷,提出融合收敛因子和樽海鞘群的蝴蝶优化算法.受灰狼算法和樽海鞘群算法的启发分别将收敛因子融入全局位置和局部位置更新处,提高算法的寻优精度;再结合樽海鞘群领导机制,平衡了算法的全局搜索和局部勘探能力.实验结果表明采用综合改进策略的算法在收敛速度、寻优精度和鲁棒性方面具有一定优势.
1.蝴蝶优化算法
2. 改进蝴蝶优化算法
2.1 收敛因子
为进一步提高 算法的探索能力和收玫精 度, 受灰狼算法和樽海鞘 (Salp Swarm Algorithm, ) 算法的启发, 分别将其收玫因子 和 引人 的全局搜索和局部搜索公式中, 则改进后的全 局计算公式:
在迭代初期 值变化范围较大以增强全局搜 索, 在迭代后期 值变化范围较小以增强局部搜索, 值变化范围如图 1 所示, 其计算公式如下:
同理将非线性收玫因子 引人局部位置更新 处, 当 时, 算法进行全局搜索, 否则进行局部 勘探, 随着迭代次数增加变化曲线如图 2 所示. 则 改进后的局部计算公式:
式中, 的计算公式如下:
式 (9) 中, exp 为指数函数.
2.2 融合樽海鞘群领导者策略
实验发现局部探索能力得到大大提升, 但全局搜索能力提升并不 明显, 这说明全局搜索和局部搜索末得到有效平衡, 关于如何平衡全局搜索和局部搜索之间的效果, 是 群智能算法的研究重点. 鉴于樽海鞘群中领导者策 略能较好地平衡全局搜索和局部勘探, 领导者以食 物源为目标不断搜索前进, 于是考虑在局部搜索过 程中融合其领导者策略来平衡算法的全局搜索和局 部勘探, 领导者计算公式如下:
式中, 表示第 维领导者位置; , 为变量范围第 维的下界和上界.
于是在局部搜索过程中, BOA 算法的局部算子 与樽海鞘群中领导者机制同时探索, 分别按式 (8) 和式 (9) 计算 和 , 再按式 (11) 计算更新后的蝴 蝶位置.
经过上述分析, CFSSBOA 的实施过程如下:
步骤 1 设置 初值及种群规模、最大迭代 次数、转换概率和获取相关函数等参数.
步骤 2 在边界范围内随机初始化蝴蝶种群, 求解目标函数值, 并计算当前种群最优值和最优解. 步骤 3 判断算法是否终止, 如果是, 输出最优值和最优解, 否则进人步骤 4 .
步骤 4 按式 (6),式(9) 分别计算 和收敛因 子 , 然后按式 (1) 和式 (7) 计算种群中每只蝴蝶香 味浓度 和收玫因子 , 若随机数小于转换概率, 则按式 (5) 进行全局搜索; 否则按式 (8) 、式 (10) 和 式 (11) 进行局部搜索. 再进行越界处理和计算此时 函数值, 若较之前的优越, 则替换种群、最优值和最 优解.
步骤 5 再按式 (2) 计算感知形式 .
步骤 6 迭代次数加 1 , 跳转至步骤 3 .
3.实验结果
4.参考文献
[1]郑洪清,彭石燕,周永权.融合收敛因子和樽海鞘群的蝴蝶优化算法[J/OL].微电子学与计算机:1-7[2021-10-11].http://kns.cnki.net/kcms/detail/61.1123.tn.20210914.1523.009.html.
5.Matlab代码
6.Python代码