人工生态系统优化(Artificial ecosystem-based optimization, AEO)算法是Zhao等于2019年通过模拟地球生态系统中能量流动而提出一种新型元启发式优化算法,该算法通过生产算子、消费算子和分解算子对生态系统中的生产、消费和分解行为进行模拟来达到求解优化问题的目的。生产算子旨在加强AEO算法勘探和开发之间的平衡能力;消费算子用于改进AEO算法的探索能力;分解算子旨在提升AEO算法的开发性能。与传统群智能算法相比,AEO算法不但实现简单,除群体规模和最大迭代次数外,无需调整其他任何参数,且具有较好的寻优精度和全局搜索能力。
AEO算法遵行以下3个准则:
① 生态系统作为种群包括3种生物:生产者、消费者和分解者,且种群中分别只有一个个体作为生产者和分解者,其他个体作为消费者;
② 每个个体都具有相同的概率被选择为食肉动物、食草动物或杂食动物;
③ 群体中每个个体的能量水平通过适应度值进行评价,适应度值按降序排序,适应度值越大表示最小化问题的能量水平越高。
AEO算法数学描述如下:
生态系统中,生产者可以利用CO2、水和阳光以及分解者提供的营养来产生食物能量。在AEO算法中,种群中的生产者(最差个体)通过搜索空间上下限和分解者(最优个体)进行更新,更新后的个体将引导种群中的其他个体搜索不同的区域。模拟生产者行为的数学模型如下: x 1 ( t + 1 ) = ( 1 − a ) x n ( t ) + a x rand ( t ) (1) x_1(t+1)=(1-a)x_n(t)+ax_{\text{rand}}(t)\tag{1} x1(t+1)=(1−a)xn(t)+axrand(t)(1) a = ( 1 − t / T ) r 1 (2) a=(1-t/T)r_1\tag{2} a=(1−t/T)r1(2) x rand = r ( U − L ) + L (3) x_{\text{rand}}=\boldsymbol r(U-L)+L\tag{3} xrand=r(U−L)+L(3)其中, n n n是种群规模, T T T为最大迭代次数, L L L和 U U U分别是搜索空间的下限和上限, r 1 r_1 r1是 [ 0 , 1 ] [0,1] [0,1]间的随机数, r \boldsymbol r r是 [ 0 , 1 ] [0,1] [0,1]范围内的随机向量, a a a是一个线性权重系数, x rand x_{\text{rand}} xrand是搜索空间中随机产生的个体的位置。在式(1)中,权重系数用于随着迭代次数的增加,将个体从随机产生的位置线性漂移到最佳个体的位置。如式(1)所示,在早期迭代中, x 1 ( t + 1 ) x_1(t+1) x1(t+1)可以引导其他个体广泛地在搜索空间中执行探索;在随后的迭代中, x 1 ( t + 1 ) x_1(t+1) x1(t+1)可以引导其他个体在 x n x_n xn附近的区域中进行开发。
生产者提供食物能量后,每个消费者均可随机选择能量水平较低的消费者或生产者或两者兼有获得食物能量。如果消费者被随机选择为食草动物,它只以生产者为食;如果消费者被随机选择为食肉动物,它只能随机选择能量水平较高的消费者为食;如果消费者被随机选择为杂食动物,它可以同时选择能量水平较高的消费者和生产者为食。我们提出了一种简单的、无参数的、具有Levy飞行特征的随机游动,称为消耗因子。其定义如下:
C
=
1
2
v
1
∣
v
2
∣
(4)
C=\frac12\frac{v_1}{|v_2|}\tag{4}
C=21∣v2∣v1(4)
v
1
∼
N
(
0
,
1
)
,
v
2
∼
N
(
0
,
1
)
(5)
v_1\sim N(0,1),\quad v_2\sim N(0,1)\tag{5}
v1∼N(0,1),v2∼N(0,1)(5)其中,
N
(
0
,
1
)
N(0,1)
N(0,1)为标准正态分布。
食草动物:如果消费者被随机选择为食草动物,它只吃生产者。为了对食草动物的这种消费行为进行数学建模,以下方程式如下所示:
x
i
(
t
+
1
)
=
x
i
(
t
)
+
C
(
x
i
(
t
)
−
x
1
(
t
)
)
,
i
∈
[
2
,
⋯
,
n
]
(6)
x_i(t+1)=x_i(t)+C(x_i(t)-x_1(t)),\quad i\in[2,\cdots,n]\tag{6}
xi(t+1)=xi(t)+C(xi(t)−x1(t)),i∈[2,⋯,n](6)食肉动物:如果一个消费者被随机选择为食肉动物,它只能随机吃一个能量水平较高的消费者。食肉动物消费行为的数学模型如下:
{
x
i
(
t
+
1
)
=
x
i
(
t
)
+
C
⋅
(
x
i
(
t
)
−
x
j
(
t
)
)
,
i
∈
[
3
,
⋯
,
n
]
j
=
randi
(
[
2
i
−
1
]
)
(7)
\begin{dcases}x_i(t+1)=x_i(t)+C\cdot(x_i(t)-x_j(t)),\quad i\in[3,\cdots,n]\\j=\text{randi}([2\,\,\,i-1])\end{dcases}\tag{7}
{xi(t+1)=xi(t)+C⋅(xi(t)−xj(t)),i∈[3,⋯,n]j=randi([2i−1])(7)杂食动物:如果一个消费者被随机选择为杂食动物,它可以随机吃掉一个能量水平较高的消费者和一个生产者。杂食动物消费行为的数学模型可以表示为:
{
x
i
(
t
+
1
)
=
x
i
(
t
)
+
C
⋅
(
r
2
⋅
(
x
i
(
t
)
−
x
1
(
t
)
)
+
(
1
−
r
2
)
⋅
(
x
i
(
t
)
−
x
j
(
t
)
)
)
,
i
∈
[
3
,
⋯
,
n
]
j
=
randi
(
[
2
i
−
1
]
)
(8)
\begin{dcases}x_i(t+1)=x_i(t)+C\cdot(r_2\cdot(x_i(t)-x_1(t))+(1-r_2)\cdot(x_i(t)-x_j(t))),\quad i\in[3,\cdots,n]\\j=\text{randi}([2\,\,\,i-1])\end{dcases}\tag{8}
{xi(t+1)=xi(t)+C⋅(r2⋅(xi(t)−x1(t))+(1−r2)⋅(xi(t)−xj(t))),i∈[3,⋯,n]j=randi([2i−1])(8)其中,
r
2
r_2
r2为
[
0
,
1
]
[0,1]
[0,1]之间的随机数。
就生态系统功能而言,分解是一个非常重要的过程,它为生产者提供必要的养分。为提高算法的开发性能,AEO算法允许每个个体的下一个位置围绕最佳个体(分解者)传播,并通过调节分解因子 D D D和权重系数 e e e、 h h h来更新群体中第 i i i个消费者的空间位置。其模拟分解行为的数学模型为: x i ( t + 1 ) = x n ( t ) + D ⋅ ( e ⋅ x n ( t ) − h ⋅ x i ( t ) ) , i = 1 , ⋯ , n (9) x_i(t+1)=x_n(t)+D\cdot(e\cdot x_n(t)-h\cdot x_i(t)),\quad i=1,\cdots,n\tag{9} xi(t+1)=xn(t)+D⋅(e⋅xn(t)−h⋅xi(t)),i=1,⋯,n(9) D = 3 u , u ∼ N ( 0 , 1 ) (10) D=3u,\quad u\sim N(0,1)\tag{10} D=3u,u∼N(0,1)(10) e = r 3 ⋅ randi ( [ 1 2 ] ) − 1 (11) e=r_3\cdot\text{randi}([1\,\,2])-1\tag{11} e=r3⋅randi([12])−1(11) h = 2 ⋅ r 3 − 1 h=2\cdot r_3-1 h=2⋅r3−1其中, r 3 r_3 r3为 [ 0 , 1 ] [0,1] [0,1]间的随机数。
AEO算法通过随机生成种群开始优化。在每次迭代中,第一个搜索个体根据式(1)更新其位置,对于其他个体,在等式中以相同的概率选择式(6)、(7)或(8)更新它们的位置,如果新解具有更好的适应度值,那么接受它。然后,每个个体根据式(9)更新其位置。如果个体在更新过程中超出下限或上限,它将在搜索空间中随机生成。所有更新都以交互方式执行,直到AEO算法满足终止条件。最后,返回迄今为止找到的最佳个体的解。AEO算法的伪码如图1所示。
将AEO与PSO、DE、CS和GSA进行对比,以文献[1]中的F1、F2(单峰函数/30维)、F10、F11(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,种群规模设置为50,最大迭代次数设置为1000,每个算法独立运算30次。结果显示如下:
函数:F1 PSO:最差值: 1.6048e-10,最优值:2.9637e-14,平均值:1.0426e-11,标准差:2.884e-11,秩和检验:1.2118e-12 DE:最差值: 1.2606e-10,最优值:5.8922e-12,平均值:3.6305e-11,标准差:2.5936e-11,秩和检验:1.2118e-12 CS:最差值: 0.029463,最优值:0.0036154,平均值:0.0097377,标准差:0.0052154,秩和检验:1.2118e-12 GSA:最差值: 3.48e-17,最优值:1.2564e-17,平均值:2.1105e-17,标准差:5.8152e-18,秩和检验:1.2118e-12 AEO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN 函数:F2 PSO:最差值: 40,最优值:5.7179e-07,平均值:5.0001,标准差:9.3771,秩和检验:3.0199e-11 DE:最差值: 7.6598e-07,最优值:2.555e-07,平均值:4.5027e-07,标准差:1.3424e-07,秩和检验:3.0199e-11 CS:最差值: 2.3372,最优值:0.56391,平均值:1.3111,标准差:0.46189,秩和检验:3.0199e-11 GSA:最差值: 3.1909e-08,最优值:1.7309e-08,平均值:2.4202e-08,标准差:3.921e-09,秩和检验:3.0199e-11 AEO:最差值: 1.3049e-185,最优值:1.2131e-201,平均值:4.3595e-187,标准差:0,秩和检验:1 函数:F10 PSO:最差值: 3.6728e-05,最优值:1.1254e-07,平均值:4.2455e-06,标准差:8.6619e-06,秩和检验:1.2118e-12 DE:最差值: 3.3022e-06,最优值:9.2064e-07,平均值:1.814e-06,标准差:5.3098e-07,秩和检验:1.2118e-12 CS:最差值: 6.9994,最优值:1.8959,平均值:3.8014,标准差:1.2914,秩和检验:1.2118e-12 GSA:最差值: 4.9166e-09,最优值:2.4856e-09,平均值:3.504e-09,标准差:5.3909e-10,秩和检验:1.2118e-12 AEO:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN 函数:F11 PSO:最差值: 0.036894,最优值:2.1649e-14,平均值:0.0093535,标准差:0.011991,秩和检验:1.2118e-12 DE:最差值: 3.7433e-08,最优值:3.5794e-11,平均值:1.8981e-09,标准差:6.9345e-09,秩和检验:1.2118e-12 CS:最差值: 0.15639,最优值:0.034367,平均值:0.088308,标准差:0.036606,秩和检验:1.2118e-12 GSA:最差值: 8.1054,最优值:1.5539,平均值:4.2755,标准差:1.6783,秩和检验:1.2118e-12 AEO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN 函数:F18 PSO:最差值: 3,最优值:3,平均值:3,标准差:1.6012e-15,秩和检验:0.31744 DE:最差值: 3,最优值:3,平均值:3,标准差:1.355e-15,秩和检验:0.025701 CS:最差值: 3,最优值:3,平均值:3,标准差:1.8587e-15,秩和检验:0.027704 GSA:最差值: 3,最优值:3,平均值:3,标准差:2.2928e-15,秩和检验:1.7076e-09 AEO:最差值: 3,最优值:3,平均值:3,标准差:1.2881e-15,秩和检验:1 函数:F19 PSO:最差值: -3.8549,最优值:-3.8628,平均值:-3.8617,标准差:0.002725,秩和检验:0.041774 DE:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.7101e-15,秩和检验:NaN CS:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.7101e-15,秩和检验:NaN GSA:最差值: -2.933,最优值:-3.8628,平均值:-3.5833,标准差:0.25471,秩和检验:5.73e-11 AEO:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.7101e-15,秩和检验:NaN
结果表明,AEO算法的优化性能优于其他文献的优化算法。
压力容器设计问题具体请参考这里。仿真实验中,5种算法的运行次数、种群规模和最大迭代次数都保持一致,即
N
=
50
,
M
a
x
_
i
t
e
r
=
500
N=50,Max\_iter=500
N=50,Max_iter=500,每种算法分别独立运行30次。结果显示如下:
PSO:最差值: 7535.0141,最优值:4527.268,平均值:5092.9523,标准差:643.4246,秩和检验:8.543e-08 DE:最差值: 5907.5692,最优值:4871.7516,平均值:5347.1045,标准差:287.6097,秩和检验:5.2039e-12 CS:最差值: 4527.2741,最优值:4527.2681,平均值:4527.2691,标准差:0.0013532,秩和检验:5.2039e-12 GSA:最差值: 6628.6711,最优值:4867.8387,平均值:5159.9656,标准差:328.5764,秩和检验:5.2039e-12 AEO:最差值: 4527.268,最优值:4527.268,平均值:4527.268,标准差:5.6653e-09,秩和检验:1
本文采用0/1覆盖模型。设监测区域为
50
m
×
50
m
50 m×50 m
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次。初始部署、AEO优化覆盖、AEO算法覆盖率进化曲线如下图所示。
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置: 17.3063 24.0722 2.4797 42.4558 30.993 21.1578 10.3083 4.8748 34.7008 38.3494 45.6865 1.8292 25.3857 7.5721 30.0723 37.1601 21.8316 25.5546 48.5439 23.0681 18.2439 33.4251 20.8248 2.1981 38.3261 14.6839 31.2193 42.2345 23.9524 11.3774 18.543 4.9386 15.6759 7.3145 39.7729 9.6635 43.8758 33.9036 26.6877 44.7158 1.3646 47.6315 0.85157 19.007 8.7931 31.5573 2.1559 16.0309 35.453 25.5879 30.1878 20.8499 22.0685 49.8326 41.5909 45.4887 21.4667 16.7075 13.2908 38.154 9.6852 19.5459 46.9286 29.5455 10.1575 35.9321 41.3159 21.5517 28.1104 0.47979 初始覆盖率:0.69358 最优位置: 23.1227 4.0828 17.8018 5.6011 39.5425 40.9766 3.0781 11.4631 7.3653 45.8083 16.7304 30.3155 46.3213 13.6972 19.748 21.2582 42.3955 47.9306 37.4827 31.5416 2.692 35.6838 37.7317 12.6031 29.5981 45.7391 24.5219 30.2482 8.4353 2.9343 45.3393 4.2828 48.7897 21.0165 20.0373 39.1088 42.146 22.5814 47.5344 40.107 30.179 37.2758 17.387 45.7307 28.0873 11.6437 20.5337 47.017 34.3311 18.3165 46.7132 30.6553 26.165 20.2073 34.464 4.9654 11.1573 11.3542 32.6236 27.307 18.866 15.4744 7.9963 29.0111 10.7126 38.4366 2.6424 21.3359 12.1582 21.493 最优覆盖率:0.89773
实验结果表明,AEO能够有效提升WSN的覆盖率,使得节点分布更加均匀。
[1] Weiguo Zhao, Liying Wang, Zhenxing Zhang. Artificial ecosystem-based optimization: a novel nature-inspired meta-heuristic algorithm[J]. Neural Computing and Applications, 2020, 32: 9383-9425.
[2] 崔东文, 包艳飞. 基于人工生态系统优化算法的组合生长需水预测模型[J]. 水资源保护, 2020, 36(6): 122-130.