基于混合策略改进的花朵授粉算法
文章目录
- 一、理论基础
- 1、花朵授粉算法(FPA)
- 2、基于混合策略改进的花朵授粉算法
- (1)自适应转换概率策略
- (2)动态全局搜索策略
- (3)局部搜索增强策略
- (4)花粉越界修正策略
- (5)HSFPA算法流程
- 二、实验仿真与分析
- 三、参考文献
一、理论基础
1、花朵授粉算法(FPA)
请参考这里。
2、基于混合策略改进的花朵授粉算法
(1)自适应转换概率策略
本文提出了一种新的策略,通过改进转换概率ppp的取值实现动态调整寻优过程。具体的转换概率计算公式为:p(t)={pmin+(pmax−pmin)⋅cos(π2⋅tT),R1<0.5pmin+(pmax−pmin)⋅Fitnessmax,t−Fitnessi,tFitnessmax,t−Fitnessmin,t,R1≥0.5(1)p(t)=\begin{dcases}p_{\min}+(p_{\max}-p_{\min})\cdot\cos\left(\frac\pi2\cdot\frac tT\right),\quad\quad\quad\quad\quad\quad\quad\, R_1<0.5\\p_{\min}+(p_{\max}-p_{\min})\cdot\frac{Fitness_{\max,t}-Fitness_{i,t}}{Fitness_{\max,t}-Fitness_{\min,t}},\quad R_1≥0.5\end{dcases}\tag{1}p(t)=⎩⎪⎪⎨⎪⎪⎧pmin+(pmax−pmin)⋅cos(2π⋅Tt),R1<0.5pmin+(pmax−pmin)⋅Fitnessmax,t−Fitnessmin,tFitnessmax,t−Fitnessi,t,R1≥0.5(1)其中,pminp_{\min}pmin和pmaxp_{\max}pmax分别是是转换概率的最小值和最大值,分别取相关文献中效果较好的0.2和0.8, ttt为种群当前迭代次数,TTT为种群最大迭代次数,Fitnessmin,tFitness_{\min,t}Fitnessmin,t和Fitnessmax,tFitness_{\max,t}Fitnessmax,t分别是种群第ttt次迭代过程中花粉个体的最小适应度值和最大适应度值,Fitnessi,tFitness_{i,t}Fitnessi,t是第ttt次迭代中当前花粉个体的适应度值,R1R_1R1为随机扰动因子,是[0,1][0,1][0,1]之间的随机数,用来控制公式的选择。
从公式中可知,R1<0.5R_1<0.5R1<0.5时,转换概率ppp的取值随着迭代次数的增加而从1到0非线性递减,在迭代初期ppp的取值较大,算法主要执行全局搜索,收敛速度较快,在解空间中的探索范围更大,在迭代后期ppp的取值较小,算法以局部搜索为主,在解空间中搜索更加细致,更容易找到全局最优解。同时根据cos\coscos函数在[0,π2]\left[0,\frac\pi2\right][0,2π]之间的取值变化可知,前期变化速度稍快,后期变化速度稍慢,这种特性有利于提高种群的收敛能力;R1≥0.5R_1≥0.5R1≥0.5时,转换概率ppp受到适应度值得影响,前期种群中的适应度值差异很大,ppp取值较大,以全局搜索为主,后期算法处于收敛过程,适应度值差异逐渐减小,ppp取较小的值,主要进行局部搜索。上述公式在考虑迭代次数影响的同时也将适应度值作为转换概率p的取值依据,有利于提高算法的整体寻优效果。
(2)动态全局搜索策略
本文提出了一种全新的动态全局搜索策略,具体公式如下:xi,t={xbest,t−A⋅∣C⋅xbest,t−xi,t∣,R2<pxi,t+levy⋅(xbest,t−xi,t),R2≥p(2)x_{i,t}=\begin{dcases}x_{best,t}-A\cdot|C\cdot x_{best,t}-x_{i,t}|,\quad R_2<p\\x_{i,t}+levy\cdot(x_{best,t}-x_{i,t}),\quad\quad\, R_2≥p\end{dcases}\tag{2}xi,t={xbest,t−A⋅∣C⋅xbest,t−xi,t∣,R2<pxi,t+levy⋅(xbest,t−xi,t),R2≥p(2)其中,xi,tx_{i,t}xi,t和xbest,tx_{best,t}xbest,t分别是算法进行第ttt次迭代时的当前个体和花粉种群中的最优个体,R2R_2R2为随机扰动因子,是[0,1][0,1][0,1]之间的随机数,用来控制公式的选择,levylevylevy是莱维飞行步长函数。AAA和CCC都是系数向量,aaa是收敛因子,随着算法迭代次数从2线性递减到0,r1r_1r1和r2r_2r2取[0,1][0,1][0,1]之间的随机数,AAA和CCC按照如下公式计算:A=2a⋅r1−a(3)A=2a\cdot r_1-a\tag{3}A=2a⋅r1−a(3)C=2⋅r2(4)C=2\cdot r_2\tag{4}C=2⋅r2(4)根据公式可知,迭代初期ppp的取值较大,R2<pR_2<pR2<p概率大,算法主要执行(5)的第一个式子,该式子定义了最优花粉引导其余花粉的更新过程,种群中的个体可以快速到达最优值附近,有利于加快算法的收敛速度。随着迭代过程的不断进行,ppp的取值逐渐减小,此时R2≥pR_2≥pR2≥p的概率增大,算法按照第二个式子进行更新,该公式为原始FPA算法的莱维飞行机制,在算法后期用于维持花朵种群的多样性,防止算法陷入局部最优。
(3)局部搜索增强策略
在解空间中,本文对于最优值的位置并不确定,为了进一步增强局部搜索的性能,本文筛选出适应度值排名前三的个体作为优质花粉,不单单使用一个最优值而是利用三者位置的综合信息预测全局最优解的潜在位置,引导其余劣质花粉向着全局最优位置更新,增强寻优过程中优质个体之间的信息交互。更新后的计算公式如下:D1=∣Xbest,t−Xi,t∣(5)D_1=|X_{best,t}-X_{i,t}|\tag{5}D1=∣Xbest,t−Xi,t∣(5)D2=∣Xsecondbest,t−Xi,t∣(6)D_2=|X_{secondbest,t}-X_{i,t}|\tag{6}D2=∣Xsecondbest,t−Xi,t∣(6)D3=∣Xthirdbest,t−Xi,t∣(7)D_3=|X_{thirdbest,t}-X_{i,t}|\tag{7}D3=∣Xthirdbest,t−Xi,t∣(7)D=D1+D2+D33(8)D=\frac{D_1+D_2+D_3}{3}\tag{8}D=3D1+D2+D3(8)xi,t=xi,t+ω⋅ε⋅(xjt−xkt)+(1−ω)⋅ebl⋅cos(2πl)⋅D⋅levy(9)x_{i,t}=x_{i,t}+\omega\cdot\varepsilon\cdot(x_j^t-x_k^t)+(1-\omega)\cdot e^{bl}\cdot\cos(2\pi l)\cdot D\cdot levy\tag{9}xi,t=xi,t+ω⋅ε⋅(xjt−xkt)+(1−ω)⋅ebl⋅cos(2πl)⋅D⋅levy(9)其中,Xbest,tX_{best,t}Xbest,t、Xsecondbest,tX_{secondbest,t}Xsecondbest,t、Xthirdbest,tX_{thirdbest,t}Xthirdbest,t分别是排名前三的优质花粉个体;xi,tx_{i,t}xi,t是第ttt次迭代中的当前花粉个体,xjtx_j^txjt和xktx_k^txkt是从所有解中随机选择的两个解向量,ε\varepsilonε是[0,1][0,1][0,1]之间的随机变量,ω\omegaω是权重系数,用于控制两种更新方式的比例,这里取ω=0.5\omega=0.5ω=0.5,bbb是定义对数螺旋形状的常量系数,lll表示[−1,1][-1,1][−1,1]区间内的随机数,levylevylevy是莱维飞行步长函数。
(4)花粉越界修正策略
在原始FPA算法中,当新位置超出搜索范围时,通常不做处理或将其替换为该范围,这大大降低了算法的优化效率。本文提出了一种全新的越界修正策略,将越界花粉移动至搜索空间中的随机位置,有助于提升花朵授粉算法的探索能力。越界花粉的新位置根据计算式(10)进行更新:xi,t={ub+R3⋅ub−xi,txi,t⋅ub,xi,t>ublb+R3∣lb−xi,txi,t⋅lb∣,xi,t<lb(10)x_{i,t}=\begin{dcases}ub+R_3\cdot\frac{ub-x_{i,t}}{x_{i,t}}\cdot ub,\quad x_{i,t}>ub\\lb+R_3\left|\frac{lb-x_{i,t}}{x_{i,t}}\cdot lb\right|,\quad\,\,\,\, x_{i,t}<lb\end{dcases}\tag{10}xi,t=⎩⎪⎪⎨⎪⎪⎧ub+R3⋅xi,tub−xi,t⋅ub,xi,t>ublb+R3∣∣∣∣xi,tlb−xi,t⋅lb∣∣∣∣,xi,t<lb(10)其中,ububub和lblblb分别是上界和下界,R3R_3R3是[0,1][0,1][0,1]之间的随机数。
(5)HSFPA算法流程
Step 1:设置种群大小NNN、最大迭代次数TTT、测试函数维度dimdimdim等参数,随机产生初始花粉的位置。
Step 2:执行自适应转换概率策略,利用式(1)计算转换概率ppp,计算结束进入Step 3。
Step 3:如果rand<prand<prand<p,算法进入异花授粉过程,此时执行动态全局搜索策略,按照式(2)更新花粉个体的位置坐标;如果rand≥prand≥prand≥p,算法进入自花授粉过程,此时执行局部搜索增强策略,采用式(9)更新花粉个体的位置坐标。
Step 4:检查种群中的个体是否越界,如果发生越界,则利用式(10)执行花粉越界修正策略,否则进入Step 5。
Step 5:根据新解计算个体的适应度值并更新当前的花粉个体。
Step 6:判断是否满足算法终止条件,如果满足条件,则转到Step 7,否则转到Step 2,进行新一轮的迭代更新。
Step 7:输出全局最优解和相应的最优值,算法结束。
二、实验仿真与分析
为了验证本文改进算法HSFPA在搜索精度方面的寻优效果,将其与PSO、CS和FPA在文献[1]中表1给出的10个标准测试函数上进行仿真实验对比。实验中,各算法设置种群数量为50,最大迭代次数1000次,所有算法在每个测试函数上均独立运行20次。结果显示如下:
函数:F1
PSO:最差值: 0.0023076,最优值:0.00042548,平均值:0.0012368,标准差:0.00052534
CS:最差值: 0.021127,最优值:0.0053475,平均值:0.0096371,标准差:0.0042684
FPA:最差值: 300.9477,最优值:85.4494,平均值:158.556,标准差:48.2897
HSFPA:最差值: 1.7245e-145,最优值:1.0722e-156,平均值:9.2541e-147,标准差:3.8443e-146
函数:F2
PSO:最差值: 1620.3935,最优值:299.513,平均值:917.8702,标准差:380.0512
CS:最差值: 103.7283,最优值:32.1437,平均值:57.6949,标准差:19.1377
FPA:最差值: 1619212.0163,最优值:816070.7196,平均值:1286321.6912,标准差:232980.4071
HSFPA:最差值: 1.148e-139,最优值:7.8161e-158,平均值:6.4148e-141,标准差:2.5688e-140
函数:F3
PSO:最差值: 72.8474,最优值:32.0226,平均值:51.3455,标准差:12.0448
CS:最差值: 94.1733,最优值:66.4839,平均值:83.0519,标准差:9.3855
FPA:最差值: 155.627,最优值:101.1569,平均值:131.4592,标准差:13.4394
HSFPA:最差值: 114.442,最优值:0,平均值:5.7221,标准差:25.59
函数:F4
PSO:最差值: 0.027548,最优值:0.00071342,平均值:0.011231,标准差:0.0084143
CS:最差值: 0.1683,最优值:0.060091,平均值:0.10076,标准差:0.027091
FPA:最差值: 3.1338,最优值:1.9264,平均值:2.4492,标准差:0.34814
HSFPA:最差值: 0.007636,最优值:0,平均值:0.0003818,标准差:0.0017075
函数:F5
PSO:最差值: 6.7472e-25,最优值:8.7427e-42,平均值:3.3999e-26,标准差:1.5081e-25
CS:最差值: 1.2467e-28,最优值:9.7706e-41,平均值:7.7328e-30,标准差:2.8237e-29
FPA:最差值: 2.4599e-14,最优值:1.9138e-19,平均值:1.9468e-15,标准差:5.51e-15
HSFPA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F6
PSO:最差值: 2.816,最优值:0.021167,平均值:1.7172,标准差:0.67666
CS:最差值: 7.7462,最优值:2.0886,平均值:3.8792,标准差:1.6639
FPA:最差值: 17.0484,最优值:11.3886,平均值:13.7436,标准差:1.3761
HSFPA:最差值: 4.4409e-15,最优值:8.8818e-16,平均值:3.5527e-15,标准差:1.5783e-15
函数:F7
PSO:最差值: 776.3293,最优值:51.9794,平均值:316.8911,标准差:196.8954
CS:最差值: 0.097709,最优值:0.038891,平均值:0.064006,标准差:0.016908
FPA:最差值: 30.2219,最优值:17.6525,平均值:24.4055,标准差:4.0209
HSFPA:最差值: 7.1659e-11,最优值:1.6496e-36,平均值:3.5829e-12,标准差:1.6023e-11
函数:F8
PSO:最差值: -1589.6932,最优值:-1745.2912,平均值:-1671.1009,标准差:44.235
CS:最差值: -1679.9196,最优值:-1759.6293,平均值:-1704.8318,标准差:20.9123
FPA:最差值: -1608.071,最优值:-1658.9411,平均值:-1631.9023,标准差:13.3438
HSFPA:最差值: -1559.6463,最优值:-1957.8329,平均值:-1812.3042,标准差:132.8986
函数:F9
PSO:最差值: -6.3469,最优值:-9.5107,平均值:-8.2313,标准差:0.86688
CS:最差值: -8.1529,最优值:-9.5026,平均值:-8.8024,标准差:0.31617
FPA:最差值: -7.2974,最优值:-8.3783,平均值:-7.816,标准差:0.28056
HSFPA:最差值: -7.2047,最优值:-9.3282,平均值:-8.389,标准差:0.59405
函数:F10
PSO:最差值: 16.1061,最优值:3.482e-12,平均值:0.80531,标准差:3.6014
CS:最差值: 1.8225e-09,最优值:9.1093e-11,平均值:5.5707e-10,标准差:4.8111e-10
FPA:最差值: 0.0091483,最优值:0.0012465,平均值:0.0032839,标准差:0.001799
HSFPA:最差值: 5.2098e-237,最优值:5.0027e-267,平均值:2.605e-238,标准差:0
实验结果表明,本文所提基于混合策略改进的花朵授粉算法HSFPA与其他算法相比具有更好的表现,证明了本文的改进策略能够促进传统FPA算法寻优性能的有效提升。
三、参考文献
[1] 李克文, 梁永琪, 李绍辉. 基于混合策略改进的花朵授粉算法[J]. 计算机应用研究, 2022, 39(2): 361-366.
基于混合策略改进的花朵授粉算法相关推荐
- 基于混合策略改进的鲸鱼优化算法
文章目录 一.理论基础 1.基本鲸鱼优化算法 2.混合策略改进的鲸鱼优化算法 (1)Sobol序列初始化种群 (2)非线性时变因子和自适应权值 (3)随机性学习策略 (4)柯西变异策略 二.算法描述 ...
- 基于混合策略改进的蝴蝶优化算法
文章目录 一.理论基础 1.蝴蝶优化算法 2.正弦余弦算法 3.MSBOA算法(混合策略改进的蝴蝶优化算法) (1)融合改进正弦余弦算法的局部搜索 (2)自适应权重系数 (3)逐维变异策略 二.MSB ...
- 【优化算法】基于变异策略的改进型花朵授粉算法matlab源码
一.简介 介绍了一种新的元启发式群智能算法--花朵授粉算法(flower pollinate algorithm,FPA)和一种新型的差分进化变异策略--定向变异(targeted mutation, ...
- 【智能优化算法】基于花朵授粉算法求解单标目优化问题附matlab代码
1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...
- 【智能优化算法】基于花朵授粉算法求解多目标目优化问题附matlab代码
1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...
- 【lssvm预测】基于花朵授粉算法优化最小二乘支持向量机lssvm实现预测附matlab代码
1 简介 短时交通流预测是实现智能交通控制与管理,交通流状态辨识和实时交通流诱导的前提及关键,也是智能化交通管理的客观需要.到目前为止,它的研究结果都不尽如人意.现有的以精确数学模型为基础的传统预测方 ...
- 大规模优化问题的改进花朵授粉算法
文章目录 一.理论基础 1.花朵授粉算法 2.改进的花朵授粉算法 (1)基于反向学习的种群初始化 (2)逐维随机扰动的局部开发 (3)IFPA算法流程 二.数值实验与分析 三.参考文献 一.理论基础 ...
- 混合策略改进的蝴蝶优化算法-附代码
混合策略改进的蝴蝶优化算法 文章目录 混合策略改进的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 混沌映射初始化 2.2 融合改进正弦余弦算法的局部搜索 2.3 自适应权重系数 2. ...
- 花朵授粉算法【记录】
最近在做寻优算法,到了花朵授粉算法时,发现网上可用的资料不多,大部分为期刊论文,通过阅读一些期刊论文稍微了解了一点,遂做一个记录. 花朵授粉算法( Flower Pollination Algorit ...
最新文章
- Linux 工具进阶
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
- extern c用法解析
- groupByKey、reduceByKey区别(转)
- Python面试题总结(8)--操作类
- java 生成校验验证码_java生成验证码并进行验证
- C++ 1 三字符组
- Python 爬取了猫眼 47858 万条评论,告诉你《飞驰人生》值不值得看?!
- jquery绑定方法on的
- 菜鸟教程-maven
- 用python爬虫爬取图虫网站图片
- 美团8年经验之谈,测试工程师如何进阶(自动化、性能、测开)
- Docker容器运行
- Android 带裁剪功能的照片处理方法
- 魔方机器人需要特制魔方吗_大开眼界:会玩魔方的机器人
- 账号被盗,如何强制下线?
- UnicodeEncodeError: 'ascii' codec can't encode character '\u2013'
- python爬取天猫商品数据
- Google的两种广告推广方式
- 山东大学数据库实验一、二、三、四、五、六、七、八、九答案(大集合)
热门文章
- VR云游带你玩转智慧文旅,解决景区营销痛点
- python无需修改是什么特性_2to3表示“无需更改”,然后是“需要修改的文件”...
- C++用户自定义的数据类型
- PoCBox – 漏洞测试验证辅助平台
- 011_掩藏真实ip,使用proxy代理
- 2022 Android studio 最全必用插件
- echarts中坐标轴样式修改
- yh-app(基于vue和uni-app的前端项目示例)
- MDK硬件调试打印调试信息的实现方式---ITM机制的实现
- 无人机视频图像运动目标检测算法综述------2019年-------------