本文介绍了一种受蚂蚁逃脱蚁狮陷阱方式启发而设计的具有逃逸机制的蚁狮算法。该算法的特点是在蚂蚁的随机游走中引入了曲线位移,增强了它们逃离陷阱的能力。我们将本算法与其他三种蚁狮算法进行了比较,并进行了大量测试,结果显示新构建的蚁狮算法具有更优越的性能。此外,我们将该算法与K-Means聚类算法的质心选择过程相结合,以提高其聚类性能。进一步,我们将这种新算法应用于玻璃产品的分类,并取得了良好的结果。本研究展示了将自然机制融入算法设计的有效性,并在现实问题中得到了实际的应用。 In this paper, we present an antlion algorithm with an escape mechanism inspired by the way ants avoid antlions’ traps. Our algorithm features a curved displacement in the random walk path of ants, which allows them to escape more efficiently. We compared our algorithm with three other antlion algorithms and conducted extensive testing, which showed that our modified antlion algorithm has superior performance. Furthermore, we integrated our algorithm with the centroid selection process of the K-Means clustering algorithm to improve its clustering performance. We applied this new algorithm to the classification of glass products and achieved good results. Our research demonstrates the effectiveness of incorporating natural mechanisms into algorithm design and how it can lead to practical applications in real-world problems.
本文介绍了一种受蚂蚁逃脱蚁狮陷阱方式启发而设计的具有逃逸机制的蚁狮算法。该算法的特点是在蚂蚁的随机游走中引入了曲线位移,增强了它们逃离陷阱的能力。我们将本算法与其他三种蚁狮算法进行了比较,并进行了大量测试,结果显示新构建的蚁狮算法具有更优越的性能。此外,我们将该算法与K-Means聚类算法的质心选择过程相结合,以提高其聚类性能。进一步,我们将这种新算法应用于玻璃产品的分类,并取得了良好的结果。本研究展示了将自然机制融入算法设计的有效性,并在现实问题中得到了实际的应用。
蚁狮算法,逃脱机制,聚类算法,玻璃制品分类
Chen Liang, Lipu Zhang*
College of Media Engineering, Communication University of Zhejiang, Hangzhou Zhejiang
Received: Apr. 26th, 2024; accepted: May 24th, 2024; published: May 31st, 2024
In this paper, we present an antlion algorithm with an escape mechanism inspired by the way ants avoid antlions’ traps. Our algorithm features a curved displacement in the random walk path of ants, which allows them to escape more efficiently. We compared our algorithm with three other antlion algorithms and conducted extensive testing, which showed that our modified antlion algorithm has superior performance. Furthermore, we integrated our algorithm with the centroid selection process of the K-Means clustering algorithm to improve its clustering performance. We applied this new algorithm to the classification of glass products and achieved good results. Our research demonstrates the effectiveness of incorporating natural mechanisms into algorithm design and how it can lead to practical applications in real-world problems.
Keywords:Antlion Algorithm, Escape Mechanism, Clustering Algorithm, Classification of Glass Products
Copyright © 2024 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
群智能优化算法 [
蚁狮优化算法(ALO) [
该算法的灵感源于观察到蚂蚁在被蚁狮捕捉时的逃逸行为。在捕猎时,蚁狮会向坑穴附近抛掷沙子,以阻止蚂蚁逃跑。而蚂蚁为了躲避蚁狮的捕捉,除了会向坑穴外进行垂直方向的移动,还会本能地进行横向游走,如此通过垂直和横向移动的组合形成的曲线逃逸路线可以有效地帮助蚂蚁避免被捕捉。这种行为启发了我们将曲线位移纳入蚂蚁随机行走路径的设计中,从而设计了一个具有逃逸机制的蚁狮算法。
本文结构如下:第1节介绍了本文的研究背景和动机;第2节详细介绍了经典蚁狮算法的关键步骤;第3节解释了如何实现蚂蚁的逃逸机制并将其嵌入到经典蚁狮算法中。我们还使用CEC2005和CEC2017测试函数将新设计的算法与三种现有蚁狮算法进行了比较。第4节将新设计的算法与K-Means聚类算法结合,以提高质心选择的效率。我们使用标准UCI数据集将此算法与类似的聚类算法进行了比较。第5节提供了一个具体的应用示例,我们使用新设计的聚类算法解决了古玻璃产品分类问题,并取得了令人满意的结果。最后,我们对文章进行了总结,并对之后的研究方向提出设想。
蚁狮一般生活在干燥、多沙的地区,主要的猎物是蚂蚁。它们会挖出类似于漩涡状的锥形沙坑,当作自己的巢穴和狩猎用的陷阱。这些沙坑的边缘十分陡峭,使猎物很容易掉进去。故蚁狮大多时间会在坑底等待猎物接近,当猎物掉进去时,它们会立即试图抓住它。为了防止猎物逃跑,蚁狮会向陷阱边缘投掷沙子,使猎物滑入坑底,最终被蚁狮食用。完成进食后,蚁狮会修缮陷阱,并准备下一次捕猎。
蚁狮算法是一种创新优化方法 [
蚁狮算法主要包括两个关键策略:蚂蚁随机游走和轮盘赌选择精英策略。现在,让我们深入研究这两种策略的细节。
蚁狮算法模拟了随机游走的蚂蚁在搜索过程中探索未知搜索空间的关键行为。在该算法中,每只蚂蚁在搜索空间内随机选择一个起点,并根据特定的概率规则确定下一步的移动方向。在随机游走过程中,蚂蚁会根据自己的经验和信息素不断调整自己的移动方向,直到找到最佳解决方案或达到搜索时间的上限。蚁狮算法利用蚂蚁的随机游走,有效避免了局域最优解的困点,提高了搜索效率,在各种优化问题中取得了较为理想的结果。
在蚁狮算法中,蚂蚁随机游走 [
X ( t ) = [ 0 , s s u m ( 2 γ ( t 1 ) − 1 ) , ⋯ s s u m ( 2 γ ( t n ) − 1 ) ] , (1)
其中, X ( t ) 为随机游走的步数集合; t 为随机游走的步数; s s u m 为计算累加和; γ ( t ) 是定义的一个随机函数,公式如下:
γ ( t ) = { 1 , r a n d > 0.5 0 , r a n d ≤ 0.5 , (2)
其中, r a n d 是在[0, 1]间取的随机数。
而在蚁狮优化算法中,由于蚁狮设置陷阱,限制了蚂蚁随机游走的范围,故对公式(1)进行了修改,以满足行走范围的局限性 [
X i t = ( X i t − a i ) ( d i t − c i t ) ( b i − a i ) + c i t , (3)
其中, X i t 为蚂蚁在第 t 次迭代中第 i 维的位置; a i 和 b i 分别指第 i 维中随机游走的最小值和最大值; c i t 和 d i t 为第 t 次迭代时在第 i 维中随机游走的最小值和最大值。
因蚂蚁游走的路线会受到蚁狮位置和陷阱尺寸的影响,故参数 c i t 和 d i t 的值根据特定的规则确定 [
c i t = A n t l i o n j t + c t andd i t = A n t l i o n j t + d t , (4)
其中, c t 和 d t 分别是第 t 次迭代中最小和最大的向量; A n t l i o n j t 是在第 t 次迭代中第 j 只蚁狮的位置。
当蚂蚁掉进陷阱后,蚁狮会向沙坑边缘抛掷沙子,并把蚂蚁的向下拖拽,导致蚂蚁随机游走的范围会迅速缩小。我们采用如下方程模拟这种现象:
c i t = c t I , d i t = d t I and I = 10 ω t T , (5)
其中,变量 I 表示比例系数; T 表示允许的最大迭代次数; ω 是一个参数,其值由 t 的大小决定。 ω 和 t 之间的关系如表1所示。
t | ω |
---|---|
t ≤ 0.5 T | 2 |
0.5 T < t ≤ 0.75 T | 3 |
0.75 T < t ≤ 0.9 T | 4 |
0.9 T < t ≤ 0.95 T | 5 |
0.95 T < t ≤ T | 6 |
表1. 参数 ω 的值
当表1中的迭代次数增加时,蚂蚁随机游走的半径减小,保证了ALO算法的收敛性。
每次迭代后,算法都会选择适应度最高的蚁狮作为精英蚁狮,之后蚂蚁会通过轮盘赌策略选择一只蚁狮,并围绕该蚁狮进行随机游走。蚂蚁的位置由下述公式确定 [
A n t i t = R A t ( m ) + R E t ( m ) 2 , (6)
其中, A n t i t 是指第 i 个蚂蚁在第 t 次迭代中的位置; R A t ( m ) 表示在 t 次迭代中,蚂蚁跟据轮盘赌策略选中蚁狮后,围绕其走 m 步时得出的值;类似地, R E t ( m ) 表示在第t次迭代中,蚂蚁围绕精英蚁狮走 m 步得出的值;变量 m 取自蚂蚁在随机游走期间所走步数范围内的任意值。
然而,由于轮盘赌策略是根据蚁狮的适应度为其分配概率,这可能会导致更多的蚂蚁围绕较高适应度的蚁狮进行游走,让算法有陷入局部最优的危险。
蚁狮优化算法将这两种策略相结合,对解空间进行更为有效地探索与开发,以求找到可能的最佳解。
ALO算法的具体步骤如下:
1) 初始化数据:设置两个种群的参数,包括个体数、维度和迭代次数,并在指定范围内初始化蚁狮和蚂蚁的位置,计算它们各自的适应度。
2) 确定精英蚁狮:选择初始化后蚁狮种群中适应度最好的蚁狮作为精英蚁狮。
3) 轮盘选择:使用轮盘赌策略为每只蚂蚁选择一只蚁狮,根据选中蚁狮的位置更新蚂蚁的参数值,并让蚂蚁围绕所选蚁狮随机游走,更新蚂蚁位置。
4) 计算适应度:计算蚁狮和蚂蚁的适应度值,根据蚂蚁的位置和适应度更新蚁狮位置,两个种群中适应度最好的成为新精英蚁狮。
5) 判断是否终止:检查是否满足算法终止条件。如果满足,输出结果,返回精英蚁狮的位置及其适应度值,并结束迭代;否则,返回步骤3。
下面我们将介绍如何实现蚂蚁的随机游走。
为了避免过多蚂蚁在某些蚁狮周围进行无意义地游走,我们考虑修改它们的行走策略,以扩大搜索范围。
在现实捕猎的过程中,蚂蚁落入陷阱后会尽最大努力远离蚁狮并爬出陷阱。同许多其他动物相似,蚂蚁在垂直方向上移动的同时,本能地会在水平方向上进行游走,从而形成曲线状的运动轨迹。为了实现对这一现象的模拟,我们将蚂蚁的随机游走和曲线位移进行结合,使用正弦和余弦函数对其逃脱策略进行建模。
下面,我们将详细描述这个过程,并用数学公式来展现蚂蚁挣扎逃脱的过程。首先,由于蚂蚁具有二维视觉感知,故它们逃跑的方向是随机的。我们用 γ 2 ∈ ( 0 , 360 ∘ ) 来表示蚂蚁的逃跑方向。一般来说,当蚂蚁被陷阱困住后,会有两种挣扎逃脱的方式。一种方法是在逃跑时逐渐增加力量,直到达到极限,再慢慢耗尽;另一种方法则是在最初进行最有力的挣扎,然后逐渐削弱。我们可以分别用 sin ( γ ) 和 cos ( γ ) 来表示这两种方式。至于具体选择哪种方法,我们通过使用随机变量 γ 3 ,采用概率的形式来模拟蚂蚁选择方式的随机性。此外,由于蚂蚁在逐渐陷入困境的过程中,逃跑的力量会逐渐减弱,我们可以在逃避规则里乘上一个衰减系数,用 γ 1 = a − a ∗ ( t / T ) 来表示,此处 a 代表初始强度, t 代表当前迭代次数, T 代表迭代总数。考虑到不同的蚂蚁可能有着不同的斗争强度,我们在公式的末尾乘一个随机参数 D = | γ 4 ∗ A n t i t − A n t i t | , γ 4 为一个随机数, A n t i t 表示蚂蚁 i 在第 t 次迭代中的状态。以上为蚂蚁挣扎逃避过程的描述,具体的参数设置和算法实现可能会根据实际的应用与问题而有所不同。
在下文中,我们将使用公式(7)至(10)来描述蚂蚁逃跑的过程。这种方法对蚂蚁的逃跑行为进行了更为真实的模拟,可以让蚂蚁的探索范围更广泛,从而降低陷入局部最优的风险。
A nt i t + 1 = { A n t i t + γ 1 ∗ sin γ 2 ∗ D γ 3 < 0.5 A n t i t + γ 1 ∗ cos γ 2 ∗ D γ 3 ≥ 0.5 , (7)
D = { | γ 4 ∗ A n t i t − A n t i t | | i = 1 , 2 , ⋯ , n } , (8)
γ 1 = a − a ∗ ( t T ) , (9)
γ 2 ∈ ( 0 ° , 360 ° ) , (10)
其中,γ1~γ4为参数, γ 1 会随着迭代次数的变化而变化, γ 3 和 γ 4 为0到1之间均匀分布的随机数; a 为常数,实验中取值为1。
值得注意的是,正弦余弦策略可以直接应用于算法设计 [
改进的算法包括以下步骤:
1) 初始化数据:在规定的范围内设置参数,如蚁狮和蚂蚁的数量、维度和迭代次数。随机为蚁狮和蚂蚁分配位置,并计算它们各自的适应度值。
2) 确定精英蚁狮:从初始种群中选择适应度最高的蚁狮作为精英蚁狮。
3) 轮盘选择:使用轮盘赌策略为每只蚂蚁选择一只蚁狮,并根据蚁狮的位置更新参数值。蚂蚁围绕所选蚁狮进行随机游走,更新位置。
4) 引入正弦余弦策略:跟据公式(7)更新蚂蚁位置。
5) 计算适应度:计算蚂蚁和蚁狮的适应度值,并依据蚂蚁的位置和适应度更新蚁狮位置,选择所有个体中适应度最好的成为新精英蚁狮。
6) 判断是否终止:判断是否满足算法的终止条件。如果满足,输出结果,返回精英蚁狮位置及其适应度值,并结束迭代;否则,返回步骤3。
在本节中,我们比较了四种蚁狮优化算法在CEC2005和CEC2017部分测试函数上的性能。这四种算法分别为:新提出的具有逃跑机制的蚁狮优化算法(ALO-E),结合柯西分布的蚁狮优化算法(CALO) [
两组测试函数如表2和表3所示。
NO. | Functions | F i * = F i ( x * ) |
---|---|---|
F16 | Shifted and Rotated Bent Cigar Function | 100 |
F17 | Shifted and Rotated Zakharov Function | 200 |
F18 | Shifted and Rotated Rosenbrock’s Function | 300 |
F19 | Shifted and Rotated Rastrigin’s Function | 400 |
F20 | Shifted and Rotated Expended Scaffer’s F6 Function | 500 |
F21 | Shifted and Rotated Lunacek Bi_Rastrigin’s Function | 600 |
F22 | Shifted and Rotated Non-Continuous Rastrigin’s Function | 700 |
F23 | Shifted and Rotated Levy Function | 800 |
F24 | Shifted and Rotated Schwefel’s Function | 900 |
表2. 部分CEC2017测试函数
NO | Functions | D | Search space | fmin |
---|---|---|---|---|
F1 | F 1 ( x ) = ∑ i = 1 n x i 2 | 30 | [ − 100 , 100 ] D | 0 |
F2 | F 2 ( x ) = ∑ i = 1 n | x i | + ∏ i = 1 n | x i | | 30 | [ − 10 , 10 ] D | 0 |
F3 | F 3 ( x ) = ∑ i = 1 n ( ∑ j = 1 i x j ) 2 | 30 | [ − 100 , 100 ] D | 0 |
F4 | F 4 ( x ) = max i { | x i | , 1 ≤ i ≤ n } | 30 | [ − 100 , 100 ] D | 0 |
F5 | F 5 ( x ) = ∑ i = 1 n − 1 [ 100 ( x i + 1 − x i ) 2 + ( x i − 1 ) 2 ] | 30 | [ − 30 , 30 ] D | 0 |
F6 | F 6 ( x ) = ∑ i = 1 n ( [ x i + 0.5 ] ) 2 | 30 | [ − 100 , 100 ] D | 0 |
F7 | ||||
F8 | F 8 ( x ) = ∑ i = 1 n [ x i 2 − 10 cos ( 2 π x i ) + 10 ] | 30 | [ − 5.12 , 5.12 ] D | 0 |
F9 | F 9 ( x ) = − 20 exp ( − 0.2 1 n ∑ i = 1 n x i 2 ) − exp ( 1 n ∑ i = 1 n cos ( 2 π x i ) ) + 20 + e | 30 | [ − 32 , 32 ] D | 0 |
F10 | F 10 ( x ) = 1 4000 ∑ i = 1 n x i 2 − ∏ i = 1 n cos ( x i i ) + 1 | 30 | [ − 600 , 600 ] D | 0 |
F11 | F 11 ( x ) = ∑ i = 1 n u ( x i , 5 , 100 , 4 ) + 0.1 { sin 2 ( 3 π x 1 ) + ∑ i = 1 n − 1 ( x i − 1 ) 2 [ 1 + sin 2 ( 3 π x 1 i + 1 ) ] + ( x n − 1 ) 2 [ 1 + sin 2 ( 3 π x n ) ] } | 30 | [ − 50 , 50 ] D | 0 |
F12 | F 12 ( x ) = ( 1 500 + ∑ j = 1 25 1 j + ∑ i = 1 2 ( x i − a i j ) 6 ) − 1 | 2 | [ − 65.536 , 65.536 ] D | 0.998 |
F13 | F 13 ( x ) = 4 x 1 2 − 2.1 x 1 4 + 1 3 x 1 6 + x 1 x 2 − 4 x 2 2 + 4 x 2 4 | 2 | [ − 5 , 5 ] D | −1.0316285 |
F14 | F 14 ( x ) = ( x 2 − 5.1 4 π 2 x 1 2 + 5 π x 1 − 6 ) 2 + 10 ( 1 − 1 8 π ) cos x 1 + 10 | 2 | [ − 5 , 10 ] × [ 0 , 15 ] | 0.398 |
F15 | F 15 ( x ) = [ 1 + ( x 1 + x 2 + 1 ) 2 ( 19 − 14 x 1 + 3 x 1 2 − 14 x 2 + 6 x 1 x 2 + 3 x 2 2 ) ] × [ 30 + ( 2 x 1 − 3 x 2 ) 2 ( 18 − 32 x 1 + 12 x 1 2 + 48 x 2 − 36 x 1 x 2 + 27 x 2 2 ) ] | 2 | [ − 2 , 2 ] D | 3 |
表3. 部分CEC2005测试函数
在本节实验中,我们设置的参数如下:两个种群的大小均为20,最大迭代次数为10000。为了确保实验的准确性,我们对每个算法进行了20次独立运行,并计算每个基准函数的平均值和标准差。实验结果如表4所示。
F | ALO | ALO-E | CALO | PSALO | |
---|---|---|---|---|---|
F1(x) | mean | 5.9142e-09 | 9.9392e-36 | 6.4911e-09 | 5.0791e-09 |
std | 7.0441e-18 | 1.8772e-69 | 1.4942e-17 | 2.0195e-17 | |
F2(x) | mean | 0.3562 | 4.1272e-17 | 0.4009 | 0.3587 |
std | 0.0564 | 3.1104e-32 | 0.0542 | 0.0314 | |
F3(x) | mean | 0.2152 | 5.0922e-30 | 0.2334 | 0.2490 |
std | 0.0131 | 3.9943e-58 | 0.0131 | 0.0170 | |
F4(x) | mean | 0.1612 | 8.0806e-13 | 0.1464 | 0.1511 |
std | 3.1954e-03 | 1.2403e-23 | 2.5162e-03 | 2.3087e-03 | |
F5(x) | mean | 1.4540 | 0.0 | 1.3863 | 0.0 |
std | 40.1694 | 0.0 | 36.5178 | 0.0 | |
F6(x) | mean | 5.2497e-09 | 1.3237e-05 | 5.2017e-09 | 5.4318e-09 |
std | 1.1620e-17 | 1.9473e-10 | 1.2743e-17 | 1.9766e-17 | |
F7(x) | mean | 9.1821e-02 | 1.0554e-04 | 0.1014 | 0.0890 |
std | 1.6104e-03 | 7.4075e-09 | 1.3771e-03 | 1.8421e-03 | |
F8(x) | mean | 93.7746 | 3.2693e-13 | 91.6354 | 75.4177 |
std | 521.1842 | 6.9514e-26 | 1.052e + 03 | 618.6692 | |
F9(x) | mean | 3.5153e-04 | 1.6778e-13 | 3.7426e-04 | 3.4196e-04 |
std | 9.0499e-09 | 5.3082e-25 | 1.0448e-08 | 1.7344e-08 | |
F10(x) | mean | 1.5635e-02 | 1.8012e-06 | 1.8968e-02 | 1.4343e-03 |
std | 4.7831e-04 | 5.8440e-12 | 1.4096e-03 | 1.7817e-06 | |
F11(x) | mean | 4.5370 | 4.6233e-05 | 4.4605 | 2.9738 |
std | 6.5412 | 2.2411e-09 | 3.6082 | 2.0936 | |
F12(x) | mean | 0.0633 | 0.0730 | 0.0487 | 0.0195 |
std | 2.1570e-03 | 1.7784e-03 | 2.3703e-03 | 1.5170e-03 | |
F13(x) | mean | 0.2720 | 0.4068 | 0.4203 | 0.2260 |
std | 0.1160 | 0.2909 | 0.3035 | 0.0961 | |
F14(x) | mean | 0.3979 | 0.3933 | 0.3979 | 0.3969 |
std | 6.5029e-27 | 0.0298 | 1.0619e-26 | 2.2989e-27 | |
F15(x) | mean | 3.0010 | 3.0000 | 3.0001 | 3.0000 |
std | 3.1338e-25 | 3.4628e-25 | 5.9927e-25 | 4.0530e-26 | |
F16(x) | mean | 2.9295e + 11 | 2.8995e + 11 | 2.9175e + 11 | 2.9085e + 11 |
std | 4.6716e + 17 | 1.8559e + 17 | 7.8751e + 17 | 1.1619e + 18 | |
F17(x) | mean | 8.6187e + 04 | 7.4335e + 04 | 6.1174e + 04 | 3.4994e + 04 |
std | 8.7787e + 08 | 2.1095e + 08 | 1.2089e + 09 | 7.1123e + 07 | |
F18(x) | mean | 5.7089e + 03 | 5.7154e + 03 | 5.6739e + 03 | 5.6394e + 03 |
std | 422.9201 | 61.6644 | 457.0389 | 369.7308 | |
F19(x) | mean | 710.0171 | 710.8291 | 708.0873 | 706.2653 |
std | 5.0799 | 1.2499 | 4.2630 | 3.2240 | |
F20(x) | mean | 709.0734 | 704.5987 | 708.4356 | 708.6477 |
std | 8.4226 | 5.9179 | 23.0464 | 8.2936 | |
F21(x) | mean | 748.0431 | 743.5674 | 748.8433e | 747.7458 |
std | 62.0121 | 28.1113 | 27.5246 | 30.2064 | |
F22(x) | mean | 931.0921 | 922.8259 | 925.8775 | 923.2593 |
std | 1.4813 | 7.5416 | 9.2972 | 4.6186 | |
F23(x) | mean | 2.5679e + 3 | 2.2298e + 3 | 2.2387e + 3 | 2.2623e + 3 |
std | 1.3263e + 4 | 3.5461e + 4 | 3.2139e + 3 | 3.2863e + 4 |
表4. 求解测试函数结果对比
下面,我们对四种算法在求解上述23个函数时取得最佳均值和标准差的次数进行统计分析,如图1所示。其中,ALO-E算法的求解大部分最优且最为稳定,表明了具有逃跑机制的蚁狮算法的有效性。
图1. 最佳结果次数的统计分析
为了更好地展示ALO-E算法的优越性,我们给出了ALO-E、CALO、PSALO和ALO算法在1000次迭代下求解上述部分测试函数结果的收敛图,如图2所示。
图2. 部分测试函数收敛结果
K-Means算法 [
为了提高K-Means聚类中质心更新的效率,我们将ALO-E算法应用到该过程中,即在初始化质心之后,采用ALO-E算法来获得新的质心。
以下是改进聚类算法的主要步骤:
1) 随机选取k个质心。
2) 计算每个数据点和每个质心之间的欧式距离,并根据该距离将样本分配到相应的聚类。
3) 运用改进的蚁狮算法更新质心。
4) 判断是否已达到最大迭代次数。如果达到,则结束迭代并输出聚类结果;否则,返回步骤3。
为了证明改进聚类算法的有效性和优越性,我们将ALO-E算法结合K-Means (Kmeans-ALO-E)与传统的K-Means算法、粒子群优化算法结合K-Means (Kmeans-PSO) [
Datasets | Number of samples | Number of categories | Number of features |
---|---|---|---|
Iris | 150 | 3 | 4 |
Wine | 178 | 3 | 13 |
Seeds | 210 | 3 | 7 |
Thyroid | 215 | 3 | 5 |
表5. 四个数据集的信息
为了对算法性能进行评估,我们使用了三个评估指标:召回率(recall)、准确度(precision)和F1精度,计算公式如下:
r e c a l l = T P P , (11)
p r e c i s i o n = T P T P + F P , (12)
F 1 = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o m + r e c a l l 。 (13)
表6至表9为三个聚类算法应用在上述四个数据集的结果,展示了每种算法对数据点进行分组的准确性和有效性。我们可以看到,Kmeans-PSO在四个数据集上的三个评估指标绝大部分优于传统方法;而Kmeans-ALO-E算法的评估指标明显优于传统方法,且略优于Kmeans-PSO。由此我们可以得出,本文所提出的Kmeans-ALO-E算法为数据聚类提供了一种稳健有效的替代方案。
Recall | Precision | F1 | |
---|---|---|---|
K-Means | 0.8867 | 0.8978 | 0.8853 |
Kmeans-PSO | 0.8400 | 0.8555 | 0.8390 |
Kmeans-ALO-E | 0.8933 | 0.9072 | 0.8918 |
表6. Iris数据集上三种聚类算法的结果
Recall | Precision | F1 | |
---|---|---|---|
K-Means | 0.8483 | 0.8483 | 0.8483 |
Kmeans-PSO | 0.8665 | 0.8741 | 0.8703 |
Kmeans-ALO-E | 0.8905 | 0.8932 | 0.8918 |
表7. Wine数据集上三种聚类算法的结果
Recall | Precision | F1 | |
---|---|---|---|
K-Means | 0.8884 | 0.9038 | 0.8960 |
Kmeans-PSO | 0.8714 | 0.9556 | 0.9116 |
Kmeans-ALO-E | 0.9323 | 0.8940 | 0.9127 |
表8. Seeds数据集上三种聚类算法的结果
Recall | Precision | F1 | |
---|---|---|---|
K-Means | 0.7805 | 0.8233 | 0.8013 |
Kmeans-PSO | 0.8757 | 0.8789 | 0.8773 |
Kmeans-ALO-E | 0.8884 | 0.9038 | 0.8960 |
表9. Thyroid数据集上三种聚类算法的结果
为了更直观地展现Kmeans-ALO-E算法的聚类性能,我们绘制了该算法在四个数据集上的聚类情况,如图3和图4所示。
图3. Kmeans-ALO-E算法在Iris和Wine数据集上的聚类
图4. Kmeans-ALO-E算法在Thyroid和Seeds数据集上的聚类
古代玻璃制品的分类源于“古代玻璃制品成分分析和鉴定”问题,关于这个问题的具体描述和数据可以在网站上找到:(www.mcm.edu.cn)。我们利用Kmeans-ALO-E算法通过选择合适的化学成分来对每个玻璃类进行亚类划分。
考虑到数据的复杂性,我们首先使用公式(14)对数据集进行归一化,为后续处理和分析数据提供便利。
x ′ = x − min ( x ) max ( x ) − min ( x ) 。 (14)
我们使用准确率(ACC)来评估实验结果,其定义公式为:
A C C = T P + T N A L L 。 (15)
图5展示了Kmeans-ALO-E算法在高钾玻璃数据集上的聚类结果。由图可得,高钾玻璃可分为两组:高钾低硅玻璃和高钾高硅玻璃。改进的算法在该数据集上实现了100%的准确率(ACC)。
图5. Kmeans-ALO-E在高钾玻璃数据集上的聚类
同样,图6展示了Kmeans-ALO-E算法在铅钡玻璃数据集上的聚类结果。由图可得,铅钡玻璃根据铅含量可分为三个子类:低铅铅钡玻璃、中铅铅钡和高铅铅钡。改进算法在该数据集上的准确率(ACC)为91%。
图6. Kmeans-ALO-E在铅钡玻璃数据集上的聚类
上述两个古老玻璃制品的分类问题证明了Kmeans-ALO-E算法在实际应用中的良好性能。
我们通过模拟蚂蚁被蚁狮追捕时的逃跑路线,将蚂蚁的逃跑策略融入蚁狮优化算法,对算法进行了改进。在进行了大量的数值实验后,我们观察到这种策略对算法的全局优化产生了积极影响。此外,我们将这种新设计的ALO算法引入到经典的K-Means聚类算法中,对质心更新的过程进行了优化,提高了算法的整体性能。随后,我们成功地将这种新的聚类算法应用于解决实际的问题。
我们的下一个研究目标是检验种群大小对算法性能的影响,并探索该改进算法在其他工程问题中的应用。
梁 晨,张立溥. 具有逃脱机制的蚁狮算法及其应用The Antlion Algorithm with Escape Mechanism and It’s Applications[J]. 计算机科学与应用, 2024, 14(05): 206-218. https://doi.org/10.12677/csa.2024.145129
https://doi.org/10.1007/978-3-319-50920-4_19
https://doi.org/10.1109/3477.484436
https://doi.org/10.1109/ICNN.1995.488968
https://doi.org/10.1007/978-3-642-17432-2_34
https://api.semanticscholar.org/CorpusID:267873429
https://doi.org/10.1260/1748-3018.9.3.291
https://doi.org/10.1016/j.advengsoft.2015.01.010
https://doi.org/10.1007/s00521-018-3871-9
https://doi.org/10.1007/s10044-018-0695-2
https://doi.org/10.1016/j.knosys.2015.12.022
https://doi.org/10.1007/s10462-020-09909-3
https://doi.org/10.3778/j.issn.1002-8331.2205-0436
https://doi.org/10.16451/j.cnki.issn1003-6059.202002004
https://doi.org/10.1007/978-3-540-73560-1_15
https://doi.org/10.1007/978-3-319-01796-9_5