文章目录

  • 一、理论基础
    • 1、花朵授粉算法
    • 2、改进的花朵授粉算法
      • (1)基于反向学习的种群初始化
      • (2)逐维随机扰动的局部开发
      • (3)IFPA算法流程
  • 二、数值实验与分析
  • 三、参考文献

一、理论基础

1、花朵授粉算法

请参考这里。

2、改进的花朵授粉算法

(1)基于反向学习的种群初始化

本文采用反向学习策略初始化花粉种群,在原花粉位置 X i j = L b i j + ( U b i j − L b i j ) × r a n d ( 0 , 1 ) X_i^j=Lb_i^j+(Ub_i^j-Lb_i^j)\times rand(0,1) Xij​=Lbij​+(Ubij​−Lbij​)×rand(0,1)和其对立花粉位置 O X i j = L b i j + U b i j − X i j OX_i^j=Lb_i^j+Ub_i^j-X_i^j OXij​=Lbij​+Ubij​−Xij​的 2 n 2n 2n个个体中选取适应度值最优的 n n n个花粉个体作为算法的初始种群,充分提取搜索空间的有用信息,保留更多的优良个体,为算法迭代更新奠定较好的基础,增加找到更高质量解的机率。
为说明反向学习初始化对种群多样性和种群质量的影响,图1(a)和图1(b)分别给出了IFPA求解Sphere函数时反向学习前后种群个体分布情况。其中,绿色圆圈代表花粉位置,红色圆点代表全局最优点。问题维度为3维,变量搜索空间为 [ − 100 , 100 ] [-100,100] [−100,100],种群数为5。

(a) 随机初始化分布
(b) 反向学习分布 图1 花粉初始化分布图

图1清楚地显示,反向学习使花粉个体探索了更多的位置,增加了种群多样性,反向学习后有更多的花粉接近全局最优点,提高了初始种群质量,为算法奠定了更好的迭代基础。

(2)逐维随机扰动的局部开发

本文为打破维间干扰问题,提出局部开发的逐维随机扰动策略,借鉴萤火虫算法相对荧光亮度公式 I = I 0 × e − γ r i , j I=I_0\times e^{-\gamma r_{i,j}} I=I0​×e−γri,j​,设计逐维随机相对继承程度 m m m和逐维随机相对受扰动程度 2 − m 2-m 2−m, m m m的公式表达为: m = k × e − ∣ 2 π L ( j ) ∣ (1) m=k\times e^{-|2\pi L(j)|}\tag{1} m=k×e−∣2πL(j)∣(1)其中, k k k为花粉配子的最大继承程度,与原花朵授粉算法保持一致取值为1,表示对上代花粉位置完全继承; 2 π 2\pi 2π是花粉粒子继承系数; ∣ L ( j ) ∣ |L( j)| ∣L(j)∣是花粉粒子在第 j j j维上的Lévy飞行距离。
由于每一维的Lévy飞行距离不同,使得花粉个体的每一维不同程度地继承上代信息,受到不同程度的扰动,解决了维间干扰问题,增加了种群多样性,在当代最优位置的牵引作用下,最终提出的第 j j j维的更新公式为: x n e w i , j t + 1 = m × x i , j t + ( 2 − m ) × ε ( g ∗ , j − x i , j t ) (2) xnew_{i,j}^{t+1}=m\times x_{i,j}^t+(2-m)\times\varepsilon(g_{*,j}-x_{i,j}^t)\tag{2} xnewi,jt+1​=m×xi,jt​+(2−m)×ε(g∗,j​−xi,jt​)(2)该更新方式不仅解决了维间干扰问题,而且使得算法不会错失Lévy飞行的良好机制,如果较大跳跃配合全局搜索执行,自然可以提升算法全局寻优能力,如果较大跳跃配合局部开发执行,就可以使花粉个体受到更大的扰动影响(Lévy飞行距离越长, 2 − m 2-m 2−m的值越大)。在迭代初期种群差异较大时,花粉个体能受到更大的扰动影响,遍历更大的范围,因此不管进行全局搜索还是局部搜索,都能保证算法初期花粉个体的跳跃能力,提高算法初期的迭代质量和全局寻优能力,有效解决算法易陷入局部最优的问题。
被更新的花粉个体如果更优,就接受它并将它作为下代更新的基础,否则就舍弃该更新解,保持之
前的迭代基础。局部开发的逐维随机扰动策略具体如图2所示。

图2 逐维随机扰动策略

(3)IFPA算法流程

IFPA优化流程如图3所示。

图3 IFPA流程图

二、数值实验与分析

将IFPA与FPA、PSO和BA进行对比,以文献[1]中表1的f1、f2、f3、f6(单峰函数/100维)、f10、f11、f12、f13(多峰函数/100维)为例,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:

函数:F1
IFPA:最差值: 7.122e-124, 最优值: 3.2436e-126, 平均值: 7.9334e-125, 标准差: 1.3782e-124
FPA:最差值: 2406.6852, 最优值: 802.2952, 平均值: 1378.0983, 标准差: 365.2696
PSO:最差值: 4476.977, 最优值: 2116.2016, 平均值: 3168.3097, 标准差: 674.94
BA:最差值: 273598.0898, 最优值: 164320.1154, 平均值: 245162.0614, 标准差: 22426.762
函数:F2
IFPA:最差值: 6.4045e-53, 最优值: 3.829e-54, 平均值: 2.3284e-53, 标准差: 1.3519e-53
FPA:最差值: 32.1118, 最优值: 19.8908, 平均值: 26.1115, 标准差: 3.0715
PSO:最差值: 39.4614, 最优值: 28.0278, 平均值: 32.9453, 标准差: 3.0777
BA:最差值: 93.6034, 最优值: 81.0963, 平均值: 89.7498, 标准差: 2.9488
函数:F3
IFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
FPA:最差值: 2399, 最优值: 803, 平均值: 1540.4333, 标准差: 357.9382
PSO:最差值: 7821, 最优值: 3230, 平均值: 4655.4667, 标准差: 1115.9652
BA:最差值: 295527, 最优值: 136323, 平均值: 246268.9, 标准差: 40221.2873
函数:F6
IFPA:最差值: 2.7836e-64, 最优值: 3.9036e-65, 平均值: 1.0279e-64, 标准差: 5.5534e-65
FPA:最差值: 32.9231, 最优值: 21.6976, 平均值: 27.3862, 标准差: 2.9475
PSO:最差值: 158.5132, 最优值: 56.1433, 平均值: 71.5735, 标准差: 18.2229
BA:最差值: 3.539311621185401e+35, 最优值: 13327094426292.14, 平均值: 1.179991827054246e+34, 标准差: 6.461827617977305e+34
函数:F10
IFPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
FPA:最差值: 16.0066, 最优值: 6.0153, 平均值: 12.112, 标准差: 2.2884
PSO:最差值: 46.7969, 最优值: 20.2491, 平均值: 30.954, 标准差: 6.6282
BA:最差值: 2627.7552, 最优值: 1581.8446, 平均值: 2367.6073, 标准差: 183.4229
函数:F11
IFPA:最差值: 2.931e-14, 最优值: 2.2204e-14, 平均值: 2.3152e-14, 标准差: 2.4567e-15
FPA:最差值: 19.3268, 最优值: 11.7422, 平均值: 15.5977, 标准差: 2.2718
PSO:最差值: 13.4702, 最优值: 9.9699, 平均值: 11.3497, 标准差: 0.87818
BA:最差值: 19.9668, 最优值: 19.9648, 平均值: 19.9658, 标准差: 0.00049952
函数:F12
IFPA:最差值: 3.1306e-65, 最优值: 3.8976e-66, 平均值: 1.5012e-65, 标准差: 6.2511e-66
FPA:最差值: 58.362, 最优值: 30.7001, 平均值: 42.9229, 标准差: 7.8601
PSO:最差值: 61.0827, 最优值: 38.97, 平均值: 47.5868, 标准差: 5.604
BA:最差值: 97.8901, 最优值: 45.0267, 平均值: 72.8083, 标准差: 11.0739
函数:F13
IFPA:最差值: 1.1369e-13, 最优值: 0, 平均值: 1.5158e-14, 标准差: 3.9307e-14
FPA:最差值: 705.8955, 最优值: 616.5702, 平均值: 652.7033, 标准差: 22.1828
PSO:最差值: 553.7418, 最优值: 387.9361, 平均值: 458.1253, 标准差: 39.8597
BA:最差值: 856.654, 最优值: 510.4119, 平均值: 724.4586, 标准差: 85.3306

实验结果表明:IFPA的求解精度、收敛速度、鲁棒性、对不同类型测试函数的适应性等都明显优于FPA、PSO和BA。

三、参考文献

[1] 李煜, 郑娟, 刘景森. 大规模优化问题的改进花朵授粉算法[J]. 计算机科学与探索, 2020, 14(8): 1427-1440.

大规模优化问题的改进花朵授粉算法相关推荐

  1. 改进花朵授粉算法的无线传感器网络部署优化(Matlab代码实现)

  2. 【智能优化算法】基于花朵授粉算法求解单标目优化问题附matlab代码

    1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...

  3. 【优化求解】基于花朵授粉FPA算法求解最优目标matlab代码

    1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...

  4. 【智能优化算法】基于花朵授粉算法求解多目标目优化问题附matlab代码

    1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...

  5. 【lssvm预测】基于花朵授粉算法优化最小二乘支持向量机lssvm实现预测附matlab代码

    1 简介 短时交通流预测是实现智能交通控制与管理,交通流状态辨识和实时交通流诱导的前提及关键,也是智能化交通管理的客观需要.到目前为止,它的研究结果都不尽如人意.现有的以精确数学模型为基础的传统预测方 ...

  6. 【优化算法】基于变异策略的改进型花朵授粉算法matlab源码

    一.简介 介绍了一种新的元启发式群智能算法--花朵授粉算法(flower pollinate algorithm,FPA)和一种新型的差分进化变异策略--定向变异(targeted mutation, ...

  7. 花朵授粉算法(FPA)文章复现(动态调整p值+动态全局改进异花授粉+增强局部改进自花授粉+动态边界处理)

    花朵授粉算法(FPA)文章复现(动态调整p值+动态全局改进异花授粉+增强局部改进自花授粉+动态边界处理)--HSFPA 复现内容包括:文章改进FPA算法实现.23个基准测试函数.文中相关因子分析.与F ...

  8. 基于混合策略改进的花朵授粉算法

    文章目录 一.理论基础 1.花朵授粉算法(FPA) 2.基于混合策略改进的花朵授粉算法 (1)自适应转换概率策略 (2)动态全局搜索策略 (3)局部搜索增强策略 (4)花粉越界修正策略 (5)HSFP ...

  9. 基于多策略的改进花授粉算法

    文章目录 一.理论基础 1.基本花授粉算法 2.基于多策略改进的花授粉算法 (1)新全局搜索策略 (2)引入精英变异策略的局部搜索策略 (3)对劣解的改进策略 (4)自适应调整转换概率 二.实验仿真及 ...

最新文章

  1. Spring-data-redis 反序列化异常
  2. intellij中出現org.apache.hadoop.fs.FSDataInputStream解決方案
  3. java 检查目录是否存在_如何检查Java目录是否存在?
  4. Java支持IPv6研究
  5. python 保留顺序去重_Python数据分析入门教程(二):数据预处理
  6. (转)Awk使用案例总结(运维必会)
  7. mysql如何查看表的大小_mysql 如何查看表的大小
  8. innodb 删除隐藏列_MySQL进阶之InnoDB事务原子性实现原理
  9. Mac可以把html做成壁纸吗,「iWall」Mac动态桌面软件就用这款,还可使用网页作为桌面背景...
  10. 微信公众号注册认证流程
  11. 百度地图3D地球接入
  12. Codeforces Gym 100339B Diversion 树形DP + LCA
  13. Linux·字符设备和杂项设备
  14. linux下的串口编程
  15. Redis基础进阶--Sentinel 机制与用法(二)
  16. 【Flutter】使用高德地图实现地图选点以及地图搜索
  17. 伽马校正(gamma correction)学习笔记
  18. logAB = logA + logB; A,B0
  19. 数据大屏:聊聊常见可视化大屏的产品实现
  20. CM阿里云安装Cloudera Mananger

热门文章

  1. windows10删除休眠文件
  2. DataGrid中DataGridComboBoxColumn列SelectedValueBinding注意Mode设置
  3. 命令行基础、目录及文件管理 、 文本内容操作
  4. Ucloud之us3不同区域文件同步
  5. matlab函数式里虚数i怎么表示,matlab虚数_matlab 中复数如何表示?
  6. Request请求消息数据格式
  7. WCF--提示:异常消息为“传入消息的消息格式不应为“Raw”。此操作的消息格式应为 'Xml', 'Json'。...
  8. 测试人员如何快速熟悉产品业务
  9. C语言学生管理系统(结构体数组)
  10. 使用CRM来规范审批流程