基于三重动态调整的花授粉算法
文章目录
- 基于三重动态调整的花授粉算法
- 1.花授粉算法
- 2. 改进花授粉算法
- 2.1 动态概率 P
- 2. 2 新型动态因子 ω
- 2.3 正弦余弦步长因子 μ
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对花授粉算法存在的收敛速度慢、易陷入局部最优及收敛精度低等缺点,提出了基于三重动态调整的改进花授粉算法。采用动态转换概率切换算法的搜索模式,在全局搜索更新机制中引入新型动态因子,并在局部开发更新机制中引入正余弦步长因子。
1.花授粉算法
2. 改进花授粉算法
2.1 动态概率 P
为了平衡 FPA算法的全局搜索和局部搜索, 使 算法更加灵活, 将固定转换概率 更改为随着迭 代次数自适应变化的动态转换概率 , 即
由式 (4) 计算得到, 即
式中: 与 分别为 的最大值与最小值; 为 当前迭代次数, 为最大迭代次数。根据文献 。在迭代初期, 的取 值较大, 所以算法侧重于全局搜索, 有效地增强了全 局搜索能力, 使得种群中的个体更靠近最优解; 随着 迭代深入,
2. 2 新型动态因子 ω
为了提高 FPA 算法跳出局部最优的能力, 在式
(1) 给出的算法模型基础上引入新型动态因子 , 调节种群迭代过程中搜索个体对当前母系花 粉位置信息的依赖性。新型动态因子 的计算公式 如(5) 式所示:
式中:
计算得 的取值范围为 , 即
迭代前期动态因子 值较小, 削弱母系花粉位 置对算法的影响, 让花粉更自由地以 Levy 飞行在搜 索空间内大范围地进行搜索, 增加全局搜索的能 力。迭代后期,动态因子 减小, 使跳出局部最优的 能力得到增强。改进后的异花授粉公式为
2.3 正弦余弦步长因子 μ
花授粉算法局部搜索机制中步长因子 为 , 1) 中的随机数, 算法迭代到后期容易导致求解精度 低, 易陷入局部最优等问题, 所以本文提出了正弦余 弦步长因子
由式(9) 计算可得, 即
式中: 为
改进后的自花授粉公式为:
1)初始化算法中各个参数。初始化花粉种群 规模 、最 大迭代次数 , 根据式 (3) 定义异花授 粉和自花授粉转换概率 。
2) 初始化花粉种群。寻找当前最优花粉和其 所处地位置 , 并计算出其适应度值 。
3) 进入主循环过程, 随机产生一个迶机数 rand(•), 如果 , 则按照式 (7) 进行异 花授粉, 更新当前花粉位置; 否则, 根据式 (10) 进行 自花授粉,并更新花粉位置。
4) 判断是否更新个体。如果 , 则选择接受新的解, 并传粉 至新位置 ; 否则, 转至步骤3)。
5) 与最优花粉进行比较, 如果 , 则替换之前最优花粉 为 。
6) 若当前花粉不是种群中最后一个花粉, 则选 择下一个花粉, 并返回步骤 4); 否则, 转至步骤 7)。
7) 满足算法的终止条件 (达到最大迭代次数), 则进行步骤 8); 否则进入步骤 3), 继续进入下-代 捜索。
8) 输出最优的花粉个体 和全局最优解
3.实验结果
4.参考文献
[1]洪露,贺兴时,杨新社.基于三重动态调整的花授粉算法[J].西安工程大学学报,2021,35(02):97-103.
5.Matlab代码
6.Python代码