APP下载

融合动态收敛因子与黄金正弦的花朵授粉算法

2022-01-13高翻翻丁正生

关键词:全局花粉局部

高翻翻,丁正生

(西安科技大学 理学院,陕西 西安 710600)

0 引言

花朵授粉算法(flower pollination algorithm, FPA)[1]是一种模拟花朵授粉过程的优化算法,该算法具有参数少、鲁棒性好、易调节和易实现的优点。

国内外对FPA的研究主要分为算法的优化[2-4]和应用[5-7]两大类。文献[8]提出了融合正弦余弦算法和精英算子的花朵授粉算法,与FPA相比寻优精度得到了改善,但缺乏应用,该算法的可行性有待商榷。文献[9]提出了一种求解置换流水车间调度问题的新型花朵授粉算法,但对测试函数的结果并未达到理论最优值,还需改进。文献[10]提出了一种求解旅行商问题的离散花朵授粉算法,虽得到了较好的寻优效果,但其所花费的时间过长。

上述改进策略虽对FPA的性能有所提升,但仍存在收敛精度和跳出局部最优能力偏低等不足,故许多学者通过各种改进方法来帮助FPA算法跳出局部最优,如文献[11]用霍尔顿(Halton)序列来初始种群质量,文献[12-13]增加了高斯(Gauss)变异算子,文献[14-15]分别引入了定向变异策略和量子搜索机制,文献[16-17]加入了柯西(Cauchy)变异等。虽然以上改进均提高了算法跳出局部最优的能力,却导致优化效果不明显、无法收敛到0等问题,基于此,本文提出了一种融合动态收敛因子与黄金正弦的花朵授粉算法(flower pollination algorithm combining dynamic convergence factor and golden sine, DGSFPA)。借助仿真实验和案例分析,验证了DGSFPA能够更有效地跳出局部最优,同时提高了FPA的寻优精度和收敛速度。

1 花朵授粉算法

花朵授粉算法是模拟显花植物花朵传粉的过程,要实现该算法需满足以下几个准则:

(Ⅰ)携带花粉的传粉者(蜜蜂,鸟)利用Lévy飞行进行传粉,这种生物异花授粉被认为是全局授粉。

(Ⅱ)通过风和水等自然因素进行传粉的非生物自花授粉被认为是局部授粉。

(Ⅲ)花的恒定等于繁衍概率,其值与所涉及的两种花的相似性成正比。

(Ⅳ)转换概率p∈[0,1]调节全局授粉和局部授粉,由于自然因素的影响,使局部授粉具有更显著的p值,在整个传粉过程中占主导作用。

花朵授粉算法主要有两个阶段:

阶段一:若转换概率p>rand,rand是[0,1]的随机数,则昆虫通过携带花粉配子进行异花授粉(全局授粉),此时花粉的位置更新方法为:

(1)

(2)

其中:缩放因子λ=1.5;Γ(λ)表示标准伽马函数。

阶段二:若转换概率p

(3)

2 改进的花朵授粉算法

2.1 改进的异花授粉位置更新方法

鲸鱼优化算法[18]在全局搜索中加入动态收敛因子,可以改善算法的收敛精度,受此启发,本文在异花授粉的位置更新处引入动态收敛因子,该因子通过结合传粉者的Lévy飞行轨迹,不仅能提高算法的收敛精度,而且可以增强全局勘探的能力。

改进后的异花授粉位置更新方法为:

(4)

其中:a为动态收敛因子,其计算方式为:

(5)

其中:t为当前迭代次数;N_iter为最大迭代次数;由于迭代次数的增加,a值逐渐减小到0。

2.2 改进的自花授粉位置更新方法

传统FPA在自花授粉过程中采用的位置更新方法,其搜索空间较广泛,寻优效果不佳,而文献[19-20]提出了黄金正弦算法(golden sine algorithm,Golden-SA),该算法中的参数R1和R2分别控制位置更新的距离和方向,有效指引花粉个体向最优个体靠近,并增加了种群之间的信息交流。因此,在自花授粉中嵌入黄金正弦算法,即在位置更新阶段引入黄金比例系数,极大程度缩减了搜索空间,有利于跳出局部最优,达到提升寻优能力的目的。

改进后的自花授粉位置更新方法为:

(6)

其中:r1,r2是随机数,且r1∈[0,2π],r2∈[0,π],它们所代表的含义同R1和R2一致;x1=-π+(1-τ)2π和x2=-π+2πτ是通过黄金分割法得到的系数,τ为黄金分割数。

2.3 DGSFPA步骤

本文提出的DGSFPA的操作流程如图1所示,具体的计算步骤如下:

图1 DGSFPA流程图

步骤1:初始化。n为种群规模,d为搜索空间的维数,p为转换概率,t为迭代次数,N_iter为最大迭代次数。

步骤2:适应度值的评价。计算n个种群的适应度值,通过比较,将最优适应度值对应的花朵确定为当前最优花粉个体(当前最优解)。

步骤3:授粉形式的转换。

(Ⅰ)若转换概率p>rand成立,执行异花授粉阶段,该阶段采用改进后的异花授粉来进行花粉位置的更新,如式(4)所示,随后进行越界处理。

(Ⅱ)若p

步骤4:判断是否更新当前最优花粉个体。若步骤3得到的新解比当前最优解还好,则将此新解设为当前最优解,更新花粉个体,否则,将不发生任何改变。

步骤5:判断循环是否结束。若已达到最大迭代次数N_iter,则循环结束,否则返回步骤3继续进行循环,直到满足条件为止。

步骤6:输出最优花粉个体g*及全局最优解。

3 仿真实验

采用10个测试函数对DGSFPA进行仿真实验,将DGSFPA与FPA、粒子群算法(particle swarm optimization,PSO)[21-22]及人工蜂群算法(artificial bee colony,ABC)[23]作对比,用来验证DGSFPA的寻优能力。

3.1 实验参数设定

为了实验的公平性,本文将4种算法的共有参数设定一致,即种群容量20,最大迭代次数2 000,FPA、DGSFPA涉及的转换概率p=0.8,PSO中c1=c2=1.5。

3.2 测试函数

本文选取10个标准测试函数,即Sphere(f1)、Schwefel1.2(f2)、Schwefel2.21(f3)、Rosenbrock(f4)、Step(f5)、Quartic(f6)、Rastrigin(f7)、Ackley(f8)、Griewank(f9)和Schaffer(f10),其中函数f1~f9的维数是30,f10的维数是2。

3.3 实验结果分析

用4种算法分别对每个测试函数独立运行50次,并记录它们的最优值、平均值和方差,其寻优结果如表1所示。

由表1可知:对于函数f1,f2,f7,f9,f10,DGSFPA的3个评价指标均达到了理论最优值0,说明DGSFPA的寻优能力在这5个函数上是最好的。对于函数f3,f4,f5,f6,f8,DGSFPA虽未达到理论最优值0,但其寻优结果与理论最优值非常接近,如函数f3,相比于FPA、ABC、PSO,DGSFPA,在平均值指标上均提高了69个数量级。DGSFPA在函数f1,f2,f4,f6,f7,f8,f9,f10上的方差均达到了0,其他3种算法在所有函数上的方差均未达到0,说明DGSFPA的稳定性更强。综上所述,相比于其他3种算法,DGSFPA无论在低维还是高维函数中,寻优能力都更强。

表1 4种算法的寻优结果

为更直观地表明改进算法的寻优能力,给出4种算法在函数f4,f6,f7上的收敛曲线图,如图2所示。

(a) 函数f4收敛曲线图 (b) 函数f6收敛曲线图(c) 函数f7收敛曲线图

从图2可以看出:4种算法中,DGSFPA的收敛曲线下降速度最快,PSO次之。图2a和图2b中FPA的曲线在规定迭代次数内还未找到全局最优,而DGSFPA的曲线未到100次迭代就已经取得了全局最优解,这表明改进算法的寻优效果更强。图2c中FPA和ABC的曲线在后期迭代中跳出了局部最优,但又陷入另一个局部最优中,而DGSFPA的曲线下降速度最快,且在1 500次迭代左右跳出了局部最优,找到了全局最优解,这说明FPA在自花授粉阶段中引入黄金正弦算子后,能够提高算法跳出局部最优的能力。

4 案例分析

压力容器设计优化问题[24]是经典的工程设计优化问题,由容器厚度Ts、封头厚度Th、内半径R和圆柱形长度L共4个设计变量构成,其目标是在满足一定的约束条件下优化这4个设计变量来最小化总成本(材料、成型和焊接的成本),相当于求有约束条件的目标函数最小值问题。

压力容器设计问题的目标函数为:

x=[x1,x2,x3,x4]=[Ts,Th,R,L];

s.t.g1(x)=-x1+0.019 3x3≤0;

g2(x)=-x2+0.009 54x3≤0;

g4(x)=x4-240≤0;

1×0.062 5≤x1,x2≤99×0.062 5,10≤x3,x4≤200。

(7)

为了验证本文算法在压力容器设计优化问题中的有效性,采用FPA、ABC、PSO及DGSFPA 这4种算法分别对该问题进行求解,并将所得实验结果进行对比分析。算法参数设置与第3节仿真实验中相似,种群容量为20,最大迭代次数为1 000,4种算法分别独立运行50次,并分别记录其最优值、平均值和方差,具体实验结果如表2所示。

表2 4种算法解决压力容器设计问题总成本的实验结果 元

由表2可知:在压力容器设计优化问题中,DGSFPA得到的总成本是最小的,ABC次之。DGSFPA平均值比FPA减少5 270.82元,与ABC相比减少876.72元,再次说明改进算法的寻优能力最好。DGSFPA的方差为0,其他算法的方差均不是0,这表明DGSFPA在寻找全局最优解时稳定性最好。

表3是4种算法在分别解决压力容器设计问题时,所得最优结果对应的各个变量值。由表3可知:DGSFPA所得压力容器中4个设计变量值是最小的,因而其总成本也最小。

表3 4种算法解决压力容器设计问题的各个变量结果对比

图3是4种算法求压力容器总成本的收敛曲线图。从图4中可知:4种算法中,DGSFPA所得到的目标函数值是最小的,ABC次之。DGSFPA的曲线下降速度较快,更早地跳出局部最优到达最优解附近,降低适应度值直到稳定;而FPA的曲线在前期迭代时易陷入局部最优,且收敛缓慢,表明DGSFPA的寻优能力更强。综上所述,从实际应用的实验结果可以证明,本文提出的DGSFPA在解决工程设计优化问题时,求最优解的效果更好。

图3 4种算法求总成本的收敛曲线图

5 结束语

本文在传统FPA的异花授粉和自花授粉两阶段中分别引入了动态收敛因子和黄金正弦算法,来提高算法的收敛精度和跳出局部最优的能力,并将4种算法在10个测试函数上进行比较分析,结果表明改进算法具有良好的寻优能力。将DGSFPA应用到压力容器设计优化问题中,与FPA、PSO、ABC 3种优化算法相比,改进算法在求最优解质量方面得到了更好的效果。今后研究重点是如何将DGSFPA应用到其他领域。

猜你喜欢

全局花粉局部
花粉的烦恼
基于改进空间通道信息的全局烟雾注意网络
领导者的全局观
日常的神性:局部(随笔)
凡·高《夜晚露天咖啡座》局部[荷兰]
落子山东,意在全局
花粉过滤器
丁学军作品
花粉过敏
统筹全局的艺术