一、理论基础
1、树种算法
树种算法(Tree-seed algorithm, TSA)是一种新型的元启发式优化算法,由Kiran于2015年提出,它是一种通过模拟大树的繁殖方式来寻找最优解的元启发式优化算法。
在基本树种算法中,首先利用式(1)在搜索空间中生成一批树木个体:
T
i
,
j
=
L
j
+
r
i
,
j
(
H
j
−
L
j
)
(1)
T_{i,j}=L_j+r_{i,j}\left(H_j-L_j\right)\tag{1}
Ti,j=Lj+ri,j(Hj−Lj)(1)其中,
T
i
,
j
T_{i,j}
Ti,j是第
i
i
i棵树木个体的第
j
j
j维位置,
L
j
L_j
Lj为搜索空间的下界,
H
j
H_j
Hj为搜索空间的上界,
r
i
,
j
r_{i,j}
ri,j是
[
0
,
1
]
[0,1]
[0,1]之间的随机数。
通过式(1)随机生成的树木中,并不是所有的树木产生种子的能力都一样强,针对最小化问题,需要利用式(2)找出位置最优的树。
B
=
min
{
f
(
T
→
i
)
}
,
i
=
1
,
2
,
⋯
,
N
(2)
B=\min\left\{f(\overrightarrow T_i)\right\},\,\,i=1,2,\cdots,N\tag{2}
B=min{f(Ti)},i=1,2,⋯,N(2)接着,位置最优的树木会产生新的种子。在TSA中,为了平衡算法全局搜索和局部搜索的能力,提出两种机制来产生新的种子,如式(3)和式(4)所示。式(3)侧重于全局搜索,全局搜索可以避免算法在迭代过程中陷入局部最优。式(4)侧重于局部搜索,局部搜索有利于算法的收敛。
S
i
,
j
=
T
i
,
j
+
α
i
,
j
(
T
i
,
j
−
T
r
,
j
)
(3)
S_{i,j}=T_{i,j}+\alpha_{i,j}(T_{i,j}-T_{r,j})\tag{3}
Si,j=Ti,j+αi,j(Ti,j−Tr,j)(3)
S
i
,
j
=
T
i
,
j
+
α
i
,
j
(
B
j
−
T
r
,
j
)
(4)
S_{i,j}=T_{i,j}+\alpha_{i,j}(B_j-T_{r,j})\tag{4}
Si,j=Ti,j+αi,j(Bj−Tr,j)(4)其中,
S
i
,
j
S_{i,j}
Si,j表示第
i
i
i棵树繁衍的第
i
i
i个种子的第
j
j
j个元素;
T
r
,
j
T_{r,j}
Tr,j表示第
r
r
r棵树位置的第
j
j
j个元素;
B
j
B_j
Bj表示当前最优树的第
j
j
j个元素;
α
\alpha
α为
[
−
1
,
1
]
[-1,1]
[−1,1]的随机数,表示步长因子。
2、TSA算法步骤
TSA的算法步骤如下:
Step 1 种群初始化。设种群数目为
N
N
N,问题维度为
D
D
D,设定一个搜索趋势常数为
S
T
ST
ST,使用式(1)对
N
N
N棵树木的位置
T
i
,
j
T_{i,j}
Ti,j进行初始化,利用式(2)计算出当前最优树的位置
B
B
B。
Step 2 生成种子。确定每棵树生成种子的数量,在每个种子生成时,产生一个随机数
λ
\lambda
λ,若
λ
>
S
T
\lambda>ST
λ>ST,使用式(3)生成种子,否则使用式(4)生成种子。
Step 3 选择最优解。在每棵树
T
i
T_i
Ti生成的种子中选择出一个最优解,与当前的树
T
i
T_i
Ti作比较,若比树
T
i
T_i
Ti更优,则用种子取代树的位置。
Step 4 迭代次数加1,然后判断是否达到最大迭代次数,如果不满足就跳转到Step 2,否则输出最优解,算法结束。
二、仿真实验与结果分析
将TSA与PSO和ABC进行对比,实验设置种群规模为30,最大迭代次数为1000,每个算法独立运行30次,以常用23个测试函数中的F1、F2(单峰函数/30维)、F7、F8(多峰函数/30维)、F14、F15(固定维度多峰函数/2维、4维)为例,结果显示如下:
函数:F1
PSO:最差值: 1286.7234, 最优值: 317.9334, 平均值: 860.2791, 标准差: 255.7069, 秩和检验: 3.0199e-11
ABC:最差值: 0.084076, 最优值: 0.0073737, 平均值: 0.026694, 标准差: 0.017836, 秩和检验: 3.0199e-11
TSA:最差值: 6.0794e-18, 最优值: 2.6452e-19, 平均值: 1.7427e-18, 标准差: 1.4895e-18, 秩和检验: 1
函数:F2
PSO:最差值: 27.3976, 最优值: 4.6763, 平均值: 13.5118, 标准差: 5.0046, 秩和检验: 3.0199e-11
ABC:最差值: 0.95074, 最优值: 0.0013736, 平均值: 0.046338, 标准差: 0.17223, 秩和检验: 3.0199e-11
TSA:最差值: 4.1407e-14, 最优值: 6.4084e-15, 平均值: 1.7073e-14, 标准差: 7.423e-15, 秩和检验: 1
函数:F7
PSO:最差值: 1.0326, 最优值: 0.14002, 平均值: 0.36158, 标准差: 0.18902, 秩和检验: 3.0199e-11
ABC:最差值: 0.45356, 最优值: 0.11743, 平均值: 0.27625, 标准差: 0.085058, 秩和检验: 3.0199e-11
TSA:最差值: 0.035729, 最优值: 0.011364, 平均值: 0.022353, 标准差: 0.0068583, 秩和检验: 1
函数:F8
PSO:最差值: -3785.2336, 最优值: -6954.12, 平均值: -5559.2288, 标准差: 743.105, 秩和检验: 3.1589e-10
ABC:最差值: -4345.5866, 最优值: -5497.6432, 平均值: -4837.6849, 标准差: 299.0101, 秩和检验: 3.0199e-11
TSA:最差值: -5878.1502, 最优值: -9989.284, 平均值: -7838.3929, 标准差: 1070.564, 秩和检验: 1
函数:F14
PSO:最差值: 15.5038, 最优值: 0.998, 平均值: 5.2846, 标准差: 3.5686, 秩和检验: 4.4703e-12
ABC:最差值: 0.998, 最优值: 0.998, 平均值: 0.998, 标准差: 0, 秩和检验: NaN
TSA:最差值: 0.998, 最优值: 0.998, 平均值: 0.998, 标准差: 0, 秩和检验: NaN
函数:F15
PSO:最差值: 0.022494, 最优值: 0.00030749, 平均值: 0.003251, 标准差: 0.0070593, 秩和检验: 0.0036681
ABC:最差值: 0.00069608, 最优值: 0.00043085, 平均值: 0.00057931, 标准差: 7.1003e-05, 秩和检验: 8.1527e-11
TSA:最差值: 0.00047966, 最优值: 0.00030749, 平均值: 0.00033081, 标准差: 4.6933e-05, 秩和检验: 1
实验结果表明:在大多数情况下,TSA方法在数值函数优化方面优于现有方法。
三、参考文献
[1] Mustafa Servet Kiran. TSA: Tree-seed algorithm for continuous optimization[J]. Expert Systems with Applications, 2015, 42(19): 6686-6698.
[2] 张小萍. 求解0-1背包问题的改进树种优化算法[J]. 重庆科技学院学报(自然科学版), 2021, 23(5): 89-92+101.
[3] 彭浩, 和丽芳. 基于改进树种算法的彩色图像多阈值分割[J]. 计算机科学, 2020, 47(6A): 220-225.