基于协作搜索算法的函数寻优及工程优化

一、理论基础

1、协作搜索算法

受现代企业团队协作行为的启发,文献[1]提出了一种新的基于种群的进化方法——协作搜索算法(Cooperation search algorithm, CSA)。CSA算法首先在问题空间中随机生成一组候选解,然后重复执行三个操作算子,直到满足停止条件:使用团队沟通算子改进全局搜索并确定有希望的搜索区域;反思学习算子用于实现探索与开发之间的融合;内部竞争算子用于为下一个周期选择性能更好的解决方案。
在CSA中,目标问题的优化过程被视为企业的发展过程;每个解决方案都被视为一个员工,而一组员工组成了一个企业团队;每个员工的绩效等于当前问题的适应度值;监事会由个体最好的解决方案组成;董事会由外部档案集(迄今为止发现的 M M M个全局最好的解决方案)组成;当值主席是从董事会中随机选出的。然后,种群模仿现代企业的团队合作行为,使用三个进化算子逐步找到高质量的解决方案:团队沟通算子用于帮助员工从领导者那里获取有益的知识;反思学习算子通过吸取过去的经验教训,提高员工的综合实力;内部竞争算子用于提高精英解决方案的工作经验和领导力愿景。

(1)团队建立阶段

在这一阶段,团队中的所有员工都是通过式(1)随机生成的。在评估所有解决方案的性能后,将从初始群中选择 M ∈ [ 1 , I ] M\in[1,I] M[1,I]个领导者,以形成外部精英集。 x i , j k = ϕ ( x ‾ j , x ‾ j ) ,    i ∈ [ 1 , I ] ,    j ∈ [ 1 , J ] ,    k = 1 (1) x_{i,j}^k=\phi(\underline x_j,\overline x_j),\,\,i\in[1,I],\,\,j\in[1,J],\,\,k=1\tag{1} xi,jk=ϕ(xj,xj),i[1,I],j[1,J],k=1(1)其中, I I I是当前种群的解数量; x i , j k x_{i,j}^k xi,jk是第 k k k次迭代中第 i i i个个体的第 j j j个位置; ϕ ( L , U ) \phi(L,U) ϕ(L,U)是在 [ L , U ] [L,U] [L,U]范围内生成均匀分布的随机数的函数。

(2)团队沟通算子

每位员工都可以通过与董事长、董事会和监事会的领导交流信息来获得新的信息。如式(2)所示,团队沟通过程包括三个部分:董事长的知识 A A A、董事会的集体知识 B B B和监事会的集体知识 C C C。董事长从董事会中随机选出,模拟轮换机制,而董事会和监事会的所有成员在计算 B B B C C C时被赋予相同的职位。 u i , j k + 1 = x i , j k + A i , j k + B i , j k + C i , j k ,    i ∈ [ 1 , I ] ,    j ∈ [ 1 , J ] ,    k ∈ [ 1 , K ] (2) u_{i,j}^{k+1}=x_{i,j}^k+A_{i,j}^k+B_{i,j}^k+C_{i,j}^k,\,\,i\in[1,I],\,\,j\in[1,J],\,\,k\in[1,K]\tag{2} ui,jk+1=xi,jk+Ai,jk+Bi,jk+Ci,jk,i[1,I],j[1,J],k[1,K](2) A i , j k = log ⁡ ( 1 / ϕ ( 0 , 1 ) ) ⋅ ( g B e s t i n d , j k − x i , j k ) (3) A_{i,j}^k=\log(1/\phi(0,1))\cdot(gBest_{ind,j}^k-x_{i,j}^k)\tag{3} Ai,jk=log(1/ϕ(0,1))(gBestind,jkxi,jk)(3) B i , j k = α ⋅ ϕ ( 0 , 1 ) ⋅ [ 1 M ∑ m = 1 M g B e s t m , j k − x i , j k ] (4) B_{i,j}^k=\alpha\cdot\phi(0,1)\cdot\left[\frac1M\sum_{m=1}^MgBest_{m,j}^k-x_{i,j}^k\right]\tag{4} Bi,jk=αϕ(0,1)[M1m=1MgBestm,jkxi,jk](4) C i , j k = β ⋅ ϕ ( 0 , 1 ) ⋅ [ 1 I ∑ i = 1 I p B e s t i , j k − x i , j k ] (5) C_{i,j}^k=\beta\cdot\phi(0,1)\cdot\left[\frac1I\sum_{i=1}^IpBest_{i,j}^k-x_{i,j}^k\right]\tag{5} Ci,jk=βϕ(0,1)[I1i=1IpBesti,jkxi,jk](5)其中, u i , j k + 1 u_{i,j}^{k+1} ui,jk+1是第 k + 1 k+1 k+1次迭代中第 i i i个个体的第 j j j个值; p B e s t i , j k pBest_{i,j}^k pBesti,jk是第 k k k代第 i i i个个体最优解的第 j j j个值; g B e s t i n d , j k gBest_{ind,j}^k gBestind,jk是从开始到第 k k k代的第 i n d ind ind个全局最优解的第 j j j个值, i n d ind ind是从 { 1 , 2 , ⋯   , M } \{1,2,\cdots,M\} { 1,2,,M}集合中随机选择的索引; A i , j k A_{i,j}^k Ai,jk表示从外部精英集中随机选择的主席获得的知识; B i , j k B_{i,j}^k Bi,jk C i , j k C_{i,j}^k Ci,jk分别是从迄今为止发现的 M M M个全局最优解和 I I I个个体最优解中获得的平均知识; α \alpha α β \beta β是调整 B i , j k B_{i,j}^k Bi,jk C i , j k C_{i,j}^k Ci,jk影响程度的学习系数。

(3)反思学习算子

除了向领导者学习外,员工还可以通过总结自己在相反方向上的经验来获得新知识,具体表达如下: v i , j k + 1 = { r i , j k + 1 if ( u i , j k + 1 ≥ c j ) p i , j k + 1 if ( u i , j k + 1 < c j ) ,    i ∈ [ 1 , I ] ,    j ∈ [ 1 , J ] ,    k ∈ [ 1 , K ] (6) v_{i,j}^{k+1}=\begin{dcases}r_{i,j}^{k+1}\quad\text{if}\left(u_{i,j}^{k+1}\geq c_j\right)\\[2ex]p_{i,j}^{k+1}\quad\text{if}\left(u_{i,j}^{k+1}<c_j\right)\end{dcases},\,\,i\in[1,I],\,\,j\in[1,J],\,\,k\in[1,K]\tag{6} vi,jk+1=ri,jk+1if(ui,jk+1cj)pi,jk+1if(ui,jk+1<cj),i[1,I],j[1,J],k[1,K](6) r i , j k + 1 = { ϕ ( x ‾ j + x ‾ j − u i , j k + 1 , c j ) if ( ∣ u i , j k + 1 − c j ∣ < ϕ ( 0 , 1 ) ⋅ ∣ x ‾ j − x ‾ j ∣ ) ϕ ( x ‾ j , x ‾ j + x ‾ j − u i , j k + 1 ) otherwise (7) r_{i,j}^{k+1}=\begin{dcases}\phi(\overline x_j+\underline x_j-u_{i,j}^{k+1},c_j)\quad\text{if}\left(|u_{i,j}^{k+1}-c_j|<\phi(0,1)\cdot|\overline x_j-\underline x_j|\right)\\[2ex]\phi(\underline x_j,\overline x_j+\underline x_j-u_{i,j}^{k+1})\quad\text{otherwise}\end{dcases}\tag{7} ri,jk+1=ϕ(xj+xjui,jk+1,cj)if(ui,jk+1cj<ϕ(0,1)xjxj)ϕ(xj,xj+xjui,jk+1)otherwise(7) p i , j k + 1 = { ϕ ( c j , x ‾ j + x ‾ j − u i , j k + 1 ) if ( ∣ u i , j k + 1 − c j ∣ < ϕ ( 0 , 1 ) ⋅ ∣ x ‾ j − x ‾ j ∣ ) ϕ ( x ‾ j + x ‾ j − u i , j k + 1 , x ‾ j ) otherwise (8) p_{i,j}^{k+1}=\begin{dcases}\phi(c_j,\overline x_j+\underline x_j-u_{i,j}^{k+1})\quad\text{if}\left(|u_{i,j}^{k+1}-c_j|<\phi(0,1)\cdot|\overline x_j-\underline x_j|\right)\\[2ex]\phi(\overline x_j+\underline x_j-u_{i,j}^{k+1},\overline x_j)\quad\text{otherwise}\end{dcases}\tag{8} pi,jk+1=ϕ(cj,xj+xjui,jk+1)if(ui,jk+1cj<ϕ(0,1)xjxj)ϕ(xj+xjui,jk+1,xj)otherwise(8) c j = ( x ‾ j + x ‾ j ) ⋅ 0.5 (9) c_j=(\overline x_j+\underline x_j)\cdot0.5\tag{9} cj=(xj+xj)0.5(9)其中, v i , j k + 1 v_{i,j}^{k+1} vi,jk+1是第 k + 1 k+1 k+1次迭代第 i i i个反思解的第 j j j个值。

(4)内部竞争算子

团队通过确保所有表现较好的员工都能得到保护,逐步提升其市场竞争力,具体表示如下: x i , j k + 1 = { u i , j k + 1 if ( F ( u i , j k + 1 ) ≤ F ( v i , j k + 1 ) ) v i , j k + 1 if ( F ( u i , j k + 1 ) > F ( v i , j k + 1 ) ) ,    i ∈ [ 1 , I ] ,    j ∈ [ 1 , J ] ,    k ∈ [ 1 , K ] (10) x_{i,j}^{k+1}=\begin{dcases}u_{i,j}^{k+1}\quad\text{if}\left(F\left(u_{i,j}^{k+1}\right)\leq F\left(v_{i,j}^{k+1}\right)\right)\\[2ex]v_{i,j}^{k+1}\quad\text{if}\left(F\left(u_{i,j}^{k+1}\right)>F\left(v_{i,j}^{k+1}\right)\right)\end{dcases},\,\,i\in[1,I],\,\,j\in[1,J],\,\,k\in[1,K]\tag{10} xi,jk+1=ui,jk+1if(F(ui,jk+1)F(vi,jk+1))vi,jk+1if(F(ui,jk+1)>F(vi,jk+1)),i[1,I],j[1,J],k[1,K](10)其中, F ( x ) F(x) F(x)是解 x x x的适应度值。为了有效地多重物理约束,首先通过式(11)将 x x x中的所有变量修改为可行区域,然后使用式(12)中的惩罚函数方法,通过将约束违反值合并到目标值 F ( x ) F(x) F(x)中来获得适应度值 F ( x ) F(x) F(x)。然后,对于可行解,充分满足所有约束,使适应度值等于原始目标值;对于不可行解,约束冲突值变为正值,因此适应度值大于目标值。这样,就可以将种群引导到尽可能多的可行搜索区域。 x j = max ⁡ { min ⁡ { x ‾ j , x j } , x ‾ j } (11) x_j=\max\left\{\min\left\{\overline x_j,x_j\right\},\underline x_j\right\}\tag{11} xj=max{ min{ xj,xj},xj}(11) F ( x ) = f ( x ) + ∑ e = 1 E c e 1 ⋅ max ⁡ { g e ( x ) , 0 } + ∑ f = 1 F c f 2 ⋅ ∣ h f ( x ) ∣ (12) F(x)=f(x)+\sum_{e=1}^Ec_e^1\cdot\max\{g_e(x),0\}+\sum_{f=1}^Fc_f^2\cdot|h_f(x)|\tag{12} F(x)=f(x)+e=1Ece1max{ ge(x),0}+f=1Fcf2hf(x)(12)其中, x j x_j xj是解 x x x中的第 j j j个值; c e 1 c_e^1 ce1是第 e e e个不等式约束的惩罚系数; c f 2 c^2_f cf2是第 f f f个不等式约束的惩罚系数。

2、CSA算法伪代码

CSA算法伪代码如图1所示。
在这里插入图片描述

图1 CSA算法伪代码

二、仿真实验与结果分析

1、函数优化

将CSA与PSO、SCA和GSA进行对比,实验设置种群规模为50,最大迭代次数为1000,每个算法独立运行30次,以文献[1]中表1的F1、F24(单峰函数/30维)、F8、F9(多峰函数/30维)、F19、F20(固定维度多峰函数/3维、6维)为例,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
PSO:最差值: 1.7361, 最优值: 0.23181, 平均值: 0.75088, 标准差: 0.3925, 秩和检验: 1.2118e-12
SCA:最差值: 0.010637, 最优值: 5.4967e-08, 平均值: 0.00096839, 标准差: 0.0023986, 秩和检验: 1.2118e-12
GSA:最差值: 3.9648e-17, 最优值: 1.3405e-17, 平均值: 2.3069e-17, 标准差: 6.949e-18, 秩和检验: 1.2118e-12
CSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F24
PSO:最差值: 2309236.1027, 最优值: 22.9457, 平均值: 293424.9084, 标准差: 678420.6308, 秩和检验: 1.2118e-12
SCA:最差值: 262009458.9802, 最优值: 4.0051e-10, 平均值: 13262300.597, 标准差: 53075186.9734, 秩和检验: 1.2118e-12
GSA:最差值: 570427262672.4108, 最优值: 9.2587, 平均值: 19173926961.1078, 标准差: 104116954905.3765, 秩和检验: 1.2118e-12
CSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F8
PSO:最差值: -2445.0518, 最优值: -5241.6763, 平均值: -3279.074, 标准差: 615.526, 秩和检验: 5.5727e-10
SCA:最差值: -3537.198, 最优值: -4530.966, 平均值: -4015.8425, 标准差: 239.7107, 秩和检验: 9.0632e-08
GSA:最差值: -1864.4479, 最优值: -3922.9167, 平均值: -2670.8793, 标准差: 494.7365, 秩和检验: 8.1527e-11
CSA:最差值: -3077.569, 最优值: -10590.8441, 平均值: -8683.0917, 标准差: 1900.2026, 秩和检验: 1
函数:F9
PSO:最差值: 97.6805, 最优值: 44.1133, 平均值: 69.5204, 标准差: 11.9548, 秩和检验: 1.2118e-12
SCA:最差值: 131.5406, 最优值: 5.9633e-06, 平均值: 20.0002, 标准差: 30.8138, 秩和检验: 1.2118e-12
GSA:最差值: 26.8639, 最优值: 9.9496, 平均值: 16.6821, 标准差: 3.934, 秩和检验: 1.196e-12
CSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F19
PSO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.862, 标准差: 0.0024049, 秩和检验: 0.081404
SCA:最差值: -3.8537, 最优值: -3.8616, 平均值: -3.855, 标准差: 0.0017066, 秩和检验: 1.2118e-12
GSA:最差值: -2.8323, 最优值: -3.8628, 平均值: -3.5079, 标准差: 0.30358, 秩和检验: 1.656e-11
CSA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: NaN
函数:F20
PSO:最差值: -2.8642, 最优值: -3.322, 平均值: -3.1919, 标准差: 0.13879, 秩和检验: 0.0068992
SCA:最差值: -2.6044, 最优值: -3.2288, 平均值: -2.9956, 标准差: 0.15911, 秩和检验: 5.5013e-10
GSA:最差值: -0.92656, 最优值: -2.9286, 平均值: -1.9285, 标准差: 0.47562, 秩和检验: 1.5374e-11
CSA:最差值: -3.2031, 最优值: -3.322, 平均值: -3.2507, 标准差: 0.059241, 秩和检验: 1

实验结果表明:CSA算法在求解连续函数优化问题上具有较好的优化性能。

2、工程优化

以焊接梁优化设计、压力容器优化设计、减速器优化设计问题为例,具体问题模型请参考这里。各参数设置和上节相同,结果如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

焊接梁优化设计问题
PSO:最差值: 1.9769, 最优值: 1.6523, 平均值: 1.6781, 标准差: 0.082769, 秩和检验: 0.002052
SCA:最差值: 1.7786, 最优值: 1.6875, 平均值: 1.7367, 标准差: 0.025482, 秩和检验: 3.0199e-11
GSA:最差值: 2.6518, 最优值: 2.1082, 平均值: 2.3557, 标准差: 0.12729, 秩和检验: 3.0199e-11
CSA:最差值: 1.681, 最优值: 1.6523, 平均值: 1.6647, 标准差: 0.010742, 秩和检验: 1
压力容器优化设计问题
PSO:最差值: 10449.8932, 最优值: 5885.746, 平均值: 6373.6987, 标准差: 960.1842, 秩和检验: 0.0015969
SCA:最差值: 12423.2902, 最优值: 7639.2014, 平均值: 11320.1469, 标准差: 2022.2757, 秩和检验: 3.0199e-11
GSA:最差值: 6603.6533, 最优值: 6147.4348, 平均值: 6312.2776, 标准差: 142.8382, 秩和检验: 0.34783
CSA:最差值: 7318.6873, 最优值: 5915.3664, 平均值: 6494.6085, 标准差: 454.7101, 秩和检验: 1
减速器优化设计问题
PSO:最差值: 3197.0062, 最优值: 2994.4245, 平均值: 3077.9623, 标准差: 72.6946, 秩和检验: 2.3347e-12
SCA:最差值: 3100.9733, 最优值: 3032.0249, 平均值: 3062.034, 标准差: 16.4755, 秩和检验: 2.3638e-12
GSA:最差值: 3006.3993, 最优值: 2995.2869, 平均值: 2999.957, 标准差: 2.5604, 秩和检验: 2.3638e-12
CSA:最差值: 2994.4245, 最优值: 2994.4245, 平均值: 2994.4245, 标准差: 2.3463e-12, 秩和检验: 1

实验结果表明:CSA在求解复杂优化问题上具有良好的性能。

三、参考文献

[1] Zhong-kai Feng, Wen-jing Niu, Shuai Liu. Cooperation search algorithm: A novel metaheuristic evolutionary intelligence algorithm for numerical optimization and engineering optimization problems[J]. Applied Soft Computing Journal, 2021, 98: 106734.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/124884787