智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码
摘要:2015 年,Hussain Shareef 等基于闪电的机理提出了一种新型的启发式优化算法—闪电搜索算法( lightning search algorithm,LSA),该算法具有调节参数少、收敛精度高和全局寻优能力强等优点,已在函数优化、旅行商问题寻优等方面得到应用。
1.算法原理
LSA 主要通过 3 种放电体的数学模型模拟来实现,即过渡放电体、试图成为领先者的空间放电体、源于过渡放电体群并代表最佳位置的引导放电体。
1.1 过渡放电体
初期就形成了一个先导放电体,经过过渡形成了一个随机方向的放电体。因此,可以认为它是从解空间的开区间上的标准均匀概率分布中取得的一个随机数。设一个群体规模为
N
N
N 的梯级先导
s
l
=
[
s
l
1
,
.
.
.
,
s
l
N
]
sl = [sl_1,...,sl_N]
sl=[sl1,...,slN],其满足待优化问题的
N
N
N个随机放电体位置
P
T
=
[
P
1
T
,
.
.
.
.
,
P
N
T
]
P^T=[P_1^T,....,P_N^T]
PT=[P1T,....,PNT]。标准均匀分布的概率密度函数
f
(
x
T
)
f(x^T)
f(xT) 可以表示:
f
(
x
T
)
=
{
1
/
b
−
a
,
a
≤
x
T
≤
b
0
,
x
T
<
a
o
r
x
T
>
b
(1)
f(x^T)=\begin{cases} 1/b-a,a\leq x^T \leq b\\ 0,x^T<a\,or\,x^T>b \end{cases} \tag{1}
f(xT)={1/b−a,a≤xT≤b0,xT<aorxT>b(1)
式中,
x
T
x^T
xT为可提供候选解或梯级先导
s
l
i
sl_i
sli的初始顶端能量
E
s
l
i
E_{sli}
Esli的随机数; $a、b $分别为解空间下限和上限。
1.2 空间放电体
先导放电体才能形成下一个通道。设空间放电体的位置为
P
S
=
[
P
1
S
,
.
.
.
.
,
P
N
S
]
P^S=[P_1^S,....,P_N^S]
PS=[P1S,....,PNS] ,利用指数分布函数随机生成数进行数学建模。其指数分布概率密度函数
f
(
x
S
)
f(x^S)
f(xS):
f
(
x
S
)
=
{
1
/
u
.
e
−
x
S
/
u
,
x
S
≥
0
0
,
x
s
<
0
(2)
f(x^S)=\begin{cases} 1/u.e^{-x^S/u},x^S\geq 0\\ 0,x^s<0 \end {cases}\tag{2}
f(xS)={1/u.e−xS/u,xS≥00,xs<0(2)
空间放电体的位置或下一次迭代的方向可以通过形状参数
u
u
u来控制。在 LSA 中,
u
i
u_i
ui为引导放电体
P
L
P^L
PL和空间放电体
p
i
S
p^S_i
piS之间的距离。依据这一定义,
p
i
S
p^S_i
piS在第
t
+
1
t + 1
t+1 次迭代位置可以描述为:
p
i
_
n
e
w
S
=
p
i
S
±
e
r
a
n
d
(
u
i
)
(3)
p_{i\_new}^S=p_i^S\pm e^{rand(u_i)}\tag{3}
pi_newS=piS±erand(ui)(3)
其中,
e
r
a
n
d
e^{rand}
erand是指数随机数。如果
P
i
S
P^S_i
PiS为负,那么产生的随机数应该被减去,因为式( 2) 只提供正值。然而,新位置
P
i
_
n
e
w
S
P_{i\_new}^S
Pi_newS不能保证梯级先导传播或通道的形成,除非空间放电体能量
E
p
_
i
S
E_{p\_i}^S
Ep_iS大于先导放电体能
量
E
s
l
i
E_{sli}
Esli或者找到一个更好的解。如果
P
i
_
n
e
w
S
P^S_{i\_new}
Pi_newS在下一步提供了更好的解,那么相应的先导放电体
s
l
i
sli
sli 被扩展到新位置
s
l
i
_
n
e
w
sl_{i\_new}
sli_new,并且
P
i
S
P^S_i
PiS被更新到
P
i
_
n
e
w
S
P^S_{i\_new}
Pi_newS。否则,
P
i
S
P^S_i
PiS保持不变,直到下一次迭代。如果
P
i
_
n
e
w
S
P^S_{i\_new}
Pi_newS
延伸到
s
l
i
_
n
e
w
sl_{i\_new}
sli_new并优于当前迭代,则空间放电体将变成引导放电体。
1.3 引导放电体
用具有形状参数
u
u
u 和尺度参数
σ
\sigma
σ的标准正态分布生成的随机数进行数学建模,其正态概率密度函数
f
(
x
L
)
f( x^L)
f(xL) 表示为:
f
(
x
L
)
=
1
σ
2
π
e
−
(
x
L
−
u
)
2
2
σ
2
(4)
f(x^L)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x^L-u)^2}{2\sigma^2}}\tag{4}
f(xL)=σ2π
1e−2σ2(xL−u)2(4)
由式( 2) 可知,随机生成的引导放电体可以从形状参数所定义的当前位置的所有方向上进行搜索,并且可通过尺度参数定义其开采能力。在 LSA中,引导放电体
P
L
P^L
PL的尺度参数
σ
\sigma
σ随着向地球的推进或找到最佳解而呈指数下降。有了这个定义,引导放电
P
L
P^L
PL在第
t
+
1
t + 1
t+1 次迭代位置可以描述为:
p
n
e
w
L
=
p
L
+
n
o
r
m
r
a
n
d
(
u
L
,
σ
L
)
(5)
p_{new}^L=p^L+normrand(u^L,\sigma^L)\tag{5}
pnewL=pL+normrand(uL,σL)(5)
其中,
n
o
r
m
r
a
n
d
normrand
normrand是由正态分布函数产生的随机数。若
E
p
_
i
L
>
E
s
l
i
E_{p\_i}^L>E_{sli}
Ep_iL>Esli
,更新
P
L
P^L
PL至新引导 放 电 体 位 置
P
i
_
n
e
w
L
P^L_{i\_new}
Pi_newL; 若
P
i
_
n
e
w
L
P^L_{i\_new}
Pi_newL在第
t
+
1
t + 1
t+1 次迭代提供了较优解,则相应的梯级先导
s
l
i
sl_i
sli被扩展到新位置
s
l
L
n
e
w
sl_{L_new}
slLnew,且
P
L
P^L
PL更新为
P
i
_
n
e
w
L
P^L_{i\_new}
Pi_newL; 否则,引导放电体 pL位置保持不变,直到下一次迭代。
LSA 的整个过程总结为图所示的流程:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fQOkxzac-1599816159169)(D:\Self\Intelligent algorithm\Blog\41.LSA闪电搜索算法\流程图.png)]
2.算法结果
3.参考文献
[1] Shareef H,Ibrahim A A,Mutlag A H. Lightning search algorithm[J]. Applied Soft Computing,2015,36 ( S1 ) :
315 - 333.
[2]丁祥,王津生,李剑,王彤,赵明.基于闪电搜索算法的水泵流量-扬程样本曲线校准[J].供水技术,2019,13(04):6-11.