智能优化算法:郊狼优化算法-附代码
摘要:郊狼优化算法[1](Coyote Optimization Algorithm ,COA)是2018年Juliano所提出的一种智能仿生优化算法, 与其他元启发式算法相比,COA具有独特的算法结构,该结构为优化过程中探索与开发的平衡提供了新的机制,COA可以在提高收敛效率的同时保持较高的种群多样性;因此,其在众多元启发式算法中表现出了较为优异的性能.
1.算法原理与流程
COA模拟郊狼种群的出生、成长、死亡及迁移等生活现象,具体流程如下:
s t e p 1 step 1 step1:设 置 郊 狼 群 体 N p Np Np, 每群含郊狼个体数 N c Nc Nc,维度 D D D,及终止条件 n f e v a l M A X nfevalMAX nfevalMAX等参数。
s
t
e
p
2
step 2
step2:随 机 初 始 化 郊 狼 群, 第t时 刻 下
p
p
p群 内第
i
i
i个郊狼个体被定义为:
x
c
,
j
p
,
t
=
l
b
j
+
r
j
(
u
b
j
−
l
b
j
)
(1)
x_{c,j}^{p,t}=lb_{j}+r_{j}(ub_{j}-lb_{j})\tag{1}
xc,jp,t=lbj+rj(ubj−lbj)(1)
x c p , t = ( x c , 1 p , t , x c , 2 p , t , . . . , x c , D p , t ) (2) x_{c}^{p,t}=(x_{c,1}^{p,t},x_{c,2}^{p,t},...,x_{c,D}^{p,t})\tag{2} xcp,t=(xc,1p,t,xc,2p,t,...,xc,Dp,t)(2)
其中, u b j ub_{j} ubj、 l b j lb_{j} lbj分别表示第j维数值的上、 下界, r j r_{j} rj为随机生成的[0,1]范围内的实数。
s
t
e
p
3
step 3
step3:评价郊狼适应能力
f
i
t
i
p
,
t
=
f
(
x
i
p
,
t
)
(3)
fit_{i}^{p,t}=f(x_{i}^{p,t})\tag{3}
fitip,t=f(xip,t)(3)
s
t
e
p
4
step 4
step4:郊 狼 有 时 会 脱 离 或 者 被 驱 逐 出 原 群 体,形成群体变迁,其发生概率定义为
P
e
P_{e}
Pe
P
e
=
0.005
N
c
2
,
N
c
≤
14
(4)
P_{e}=0.005N_{c}^{2},N_{c}\leq14\tag{4}
Pe=0.005Nc2,Nc≤14(4)
s
t
e
p
5
step 5
step5:找到当前群内的头狼
a
l
p
h
a
p
,
t
alpha^{p,t}
alphap,t,计算当前郊狼群体的文化趋势
c
l
u
t
p
,
t
clut^{p,t}
clutp,t:
a
l
p
h
a
p
,
t
=
{
x
i
p
,
t
∣
∣
a
r
g
{
i
=
1
,
2
,
.
.
.
,
N
}
m
i
n
f
(
x
i
p
,
t
)
}
(5)
alpha^{p,t}=\{ x_{i}^{p,t}|| arg\{i=1,2,...,N\}minf(x_{i}^{p,t}) \}\tag{5}
alphap,t={xip,t∣∣arg{i=1,2,...,N}minf(xip,t)}(5)
c l u t j p , t = { O ( N c + 1 ) / 2 , j p , t , N c 是奇数 O ( N c + 1 ) / 2 , j p , t + O ( N c ) / 2 , j p , t , N c 是偶数 (6) clut_{j}^{p,t}=\begin{cases}O_{(Nc+1)/2,j}^{p,t} ,N_{c}是奇数\\ O_{(Nc+1)/2,j}^{p,t} + O_{(Nc)/2,j}^{p,t},N_{c}是偶数\end{cases}\tag{6} clutjp,t={O(Nc+1)/2,jp,t,Nc是奇数O(Nc+1)/2,jp,t+O(Nc)/2,jp,t,Nc是偶数(6)
其中, O ( N c + 1 ) / 2 , j p , t O_{(Nc+1)/2,j}^{p,t} O(Nc+1)/2,jp,t表示当 N c N_{c} Nc为奇数时,第 t t t时刻 p p p群内的所有郊狼的第 j j j维度变量的中位数。
s
t
e
p
6
step 6
step6:模 拟 遗 传 中 的 出 生 和 死 亡事件: 将郊狼的年龄 (以年为单位) 记为
a
g
e
c
p
,
t
age_{c}^{p,t}
agecp,t.新郊狼的出生
(
p
u
p
p
,
t
)
(pup^{p,t})
(pupp,t)被写成双亲(随机选择)的社会状态加上环境影响的组合:
p
u
p
j
p
,
t
=
{
x
m
1
,
j
p
,
t
,
r
a
n
d
j
<
P
s
o
r
j
=
j
1
x
m
1
,
j
p
,
t
,
r
a
n
d
j
≥
P
s
+
P
a
o
r
j
=
j
2
R
j
,
r
a
n
d
j
,
其他
(7)
pup_{j}^{p,t}=\begin{cases} x_{m_{1},j}^{p,t},rand_{j}<Ps\quad or\quad j=j_{1}\\ x_{m_{1},j}^{p,t},rand_{j}\geq Ps+Pa \quad or\quad j=j_{2}\\ R_{j},rand_{j},其他\end{cases}\tag{7}
pupjp,t=⎩
⎨
⎧xm1,jp,t,randj<Psorj=j1xm1,jp,t,randj≥Ps+Paorj=j2Rj,randj,其他(7)
其 中,
m
1
m_{1}
m1和
m
2
m_{2}
m2是来自
p
p
p狼 群 内 的 随 机 郊 狼,
j
1
j_{1}
j1和
j
2
j_{2}
j2是问题的两个随机维数,
R
j
R_{j}
Rj与
r
a
n
d
j
rand_{j}
randj均为由均匀概率产生的[0,1]内的随机数. 离散概率
(
P
s
)
(Ps)
(Ps),和关联概率
(
P
a
)
(Pa)
(Pa)影响郊狼群中个体的文化多样性.
P
s
Ps
Ps和
P
a
Pa
Pa被定义为:
P
s
=
1
D
,
P
a
=
1
−
P
s
2
(8)
Ps=\frac{1}{D},Pa=\frac{1-Ps}{2}\tag{8}
Ps=D1,Pa=21−Ps(8)
s
t
e
p
7
step 7
step7:计算头狼与群体文化趋势对当前时刻所对应的郊狼群内个体更新产生的影响
δ
1
\delta _{1}
δ1和
δ
2
\delta _{2}
δ2:
δ
1
=
a
l
p
h
a
p
,
t
−
x
c
r
1
p
,
t
,
δ
2
=
c
u
l
t
p
,
t
−
x
c
r
2
p
,
t
(9)
\delta_{1}=alpha^{p,t}-x_{cr_{1}}^{p,t},\delta_{2}=cult^{p,t}-x_{cr_{2}}^{p,t}\tag{9}
δ1=alphap,t−xcr1p,t,δ2=cultp,t−xcr2p,t(9)
其中,
c
r
1
cr_{1}
cr1、
c
r
2
cr_{2}
cr2分别代表当前群内的随机郊狼.
s
t
e
p
8
step 8
step8:对郊狼群内所有郊狼个体依次进行更新得到新的郊狼个体
n
e
w
_
x
i
p
,
t
new\_x_i^{p,t}
new_xip,t,择优选择新郊狼与原郊狼的适应度大小,并保留最优郊狼
x
i
p
,
t
+
1
x_i^{p,t+1}
xip,t+1:
n
e
w
_
x
i
p
,
t
=
x
i
p
,
t
+
r
1
δ
1
+
r
2
δ
2
(10)
new\_x_i^{p,t}=x_i^{p,t}+r_1\delta_1+r_2\delta2\tag{10}
new_xip,t=xip,t+r1δ1+r2δ2(10)
x i p , t + 1 = { n e w _ x i p , t , f ( n e w _ x i p , t ) < f ( x i p , t ) x i p , t , 其他 (11) x_i^{p,t+1}=\begin{cases}new\_x_i^{p,t},f(new\_x_i^{p,t})<f(x_i^{p,t})\\ x_i^{p,t},其他\end{cases}\tag{11} xip,t+1={new_xip,t,f(new_xip,t)<f(xip,t)xip,t,其他(11)
其中, r 1 r_{1} r1和 r 2 r_{2} r2为均匀概率生成的[0,1]范围内的实数,代表郊狼个体受 a l p h a alpha alpha狼与群体文化趋势影响的权重大小.
s t e p 9 step 9 step9:模 拟 个 体 随 时 间 的 推 移 而 成 长 的 过 程,对郊狼个体进行年龄更新.
s t e p 10 step 10 step10:判断终止条件,若达到,则输出适应能力最好的郊狼的社会状态;否则返回 S t e p 3 Step3 Step3继续.
2.算法结果
3.参考文献
[1] Pierezan, J. and Coelho, L. S. “Coyote Optimization Algorithm: A new metaheuristic for global optimization problems”, Proceedings of the IEEE Congress on Evolutionary Computation (CEC), Rio de Janeiro, Brazil, July 2018, pages 2633-2640.
[2]刘威,付杰,周定宁,王薪予,成秘,黄敏,靳宝,牛英杰.基于反时限混沌郊狼优化算法的BP神经网络参数优化[J/OL].控制与决策:1-10[2020-08-05].https://doi.org/10.13195/j.kzyjc.2020.0408.
[3]张新明,姜云,刘尚旺,刘国奇,窦智,刘艳.灰狼与郊狼混合优化算法及其聚类优化[J/OL].自动化学报:1-17[2020-08-05].https://doi.org/10.16383/j.aas.c190617.
4.MATLAB代码
郊狼优化算法
算法相关应用
名称 | 说明或者参考文献 |
---|---|
基于郊狼算法优化的SVM回归预测 | https://blog.csdn.net/u011835903/article/details/110630270(原理一样,只是优化算法是郊狼算法) |