文章目录
- 一、理论基础
- 1、人工兔优化算法
- (1)绕道觅食(探索)
- (2)随机躲藏(开发)
- (3)能量收缩(从探索转向开发)
- 2、ARO算法伪代码
- 二、仿真实验与结果分析
- 1、函数寻优
- 2、工程优化
- 3、WSN覆盖优化
- 三、参考文献
一、理论基础
1、人工兔优化算法
文献[1]提出了一种新的生物启发的元启发式算法——人工兔子优化(Artificial rabbits optimization, ARO)算法,并进行了综合测试。ARO算法的灵感来源于自然界中兔子的生存策略,包括绕道觅食和随机躲藏。
ARO利用真实兔子的觅食和隐藏策略,通过能量收缩在两种策略之间转换。对数学模型进行了描述,并对所提出的ARO进行了概述。
(1)绕道觅食(探索)
如上所述,兔子觅食时,总是寻找远的,而忽略了近处的。它们只在其他区域随机吃草,而不是在自己的区域,把这种觅食行为称为绕道觅食。在ARO中,假设种群中的每只兔子都有自己的区域,有一些草和 d d d个洞穴,兔子总是随机访问对方的位置觅食。实际上,当觅食时,兔子很可能会扰乱食物来源以获得足够的食物。因此,ARO的绕道觅食行为表明,每个搜索个体倾向于向种群中随机选择的另一个搜索个体更新自己的位置,并增加扰动。 v → i ( t + 1 ) = x → j ( t ) + R ⋅ ( x → i ( t ) − x → j ( t ) ) + r o u n d ( 0.5 ⋅ ( 0.05 + r 1 ) ) ⋅ n 1 , i , j = 1 , ⋯ , n and j ≠ i (1) \overrightarrow v_i(t+1)=\overrightarrow x_j(t)+R\cdot(\overrightarrow x_i(t)-\overrightarrow x_j(t))+round(0.5\cdot(0.05+r_1))\cdot n_1,\\[2ex]i,j=1,\cdots,n\,\,\text{and}\,\,j\neq i\tag{1} vi(t+1)=xj(t)+R⋅(xi(t)−xj(t))+round(0.5⋅(0.05+r1))⋅n1,i,j=1,⋯,nandj=i(1) R = L ⋅ c (2) R=L\cdot c\tag{2} R=L⋅c(2) L = ( e − e ( t − 1 T ) 2 ) ⋅ sin ( 2 π r 2 ) (3) L=(e-e^{(\frac{t-1}{T})^2})\cdot\sin(2\pi r_2)\tag{3} L=(e−e(Tt−1)2)⋅sin(2πr2)(3) c ( k ) = { 1 , if k = = g ( l ) 0 , else k = 1 , ⋯ , d and l = 1 , ⋯ , ⌈ r 3 ⋅ d ⌉ (4) c(k)=\begin{dcases}1,\quad\text{if}\,\,k==g(l)\\[2ex]0,\quad\text{else}\end{dcases}\quad k=1,\cdots,d\,\,\text{and}\,\,l=1,\cdots,\lceil r_3\cdot d\rceil\tag{4} c(k)=⎩ ⎨ ⎧1,ifk==g(l)0,elsek=1,⋯,dandl=1,⋯,⌈r3⋅d⌉(4) g = r a n d p e r m ( d ) (5) g=randperm(d)\tag{5} g=randperm(d)(5) n 1 ∼ N ( 0 , 1 ) (6) n_1\sim N(0,1)\tag{6} n1∼N(0,1)(6)其中, v → i ( t + 1 ) \overrightarrow v_i(t+1) vi(t+1)是第 t + 1 t+1 t+1次迭代时第 i i i只兔子的候选位置; x → i ( t ) \overrightarrow x_i(t) xi(t)是第 t t t次迭代时第 i i i只兔子的当前位置; n n n是兔群的数量; d d d是问题的维度; T T T是最大迭代次数; ⌈ ⋅ ⌉ \lceil\cdot\rceil ⌈⋅⌉是向上取整函数; r o u n d round round表示四舍五入; r a n d p e r m ( d ) randperm(d) randperm(d)表示返回从1到 d d d的整数的随机排列; r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3均为 ( 0 , 1 ) (0,1) (0,1)区间的随机数; L L L为奔跑动长度,代表绕行觅食时的运动速度; n 1 n_1 n1为服从标准正态分布的随机数。
在式(1)中,扰动可以帮助ARO避免局部极值,进行全局搜索。由式(3)可知,奔跑长度 L L L在初始迭代时可以产生更长的步长,而这个长度可以在以后的迭代中生成更短的步骤。图1给出了 L L L的动态变化,可以看出较长的步长有利于探索,较短的步长有利于开发。 C C C是一个映射向量,它可以帮助算法在觅食行为中随机选择随机数量的搜索个体元素进行变异。 R R R表示奔跑算子,用于模拟兔子的运行特性。
式(1)表示搜索个体根据彼此的位置进行随机的食物搜索。这种行为使一只兔子远离自己的区域,跑到其他兔子的区域。兔子这种不去自己窝而去别人窝的特殊觅食行为极大地促进了探索,保证了ARO算法的全局搜索能力。
(2)随机躲藏(开发)
为了躲避捕食者,兔子通常会在它的巢穴周围挖一些不同的洞穴来藏身。在ARO算法中,每一次迭代,一只兔子总是沿着搜索空间的每一个维度在它周围产生 d d d个洞,并且总是从所有的洞中随机选择一个隐藏起来,以降低被捕食的概率。第 i i i只兔子的第 j j j个洞穴由以下公式产生: b → i , j ( t ) = x → i ( t ) + H ⋅ g ⋅ x → i ( t ) , i = 1 , ⋯ , n and j = 1 , ⋯ , d (7) \overrightarrow b_{i,j}(t)=\overrightarrow x_i(t)+H\cdot g\cdot\overrightarrow x_i(t),\quad i=1, \cdots,n\,\,\text{and}\,\,j=1,\cdots,d\tag{7} bi,j(t)=xi(t)+H⋅g⋅xi(t),i=1,⋯,nandj=1,⋯,d(7) H = T − t + 1 T ⋅ r 4 (8) H=\frac{T-t+1}{T}\cdot r_4\tag{8} H=TT−t+1⋅r4(8) n 2 ∼ N ( 0 , 1 ) (9) n_2\sim N(0,1)\tag{9} n2∼N(0,1)(9) g ( k ) = { 1 , if k = = j 0 , else k = 1 , ⋯ , d (10) g(k)=\begin{dcases}1,\quad\text{if}\,\,k==j\\[2ex]0,\quad\text{else}\end{dcases}\quad k=1,\cdots,d\tag{10} g(k)=⎩ ⎨ ⎧1,ifk==j0,elsek=1,⋯,d(10)根据式(7),沿每个维度在兔子位置附近生成 d d d个洞穴。其中, H H H是隐藏参数,在迭代过程中,随着随机扰动,隐藏参数从1线性减小到 1 / T 1/T 1/T。根据这个参数,最初这些洞穴是在兔子的一个更大的邻域中产生的。随着迭代次数的增加,这个邻域也会减少。
如上所述,兔子经常受到捕食者的追逐和攻击。为了生存,兔子需要找一个安全的地方躲起来。因此,它们被拒绝从洞穴中随机选择一个洞穴躲避,以免被抓住。为了对这种随机隐藏
策略进行数学建模,提出了以下公式: v → i ( t + 1 ) = x → i ( t ) + R ⋅ ( r 4 ⋅ b → i , r ( t ) − x → i ( t ) ) , i = 1 , ⋯ , n (11) \overrightarrow v_i(t+1)=\overrightarrow x_i(t)+R\cdot(r_4\cdot \overrightarrow b_{i,r}(t)-\overrightarrow x_i(t)),\,\,i=1,\cdots,n\tag{11} vi(t+1)=xi(t)+R⋅(r4⋅bi,r(t)−xi(t)),i=1,⋯,n(11) g r ( k ) = { 1 , if k = = ⌈ r 5 ⋅ d ⌉ 0 , else k = 1 , ⋯ , d (12) g_r(k)=\begin{dcases}1,\quad\text{if}\,\,k==\lceil{r_5\cdot d}\rceil\\[2ex]0,\quad\text{else}\end{dcases}\quad k=1,\cdots,d\tag{12} gr(k)=⎩ ⎨ ⎧1,ifk==⌈r5⋅d⌉0,elsek=1,⋯,d(12) b → i , r ( t ) = x → i ( t ) + H ⋅ f r ⋅ x → i ( t ) (13) \overrightarrow b_{i,r}(t)=\overrightarrow x_i(t)+H\cdot f_r\cdot\overrightarrow x_i(t)\tag{13} bi,r(t)=xi(t)+H⋅fr⋅xi(t)(13)其中, b → i , r ( t ) \overrightarrow b_{i,r}(t) bi,r(t)表示用于隐藏其 d d d个洞穴而随机选择的洞穴; r 4 r_4 r4和 r 5 r_5 r5为两个 ( 0 , 1 ) (0,1) (0,1)范围内的随机数。根据式(11),第 i i i只搜索个体将尝试从其 d d d个洞穴中向随机选择的洞穴更新其位置。
在实现绕道觅食和随机躲藏策略中的其中一个之后,兔子的位置更新为: x → i ( t + 1 ) = { x → i ( t ) , f ( x → i ( t ) ) ≤ f ( v → i ( t + 1 ) ) v → i ( t + 1 ) , f ( x → i ( t ) ) > f ( v → i ( t + 1 ) ) (14) \overrightarrow x_i(t+1)=\begin{dcases}\overrightarrow x_i(t),\quad\quad\,\,\,\, f(\overrightarrow x_i(t))\leq f(\overrightarrow v_i(t+1))\\[2ex]\overrightarrow v_i(t+1),\quad f(\overrightarrow x_i(t))>f(\overrightarrow v_i(t+1))\end{dcases}\tag{14} xi(t+1)=⎩ ⎨ ⎧xi(t),f(xi(t))≤f(vi(t+1))vi(t+1),f(xi(t))>f(vi(t+1))(14)该式表示,若兔子的候选位置的适应度比当前位置的适应度好,则兔子将放弃当前位置并更新为由式(1)或式(11)生成的候选位置。
(3)能量收缩(从探索转向开发)
在ARO算法中,兔子在迭代的初始阶段经常进行绕道觅食,而在迭代的后期则经常进行随机隐藏。这种搜索机制是由兔子的能量产生的,随着时间的推移,兔子的能量会逐渐减少。因此,设计了一个能量因子来模拟从探索到开发的转换过程。ARO中的能量因子定义如下: A ( t ) = 4 ( 1 − t T ) ln 1 r (15) A(t)=4(1-\frac tT)\ln\frac 1r\tag{15} A(t)=4(1−Tt)lnr1(15)其中 r r r为 ( 0 , 1 ) (0,1) (0,1)中的随机数。图2描绘了能量因子的行为曲线。
由此图可以看出,能量因子 A ( t ) A(t) A(t)显示了在具有振荡幅度的迭代期间朝向零的下降趋势。能量因子值越大,说明兔子有足够的能量和体力绕行觅食。相反,能量因子的较小值表明兔子的身体活动较少,因此它需要随机隐藏。因此,在ARO中,当能量因子 A ( t ) > 1 A(t)>1 A(t)>1时,一只兔子在探索阶段容易随机探索不同兔子的区域觅食,因此发生绕行觅食;当能量因子 A ( t ) ≤ 1 A(t)\leq1 A(t)≤1时,兔子在挖掘阶段倾向于随机挖掘自己的洞穴,从而发生随机隐藏。根据能量因子 A A A的大小,ARO可以在绕道觅食和随机躲藏之间切换。也就是说,当 A ( t ) > 1 A(t)>1 A(t)>1时进行探索,当 A ( t ) ≤ 1 A(t)\leq1 A(t)≤1时进行开发。
2、ARO算法伪代码
ARO算法伪代码如图3所示。
二、仿真实验与结果分析
1、函数寻优
将ARO与PSO、ASO、DE、CS、GSA和ABC进行对比,以文献[1]中的F1、F5(单峰函数/30维)、F8、F10(多峰函数/30维)、F17、F21(固定维度多峰函数/2维、4维)为例,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
函数:F1
ARO:最差值: 1.2933e-124, 最优值: 1.7066e-142, 平均值: 6.0484e-126, 标准差: 2.4649e-125, 秩和检验: 1
PSO:最差值: 34.5972, 最优值: 7.5922, 平均值: 16.4132, 标准差: 6.9343, 秩和检验: 3.0199e-11
ASO:最差值: 1.4008e-20, 最优值: 2.9626e-22, 平均值: 2.1165e-21, 标准差: 2.8623e-21, 秩和检验: 3.0199e-11
DE:最差值: 7.6294e-53, 最优值: 3.9227e-59, 平均值: 4.7707e-54, 标准差: 1.4386e-53, 秩和检验: 3.0199e-11
CS:最差值: 0.022696, 最优值: 0.0046311, 平均值: 0.0092716, 标准差: 0.0039968, 秩和检验: 3.0199e-11
GSA:最差值: 3.0924e-17, 最优值: 1.121e-17, 平均值: 1.9759e-17, 标准差: 5.2646e-18, 秩和检验: 3.0199e-11
ABC:最差值: 0.00054954, 最优值: 0.00013377, 平均值: 0.00026767, 标准差: 0.00012954, 秩和检验: 3.0199e-11
函数:F5
ARO:最差值: 0.01517, 最优值: 0.00015816, 平均值: 0.0034286, 标准差: 0.003949, 秩和检验: 1
PSO:最差值: 2452.0185, 最优值: 237.9149, 平均值: 677.8587, 标准差: 576.5802, 秩和检验: 3.0199e-11
ASO:最差值: 25.5852, 最优值: 24.8179, 平均值: 25.0664, 标准差: 0.17196, 秩和检验: 3.0199e-11
DE:最差值: 89.8779, 最优值: 0.17951, 平均值: 20.6207, 标准差: 22.1468, 秩和检验: 3.0199e-11
CS:最差值: 104.941, 最优值: 29.7919, 平均值: 38.1397, 标准差: 14.0258, 秩和检验: 3.0199e-11
GSA:最差值: 90.0407, 最优值: 25.7441, 平均值: 28.1961, 标准差: 11.6818, 秩和检验: 3.0199e-11
ABC:最差值: 2263.3743, 最优值: 292.6948, 平均值: 734.4835, 标准差: 393.841, 秩和检验: 3.0199e-11
函数:F8
ARO:最差值: -10457.2142, 最优值: -11974.7985, 平均值: -11270.4034, 标准差: 364.8702, 秩和检验: 1
PSO:最差值: -5222.2754, 最优值: -8428.7308, 平均值: -6270.3404, 标准差: 725.2895, 秩和检验: 3.0199e-11
ASO:最差值: -6350.4298, 最优值: -8621.4135, 平均值: -7202.3777, 标准差: 523.487, 秩和检验: 3.0199e-11
DE:最差值: -8635.1426, 最优值: -11183.1494, 平均值: -10109.5804, 标准差: 560.1893, 秩和检验: 2.1544e-10
CS:最差值: -8245.7826, 最优值: -9123.8178, 平均值: -8665.7765, 标准差: 228.514, 秩和检验: 3.0199e-11
GSA:最差值: -1952.0349, 最优值: -3866.4738, 平均值: -2861.8378, 标准差: 443.5779, 秩和检验: 3.0199e-11
ABC:最差值: -4907.6673, 最优值: -6454.6394, 平均值: -5458.4335, 标准差: 400.0412, 秩和检验: 3.0199e-11
函数:F10
ARO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
PSO:最差值: 3.9117, 最优值: 2.3174, 平均值: 3.0862, 标准差: 0.36186, 秩和检验: 1.2118e-12
ASO:最差值: 1.7855e-10, 最优值: 1.3388e-11, 平均值: 3.7805e-11, 标准差: 3.6355e-11, 秩和检验: 1.2118e-12
DE:最差值: 3.3439, 最优值: 1.5099e-14, 平均值: 1.2086, 标准差: 0.92587, 秩和检验: 1.1921e-12
CS:最差值: 10.5778, 最优值: 2.1249, 平均值: 4.1535, 标准差: 2.0039, 秩和检验: 1.2118e-12
GSA:最差值: 4.1634e-09, 最优值: 2.6102e-09, 平均值: 3.4337e-09, 标准差: 4.1477e-10, 秩和检验: 1.2118e-12
ABC:最差值: 0.0085619, 最优值: 0.0029254, 平均值: 0.0052892, 标准差: 0.0014269, 秩和检验: 1.2118e-12
函数:F17
ARO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
PSO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 2.4038e-07, 秩和检验: 1.2118e-12
ASO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
DE:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
CS:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
GSA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
ABC:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
函数:F21
ARO:最差值: -10.1532, 最优值: -10.1532, 平均值: -10.1532, 标准差: 7.0129e-15, 秩和检验: 1
PSO:最差值: -2.6305, 最优值: -10.1532, 平均值: -7.0521, 标准差: 3.2734, 秩和检验: 4.0806e-12
ASO:最差值: -5.0923, 最优值: -10.1532, 平均值: -9.4226, 标准差: 1.6452, 秩和检验: 0.12986
DE:最差值: -2.6305, 最优值: -10.1532, 平均值: -5.1363, 标准差: 3.006, 秩和检验: 2.6689e-08
CS:最差值: -10.1532, 最优值: -10.1532, 平均值: -10.1532, 标准差: 2.2072e-13, 秩和检验: 1.1167e-09
GSA:最差值: -2.6829, 最优值: -5.0552, 平均值: -4.897, 标准差: 0.60188, 秩和检验: 1.9431e-13
ABC:最差值: -10.1532, 最优值: -10.1532, 平均值: -10.1532, 标准差: 2.5438e-12, 秩和检验: 3.1019e-07
实验结果验证了ARO算法的有效性。
2、工程优化
以文献[1]中的压力容器设计、滚动轴承设计、压缩弹簧设计、悬臂梁设计和轮系设计为例,将ARO与PSO、ASO、DE、CS和GSA进行对比,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
工程问题:Pressure vessel design
ARO:最差值: 5888.1749, 最优值: 5885.3328, 平均值: 5885.5104, 标准差: 0.54682, 秩和检验: 1
PSO:最差值: 7594.1848, 最优值: 5997.3246, 平均值: 6525.0236, 标准差: 399.9751, 秩和检验: 3.0199e-11
ASO:最差值: 26977.8945, 最优值: 6228.4578, 平均值: 10105.5447, 标准差: 4300.2392, 秩和检验: 3.0199e-11
DE:最差值: 5922.3785, 最优值: 5885.3328, 平均值: 5886.5766, 标准差: 6.7621, 秩和检验: 1.0579e-07
CS:最差值: 5924.0258, 最优值: 5885.346, 平均值: 5887.6696, 标准差: 8.2668, 秩和检验: 7.7387e-06
GSA:最差值: 143864.5793, 最优值: 6268.562, 平均值: 33367.3954, 标准差: 36582.3436, 秩和检验: 3.0199e-11
工程问题:Rolling element bearing design
ARO:最差值: -77455.4744, 最优值: -85549.2391, 平均值: -84647.3213, 标准差: 2490.1826, 秩和检验: 1
PSO:最差值: -72779.7766, 最优值: -85466.1226, 平均值: -84095.074, 标准差: 2145.1507, 秩和检验: 8.1975e-07
ASO:最差值: -63143.7578, 最优值: -79535.4725, 平均值: -72652.1486, 标准差: 3998.2788, 秩和检验: 9.9186e-11
DE:最差值: -77455.539, 最优值: -85549.2391, 平均值: -85243.134, 标准差: 1484.2144, 秩和检验: 6.2351e-10
CS:最差值: 10000000000, 最优值: -85547.4526, 平均值: 333251208.1921, 标准差: 1825757369.3136, 秩和检验: 7.5991e-07
GSA:最差值: -83029.7514, 最优值: -85549.0216, 平均值: -84936.5492, 标准差: 923.9847, 秩和检验: 1.1073e-06
工程问题:Tension/compression spring design
ARO:最差值: 0.012727, 最优值: 0.012666, 平均值: 0.012681, 标准差: 1.9917e-05, 秩和检验: 1
PSO:最差值: 0.013297, 最优值: 0.012688, 平均值: 0.012832, 标准差: 0.00015046, 秩和检验: 4.6006e-10
ASO:最差值: 0.01975, 最优值: 0.012886, 平均值: 0.016091, 标准差: 0.0016903, 秩和检验: 3.0085e-11
DE:最差值: 0.014182, 最优值: 0.012666, 平均值: 0.013042, 标准差: 0.00045844, 秩和检验: 2.8139e-06
CS:最差值: 0.013504, 最优值: 0.01267, 平均值: 0.012783, 标准差: 0.00019201, 秩和检验: 8.6517e-05
GSA:最差值: 0.013308, 最优值: 0.012719, 平均值: 0.013181, 标准差: 8.9634e-05, 秩和检验: 4.4877e-11
工程问题:Cantilever beam design
ARO:最差值: 1.34, 最优值: 1.34, 平均值: 1.34, 标准差: 3.7648e-06, 秩和检验: 1
PSO:最差值: 1.3795, 最优值: 1.3449, 平均值: 1.364, 标准差: 0.0079398, 秩和检验: 3.0199e-11
ASO:最差值: 1.341, 最优值: 1.34, 平均值: 1.3404, 标准差: 0.00033041, 秩和检验: 3.0199e-11
DE:最差值: 1.34, 最优值: 1.34, 平均值: 1.34, 标准差: 2.7135e-10, 秩和检验: 3.0199e-11
CS:最差值: 1.34, 最优值: 1.34, 平均值: 1.34, 标准差: 5.1066e-07, 秩和检验: 0.81875
GSA:最差值: 1.674, 最优值: 1.34, 平均值: 1.3517, 标准差: 0.060887, 秩和检验: 3.0199e-11
工程问题:Gear train design
ARO:最差值: 9.7457e-10, 最优值: 2.7009e-12, 平均值: 9.6592e-11, 标准差: 2.5016e-10, 秩和检验: 1
PSO:最差值: 2.3576e-09, 最优值: 2.7009e-12, 平均值: 6.966e-10, 标准差: 7.3422e-10, 秩和检验: 3.2457e-05
ASO:最差值: 2.3576e-09, 最优值: 2.7009e-12, 平均值: 3.6445e-10, 标准差: 7.346e-10, 秩和检验: 0.0014898
DE:最差值: 2.7265e-08, 最优值: 2.7009e-12, 平均值: 3.2168e-09, 标准差: 6.7539e-09, 秩和检验: 1.3881e-08
CS:最差值: 1.545e-10, 最优值: 2.7009e-12, 平均值: 2.895e-11, 标准差: 3.8353e-11, 秩和检验: 0.41015
GSA:最差值: 2.3576e-09, 最优值: 2.7009e-12, 平均值: 4.7251e-10, 标准差: 6.7742e-10, 秩和检验: 0.0013976
实验结果表明ARO算法在解决具有挑战性的现实问题方面的实用性。
3、WSN覆盖优化
本文采用0/1模型,节点覆盖模型请参考这里。设监测区域为 50 m × 50 m 50m×50m 50m×50m的二维平面,传感器节点个数 N = 35 N=35 N=35,其感知半径是 R s = 5 m R_s=5m Rs=5m,通信半径 R c = 10 m R_c=10m Rc=10m,迭代500次。初始部署、ARO优化覆盖、ARO算法覆盖率进化曲线如下图所示:
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置:
31.4748 11.2146
23.9431 23.5112
31.0166 0.3273
31.0316 48.5781
28.4673 47.2761
7.3743 32.9884
45.4882 31.436
14.7936 19.8329
14.1846 11.1916
43.0978 37.7721
39.3979 2.7879
29.8927 2.9313
14.2862 4.9362
35.0117 9.4173
14.218 43.9523
42.9201 28.1505
0.23199 47.6565
6.064 11.0589
28.2615 40.6977
7.6682 28.2198
26.9159 34.019
39.3724 23.6436
36.0538 28.9689
30.3481 30.5626
9.2909 45.7599
17.3965 18.7959
32.5701 16.9282
22.5339 0.56742
11.8142 38.391
12.8039 31.9445
19.1933 39.952
5.7481 25.86
34.814 49.0921
44.5867 13.8932
37.5017 41.0803
初始覆盖率:0.7005
最优位置:
26.0646 45.6736
38.4488 4.0882
16.3531 46.5937
4.6929 35.3527
32.9811 3.9377
16.2045 30.48
3.9112 16.482
10.3972 25.6408
33.3386 32.3004
25.2602 14.6226
23.8404 28.9474
41.825 17.2845
36.273 45.4234
46.5183 43.5497
28.8666 23.5399
2.917 5.5029
25.4842 36.8674
19.4799 21.7107
8.2107 44.6002
10.7675 4.4481
37.7189 10.5793
25.7781 4.3548
39.2898 37.5639
19.6147 11.7725
17.6498 3.4143
45.4632 4.2566
38.0471 25.4093
46.6326 13.3912
2.1077 26.5077
45.7382 30.5795
15.4705 37.9362
12.3347 15.4176
31.0325 13.3565
36.5696 21.7426
48.3729 22.6874
最优覆盖率:0.89235
实验结果表明:ARO算法实现了较高的网络覆盖率,节点分布更加均匀,覆盖盲区和感知范围重叠区面积更少,可以验证ARO算法的有效性。
三、参考文献
[1] Liying Wang, Qingjiao Cao, Zhenxing Zhang, et al. Artificial rabbits optimization: A new bio-inspired meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2022, 114: 105082.