人工生态系统优化(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 (12) h=2\cdot r_3-1\tag{12} h=2⋅r3−1(12)其中, 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
实验结果表明:AEO在求解压力容器设计约束优化问题时具有优越的性能。
本文采用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.