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

news/2024/11/9 18:49:41

文章目录

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

一、理论基础

1、基本花授粉算法

请参考这里。

2、基于多策略改进的花授粉算法

对基本FPA算法的搜索机制进行定性分析显示:基本FPA算法的搜索策略存在的不足制约着算法的收敛效果,包括存在收敛速度慢和易陷入局部最优等缺点。对于这些影响算法性能的不利因素,文献[1]对FPA算法进行了多策略改进。

(1)新全局搜索策略

从技术角度来说,FPA算法在全局授粉时,莱维飞行和最优个体( x b e s t x_{best} xbest)对种群中的个体同时施加影响。由于受全局最优个体 x b e s t x_{best} xbest的吸引,FPA算法在优化简单问题时具有较快的收敛速度;但在解决复杂的优化问题时,若种群中的个体 x b e s t x_{best} xbest陷入到探索领域中的某些局部极小位置,则其他个体受 x b e s t x_{best} xbest的影响,也快速移动到 x b e s t x_{best} xbest所在的位置,使得( x i t − x b e s t x_i^t-x_{best} xitxbest)变得非常小,从而造成个体位置更新公式无效,因为 x i t + 1 = x i t + 0 = x i t x_i^{t+1}=x_i^t+0=x_i^t xit+1=xit+0=xit。在这种情况下,种群将停止进化,并且很难逃离局部最优。为了解决该问题,本文利用式(1)对原始公式进行改进: x i t + 1 = x i t + γ L ( λ ) ( x i t − x b e s t + x i 1 t − x i 2 t + x i 3 t − x i 4 t ) (1) x_i^{t+1}=x_i^t+\gamma L(\lambda)(x_i^t-x_{best}+x_{i_1}^t-x_{i_2}^t+x_{i_3}^t-x_{i_4}^t)\tag{1} xit+1=xit+γL(λ)(xitxbest+xi1txi2t+xi3txi4t)(1)其中, i 1 i_1 i1 i 2 i_2 i2 i 3 i_3 i3 i 4 i_4 i4分别是从当前群体中随机选取的4个不同于 i i i的下标,其余变量的含义同原始公式相同。
从式(1)可以看出:在莱维飞行机制的基础上,引入了两组差异矢量,增加了种群个体之间的差异性,提高了算法在多维空间的探索能力,有利于抑制算法早熟收敛,提升算法的性能。

(2)引入精英变异策略的局部搜索策略

在基本花授粉算法的局部搜索部分,由于个体缺乏对种群中最优个体良好经验的继承和学习机制,个体的进化方向具有很强的盲目性,这导致了对搜索全局最优解的计算量增大,降低了算法的收敛速度。
为了解决上述存在的这个问题,基于差分进化算法的思想和FPA算法的特性,把差分进化算法中的经典变异算子DE/best/2的思路融入到局部授粉中,提出一种新的复合型局部搜索机制:如果 r a n d < ζ rand<\zeta rand<ζ,则按式(2)进行处理;否则按式(3)进行处理。 v i = x i + δ ( x r 2 − x r 3 ) (2) v_i=x_i+\delta(x_{r_2}-x_{r_3})\tag{2} vi=xi+δ(xr2xr3)(2) v i = x b e s t + α ( x r 1 − x r 2 + x r 3 − x r 4 ) (3) v_i=x_{best}+\alpha(x_{r_1}-x_{r_2}+x_{r_3}-x_{r_4})\tag{3} vi=xbest+α(xr1xr2+xr3xr4)(3)其中, r a n d rand rand [ 0 , 1 ] [0,1] [0,1]上服从均匀分布的随机数; ζ = 1 − t / Max _ i t e r \zeta=1-t/\text{Max}\_iter ζ=1t/Max_iter t t t是当前迭代次数, Max _ i t e r \text{Max}\_iter Max_iter为最大迭代次数;参数 δ \delta δ α \alpha α是服从高斯分布且均值和标准偏差分别为0.5、0.1,其作用是用于控制算法的演化速度; n n n为种群数, i ∈ ( 1 , 2 , ⋯   , n ) i\in(1,2,\cdots,n) i(1,2,,n)为当前个体的下标, r 1 r_1 r1 r 2 r_2 r2 r 3 r_3 r3 r 4 r_4 r4为4个不同的随机个体的下标, x b e s t x_{best} xbest为当前种群中最优个体。
从上述改进的局部授粉策略可知:式(2)采用变异策略增加种群个体的差异性,从而达到提升算法的全局优化能力,但算法的搜索速度比较慢;对于式(3)运用的变异机制,是通过精英个体对其他个体的演化方向进行引导,同时利用精英个体的信息有利于开发其周围领域,提高FPA算法的搜索效率,从而提升了算法的收敛速度和开采能力,但这一策略也容易导致FPA算法陷入局部极小问题。为了能够使这两种方法优势互补,提高FPA算法的寻优能力,通过一个线性递减概率规则融合这两种变异机制,构建MIFPA算法的新局部搜索策略。
依据 ζ = 1 − t / Max _ i t e r \zeta=1-t/\text{Max}\_iter ζ=1t/Max_iter可知:在算法进化初期,选择式(2)的变异策略的概率要比选择式(3)的变异机制的概率大,这有利于种群个体在演化初期扩大搜索空间。因为从式(2)可以发现:在算法进化初期,由于个体之 间的差异性比较大,则( x r 2 − x r 3 x_{r_2}-x_{r_3} xr2xr3)值较大,这使得种群个体有利于向更广的搜索范围进行扩散,易于算法找到最优值。在算法的演化后期,个体选择式(3)的变异策略的概率要比选择式(2)的变异机制的概率大,这有利于加快算法的收敛速度。因为式(3)利用精英个体对种群其他个体的演化方向进行了引导,促进种群的其他个体加速向精英个体靠近,达到提高算法的搜索速度和计算精度。综上所述,通过线性递减概率规则可使这两种变异策略优势互补,提升算法的收敛能力。

(3)对劣解的改进策略

在基本花授粉算法中,总是以贪婪式演化策略选择较优个体来保证群体向前进化,即:经过全局搜索或局部搜索后,产生一个新个体,只有当子代的适应度值优于父代才能演化。然而,依据FPA算法的具体流程可知:如果子代劣于父代,则父代直接保留到下一代,并没有对其作任何改进措施,算法直接进入下一次进化,这使得本次迭代的计算资源严重浪费,增加了对全局最优解的搜索计算量,降低了算法的收敛速度,且容易造成算法收敛精度不高。
针对基本花授粉算法存在的这一不足,在算法进入下次迭代之前,如果父代没有得到改善,则利用式(4)重新产生一个新个体,若新解优于原始解,则用新解代替原始解: x n e w = 2 × cos ⁡ ( ( π × t ) / ( 2 × Max _ i t e r ) ) × φ × x t ( r ) (4) x^{new}=2\times\cos((\pi\times t)/(2\times\text{Max}\_iter))\times\varphi\times x_t(r)\tag{4} xnew=2×cos((π×t)/(2×Max_iter))×φ×xt(r)(4)其中, φ \varphi φ [ − 1 , 1 ] [-1,1] [1,1]上服从均匀分布的随机数,其作用是使种群个体实现随机游走; Max _ i t e r \text{Max}\_iter Max_iter为最大迭代次数, x t ( r ) x_t(r) xt(r)是迭代次数为 t t t时种群中的一个随机个体; x n e w x^{new} xnew为产生的新个体, t = 1 , 2 , ⋯   , Max _ i t e r t=1,2,\cdots,\text{Max}\_iter t=1,2,,Max_iter
通过融入余弦函数搜索因子,利用其振荡特点使得种群个体位置具有振荡性,扩展个体的搜索范围,有
效引导个体跳出局部最优,提高解的质量。

(4)自适应调整转换概率

通过实验可知:如果转换概率 p p p取固定的值,不利于FPA找到全局最优解。为了解决这一不足,采用式(5)对 p p p进行自适应调整,提高FPA算法的性能和灵活性。 p = p min ⁡ + ( p max ⁡ − p min ⁡ ) × ( ( Max _ i t e r − t ) / Max _ i t e r ) (5) p=p_{\min}+(p_{\max}-p_{\min})\times((\text{Max}\_iter-t)/\text{Max}\_iter)\tag{5} p=pmin+(pmaxpmin)×((Max_itert)/Max_iter)(5)其中, p max ⁡ p_{\max} pmax p min ⁡ p_{\min} pmin分别是 p p p的最大值(取0.9)和最小值(取0.2), Max _ i t e r \text{Max}\_iter Max_iter是最大迭代次数, t t t是当前迭代次数。
根据上述式(5)和改进算法的流程可知:在算法的进化初期,变量 t t t的值较小,则转换概率 p p p的取值较大,算法更偏向于异花授粉(全局搜索);当算法进入演化后期,变量 t t t的值越来越大,转换概率 p p p的值越来越小,则算法更倾向于自花授粉(局部搜索)。综上所述。通过 p p p的自适应调整策略,能够更有效地解决算法的全局搜索和局部搜索之间的平衡问题,从而更有利于提高算法的全局优化能力。

二、实验仿真及分析

MIFPA算法对FPA算法进行了4个方面的改进:在全局授粉部分增加了两组随机个体的差异矢量;通过一个线性递减概率规则,融合两种变异机制对局部授粉部分进行改进;自适应地调整转换概率;引入余弦函数搜索因子对劣解进行改善。为了验证这些改进策略分别对基本FPA算法的性能提升的效果,分别把这些策略融入到基本FPA算法中,并比较这些不同策略对基本FPA算法的性能改进效果,从而达到证明这些策略的效用。利用不同方法改进的FPA算法如下:

  • IGFPA:在基本FPA算法的全局搜索部分增加了两组随机个体的差异矢量改进后的算法;
  • ILFPA:对基本FPA算法的局部搜索部分改进后的算法;
  • IPFPA:采用自适应调整转换概率的FPA算法;
  • CFPA:融入余弦函数搜索因子的FPA算法;
  • MIFPA:引进上述所有改进策略的FPA算法。

将MIFPA与FPA和上述4种不同方法改进的FPA算法进行对比,以文献[1]表1中的F1、F2(单模态高维函数/30维)、F6、F8(非旋转的多模态高维函数/30维)、F10、F11(多模态低维函数/4维、4维)为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:

  • 函数适应度值的收敛曲线对比及收敛结果
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
函数:F1
FPA:最优值: 1102.6762, 最差值: 2709.4261, 平均值: 1816.8628, 标准差: 398.424
IGFPA:最优值: 278.6499, 最差值: 865.4833, 平均值: 543.0433, 标准差: 164.4604
ILFPA:最优值: 335.6107, 最差值: 1468.8504, 平均值: 741.2832, 标准差: 275.4976
IPFPA:最优值: 225.1061, 最差值: 789.9161, 平均值: 454.1126, 标准差: 145.1454
CFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
MIFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
函数:F2
FPA:最优值: 10939.2367, 最差值: 25554.5761, 平均值: 18051.0455, 标准差: 3143.089
IGFPA:最优值: 5064.7047, 最差值: 16534.6618, 平均值: 11121.1297, 标准差: 2790.6069
ILFPA:最优值: 492.2353, 最差值: 1783.3709, 平均值: 1107.1141, 标准差: 351.6503
IPFPA:最优值: 12338.2242, 最差值: 26571.4515, 平均值: 17969.6029, 标准差: 3915.6045
CFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
MIFPA:最优值: 0, 最差值: 0, 平均值: 0, 标准差: 0
函数:F6
FPA:最优值: 13.0261, 最差值: 17.9042, 平均值: 15.9319, 标准差: 1.1135
IGFPA:最优值: 10.4705, 最差值: 16.9197, 平均值: 13.7115, 标准差: 1.5584
ILFPA:最优值: 7.0271, 最差值: 10.9861, 平均值: 9.1135, 标准差: 1.2454
IPFPA:最优值: 9.1531, 最差值: 14.3869, 平均值: 11.3617, 标准差: 1.3076
CFPA:最优值: 8.8818e-16, 最差值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
MIFPA:最优值: 8.8818e-16, 最差值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
函数:F8
FPA:最优值: 19.2057, 最差值: 12779.5492, 平均值: 822.5082, 标准差: 2446.8099
IGFPA:最优值: 7.5994, 最差值: 27.365, 平均值: 12.36, 标准差: 4.3884
ILFPA:最优值: 4.0587, 最差值: 32.3221, 平均值: 9.0326, 标准差: 5.5655
IPFPA:最优值: 6.7877, 最差值: 25.2227, 平均值: 13.0217, 标准差: 3.7959
CFPA:最优值: 0.005025, 最差值: 0.050079, 平均值: 0.018714, 标准差: 0.010305
MIFPA:最优值: 0.0030858, 最差值: 0.045018, 平均值: 0.019766, 标准差: 0.010802
函数:F10
FPA:最优值: 0.00049111, 最差值: 0.0012362, 平均值: 0.00087339, 标准差: 0.00017134
IGFPA:最优值: 0.00034314, 最差值: 0.00076413, 平均值: 0.00059345, 标准差: 0.00012123
ILFPA:最优值: 0.00030749, 最差值: 0.0012232, 平均值: 0.00036854, 标准差: 0.00023232
IPFPA:最优值: 0.00062474, 最差值: 0.0010752, 平均值: 0.00077192, 标准差: 9.6805e-05
CFPA:最优值: 0.00030749, 最差值: 0.00060913, 平均值: 0.00033403, 标准差: 7.632e-05
MIFPA:最优值: 0.00030749, 最差值: 0.00030749, 平均值: 0.00030749, 标准差: 1.2613e-19
函数:F11
FPA:最优值: -10.1482, 最差值: -7.879, 平均值: -9.7537, 标准差: 0.50232
IGFPA:最优值: -10.1532, 最差值: -10.1509, 平均值: -10.1526, 标准差: 0.00049563
ILFPA:最优值: -10.1532, 最差值: -10.1532, 平均值: -10.1532, 标准差: 3.2574e-10
IPFPA:最优值: -10.1526, 最差值: -9.1482, 平均值: -10.0558, 标准差: 0.19797
CFPA:最优值: -10.1532, 最差值: -5.0552, 平均值: -6.4144, 标准差: 2.2925
MIFPA:最优值: -10.1532, 最差值: -5.0552, 平均值: -6.2447, 标准差: 2.1931
  • 独立运行30次的函数最优适应度值比较特性图
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

实验结果表明:MIFPA算法是一种富有竞争力的新算法,其解的质量、鲁棒性和收敛速度、时间复杂度等方面总体上都要优于对比算法。

三、参考文献

[1] 肖辉辉, 万常选. 基于多策略的改进花授粉算法[J]. 软件学报, 2021, 32(10): 3151-3175.


http://www.niftyadmin.cn/n/2132488.html

相关文章

人工智能并非万能,智慧停车怕难解决城市停车难题?

根据公安部交管局公布的数据显示&#xff1a;截止2017年底&#xff0c;中国机动车保有量达3.10亿辆&#xff0c;其中汽车占2.17亿辆&#xff0c;随着汽车数量的增加&#xff0c;停车位缺口已超过5000万个。以车主一年3000元的停车花费测算&#xff0c;停车收费的静态市场空间已…

基于白鲸优化算法的函数寻优算法

文章目录一、理论基础1、白鲸优化算法&#xff08;1&#xff09;探索阶段&#xff08;2&#xff09;开发阶段&#xff08;3&#xff09;鲸落2、BWO算法流程图二、仿真实验与结果分析三、参考文献一、理论基础 1、白鲸优化算法 文献[1]从白鲸的行为出发&#xff0c;提出了一种…

(Ajax)axios源码简析(一)——axios入口文件

传送门&#xff1a; axios源码简析&#xff08;一&#xff09;——axios入口文件axios源码简析&#xff08;二&#xff09;——Axios类与拦截器axios源码简析&#xff08;三&#xff09;——请求与取消请求axios简介 axios是时下最流行的http请求库&#xff0c;可以用于浏览器环…

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

文章目录一、理论基础1、花朵授粉算法2、基于引力搜索策略的花朵授粉算法2.1 引力搜索算法2.2 引力机制的FPA2.3 算法的实现二、仿真实验与结果分析三、参考文献一、理论基础 1、花朵授粉算法 请参考这里。 2、基于引力搜索策略的花朵授粉算法 2.1 引力搜索算法 请参考这里…

融合振幅随机补偿与步长演变机制的改进原子搜索优化算法

文章目录一、理论基础1、原子搜索优化算法(ASO)2、改进的原子搜索优化算法(IASO)&#xff08;1&#xff09;初始原子种群的混沌优化&#xff08;2&#xff09;振幅函数随机参数优化&#xff08;3&#xff09;步长演变搜索机制&#xff08;4&#xff09;IASO算法的实现二、仿真实…

JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,

1.对整数进行格式化&#xff1a;%[index$][标识][最小宽度]转换方式 我们可以看到&#xff0c;格式化字符串由4部分组成&#xff0c;其中%[index$]的含义我们上面已经讲过&#xff0c;[最小宽度]的含义也很好理解&#xff0c;就是最终该整数转化的字符串最少包含多少位数…

采用混合搜索策略的阿奎拉优化算法

文章目录一、理论基础1、AO算法2、HAO算法&#xff08;1&#xff09;动态调整&#xff08;2&#xff09;混沌自适应权重&#xff08;3&#xff09;改进型差分变异策略&#xff08;4&#xff09;HAO算法流程二、仿真实验与结果分析三、参考文献一、理论基础 1、AO算法 请参考这…

说一说MVC的MenuCard(五)

1.数据库设计 1 2 create database BookShop3 go4 5 use bookshop6 go7 8 --模块表9 create table Module 10 ( 11 ModuleID int not null primary key identity(1,1), 12 ModuleName varchar(50) not null unique, 13 ModuleIcon varchar(20) not null defa…