一种保证全局收敛的PSO算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机产生,其它微粒在更新 pg 、 pi 后按(2)式进化;若 pg ≠ p j ,且 pg 未更新,则所有微粒
均按(2)式进化;若 pg ≠ p j ,且 pg 已更新,即存在 k≠j,使得 xk (t + 1) = pk = pg ,则微粒 k
停止进化,在搜索空间 S 重新随机产生,其余微粒在更新 pg 、 pi 后按(2)式进化。这样在进
+
1)),
fj
=
f (x j (t)) , Δ
=
f
' j
−
fj,
x
j
(t
+ 1)
=
⎪⎧ ⎨
x
' j
从上述分析可以看出,SPSO 算法与基本 PSO 算法相比,去掉了微粒先前的速度项,使得 速度本身失去记忆性,从而减弱了全局搜索能力。但这样也使得在进化的每一代均至少有一个微
5
粒由于处于微粒群的历史最好位置而停止进化,利用停止进化的微粒改善全局搜索能力是 SPSO 算法的基本思想。在收敛性方面,SPSO 算法与 PSO 算法具有几乎完全相同的性质,即在参数的
pi
=
⎩⎨⎧xpii(,t
f ( pi ) < + 1), f (
f pi
(xi (t )≥ f
+ 1)) (xi (t
+ 1))
(3)
−−−−
p
' g
= arg min{ f ( pi ) | i
= 1, S }
pg = arg min{ f ( pg '), f ( pg )} (4)
若 pg = p j ,则随机产生的微粒 j 处于历史最好位置,无法按(2)式进化,继续在搜索空间 S
lim
t → +∞
xi
(t
+
1)
=
lim
t →+∞
xi
(t)
,则
− (ϕ1
+
ϕ
2
)
lim
t →+∞
xi
(t
)
+
ϕ1
pi
+ϕ2 pg
=0
由于
ϕ1
,ϕ
2
为随机变量,显然只有当
lim
t → +∞
xi
(t
)
=
pi
=
pg 时,上式满足。
3.2 SPSO 算法的全局收敛性。
F.Solis 和 R.Wets 在文献[4]中证明了随机优化算法以概率 1 收敛于全局最优解的条件,为了 分析方便,首先给出其主要结论。
(6)
其中,
k = ϕ1 pi + ϕ2 pg ϕ
(7)
3
(6)式是在假设随着t的变化而 pg 、 pi 固定不变的情况下得到的。但在SPSO算法的进化过程 中, pg 、 pi 则随时可能更新,因此,(6)、(7)式仅在新的更好位置产生之前有效。一旦产生 新的更好位置( pg 或者 pi ),微粒的运动轨迹方程将按照新的 pg 、 pi ,并将当前位置作为初
4、 停止进化微粒的产生。
为了使微粒j以较大概率位于最优点附近,可采用其它一些非群体随机优化方法进行生成, 如模拟退火方法[6],遗传算法[7]等。 (1)利用模拟退火方法产生停止进化微粒
模拟退火算法(simulated annealing)是基于 Mente Carlo 迭代求解策略的一种随机优化算法, 其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法在 某一出温下,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局 最优解,即在局部最优解能概率性的跳出并最终趋于全局最优。
以当前代历史最好位置 pg 为初始状态,即 x j (t ) = p g ,并选择初始温度T = T0 ,采用下
式产生下一状态:
x j '(t + 1) = x j (t) + ηξ (10)
其中η 为扰动幅值参数,ξ 为随机变量,一般可服从柯西分布、正态分布或均匀分布。计算
f
' j
=
f
(
x
' j
(t
始点重新计算,也就是说(6)式中k,xi0的值重新设置。
从(6)式可以看出,当| 1 − ϕ |< 1时,(5)式所描述的进化方程线性收敛,即当 t → ∞ 时,
xi (t)
→
ϕ1 pi
+ϕ2 pg ϕ
。根据| 1 − ϕ
|< 1,可得:0
<
c1
+ c2
<
2 。也就是说,当 0
<
c1
+ c2
<
2
时,SPSO 算法的进化方程线性渐近收敛。
3.1 SPSO 算法的微粒进化轨迹分析。
由(2)式可得:
xi (t + 1) = (1 − ϕ )xi (t) + ϕ1 pi + ϕ 2 pg (5)
当 pg 、 pi 固定时,上式为一简单的线性差分方程,当 xi (0) = xi0 时,其解为:
xi (t) = k + (xi0 − k)(1 − ϕ )t
(2 1 + w − ϕ)2 − 4w < 2 ( ϕ = ϕ1 + ϕ 2 , ϕ1 = c1r1 , ϕ 2 = c2r2 )时,PSO算法的 x i (t ) 收敛
于
pg 与
pi 的加权中心,即 xi (t) → ϕ1 pi
+ϕ2 pg ϕ
。而在实际上,
pg 、
pi 在进化过程中根据其
适应值而不断更新,可以证明[2],只要参数满足上述条件,PSO算法的收敛是完全保证的,但收 敛的全局最优性或局部最优性则无法保证。
由于 0 ≤ ϕ1 ≤ c1,0 ≤ ϕ 2 ≤ c2 ,则 M i ,t 为一具有顶点 ϕ1 = ϕ 2 = 0 和 ϕ1 = c1,ϕ 2 = c2 的超矩形
I 体,且当 max(c1 | pi − xi (t
< 0.5 × diam(S)
−1) |, c2
|
pg
−
xi (t
−1) |) 时, v[M i,t
1、 引言。
微粒群算法(PSO)的进化方程为:
vi (t + 1) = wvi (t) + c1r1 × ( pi − xi (t)) + c2r2 × ( pg − xi (t)) (1a)
xi (t + 1) = xi (t) + vi (t + 1)
(1b)
其中 pi 表示第i个微粒所经历过的最好位置,pg 表示所有微粒所经历过的最好位置,w、c1、c2为
定理
1:当| 1 − ϕ
|<
1
时,
lim
t→∞
xi
(t
)
=
pg
证明:由(6)式知,当| 1 − ϕ
|<
1
时,
lim
t →∞
xi
(t
)
=
k
=
ϕ1 pi
+ϕ2 pg ϕ
,而
xi (t + 1) = xi (t) − (ϕ1 + ϕ 2 )xi (t) + ϕ1 pi + ϕ 2 pg 当 t → +∞ 时 ,
本文在对基本 PSO 算法进行分析的基础上,提出了一种能够保证以概率 1 全局收敛的 PSO 算法变型,并利用 F.Solis 和 R.Wets 的研究结果对其全局收敛性进行了证明。最后以典型优化问 题的实例仿真对该算法进行了验证。
2、 PSO 算法的变型。
在(1a)、(1b)所描述的基本 PSO 算法中,当 w=0 时,微粒的飞行速度只取决于微粒的当
化的某些代,至少有一个微粒 j 满足 x j (t) = p j = pg ,也就是说,至少有一个微粒需在 S 中重
新随机产生,这样就势必增强了全局搜索能力。为了与基本 PSO 算法相区别,上述算法称之为 随机 PSO 算法(SPSO)。
3、 SPSO 算法的收敛性分析。
对于任意优化算法,其收敛性分析主要包括算法所产生的解序列是否收敛、收敛速度以及收 敛的全局最优性或局部最优性等。
置。对 SPSO 算法定义函数 D 为
D(
p
g
,t
xi
(t
))
=
⎪⎧ ⎪⎩⎨
p g ,t xi (t
, f ( pg,t ) ≤ ), f ( pg,t ) >
f
(xi (t)) f (xi (t))
(9)
则很容易证明其满足假设 1。 为了满足假设 2,规模为 S 的微粒群的样本空间的并必须包含 S,即
S
U 但 由 于 M i,t =S , 所 以 M i,t = S , 定 义 S 的 Borel 子 集 A= M i,t , 则 有 v[A]>0 , i =1
S
∑ μt [ A] = μi,t [ A] = 1,从而满足假设 2。由定理 2,SPSO 算法以概率 1 收敛于全局最优解。 i=0
x
(t j
)
=
pj
=
pg 时,第
j
个微粒将停止进化。为了改善(2)式的全局搜索能力,可保
留 pg 作为微粒群的历史最好位置,而在搜索空间 S 重新随机产生微粒 j 的位置 x j (t + 1) ,其它
微粒 i 以(2)式进化产生 xi (t + 1) (i≠j),则
p j = x j (t + 1) ,
常数, r1, r2 ∈[0,1] 均匀分布的随机数。
PSO算法自提出以来,其收敛性问题一直是研究的重要方面。早期的研究大多采用代数方法,
分析 pg 、 pi 保持不变时,PSO算法进化方程的收敛性条件[1][2],即PSO算法收敛时参数w、c1、
c2 应 满 足 的 条 件 。 理 论 上 已 证 明 [3] : 假 设 pg 、 pi 在 进 化 中 保 持 不 变 , 则 当
前位置 xi (t) 、历史最好位置 pi 和微粒群的历史最好位置 pg ,速度本身无记忆性。这样,对于
位于全局最好位置的微粒将保持静止,而其它微粒则趋向它本身最好位置 pi 和全局最好位置 pg
的加权中心。也就是说,微粒群将收缩到当前的全局最好位置,更像一个局部算法;当 w≠0 时, 使得微粒具有了扩展搜索空间的趋势,即具有一定的全局搜索能力。w 越大,全局搜索能力越强。
假设 2:若对 S 的任意 Borel 子集 A,有 v(A)>0,则
∞
∏ (1 − μk [ A]) =0
k =0
(8)
其中:v(A)为子集 A 的 n 维闭包, μ k ( A) 为由 μ k 产生 A 的概率。
定理 2:设f为一可测函数,S为Rn的一可测子集,{zk }∞0 为随机算法产生的解序列,则当满
4
足假设 1 和假设 2 时,有
lim
k →+∞
P[
z
k
∈
Rε
]
=1
其中 Rε 为全局最优点集合。
也就是说,对一个随机优化算法,只要能够满足假设 1 与假设 2,则就可以保证以概率 1 收 敛于全局最优解。下面对 SPSO 算法分析其是否满足上述假设。
在 SPSO 算法中,其解序列为{ pg,t } ,其中 t 为进化代数, pg,t 为第 t 代时的微粒群最好位
有关PSO算法的全局收敛性研究,大多针对典型优化问题进行仿真实验研究,给出全局最优 性的实验结果。F.Solis和R.Wets对随机优化算法提出了其全局收敛须满足的条件[4],Frans Van Den Bergh博士利用该条件对基本PSO算法和保证收敛的PSO算法(GCPSO)的全局收敛性和局部收 敛性进行了研究[5],指出基本PSO算法不能保证全局或局部收敛,而GCPSO则属于局部收敛。
假设 1:若 f (D(z,ξ )) ≤ f (z),ξ ∈ S, 则 f (D(z从概率空间 (R n , B, μk ) 产生的随机向量,f为目标函数,S
为Rn的子集,表示问题的约束空间。 μk 为B上的概率度量,B为Rn子集的σ 域。
S ] < v(s) ,其中 diam(S)表
示 S 的长度。由定理 1,当 t → ∞ 时, M i,t 的长度趋于 0。因此,随着 t 的增长,每一 M i ,t 的
U U 闭包 v[ M i,t ]在逐渐变小,其并集 M i≠ j i,t 的闭包 v[ M i≠ j i,t ]也在变小。因而存在 N,使得 t>N U 时,v[ M i≠ j i,t ∩S]<v[S]。也就是说仅有进化方程(2)的 PSO 算法不满足假设 2。
一定范围内均能保证 xi (t) 收敛于群体历史最好位置。对于收敛的全局最优性,基本 PSO 算法无
法保证,而 SPSO 算法当进化代数 t → ∞ 时能保证依概率 1 收敛于全局最优解。但是,在实际
应用中,如何改善停止进化微粒的产生方式,以达到在有限进化代数内搜索到全局最优解的目的 是值得研究的问题。
S
U S ⊆ M i,t i =1
其中 M i,t 为 t 代时微粒 i 的样本空间的支撑集。对于满足 x j (t) = pk = pg 的微粒 j, M i,t =S。而
对于其它微粒 i:
M i,t = xi (t − 1) + ϕ1 ( pi − xi (t − 1)) + ϕ 2 ( pg − xi (t − 1))
根据上述分析,当 w=0 时,(1a)、(1b)描述的进化方程为
xi (t + 1) = xi (t) + c1r1 ( pi − xi (t)) + c2r2 ( pg − xi (t)) (2)
与基本 PSO 算法相比,(2)式描述的进化方程使得全局搜索能力减弱,而局部搜索能力加强。
2
同时,当