Java教程

基于人工生态系统优化算法的函数寻优及工程优化应用

本文主要是介绍基于人工生态系统优化算法的函数寻优及工程优化应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、人工生态系统优化算法
      • (1)生产者
      • (2)消费者
      • (3)分解者
    • 2、AEO算法伪代码
  • 二、仿真实验与分析
    • 1、函数测试与数值分析
    • 2、求解压力容器设计优化问题
    • 3、WSN覆盖优化
  • 三、参考文献

一、理论基础

1、人工生态系统优化算法

人工生态系统优化(Artificial ecosystem-based optimization, AEO)算法是Zhao等于2019年通过模拟地球生态系统中能量流动而提出一种新型元启发式优化算法,该算法通过生产算子、消费算子和分解算子对生态系统中的生产、消费和分解行为进行模拟来达到求解优化问题的目的。生产算子旨在加强AEO算法勘探和开发之间的平衡能力;消费算子用于改进AEO算法的探索能力;分解算子旨在提升AEO算法的开发性能。与传统群智能算法相比,AEO算法不但实现简单,除群体规模和最大迭代次数外,无需调整其他任何参数,且具有较好的寻优精度和全局搜索能力。
AEO算法遵行以下3个准则:
① 生态系统作为种群包括3种生物:生产者、消费者和分解者,且种群中分别只有一个个体作为生产者和分解者,其他个体作为消费者;
② 每个个体都具有相同的概率被选择为食肉动物、食草动物或杂食动物;
③ 群体中每个个体的能量水平通过适应度值进行评价,适应度值按降序排序,适应度值越大表示最小化问题的能量水平越高。
AEO算法数学描述如下:

(1)生产者

生态系统中,生产者可以利用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​附近的区域中进行开发。

(2)消费者

生产者提供食物能量后,每个消费者均可随机选择能量水平较低的消费者或生产者或两者兼有获得食物能量。如果消费者被随机选择为食草动物,它只以生产者为食;如果消费者被随机选择为食肉动物,它只能随机选择能量水平较高的消费者为食;如果消费者被随机选择为杂食动物,它可以同时选择能量水平较高的消费者和生产者为食。我们提出了一种简单的、无参数的、具有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]之间的随机数。

(3)分解者

就生态系统功能而言,分解是一个非常重要的过程,它为生产者提供必要的养分。为提高算法的开发性能,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]间的随机数。

2、AEO算法伪代码

AEO算法通过随机生成种群开始优化。在每次迭代中,第一个搜索个体根据式(1)更新其位置,对于其他个体,在等式中以相同的概率选择式(6)、(7)或(8)更新它们的位置,如果新解具有更好的适应度值,那么接受它。然后,每个个体根据式(9)更新其位置。如果个体在更新过程中超出下限或上限,它将在搜索空间中随机生成。所有更新都以交互方式执行,直到AEO算法满足终止条件。最后,返回迄今为止找到的最佳个体的解。AEO算法的伪码如图1所示。
在这里插入图片描述

图1 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算法的优化性能优于其他文献的优化算法。

2、求解压力容器设计优化问题

压力容器设计问题具体请参考这里。仿真实验中,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

3、WSN覆盖优化

本文采用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.

这篇关于基于人工生态系统优化算法的函数寻优及工程优化应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!