智能算法:被囊群算法-附代码

智能算法:2020被囊群算法-附代码


摘要:被囊群优化(Tunicate Swarm Algorithm,TSA)是Satnam Kaur 等[1]提出的一种新的优化算法,它的灵感来自以在深海中成功生存被膜的成群行为,其优点在于操作简单,调整的参数少以及跳出局部最优的能力强。

1.算法原理

被膜动物是明亮的生物发光体,发出浅蓝色-绿色的光,可以在数米之外看到。被膜动物呈圆柱形,一端开口,另一端闭合。每个被膜动物的大小都有几毫米。在每个被膜组织中都有一个共同的胶状被膜,它有助于连接所有个体。然而,每一个被膜动物各自从周围的海水中取水,并通过心房虹吸管产生喷气推进。被膜动物是唯一一种能以这种流体喷射式推进力在海洋中移动的动物。这种推进力强大,可以使被膜动物在海洋中垂直迁移。被膜动物通常出现在500-800米深处,并在夜间向上迁移到地表水的上层。被膜动物的大小从几厘米到超过4米不等。被囊动物的喷气推进和群体行为(见图1)。
智能算法:被囊群算法-附代码

图1.被囊动物的群体行为

Tunicate具有在海洋中找到食物来源的能力。然而,在给定的搜索空间中,我们不知道食物的来源。被膜动物是利用其自身的两种行为来寻找食物来源,即寻找最佳。行为包括喷气推进和群体智能。为了对喷气推进行为进行数学建模,被膜应满足三个条件,即避免搜索种群之间的冲突、向最佳搜索个体的位置移动以及保持与最佳搜索个体的距离。然后,群体会根据个体的最优解更新位置。

1.1避免搜索冲突

<>x智能算法:被囊群算法-附代码

图2 避免搜索冲突

为了避免个体之间的搜索冲突,A\vec{A}表示计算新的个体位置,如图2所示:
A=GMG=c2+c3FF=2c1 \vec{A} = \frac {\vec{G}}{\vec{M}}\\ \vec{G} = c_{2}+c_{3}-\vec{F}\\ \vec{F}=2c_{1}
其中G\vec{G}代表重力作用,F\vec{F}代表深海中的水流平流。c1,c2,c3c_{1},c_{2},c_{3}是[0,1]之间的随机数。M\vec{M}代表个体间的互相作用力,其计算如下式:
M=Pmin+c1.PmaxPmin \vec{M}=|P_{min} + c_{1}.P_{max}-P_{min}|
其中Pmin,PmaxP_{min},P_{max}代表初始的相互作用速度范围,一般设定为[1,4]。

1.2 向最优邻居移动

智能算法:被囊群算法-附代码

图3 向最优邻居移动

避免搜索冲突后,个体向最优邻居移动如图3所示:
PD=FSrand.Pp(x) \vec{PD}=|\vec{FS}-r_{and}.\vec{P_{p}(x)}|
其中,PD\vec{PD}代表食物与搜索个体之间的距离。xx代表当前迭代次数。FS\vec{FS}代表食物的位置,Pp(x)\vec{P_{p}(x)}代表个体的位置,randr_{and}代表[0,1]之间的随机数。

1.3 向最优位置收敛

智能算法:被囊群算法-附代码

图4 向最有位置收敛

每个个体向最优位置靠近,如图4所示:
Pp(x)={FS+A.PD,rand>=0.5FSA.PD,rand<0.5 \vec{P_{p}(x)} = \begin{cases} \vec{FS}+\vec{A}.\vec{PD},r_{and}>=0.5\\ \vec{FS}-\vec{A}.\vec{PD},r_{and}<0.5 \end{cases}
其中Pp(x)\vec{P_{p}(x^{’})}代表更新后的位置。

1.4 种群行为

智能算法:被囊群算法-附代码

图5 种群位置更新

为了从数学上模拟被囊动物的群体行为,保存前两个最优解,并根据最佳搜索个体的位置更新其他搜索个体的位置。被膜动物的群体行为如下所示:
Pp(x+1)=Pp(x)+Pp(x+1)2+c1 \vec{P_{p}(x+1)} = \frac {\vec{P_{p}(x)} + \vec{P_{p}(x+1)}}{2+c_{1}}
图5,显示了个体怎么根据Pp(x)\vec{P_{p}(x)}更新自身的位置。

1.5 算法流程

(1)初始化种群Pp\vec{P_{p}}
(2)初始化种群参数,边界条件;
(3)计算每个个体的适应度值;
(4)搜索最佳个体的位置;
(5)根据群体行为更新每个个体位置;
(6)调整超出给定搜索空间边界的个体位置。

(7)计算更新后的群体每个个体的适应度值,如果适应度由于之前,则更新Pp\vec{P_{p}}
(8)如果满足停止条件,则停止算法,否则重复步骤(5) - (8)。

(9)返回最优值

迭代过程如图6所示
智能算法:被囊群算法-附代码

图6 迭代过程

2. 算法结果:

智能算法:被囊群算法-附代码

参考文献:

[1]Satnam Kaur,Lalit K. Awasthi,A.L. Sangal,Gaurav Dhiman. Tunicate Swarm Algorithm: A new bio-inspired based metaheuristic paradigm for global optimization[J]. Engineering Applications of Artificial Intelligence,2020,90.

Matlab 代码地址:

https://mianbaoduo.com/o/bread/Z5aalJ8=