正在加载图片...
.512. 智能系统学报 第12卷 法的效率,另外,证明了该算法依概率1收敛到ε- P实施式(4)或式(5)的变异操作,即当f(P)≤∫ 最优解。实验结果表明,提出的算法能够提高全局 时,对P按概率μ实施式(5)的变异操作,当f(P)> 搜索能力,算法的收敛速度明显加快。 f时,对P按概率u实施式(4)的变异操作,其中 Ne 1标准PS0算法 ), (7) 标准粒子群算法中,粒子群由N。个粒子组成, [(-(P)) 在时刻k,第i个粒子在d维空间中速度和位置的更 fs-f(P) f(P)≤fe 新公式为 u= (8) a(f(Pi)-fv) v=ovi cir(pi -xia)+car2(pa -x) fu -fave f(P)>fv (1) 城=x始+城 式中:f=max{f(P)},a是一个自适应参数,它 (2) 1iN 式中:i=1,2,…,N。,d=1,2,…,D,D为决策变量的 被定义为 维数,ω为惯性权重,x=(x始,x点,…,x0)表示粒子i a=1-0.8 (9) 的当前的位置;=(,哈,…,)是粒子i的当前 由式(8)知,对适应值较好的粒子实施局部搜 的速度;P=(p哈,p哈,…,P)是粒子i当前最优位 索的概率较大,而对适应值较差的粒子实施全局搜 置,P=(p,P点,…,P)是全局最优位置;c1、2是 索的概率较大。由于当算法迭代到后期,粒子比较 加速度因子,12是0~1之间的随机数。第k次迭 代的惯性权重表示为 集中,从而导致-或)-接近1,若a -可或 fef(p)fa-fe =(@stan -@end (3) 大,那么实施式(4)或式(5)的变异操作的粒子较 多,从而导致算法运算时间长,因此按式(9)实行单 式中:wat、w分别为最初和最终的惯性权重,K 调递减策略。 是最大迭代步。 位置与速度越界处理: 2 改进的PSO算法 , 儿≤站≤山 la+rand()·(u4-la), 其他 提高PS0算法性能的有效方法之一就是平衡 (10) 算法的探索能力和开发能力。我们的目的是对粒 子所经历的最好位置进行操作,一方面能够使其跳 站,n≤话≤ 出局部最优;另一方面使其具有一定的局部搜索能 =min' 姑1<an (11) 力。为此,给出两个变异算子: P=P·p,N(0,c2) (4) 式中:=0.5l4,8"=0.5u4o 改进PSO0算法的流程如下: P=P+p,N(0,2) (5) 1)设置参数,随机初始化粒子的位置和速度, 式中:P1>1和P2>1是常数,N(0,o2)是具有时变标 计算各粒子的适应度,确定每个粒子的经历过的最 准差σ的高斯分布的随机变量,σ表示为 优位置及全局最优位置,令k=1: 00--小 2)按式(3)计算惯性权重,并按式(1)和式(2) (6) 进行速度与位置更新: 式中:0m和σ是标准差σ的最终和初始值,k是 3)按式(10)和式(11)进行越界处理: 当前迭代步,K是最大迭代步。因为P,N(0,σ2) 4)对粒子i(i=1,2,…,N)计算其适应值,更 的值比1大或比1小,又因为P·P1N(0,σ2)是一 新其经历过的最优位置P和全局最优位置P, 个随机值,所以它比P大或小,这样P可能远离 并按式(7)计算fe: P,因此说式(4)具有一定的全局搜索能力。另一 5)若f(P)≤f,按式(9)计算a,按式(8)计 算u,在[0,l]选取一个随机数and,若rand<u,则 方面,式(5)表明在P附近搜索,因此式(5)具有一 按式(6)计算σ,按式(5)更新粒子经历过的最优位 定的局部搜索能力。 如果每次都对P实施式(4)或式(5)的变异操 置,得到P,转7): 作,那么导致算法运行时间长,因此按一定概率μ对 6)若fP)>f,按式(9)计算a,按式(8)计法的效率,另外,证明了该算法依概率 1 收敛到 ε⁃ 最优解。 实验结果表明,提出的算法能够提高全局 搜索能力,算法的收敛速度明显加快。 1 标准 PSO 算法 标准粒子群算法中,粒子群由 Np 个粒子组成, 在时刻 k,第 i 个粒子在 d 维空间中速度和位置的更 新公式为 v k+1 id = ωv k id + c1 r1(p k id - x k id ) + c2 r2(p k gd - x k id ) (1) x k+1 id = x k id + v k+1 id (2) 式中:i = 1,2,…,Np,d = 1,2,…,D,D 为决策变量的 维数,ω 为惯性权重,x k i = (x k i1 ,x k i2 ,…,x k iD)表示粒子 i 的当前的位置;v k i = (v k i1 ,v k i2 ,…,v k iD )是粒子 i 的当前 的速度;P k i = ( p k i1 ,p k i2 ,…,p k iD ) 是粒子 i 当前最优位 置,P k g = ( p k g1 ,p k g2 ,…,p k gD )是全局最优位置;c1 、c2 是 加速度因子,r1 、r2 是 0~1 之间的随机数。 第 k 次迭 代的惯性权重表示为 ωk = (ωstart - ωend ) Kmax - k Kmax æ è ç ö ø ÷ + ωend (3) 式中:ωstart、ωend分别为最初和最终的惯性权重,Kmax 是最大迭代步。 2 改进的 PSO 算法 提高 PSO 算法性能的有效方法之一就是平衡 算法的探索能力和开发能力。 我们的目的是对粒 子所经历的最好位置进行操作,一方面能够使其跳 出局部最优;另一方面使其具有一定的局部搜索能 力。 为此,给出两个变异算子: P -k id = P k id·ρ1N(0,σ 2 ) (4) P -k id = P k id + ρ2N(0,σ 2 ) (5) 式中:ρ1>1 和 ρ2>1 是常数,N(0,σ 2 )是具有时变标 准差 σ 的高斯分布的随机变量,σ 表示为 σ = σmax - (σmax - σmin ) k Kmax (6) 式中:σmax和 σmin是标准差 σ 的最终和初始值,k 是 当前迭代步,Kmax是最大迭代步。 因为 ρ1N(0,σ 2 ) 的值比 1 大或比 1 小,又因为 P k id·ρ1N(0,σ 2 )是一 个随机值,所以它比 P k id 大或小,这样 P -k id 可能远离 P k id ,因此说式(4)具有一定的全局搜索能力。 另一 方面,式(5)表明在 P k id附近搜索,因此式(5)具有一 定的局部搜索能力。 如果每次都对P k i 实施式(4)或式(5)的变异操 作,那么导致算法运行时间长,因此按一定概率 μ 对 P k i 实施式(4)或式(5)的变异操作,即当 f(P k i )≤f ave 时,对P k i 按概率 μ 实施式(5)的变异操作,当f(P k i )> f ave时,对P k i 按概率 μ 实施式(4)的变异操作,其中 f ave = 1 Np ∑ Np j = 1 f(P k j ), (7) μ = α(f ave - f(P k i )) f ave - f(P k g ) , f(P k i ) ≤ f ave α(f(P k i ) - f ave) fmax - f ave , f(P k i ) > f ave ì î í ï ïï ï ïï (8) 式中:fmax = max 1≤i≤Np { f(P k i )},α 是一个自适应参数,它 被定义为 α = 1 - 0.8 k Kmax (9) 由式(8)知,对适应值较好的粒子实施局部搜 索的概率较大,而对适应值较差的粒子实施全局搜 索的概率较大。 由于当算法迭代到后期,粒子比较 集中,从而导致 f ave -f(P k i ) f ave -f(P k g ) 或 f(P k i )-f ave fmax -f ave 接近 1,若 α 大,那么实施式(4) 或式(5) 的变异操作的粒子较 多,从而导致算法运算时间长,因此按式(9)实行单 调递减策略。 位置与速度越界处理: x k+1 id = x k+1 id , l d ≤ x k+1 id ≤ ud l d + rand()·(ud - l { d ), 其他 (10) v k+1 id = v k+1 id , vmin ≤ v k+1 id ≤ vmax vmin , v k+1 id < vmin vmax, v k+1 id > vmax ì î í ï ï ï ï (11) 式中:v min d = 0.5l d ,v max d = 0.5ud 。 改进 PSO 算法的流程如下: 1)设置参数,随机初始化粒子的位置和速度, 计算各粒子的适应度,确定每个粒子的经历过的最 优位置及全局最优位置,令 k = 1; 2)按式(3)计算惯性权重,并按式(1)和式(2) 进行速度与位置更新; 3) 按式(10)和式(11)进行越界处理; 4) 对粒子 i(i = 1,2,…,Np )计算其适应值,更 新其经历过的最优位置P k+1 i 和全局最优位置P k+1 g , 并按式(7)计算 f ave; 5) 若 f(P k+1 i )≤f ave,按式(9)计算 α,按式(8)计 算 μ,在[0,1]选取一个随机数 rand,若 rand< μ,则 按式(6)计算 σ,按式(5)更新粒子经历过的最优位 置,得到P -k+1 i ,转 7); 6)若 f(P k+1 i )>f ave,按式(9)计算 α,按式(8)计 ·512· 智 能 系 统 学 报 第 12 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有