本发明涉及智能优化算法技术领域,具体是一种对布谷鸟优化算法进行改进的方法。
背景技术:
在自然界中,布谷鸟寻找适合自己产卵的鸟巢位置是随机的或类似随机,为了模拟布谷鸟寻窝的方式,首先,需要假定以下3个理想的状态:
(1)每只布谷鸟一次只产一个卵,并随机选择鸟巢位置来孵化它;
(2)在随机选择的一组鸟巢中,最好的鸟巢将会被保留到下一代;
(3)所使用的宿主鸟巢的数量是固定的,而布谷鸟的鸟卵有一定的概率pa∈[0,1]被宿主鸟发现,在这种情况下,宿主鸟就会把布谷鸟的鸟卵扔掉或者抛弃自己的巢到另外的地方重新建巢。在第三个规则当中,我们认为n个鸟巢中pa部分由新的鸟巢(具有新的随机解)所代替。
对于一个最大值问题,一个解的适应度或质量是和它的目标函数值成正比的,这类似于其它只能算法如遗传算法,在具体到算法中,每一个巢的位置表示一个解,当要产生一个新解x(t+1)时,对于每个布谷鸟都要实施一次莱维飞行,其目的是要用新的和可能更优的解去代替不太好的解,每个布谷鸟寻巢的路径和位置更新公式如下:
式中,a>0是步长,它与所要解决问题的尺度有关,在算法中通常取a=1;
一般来讲,布谷鸟搜索算法的随机运动就是马尔可夫链,它的下一个状态或位置只取决于当前位置(公式第一项)和转换概率(第二项)。
在mantegna的算法中,基于莱维飞行的步长计算公式为:
式中,u、v服从正态分布;γ为标准的gamma函数,该概率分布的方差与均值都是无界的。
因此,布谷鸟寻找鸟巢的运动公式为:
现有的布谷鸟优化算法中种群多样性缺失,易陷入局部最优,不利于工程化应用。
技术实现要素:
本发明的目的在于提供一种有效解决传统布谷鸟优化算法收敛精度低、迭代后期易陷入局部最优的缺陷的对布谷鸟优化算法进行改进的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种对布谷鸟优化算法进行改进的方法,包括如下步骤:
步骤10:动态自适应参数a和pa的获取;
步骤20:反向学习策略的引入;
步骤30:多开端策略的启用。
作为本发明进一步的方案:所述步骤10中参数a和pa的获取过程如下:
式中,astart、aend分别表示a的初值和终值;pastart、paend分别表示pa的初值和终值;t为当前迭代次数,maxgen为最大迭代次数。
作为本发明进一步的方案:所述步骤20中反向学习策略的引入过程如下:
a)初始阶段:随机产生n个鸟巢的初始位置
b)迭代阶段:根据随机数a值的大小,判断是否需要启动反向学习策略,根据适应度值的计算结果淘汰适应度值较差的个体。
作为本发明再进一步的方案:所述步骤30中多开端策略的启用过程如下:
根据最优解停止更新的次数s来判断是否需要初始化种群,如果s大于允许停滞次数smax,则开始初始化种群,并将s重新置零,并保存个体最优和全局最优的信息。
与现有技术相比,本发明的有益效果是:
本发明建立了一种改进型布谷鸟优化算法,与现有布谷鸟优化算法相比,本发明方法充分考虑了算法收敛性和计算复杂性,设定对应的门槛条件来分别启用反向学习策略及多开端策略,具有更快的收敛速度,更高的收敛精度,在对复杂非线性问题进行求解时,该方法既能够有效提高计算精度,同时又能够加快计算速度。
附图说明
图1为本发明的流程示意图。
图2为本发明基于不同a值时的迭代过程示意图。
图3为本发明基于不同smax值时的迭代过程示意图。
图4为本发明实施例中schwefel函数的迭代过程示意图。
图5为本发明实施例中sphere函数函数的迭代过程示意图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图1-5,一种对布谷鸟优化算法进行改进的方法,包括如下步骤:
步骤10:动态自适应参数a和pa的获取;
步骤20:反向学习策略的引入;
步骤30:多开端策略的启用。
所述步骤10中参数a和pa的获取过程如下:
式中,astart、aend分别表示a的初值和终值;pastart、paend分别表示pa的初值和终值;t为当前迭代次数,maxgen为最大迭代次数。
所述步骤20中反向学习策略的引入过程如下:
a)初始阶段:随机产生n个鸟巢的初始位置
b)迭代阶段:根据随机数a值的大小,判断是否需要启动反向学习策略,根据适应度值的计算结果淘汰适应度值较差的个体。
所述步骤30中多开端策略的启用过程如下:
根据最优解停止更新的次数s来判断是否需要初始化种群,如果s大于允许停滞次数smax,则开始初始化种群,并将s重新置零,并保存个体最优和全局最优的信息。
所述对布谷鸟优化算法进行改进的方法,具体包括如下步骤:
(1)对参数进行初始化操作,包括鸟巢的数量n、外来鸟卵发现概率范围[pastart,paend]、步长范围[astart,aend]、迭代次数maxgen、当前迭代次数t和多开端策略允许迭代次数smax等参数;
(2)求取种群中各布谷鸟个体的适应度值。随机产生n个鸟巢的初始位置
(3)根据当前迭代次数t,对csa中参数进行自适应调整;
(4)保留上代最优鸟巢的位置
(5)通过概率pa保留一部分当前代中不容易被发现的鸟巢位置,同时随机改变容易被发现的鸟巢位置,得到另一组新的鸟巢;与未改变之前的鸟巢位置进行比较,让适应度值较好的鸟巢位置替换适应度值较差的鸟巢位置从而得到下一组更优的鸟巢位置,对当前组鸟巢进行评估,找到当前组最优鸟巢位置;
(6)根据随机数a值的大小,判断是否需要启动反向学习策略,淘汰适应度值较差的个体;
(7)如果全局最优解满足更新判据,则执行t=t+1;否则,执行s=s+1,并根据是否达到停滞次数smax,进而启动多开端策略,循环执行step3~step6;
(8)判断终止条件,若满足终止条件,则输出最优值,算法结束;否则,继续迭代执行step3~step7,直至算法终止条件被满足。
算法收敛性是衡量智能优化算法的一项重要指标。设智能优化算法为γ,该算法第w次迭代结果为xw,第w+1次迭代结果为xw+1=γ(xw,ξ),其中,ξ是算法γ在整个迭代中已寻优过的解。
条件1:函数f(x)是搜索空间s内的连续函数,若f(γ(xw,ξ))≤f(x),且ξ∈s,则有f(γ(x,ξ))≤f(x)。
条件1是智能优化算法收敛的基础,可以保证算法在迭代中总可以产生优于当前个体的新个体。
条件2:对于任意b∈s,s.t.v[b]>0,则有
由条件2可知,当b在搜索空间s中满足v[b]>0时,智能优化算法γ经过连续无穷次的搜索总能够寻找到b中的点。
定理1(改进型布谷鸟优化算法的收敛性):改进型布谷鸟优化算法能够以概率1收敛到全局最优解。
证明:在改进型布谷鸟优化算法中,布谷鸟鸟巢个体极值和全局极值根据式(7)进行更新。
以最小化的优化问题为例,布谷鸟优化算法在迭代过程中更新极值序列均为单调递减;同时,多开端策略是一种直接搜索方法,通过对当前全局最优极值点保留并优化能保证解进一步单调下降,即保证新解优于旧解时才对其进行替换,故改进型布谷鸟优化算法能够满足条件1。
当布谷鸟鸟巢全部收敛到全局极值点位置时,布谷鸟优化算法处于停滞状态。此时,全局极值点可能仅仅是局部最优点,因算法早熟收敛所引起。由于改进型布谷鸟优化算法中根据停滞次数smax引入多开端策略,使原本聚集在局部最优点附近的鸟巢能够重新随机分布在整个搜索空间中。因此,当迭代次数趋于无穷大时,该算法总能够搜索到全局最优解,故改进型布谷鸟优化算法也能够满足条件2。
由上述证明可知,当迭代次数足够大时,改进型布谷鸟优化算法总能够以概率1收敛到全局最优解。
原理:本发明通过将参数动态调整、反向学习策略及多开端策略引入到布谷鸟优化算法中,其目的旨在有效解决传统布谷鸟优化算法种群多样性少、收敛精度低、迭代后期易陷入局部最优的缺陷。
为了验证上述改进型布谷鸟优化算法的正确性和有效性,本发明选取3个标准测试函数进行仿真验证,测试函数分别如表1所示,改进布谷鸟优化算法的参数如表2所示。
表1标准测试函数
表2改进型布谷鸟优化算法中参数设置
不同随机数a值和停滞次数smax的选取,对于改进算法的迭代次数具有较大的影响。当a值由0.1~0.9之间变化时,采用c_obl(布谷鸟优化算法+反向学习策略)对rastrigin函数进行迭代寻优,迭代过程如图2所示;固定a=0.5,当smax由50~250之间变化时,采用c_mobl(布谷鸟优化算法+反向学习策略+多开端策略)对rastrigin函数进行迭代寻优,迭代过程如图3所示。
由图2可知,当随机数a值选取过大或者过小时,迭代次数均较大,因此,本发明专利将a值设定为0.5。由图3可知,随着smax的不断增大,迭代次数也不断递增,使得多开端策略逐渐失效,因此,本发明专利将smax设定为50。
在固定进化次数条件下,分别采用cuckoo(布谷鸟优化算法)、c_pars(布谷鸟优化算法+参数动态自适应)、c_obl、c_mobl和c_moblpars(布谷鸟优化算法+反向学习策略+多开端策略+参数动态自适应)对函数f2~f3(m=10)进行迭代实验比较,结果如图4和图5所示。由图4和图5可知,对于上述2种不同的函数,本发明专利所提的c_moblpars均具有较高的收敛速度和收敛精度,说明反向学习策略、参数自适应调整和多开端策略的引入,更容易实现布谷鸟优化算法的全局收敛。
本发明建立了一种改进型布谷鸟优化算法,与现有布谷鸟优化算法相比,本发明方法充分考虑了算法收敛性和计算复杂性,设定对应的门槛条件来分别启用反向学习策略及多开端策略,具有更快的收敛速度,更高的收敛精度,在对复杂非线性问题进行求解时,该方法既能够有效提高计算精度,同时又能够加快计算速度。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。