Ⅰ. 长城建造算法
长城建造算法(Great Wall Construction Algorithm,GWCA)是由Ziyu Gu及其同事,GWCA的灵感来自于古长城建造过程中工人之间的竞争和淘汰机制。该成果于2023年7月在线发表,12月正式发表在中科院1区SCI期刊Expert Systems With Applications。引入的一种新型元启发式优化器。它从古代长城建造过程中工人之间的历史竞争和淘汰机制中汲取灵感。GWCA优化器将这些原则纳入其优化策略。此外,该算法优先考虑以性能为导向的方法而非隐喻方面,利用为长城建设做出贡献的工人的竞争精神。通过这种独特的方法,GWCA算法旨在有效地解决复杂的优化问题,同时模拟历史建造过程中表现出的有效性和资源管理。表1总结了GWCA算法定义中使用的参数。在接下来的章节中,我们描述了GWCA优化器的各个阶段。
1) 初始化
方程1用于初始化第一代个体,其中参数 Λ \Lambda Λ 决定了逻辑斯蒂映射(设为4)的增长率,参数 α \alpha α 是在范围 [0, 1](不包括值 0.25, 0.5, 0.75 和 1)内均匀分布的随机数。
X i , j ( 0 ) = φ i , j × ( UB j − LB j ) + LB j φ i , j = { α , i = 1 λ φ i − 1 , j ( 1 − φ i − 1 , j ) , 1 < i ≤ N i ∈ { 1 , … , N } and j ∈ { 1 , … , D } \begin{align*} X^{\left ({0}\right)}_{i,j}&=\varphi _{i,j} \times \left ({\text {UB}_{j} - \text {LB}_{j}}\right) + \text {LB}_{j} \\ \varphi _{i,j}&=\begin{cases} \displaystyle \alpha, & i=1 \\ \displaystyle \lambda \varphi _{i-1,j}\left ({1 - \varphi _{i-1,j}}\right), & 1 < i \leq N \end{cases} \\ &\quad i\in \{1,\ldots,N\} \text { and }j\in \{1,\ldots,D\} \tag{1}\end{align*} Xi,j(0)φi,j=φi,j×(UBj−LBj)+LBj={α,λφi−1,j(1−φi−1,j),i=11<i≤Ni∈{1,…,N} and j∈{1,…,D}(1)
2) 开发
方程2用于在群体行为过程中开发搜索空间,其中参数 k k k 是从集合 { 0 , 1 } \{0, 1\} {0,1} 上均匀分布中采样的均匀分布随机数,参数 ϵ \epsilon ϵ 是一个无限小的数集,设为 2.22E-16。
X i , j ( t + 1 ) = α 1 × υ × X i , j ( t ) + R i , j ( t ) + X b , j ( t ) υ = ( T × TL m − g × H ( t ) sin ( θ ) ) × C ( t ) × G ( t , P , Q ) H ( t ) = 1 − t T max C ( t ) = log ( ( C max − C min ) × T max − t T max + C min ) R i , j ( t ) = ( − 1 ) k × α 2 × ( X b , j ( t ) − X i , j ( t ) ) TL = 1 − t T max + ϵ \begin{align*} X^{\left ({t+1}\right)}_{i,j}&=\alpha _{1} \times \upsilon \times X^{\left ({t}\right)}_{i,j} + R^{\left ({t}\right)}_{i,j} + X^{\left ({t}\right)}_{\text {b},j} \\ \upsilon &=\left ({\frac {T \times \text { TL}}{m} {-} g \times \frac {H\left ({t}\right)}{\sin \left ({\theta }\right)}}\right) \times C\left ({t}\right) \times \mathbb {G}\left ({t,P,Q}\right) \\ H\left ({t}\right)&=1 - \frac {t}{T_{\max }} \\ C\left ({t}\right)&=\log \left ({\left ({C_{\max } - C_{\min }}\right) \times \frac {T_{\max } - t}{T_{\max }} + C_{\min }}\right) \\ R^{\left ({t}\right)}_{i,j}&=\left ({-1}\right)^{k} \times \alpha _{2} \times \left ({X^{\left ({t}\right)}_{\text {b},j} - X^{\left ({t}\right)}_{i,j}}\right) \\ \text {TL}&=1 - \frac {t}{T_{\max }} + \epsilon \tag{2}\end{align*} Xi,j(t+1)υH(t)C(t)Ri,j(t)TL=α1×υ×Xi,j(t)+Ri,j(t)+Xb,j(t)=(mT× TL−g×sin(θ)H(t))×C(t)×G(t,P,Q)=1−Tmaxt=log((Cmax−Cmin)×TmaxTmax−t+Cmin)=(−1)k×α2×(Xb,j(t)−Xi,j(t))=1−Tmaxt+ϵ(2)
3) 探索
方程3用于在群体行为过程中探索搜索空间,其中参数 ϵ \epsilon ϵ 是一个无限小的数集,设为 2.22E-16。
X i , j ( t + 1 ) = X i , j ( t ) + α 3 × T 1 + α 4 × υ × s i g n ( T 2 ) × T 3 T 1 = X b , j ( t ) − X i , j ( t ) T 2 = f ( X n ⟨ i ⟩ ( t ) ) − f ( X i ( t ) ) T 3 = X n ⟨ i ⟩ , j ( t ) − X i , j ( t ) υ = m × g × H ( t ) sin ( θ ) × C ( t ) × G ( t , P , Q ) H ( t ) = 1 − t T max + ϵ C ( t ) = log ( ( C max − C min ) × T max − t T max + C min ) s i g n ( x ) = { − 1 , x < 0 0 , x = 0 1 , x > 0 \begin{align*} X^{\left ({t+1}\right)}_{i,j}&=X^{\left ({t}\right)}_{i,j} + \alpha _{3} \times T_{1} + \alpha _{4} \times \upsilon \times \mathop {\mathrm {sign}}\nolimits \left ({T_{2}}\right) \times T_{3} \\ T_{1}&=X^{\left ({t}\right)}_{\text {b},j} - X^{\left ({t}\right)}_{i,j} \\ T_{2}&=f\left ({X^{\left ({t}\right)}_{\text {n}\langle i \rangle }}\right) - f\left ({X^{\left ({t}\right)}_{i}}\right) \\ T_{3}&=X^{\left ({t}\right)}_{\text {n}\langle i \rangle,j} - X^{\left ({t}\right)}_{i,j} \\ \upsilon &=m \times g \times \frac {H\left ({t}\right)}{\sin \left ({\theta }\right)} \times C\left ({t}\right) \times \mathbb {G}\left ({t,P,Q}\right) \\ H\left ({t}\right)&=1 - \frac {t}{T_{\max }} + \epsilon \\ C\left ({t}\right)&=\log \left ({\left ({C_{\max } - C_{\min }}\right) \times \frac {T_{\max } - t}{T_{\max }} + C_{\min }}\right) \\ \mathop {\mathrm {sign}}\nolimits \left ({x}\right)&=\begin{cases} \displaystyle -1, & x < 0 \\ \displaystyle 0, & x = 0 \\ \displaystyle 1, & x > 0 \end{cases} \tag{3}\end{align*} Xi,j(t+1)T1T2T3υH(t)C(t)sign(x)=Xi,j(t)+α3×T1+α4×υ×sign(T2)×T3=Xb,j(t)−Xi,j(t)=f(Xn⟨i⟩(t))−f(Xi(t))=Xn⟨i⟩,j(t)−Xi,j(t)=m×g×sin(θ)H(t)×C(t)×G(t,P,Q)=1−Tmaxt+ϵ=log((Cmax−Cmin)×TmaxTmax−t+Cmin)=⎩ ⎨ ⎧−1,0,1,x<0x=0x>0(3)
4) 开发与探索之间的平衡
方程4用于偏向更好的解决方案,促进收敛到搜索空间中的最优或近优解,并克服在优化过程中陷入局部最优的问题。
X i , j ( t + 1 ) = X i , j ( t ) + 2 × α 5 × T 1 + T 2 × G ( t , P , Q ) T 1 = X b , j ( t ) − X i , j ( t ) T 2 = M i , j − X i , j ( t ) \begin{align*} X^{\left ({t+1}\right)}_{i,j}&=X^{\left ({t}\right)}_{i,j} + 2 \times \alpha _{5} \times T_{1} + T_{2} \times \mathbb {G}\left ({t,P,Q}\right) \\ T_{1}&=X^{\left ({t}\right)}_{\text {b},j} - X^{\left ({t}\right)}_{i,j} \\ T_{2}&=M_{i,j} - X^{\left ({t}\right)}_{i,j} \tag{4}\end{align*} Xi,j(t+1)T1T2=Xi,j(t)+2×α5×T1+T2×G(t,P,Q)=Xb,j(t)−Xi,j(t)=Mi,j−Xi,j(t)(4)
5) 选择
算法1用于确定当前种群中哪些个体更有可能被选择出现在下一代(即,淘汰最差的解决方案)。最差的解决方案被新生成的解决方案替代,使用方程5。值得一提的是,系数
r
1
,
…
,
r
D
r_1, \ldots, r_D
r1,…,rD 是在范围 [0, 1] 内均匀分布的随机数。
X
=
[
r
1
×
T
1
,
…
,
r
D
×
T
D
]
{
T
1
=
(
UB
1
−
LB
1
)
+
LB
1
⋮
T
D
=
(
UB
D
−
LB
D
)
+
LB
D
\begin{align*} &X=\left [{r_{1} \times T_{1},\ldots,r_{D} \times T_{D}}\right] \\ &\begin{cases} \displaystyle T_{1}=\left ({\text {UB}_{1} - \text {LB}_{1}}\right) + \text {LB}_{1} \\ \displaystyle \vdots \\ \displaystyle T_{D}=\left ({\text {UB}_{D} - \text {LB}_{D}}\right) + \text {LB}_{D} \end{cases} \tag{5}\end{align*}
X=[r1×T1,…,rD×TD]⎩
⎨
⎧T1=(UB1−LB1)+LB1⋮TD=(UBD−LBD)+LBD(5)
算法1如下:
Ziyu Guan, Changjiang Ren, Jingtai Niu, Peixi Wang, Yizi Shang,Great Wall Construction Algorithm: A novel meta-heuristic algorithm for engineer problems,Expert Systems with Applications,Volume 233,2023,120905,ISSN 0957-4174, https://doi.org/10.1016/j.eswa.2023.120905