APP下载

基于多个改进策略的增强麻雀搜索算法

2023-09-27李大海詹美欣王振东

计算机应用 2023年9期
关键词:发现者跟随者障碍物

李大海,詹美欣,王振东

(江西理工大学 信息工程学院,江西 赣州 341000)

0 引言

现实中的工程问题大多可以转化为求解函数最优值问题,一般具有多峰值、非线性、多约束等特点[1],如车辆侧面碰撞设计问题[2]、发电机优化调度[3]等。随着现实问题的不断复杂化,对算法性能的要求也越来越高,难以通过传统优化算法如牛顿法、梯度法等进行求解。智能优化算法是一类来源于对自然界规律、生物群体现象或者人类行为进行模拟的随机搜索算法,只需要通过目标函数值和少量的参数设置就能实现问题的最优值求解[4]。智能优化算法因高效的优化能力和简单易实现的特点,近年来一直被作为现实工程优化问题的常用解决方案,所以对于智能优化算法的持续改进也一直是算法研究领域的热点[3,5-7]。

麻雀搜索算法(Sparrow Search Algorithm,SSA)是2020 年由Xue 等[8]提出的一种新型高效智能优化算法,因为具有收敛速度快和易于实现等优点,已被广泛使用于分布式电源配置[9]、肺组织分割[10]等领域。在优化复杂工程问题时,SSA仍存在如收敛精度低且易陷入局部最优等缺陷。

对于上述问题,诸多学者已经提出若干改进的麻雀算法并应用于实际工程问题。王海瑞等[9]为了提高SSA 在求解电源配置时的稳定性和寻优精度,提出了一种改进的SSA 算法。首先,引入Tent 混沌映射进行种群初始化,增加了种群多样性;其次,利用Levy 飞行和柯西-高斯变异增强算法的探索多样性;最后,优化麻雀个体的位置更新方式,摒除大量无效个体,提高了解的质量。欧阳城添等[11]引入折射学习和疯狂算子提高了SSA 的全局搜索能力和收敛精度,同时使用模拟退火机制对解进行精练,改善了解的质量。付华等[12]提出了一种融合多策略的改进SSA 算法,为了增加种群多样性,使用精英混沌反向学习对种群初始化;同时,结合鸡群算法的随机跟随策略对麻雀跟随者位置更新方式进行扰动,以平衡算法的局部和全局搜索能力,最后采用柯西-高斯变异策略改善了算法在优化过程中的多样性保持能力。李爱莲等[13]针对SSA 寻优后期种群多样性损失等问题,提出了融合正余弦和柯西变异的改进SSA。首先,通过折射反向学习对算法的种群进行初始化;其次,在麻雀发现者位置更新引入正余弦策略以平衡算法的全局和局部搜索能力;最后在跟随者更新阶段融合柯西变异对最优解进行扰动。上述学者提出的改进策略能在一定程度上提高算法的优化性能,但随着优化问题规模的不断增加,SSA 的优化能力面临新的挑战,原有的改进方法难以解决相应问题。

综上所述,上述改进SSA 一般是通过增加初始种群多样性、对麻雀个体采取变异扰动等方式提升算法的优化能力。尽管这些方法能够提升SSA 的优化能力,但在面对一些复杂多峰问题时,SSA 仍然存在易陷入局部最优和寻优精度低等问题。为了进一步提升SSA 的优化性能,本文提出了一种基于多个改进策略的增强麻雀搜索算法(Enhanced Sparrow Search Algorithm based on Multiple Improvement strategies,EMISSA),主要采取了以下三项改进策略:

1)利用模糊推理系统的非线性输出功能,提出了一种结合模糊逻辑的比例因子,动态调整发现者在麻雀种群中的占比,平衡SSA 算法的勘探和开发能力。

2)针对麻雀跟随者在寻优过程中易趋于原点和最优发现者位置,从而导致易陷入局部最优的问题,引入差分变异操作产生新的跟随者位置,提高算法跳出局部最优的概率。

3)通过拓扑对立学习(Topological Opposition-Based Learning,TOBL)获取麻雀发现者的拓扑对立位置,并选择其中的优质个体,增强算法探索空间的能力。

最后,在12 个测试函数实验上验证了策略的有效性。同时,将改进的算法应用于障碍物环境下的无线传感器覆盖优化,获得了更好的覆盖率。

1 麻雀搜索算法

麻雀搜索算法(SSA)[8]是根据模拟麻雀觅食机制提出的群智能优化算法,优化模型中存在发现者、跟随者、侦查者三种角色。发现者负责寻找整个搜索区域中食物较充足的位置,并为所有的跟随者提供觅食区域或方向,发现者在种群中不是一成不变的,只要麻雀可以搜寻到更优的食物所在位置,都可以成为发现者,但发现者在整个种群中所占的比例固定。而发现者受捕食者的影响又分两种状态,当周围不存在捕食者,发现者会进入广域搜索;否则所有的麻雀会向安全区移动。在每一代搜索中发现者的位置根据式(1)更新:

其中:t表示当前迭代次数;T是最大迭代次数表示t次迭代时第i个麻雀位置;α是(0,1)内的随机数;Q为服从正态分布的随机数;L是1 ×D的矩阵,D为维度大小,L的元素值都为1;R和S是设定的报警值和安全值。

跟随者会时刻观察发现者的行为,根据发现者的行为调整自己的位置,跟随者的位置更新如式(2)所示:

侦查者在种群中会意识到危险,从而调整在麻雀种群的整体位置,这部分麻雀在整个种群中随机产生,占整个种群的10%~20%,更新方式如下:

2 改进的麻雀搜索算法EMISSA

在基本SSA 中,由于不同麻雀角色的规模在算法寻优中固定不变,算法缺少自适应性[14],因此容易造成算法全局和局部搜索能力的不平衡。此外,麻雀跟随者在算法搜索过程中跟随发现者的搜索区域进行寻优,有着趋于局部最优点的问题。同时,通过式(1)~(3)可以发现,麻雀个体都有趋向原点或最优位置的趋势,无法充分探索空间,可能丢失更优的解。因此,针对以上SSA 的缺陷,本文提出三种改进策略。

2.1 结合模糊逻辑的比例因子

在SSA 中,麻雀发现者在整个种群中占据着最优资源,其种群规模由比例因子PD决定,而且在算法迭代搜索过程中保持不变。文献[14]中发现,在SSA 寻优前期,较大的发现者规模可以使算法更好地进行全局搜索,并且能提高算法的收敛速度;随着算法到搜索后期,应开始偏于局部搜索,这时应减少发现者的数量,以便算法进行细致搜索,获得更高的收敛精度。

为了使发现者能够在算法迭代搜索的过程动态调整以适应算法寻优机制,本文引入了模糊推理系统对麻雀发现者的比例因子进行非线性更新。模糊推理系统以模糊逻辑理论为主要计算工具,可以方便高效地实现多输入变量与单输出变量之间的复杂非线性映射关系[15]。模糊推理系统功能结构如图1 所示,主要由模糊化、模糊规则库、模糊推理方法及去模糊化四部分组成。

图1 模糊推理系统Fig.1 Fuzzy inference system

本文提出的动态调节比例因子的模糊推理系统的两个输入变量分别为算法的当前迭代阶段和种群多样性。迭代阶段(iteration)的定义如式(4)所示,即迭代阶段为当前迭代次数与最大迭代次数之间的百分比。

种群的多样性(diversity)度量的定义如式(5)所示,即种群的多样性是通过每个麻雀个体和当前最佳个体之间的欧氏距离来衡量麻雀个体之间在搜索空间中的分散程度。如果麻雀个体相对分散,则说明种群多样性较高;反之麻雀个体之间相对集中,种群多样性较低。

其中:N为种群规模大小;D为变量维度;xi,j(t)表示t次迭代时第i个麻雀的第j维值;xbest,j(t)表示t次迭代中最优麻雀个体的第j维值。

模糊推理系统的两个输入变量迭代阶段(iteration)和种群多样性(diversity)的隶属度函数(membership function)的设计如图2 所示。可以看出,输入搜索迭代过程通过三个隶属度函数被划分为“前期(Early)”“中期(Medium)”“后期(Late)”三个阶段。输入种群多样性也同样被三个隶属度函数划分为“低(Low)”“中(Medium)”“高(High)”三种状态。

图2 变量的模糊化和变化趋势Fig.2 Fuzzification and changing trend of variables

此外,为了对发现者比例因子PD实现精确控制输出,输出变量PD被5 个三角隶属度函数划分为“非常小(Very_Small)”“小(Small)”“适中(Medium)”“大(Big)”“非常大(Very_Big)”五个阶段。

除了对输入和输出变量进行选择,一个能够实现精准控制的模糊推理系统还需要进行合理的模糊规则设计。在SSA 寻优过程中,当算法处在搜索前期,通常需要更多的发现者进行全局搜索,随着算法的不断迭代搜索,发现者规模应当逐渐减少,从而专注于局部搜索。同时,还需要考虑种群多样性对比例因子PD的影响,种群多样性较低时,应当增大发现者的规模以在搜索空间进行充分搜索;而当多样性较高时,则可以适当降低发现者在种群中的比例。综上,可以设计如表1 所示的模糊规则。

表1 模糊规则Tab.1 Fuzzy rules

完成模糊系统规则的设计之后,经过去模糊化便可以得到经过模糊推理系统输出的比例因子PD,如图2(d)所示,比例因子在算法的不同迭代阶段和相应的种群多样性下,可以实现发现者规模的动态调整,从而使算法在寻优过程中能更好地进行搜索求解。

2.2 混合差分变异操作

从式(2)的跟随者位置更新公式可知,在算法的每一次迭代过程中,跟随者都会向发现者所在的最优位置或原点移动。这种更新方式能加快算法收敛,但同时也可能会对麻雀种群的多样性造成影响。图3 显示了麻雀发现者和跟随者在一个多峰函数BUKIN 上的变化情况。因为跟随者搜索到的位置信息和发现者的优劣密切相关,所以当发现者在搜索迭代中陷入了局部最优位置时,跟随者依然会随着发现者的寻优趋势继续进行搜索,从而导致无法向其他搜索区域调整自己的位置,最终导致算法陷入局部最优无法跳出。

图3 麻雀个体的搜索趋势Fig.3 Search trends of sparrow individuals

差分变异操作是差分进化(Differential Evolution,DE)算法中使用的一种利用差分变量机制改变候选解位置的高效优化策略,常被用来和其他算法结合,以提高解的多样性[16]。常见的差分变异策略有“DE/rand/1”“DE/current-tobest/1”“DE/best/1”等[17]。其中,“DE/current-to-best/1”和“DE/best/1”选择的个体都是当前最优解或者全局最优解,便于局部开发;而“DE/rand/1”中的个体均为随机选择的,侧重于全局勘探[18]。如果使用以上的单一变异策略对算法进行优化,则有可能对算法的搜索平衡造成影响。

本文结合SSA 的特点提出了两种差分变异策略(SSADE/rand/1、SSA-DE/best/1)对跟随者子群进行混合变异操作,以产生新子群使麻雀个体在搜索空间中进行充分搜索从而跳出局部最优。SSA-DE/rand/1 和SSA-DE/best/1 具体实现方式分别如式(6)和式(7)所示:

其中:ui(t)和ui+k(t)分别为第t次迭代中产生的第i和i+k个变异个体;r1和r2为[0,1]内的权重系数;xi(t)为第t次迭代中第i个麻雀跟随者的位置;xi+k(t)为第t次迭代中第i+k个麻雀跟随者的位置;xq(t)为第t次迭代从非最优发现者个体中随机选择的发现者个体;xbest(t)为最优发现者个体;xm(t)和xn(t)为不同于当前跟随者个体位置的两个随机位置,并且m≠n。

在本文提出的改进SSA 中,两种差分变异策略的具体使用方式如图4 所示。若存在s个麻雀跟随者,则前k个跟随者都将通过式(6)进行变异操作,其余的都通过式(7)进行变异。其中k的值为麻雀跟随者规模的50%,若跟随者规模大小为奇数,则k的值向上取整。在使用两种差分变异策略后,跟随者的位置变化如图5 所示。和式(2)的原SSA 更新跟随者位置的机制相比,在进行两种差分变异操作后,跟随者不再全部趋向原点或发现者搜索到的最优位置,而是一部分跟随者会与最优发现者进行差分操作产生新个体,另一部分则会和随机选择的位置较差的发现者个体进行差分变异。两种不同的变异方式同时对跟随者进行操作,可以使麻雀个体在跳出局部最优进行空间探索的同时保持算法开采和勘探能力的平衡。

图4 混合差分变异操作Fig.4 Mixed differential mutation operation

图5 差分变异过程Fig.5 Differential mutation process

2.3 拓扑对立学习策略

拓扑对立学习(TOBL)是Dai 等[19]基于对立学习机制提出的一种智能优化增强策略,可以显著增强算法的空间搜索能力。相较于传统对立学习方法中每一个个体都只存在一个与它的原始位置完全相反的个体而言,TOBL 中的每一个原始个体都可以获得2D个备选个体,它的定义如下:

定义1 设xi=(xi,1,xi,2,…,xi,j,xi,D)为D维空间中的一个点,则它的拓扑对立点Ti=(Ti,1,Ti,2,…,Ti,j,Ti,D)如下:

其中:oi,j为第i个对立点的第j维值;xbest,j为最佳个体 的第j维值。oi,j如式(9)所示:

为了提升SSA 中发现者探索空间的能力,本文将上述机制引入SSA。在完成所有麻雀个体的位置更新之后,首先通过式(9)生成每个发现者个体的原始对立点,接下来比较最优麻雀个体和原始对立点以及当前麻雀发现者个体之间的曼哈顿距离[20]。如果原始对立点的位置与最优个体之间的距离最小,则表示此对立点为当前麻雀发现者个体的拓扑对立点。图6 显示了一个麻雀发现者个体在三维空间中的潜在拓扑对立点,(x1,1,x1,2,x1,3)为麻雀个体位置。

图6 三维空间中的拓扑对立点Fig.6 Topological opposition nodes in 3D space

计算拓扑对立点的目的是获取更优质的麻雀发现者以对搜索空间进行更充分探索,同时其他麻雀个体可以跟随发现者探索更优质的觅食区域,进而提升SSA 的寻优效率。在获取麻雀发现者的拓扑对立点之后,再对获取的对立点进行适应度评估,如果适应度值好于麻雀发现者原始位置,则两者进行交换。择优交换公式如下:

其中:f(xi(t))和f(Ti(t))分别为当前麻雀发现者个体与其拓扑对应点的适应度值(t+1)为最终产生的解。

2.4 改进算法的时间复杂度分析

本文使用符号O表示时间复杂度的渐进上界。设改进麻雀算法的种群规模为N,最大迭代次数为T,优化问题的维度为D,麻雀发现者在种群中的比例为PD。在EMISSA 初始化阶段,对整个麻雀种群进行初始化并评估它的适应度值,所以时间复杂度为O(N×D)。算法开始迭代之后,首先会通过式(4)、(5)计算迭代百分比和种群多样性,并且调用模糊逻辑计算麻雀发现者的比例因子PD。因为不需要评估个体适应度值且每次计算的次数都为常数项,假设每次计算两者花费的时间为t1和t2,调用模糊逻辑的时间为t3,可得此处的时间复杂度为O(t1+t2+t3)。在完成以上操作之后会对麻雀个体位置进行更新,它的时间复杂度为O(N×D);然后对麻雀跟随者进行差分变异操作,时间复杂度为O((N-PD×N)×D)。最后使用拓扑对立学习获取麻雀个体的拓扑对立点,并且评估其适应度,时间复杂度为O(PD×N×D)。综上所述,EMISSA 算法的时间复杂度如下:

2.5 EMISSA算法实现步骤

通过上述分析可知,算法具体实现步骤如下:

步骤1 输入EMISSA 的最大迭代次数T、种群大小N,问题维度D;

步骤2 EMISSA 开始初始化种群个体位置,并评估它的适应度;

步骤3 初始化迭代次数t=1;

步骤4 对适应度进行排序,得到最优和最劣个体位置;

步骤5 使用式(4)和(5)计算iteration 和diversity,并调用模糊逻辑得到比例因子PD;

步骤6 使用式(1)和(2)更新麻雀发现者和跟随者位置之后,通过式(6)和(7)进行混合差分变异操作产生变异子群,并通过式(3)更新侦查者位置;

步骤7 通过式(8)和(9)产生麻雀发现者的拓扑对立位置,并使用式(10)择优交换;

步骤8 当前迭代次数t=t+1;

步骤9 如果算法达到最大迭代次数T,则输出最佳个体位置和其适应度值;否则从步骤4 继续进行循环迭代。

3 实验与结果分析

3.1 实验设计

本文基于AMD R7-5800HCPU 以及Windows10(64 位)操作系统对EMISSA 以及其他对比算法进行性能测试实验,实验仿真软件为MatLab 2020a。

为了验证EMISSA 在函数优化上的能力,本文从于2013年进化计算大会(2013 Congress on Evolutionary Computation,CEC2013)中举行的单目标算法竞赛所使用的测试函数中选取了12 个有代表性的函数作为性能测试函数[21]。将EMISSA 和SSA 与混沌麻雀搜索优化算法(Chaotic Sparrow Search Optimization Algorithm,CSSOA)[14]、混合策略改进的麻雀搜索算法(Mixed Strategy improved Sparrow Search Algorithm,MSSSA)[22]、改进麻雀搜索算法(Improved Sparrow Search Algorithm,ISSA)[23]以及增强型麻雀搜索算法(Enhanced Sparrow Search Algorithm,ESSA)[14]在12 个函数上进行了测试。其中:f1~f4为单峰函数;f5~f12为基本多峰函数和组合函数。各测试函数的参数取值范围统一设置为[-100,100],函数具体名称及全局最优点F*见表2。

表2 测试函数Tab.2 Test functions

各算法分别在测试函数f1~f12上独立运行30 次,每个算法的迭代次数为1 500,取各算法获得的测试函数的最优解的均值(Mean)、方差(Std)以及算法排名(Rank)来评估算法的优化性能和稳定性。在求解极小值问题中,均值越小表示算法的平均性能越好,方差越小则算法越稳定。排名(Rank)的评价标准是先比较各个算法在同一测试函数上获得的均值,均值越小,则表示算法性能越好;在均值相同的情况下,再比较方差,方差越小,算法性能越好。

3.2 各算法测试结果分析

表3 为EMISSA 和对比算法在30 维的函数优化结果,其中:Count 为各算法排名第1 的总次数;Ave Rank 为各算法的平均排名;Total Rank 是最终排名。可以看出,EMISSA 在4个单峰函数排名上都获得了第1,不管是寻优精度还是求解稳定性都优于对比算法。这表明EMISSA 比标准SSA 以及其他算法对单峰函数的优化性能更强,因为拓扑对立学习产生的拓扑对立位置使麻雀个体能充分地探索空间,从而获得更优的寻优结果。f5~f12的基本多峰和组合函数都包含许多局部最小值,这对于算法的优化性能有很大的考验,而EMISSA除了f9,在其他函数上都获得了更高的收敛精度,同时具有更高的算法稳定性。在整个函数测试中,EMISSA 在11 个测试函数中获得了第1,Ave Rank 为1.29,总排名第1。这说明通过EMISSA 通过多策略的改进可以提升优化能力。

表3 维度为30时不同算法的结果对比Tab.3 Comparison of results of different algorithms with 30 dimensions

表4 是各算法在80 维时的函数优化结果。在12 个函数中,EMISSA 均获得了第1;而且,对于大多数函数,EMISSA在获得更好寻优精度的同时求解稳定性也更好。说明随着优化函数维度的升高,在多个改进策略的作用下,EMISSA 的优化能力并没有降低,同样可以获得较好的寻优结果。

表4 维度为80时不同算法的对比结果Tab.4 Comparison of results of different algorithms with 80 dimensions

3.3 算法收敛性分析

图7 为各算法在30 维情况下6 个典型测试函数上的收敛情况。图7(a)~(c)为3 个单峰函数f1、f3、f4的收敛曲线,可以看出,EMISSA 的收敛精度远远高于比对算法。对于f1、f3,EMISSA 在整个算法搜索过程中获得的解都要好于其他算法,这可能得益于融合模糊逻辑的比例因子对麻雀发现者的动态调整。从图7(c)可以看出,在算法迭代搜索到700 代左右,EMISSA 的收敛精度劣于ISSA,但随着算法进入迭代中后期,收敛精度便超过了ISSA。图7(d)~(f)为基本多峰函数f7、f8以及组合函数f11的收敛曲线。EMISSA 跳出局部最优的能力在它的收敛曲线上体现,当算法迭代搜索到中后期,除了EMISSA 跳出了局部最优,向前继续探索,其他算法已经收敛,没有找到更优的值。这进一步表明,EMISSA 在多策略的作用下,它的函数优化能力得到显著提升。

图7 不同算法在典型测试函数上的收敛曲线Fig.7 Convergence curves of different algorithms on typical test functions

3.4 Friedman检验

本节采用Friedman 检验[24]对3.1 节中的测试算法进行非参数检验。Friedman 检验的一般实现步骤如下:

1)收集算法的实验数据。

2)列出每个问题i的最好与最差结果排名,定义为(1 ≤K≤j)。

3)在所有问题中求出各个算法的平均排名,并计算出最终排名。秩平均值越小,则算法性能越好。

Friedman 统计值计算公式如式(11)所示,Ff的值越小,各算法之间的差异性越就越大,当n和k足够大时(根据经验n>10,k>5),它服从k-1 自由度的χ2分布。

本次检验的依据来自表3~4,检验结果如表5 所示。其中,P-value 表示渐进显著性,如果它的值小于0.01,则说明各项数据之间存在显著性差异。

表5 不同算法的Friedman检验结果对比Tab.5 Comparison of Friedman test results of different algorithms

可以看出,P-value 远小于0.01,表明EMISSA 和对比算法间存在显著差异性。EMISSA 的秩平均值也获得了最小的结果。因此,EMISSA 的优化能力在统计学意义上提升较大。

4 障碍物环境下的WSN覆盖优化

无线传感器网络(Wireless Sensor Network,WSN)是由若干传感器节点组成的信息传输网络,有易部署、覆盖范围广等特点[25],它通过获取外部环境中的相关信息并发送给基站达到监测效果,已被广泛应用于灾害预警、环境检测、智能家居等领域[26]。WSN 对所在区域的覆盖率影响着整个网络的传输效率[27],而无线传感器节点在监测环境中的位置部署情况直接决定了整个网络的覆盖面积,因此WSN 的覆盖优化问题一直是学者们研究的热点。

4.1 问题模型

假设节点被部署在S=L×W的二维平面区域中,整个区域被离散化为L×W个像素点,区域中存在阻碍节点部署的障碍物。节点集合为N={n1,n2,…,nk}和障碍物集合为,其中:k和j分别为节点和障碍物的个数;i为障碍物的类型。节点nk在区域内的坐标为(xk,yk),它的感知范围是一个半径为r的圆,通信半径为R,并且R=2r。

传感器节点会感知外部信息然后传输给数据中心,合适的感知方式可以增加覆盖模型的合理性。由于实际的WSN部署环境十分复杂,节点会遇到很多影响感知的外部因素,所以本文选用概率感知模型[28]来判断区域是否被当前节点覆盖,并结合实际环境对感知模型进行了改进。

假设需要检测的目标点的坐标为g(xg,yg),则传感器节点nk对g的感知概率为:

其中:dnkg是传感器节点nk和目标点g之间的欧氏距离;re是传感器节点在复杂环境下不确定感知能力的一个度量,且0

图8 节点感知模型Fig.8 Node awareness model

式(13)中显示的是单个节点的感知概率,而在WSN 中,各个节点会有重复感知的区域,所以综上可知整个WSN 的联合感知概率为:

进而可以得出整个区域的覆盖率为:

本文的目的就是得到WSN 在障碍物环境下fco的最大值。

4.2 避障设计

复杂环境下的节点部署存在障碍物限制,需要考虑落在障碍物区域节点的移动问题,一般会对优化的目标函数加上约束条件,从而在算法优化过程中避开障碍物[28]或者对节点进行再次移动[30]。但前者对约束条件的选择很重要,不合适的约束条件往往会导致传感器节点部署的聚集性,造成覆盖率的下降。因此,本文提出了一种基于人工势场法中虚拟斥力场概念[31]的方法对节点位置进行重新处理。如图9所示,建立了适合传感器节点部署的障碍物模型,模型中的实际障碍物被包含在一个圆中,障碍物的大小决定了这个圆半径ro的大小,同时圆的范围也是斥力场存在的区域。节点与障碍物的距离被简化为与圆心oi的距离,当节点落在圆内,便会受到来自障碍物的斥力作用,并沿着斥力方向移动相应斥力大小的距离,从而达到避开障碍物的目的。斥力大小如式(16)所示:

图9 障碍物内节点移动方式Fig.9 Movement modes of nodes in obstacles

其中:d(ni,oicenter)表示节点和障碍物之间的距离;r.o表示障碍物的斥力有效范围,即圆的半径;Fno表示节点和障碍物之间的斥力大小,被用来作为节点的移动距离。

此外,如图9(b)所示,当障碍物周围存在部署区域边界A,为了防止节点在移动过程中越过边界,原本向边界方向移动的节点会按式(17)所受力的反方向移动。

4.3 实验设置

本节在多障碍部署环境下对EMISSA 的WSN 节点部署效果进行测试。实验设置与第3 章一致,所有算法都使用4.2 节中的避障策略。具体设置如表6 所示。

4.4 算法覆盖效果分析

图10 和图11 分别显示了各算法在障碍环境中的WSN的覆盖优化收敛过程和最终优化效果。从图10 中可以看出,EMISSA 与对比算法相比获得了最高的覆盖率,标准SSA在算法迭代前期就陷入了局部最优,直到算法寻优结束也无法跳出。而EMISSA 通过拓扑对立学习获得了更多的位置信息,从而可以在每次迭代搜索中比大多数对比算法获得更好的覆盖率。同时,EMISSA 的收敛曲线较平稳,这是因为通过模糊逻辑调整的动态比例因子保证了种群最优群体发现者的搜素平衡,继而保持了整个种群的搜索平衡。此外,当算法迭代到900 代左右,EMISSA 陷入了一段时间的搜索停滞,没有找到更好的节点部署方案,但随着算法的迭代,最终跳出了局部最优,获得了更高的覆盖率,这可能是对跟随者进行混合差分变异操作产生的效果。同时,从图11 可以看出,EMISSA 的WSN 节点部署效果相较于对比算法,节点分布更均匀、覆盖冗余更少。这说明,EMISSA 在实际工程应用中也具有良好的优化能力。

图10 不同算法的收敛曲线Fig.10 Convergence curves of different algorithms

图11 不同算法的覆盖优化效果Fig.11 Coverage optimization effects of different algorithms

5 结语

为了改善SSA 的性能,本文提出一种基于多个改进策略的增强麻雀搜索算法(EMISSA)。首先,利用模糊逻辑对发现者的比例进行动态输出;其次,引入混合差分变异操作解决麻雀跟随者易被发现者最优位置吸引而陷入局部最优的问题;最后通过拓扑对立学习扩大麻雀搜索范围,增强了算法探索空间的能力。12 个测试函数验证了EMISSA 的有效性,而障碍物环境下的WSN 覆盖优化表明了EMISSA 在实际工程问题中的可行性。但EMISSA 还存在相应问题,如对于部分函数的收敛精度还是不足。下一步将对SSA 继续改进并应用在更复杂的无线传感器节点部署问题上。

猜你喜欢

发现者跟随者障碍物
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
“发现者”卡纳里斯的法律方法论
由城市台的“跟随者”到县域“三农”媒体的 “领导者”
从“跟随者”到“引领者”
—— 瓮福集团PPA项目成为搅动市场的“鲶鱼”
跟随者
让学生在小学数学课堂中做一个“发现者”和“创造者”
三位引力波发现者分享2017年诺贝尔物理学奖
出口跟随者会受益于开拓者吗?——来自中国工业企业的证据
土钉墙在近障碍物的地下车行通道工程中的应用