基于引力搜索机制的花朵授粉算法

一、理论基础

1、花朵授粉算法

请参考这里

2、基于引力搜索策略的花朵授粉算法

2.1 引力搜索算法

请参考这里

2.2 引力机制的FPA

花朵授粉算法全局授粉(优化)部分的个体位置的更新不能单纯依靠莱维飞行来改变步长,这在一定程度上依然存在陷入局部极值的问题。
针对该问题在花朵授粉算法的全局授粉(优化)部分引入引力机制,在引力的作用下花朵个体向质量大的个体移动,而质量最大的个体占据着最优位置,个体间的相互引力促进个体进行优化信息的共享,从而引导个体向最优解区域展开搜索。因此,万有引力机制能使花朵利用自身与其他花朵间的万有引力来牵制本身不均匀的随机游走的莱维飞行机制,使花朵受莱维飞行和个体间的引力的双重影响,引导种群向最优解靠近。所有的花朵个体通过万有引力相互吸引,并通过引力使所有的花朵朝惯性质量较大的个体方向移动,惯性质量大的花朵(当前较好个体)比惯性质量小的花朵(当前较差个体)移动缓慢。通过这种引力作用,花朵个体间相互交流、相互协作,保证了算法的开采能力。另外,万有引力的加速度与物体所受外力的方向一致,也就说明加速度的方向与大小直接影响着花朵的移动方向和大小。在花朵授粉算法中,花朵间产生的加速度直接左右着花朵的迭代位置的改变,进而引导算法的全局授粉(优化)。因此,花朵授粉算法中的全局授粉公式修改为式(1): x i t + 1 = a i k + γ L ( λ ) ( g ∗ − a i k ) (1) x_i^{t+1}=a_i^k+\gamma L(\lambda)\left(g_*-a_i^k\right)\tag{1} xit+1=aik+γL(λ)(gaik)(1)其中, a i k a_i^k aik为花朵 i i i在第 t t t代受种群中其他花朵的万有合引力所产生的加速度, L ( λ ) L(\lambda) L(λ)是对应于花朵 i i i在第 t t t代的莱维飞行位移(步长)。
由式(1)可以看出,改进后的花朵位置的更新中既考虑到了花朵授粉算法中本身的莱维飞行机制,又考虑到了种群中个体受到的万有引力的作用。这样,在花朵授粉算法的全局授粉(优化)部分引入引力机制,使花朵个体的位置随迭代进化受莱维飞行和引力两种机制的共同作用:一方面,利用莱维飞行的随机性和不均匀性的跳跃动作使花朵个体跳离局部极值;另一方面,花朵个体间的引力机制使花朵间进行信息共享,朝着质量大(最优解)的花朵移动。

2.3 算法的实现

针对花朵授粉算法的局限性,以及花朵授粉算法中所特有的莱维飞行机制和引力搜索算法中的引力机制,提出了基于引力搜索机制的花朵授粉算法GSFPA,改进算法中利用引力搜索算法中的引力策略作用于花朵授粉中全局寻优(授粉)部分,与花朵授粉算法本身的莱维飞行机制共同指导种群的迭代优化。
GSFPA算法的具体实施步骤如下:
步骤1. 初始化GSFPA算法的参数:种群数 N N N,转换概率 p p p,最大迭代次数 N _ i t e r N\_iter N_iter,维数 D D D,万有引力初始系数 G 0 G_0 G0等参数;
步骤2. 随机初始化种群的位置,计算每个解的适应度值,并求解出当前的最优值、最优解和最差值;
步骤3. 根据相应公式计算个体的万有引力系数 G t G_t Gt
步骤4. 根据相应公式计算惯性质量 M i ( t ) M_i(t) Mi(t)
步骤5. 根据相应公式计算个体 i i i的引力之和 F i k ( t ) F_i^k(t) Fik(t)
步骤6. 根据相应公式计算个体 i i i的加速度 a i k a_i^k aik
步骤7. 若转换概率 p > r a n d p>rand p>rand,按式(1)对解进行更新,并进行越界处理;
步骤8. 若转换概率 p < r a n d p<rand p<rand,按FPA的局部授粉公式对解进行更新,并进行越界处理;
步骤9. 计算步骤7或步骤8的适应度值,并更新全局最优值、全局最优解和全局最差值;
步骤10. 判断结束条件,若满足,退出程序并输出最优值及最优解,否则,转步骤3。

二、仿真实验与结果分析

将GSFPA与PSO、ABC和FPA进行对比,以文献[1]中表1的F1、F2、F3(高维单峰函数/30维)、F8、F9、F10(高维多峰函数/30维)、F14、F15、F16(低维函数/2维、2维、2维)为例,实验设置种群规模为20,最大迭代次数为500,每种算法独立运算50次,结果显示如下:

  • 函数适应度值的收敛曲线对比及收敛结果
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
函数:F1
PSO:最差值: 136.7366, 最优值: 45.6954, 平均值: 78.5905, 标准差: 21.6733
ABC:最差值: 677.1412, 最优值: 88.0789, 平均值: 294.5426, 标准差: 150.4328
FPA:最差值: 3256.8588, 最优值: 798.4602, 平均值: 1493.4369, 标准差: 447.2057
GSFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F2
PSO:最差值: 14.8244, 最优值: 3.5029, 平均值: 7.019, 标准差: 2.2936
ABC:最差值: 71.7289, 最优值: 48.6301, 平均值: 59.2809, 标准差: 5.5993
FPA:最差值: 69.7187, 最优值: 31.5497, 平均值: 46.4325, 标准差: 9.2584
GSFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F3
PSO:最差值: 8538.8371, 最优值: 1151.5564, 平均值: 2446.0648, 标准差: 1470.9844
ABC:最差值: 53391.9577, 最优值: 27646.7587, 平均值: 44236.9952, 标准差: 5621.5928
FPA:最差值: 28306.6478, 最优值: 10549.7327, 平均值: 18242.0539, 标准差: 3909.3464
GSFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F8
PSO:最差值: 2.3514, 最优值: 1.4216, 平均值: 1.7379, 标准差: 0.19988
ABC:最差值: 8.8395, 最优值: 1.6597, 平均值: 3.6406, 标准差: 1.3294
FPA:最差值: 25.3684, 最优值: 8.3295, 平均值: 15.0171, 标准差: 3.4486
GSFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F9
PSO:最差值: 10.5425, 最优值: 1.937, 平均值: 6.1144, 标准差: 2.0772
ABC:最差值: 32.8877, 最优值: 18.4422, 平均值: 27.9057, 标准差: 2.971
FPA:最差值: 21.4866, 最优值: 12.2541, 平均值: 16.2842, 标准差: 1.9622
GSFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F10
PSO:最差值: 1.1591e-12, 最优值: 1.7872e-13, 平均值: 3.7239e-13, 标准差: 1.624e-13
ABC:最差值: 1.813e-10, 最优值: 2.1169e-11, 平均值: 8.7483e-11, 标准差: 3.6715e-11
FPA:最差值: 4.2554e-12, 最优值: 1.1178e-12, 平均值: 2.0711e-12, 标准差: 5.5589e-13
GSFPA:最差值: -1, 最优值: -1, 平均值: -1, 标准差: 0
函数:F14
PSO:最差值: -0.99975, 最优值: -1, 平均值: -0.99998, 标准差: 4.7284e-05
ABC:最差值: -1, 最优值: -1, 平均值: -1, 标准差: 0
FPA:最差值: -0.93625, 最优值: -0.9999, 平均值: -0.98288, 标准差: 0.019299
GSFPA:最差值: -1, 最优值: -1, 平均值: -1, 标准差: 0
函数:F15
PSO:最差值: 4.2723e-05, 最优值: 3.6898e-08, 平均值: 5.7442e-06, 标准差: 9.5186e-06
ABC:最差值: 1.2954e-09, 最优值: 1.7405e-17, 平均值: 6.1513e-11, 标准差: 2.5569e-10
FPA:最差值: 0.0064172, 最优值: 2.0504e-06, 平均值: 0.00049125, 标准差: 0.0009834
GSFPA:最差值: 0.015429, 最优值: 1.1192e-05, 平均值: 0.0014845, 标准差: 0.0027543
函数:F16
PSO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 5.2005e-06
ABC:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.9827e-15
FPA:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.1054e-08
GSFPA:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 3.6291e-07
  • 独立运行50次的函数最优适应度值比较特性图
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

实验结果表明:改进算法的寻优性能显著优于基本的花朵授粉算法,其收敛速度、收敛精度、鲁棒性均较对比算法有较大提升。

三、参考文献

[1] 肖辉辉, 万常选, 段艳明, 等. 基于引力搜索机制的花朵授粉算法[J]. 自动化学报, 2017, 43(4): 576-594.

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
定日镜场优化布置问题是指如何在给定区域内合理布置定日镜场,以最大程度地捕获太阳能。自适应引力搜索算法是一种全局优化算法,可以用于解决这个问题。 在使用自适应引力搜索算法进行定日镜场优化布置时,可以按照以下步骤进行: 1. 定义问题:明确问题的目标和约束条件。例如,确定需要布置定日镜场的区域大小、太阳能捕获量的最大化等。 2. 初始化种群:随机生成初始解的种群。每个个体表示一种可能的定日镜场布置方案。 3. 计算适应度:根据定义的目标函数,计算每个个体的适应度值。适应度值表示该布置方案对目标的优劣程度。 4. 更新位置:根据引力和位置的关系更新个体的位置。引力可以根据个体之间的距离和适应度值计算得出。更新后的位置表征了新的布局方案。 5. 更新适应度:根据更新后的位置重新计算个体的适应度值。 6. 选择操作:根据适应度值选择优秀的个体,并进行保留和淘汰操作,确保种群中保留一定数量的优秀解。 7. 终止条件:循环执行步骤4至步骤6,直到满足终止条件,例如达到最大迭代次数或适应度值收敛。 8. 输出结果:返回最优解或者满足要求的布置方案。 需要注意的是,自适应引力搜索算法中的参数设置和更新公式的选择会影响算法的收敛性和全局搜索能力,需要根据具体问题进行调整和优化。同时,定日镜场优化布置问题还需要考虑到其他因素,如地形、阴影等,综合考虑得出最佳布局方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值