一种基于多种群的粒子群计算方法
技术领域
本发明涉及计算机应用技术领域,具体地说是一种基于多种群的粒子群计算方法。
背景技术
粒子群优化计算方法(Particle Swarm Optimizer,简称PSO),由Kennedy和Eberhart与1995年首次提出,其基本思想来源于模拟鸟群在觅食过程中的迁徙和群聚行为,是一种基于基于群体智能的全局随机搜索计算方法。粒子群计算方法具有很好的生物社会特性,形象直观,而且易于实现,对非线性、多峰问题均具有较强的全局搜索能力,在科学研究与工程实践中得到了广泛关注。
粒子群优化计算方法与其他进化计算方法一样,也有基于种群和进化的概念,通过个体间的协作与竞争,实现复杂空间最优解的搜索。它将群体(Swarm)中的个体看作是的多维空间中没有质量和体积的粒子(Particle),每个粒子以一定的速度在解空间中运动,并在搜索过程中逐渐向自身历史最佳位置和邻域历史最佳位置聚集,进而实现对候选解的进化。
基本粒子群计算方法采用速度-位置搜索策略,通常描述为:在一个n维的解空间中,有一个由m个粒子组成的种群,每个粒子代表解空间的一个候选解;其中,第i( i = 1,2,3,…,m)个粒子在n维解空间中的位置表示为X i = ( X i1 , X i2 ,…, X in ),速度表示为V i =( V i1 , X i2 ,…, X in );第i个粒子从开始到当前迭代次数得到的最优解:个体极值P i = (P i1 , P i2 ,…, P in ),整个粒子种群目前的最优解:全局极值P g = ( P g1 , P g2 ,…, P gn );单个粒子通过以下两个公式分别对速度和位置进行更新。
V id (t+1) = wV id (t) + c 1 r 1 (P id (t) - X id (t))+c 2 r 2 (P gd (t) - X id (t)) (公式1)
X id (t+1) = X id (t) + V id (t+1) (公式2)
其中,d = 1,2,3,…,n;w为惯性因子。c 1 ,c 2 称为学习因子或加速因子,一般在0到2之间取值。r 1 ,r 2 为0到1之间的随机数。(公式1)由三部分组成,第一部分为惯性部分,反应了粒子的运动惯性,代表粒子有维持自己先前速度的趋势;第二部分为认知部分,反映了粒子对自身历史经验的记忆,代表粒子有向自身历史最佳位置逼近的趋势;第三部分为社会部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体历史最佳位置逼近的趋势。
粒子群计算方法的基本步骤如下:
step1 随机初始化种群中的每个粒子;
step2 判断是否满足计算方法终止条件。若是,则退出计算方法;否则,继续以下步骤;
step3 计算每个粒子的适应值。如果粒子的当前适应值优于该粒子历史最优适应值,则将该粒子的历史最优适应值和位置矢量分别替换为该粒子的当前适应值和相应的位置矢量;
step4 选择当前种群中适应值最优的粒子。如果当前种群中最优适应值优于群内历史最优适应值,则将群内历史最优适应值和最优位置矢量分别替换为当前群内最优适应值和相应最优粒子的位置矢量;
step5 按照(公式1)和(公式2)更新每个粒子的速度和位置,跳转到step2;
由于种群中各粒子向自身历史最佳位置和群体历史最佳位置聚集,形成了种群的快速趋同效应,容易出现陷入局部极值、早熟收敛或停滞现象。因而,如何避免粒子陷入早熟收敛,增大粒子逃离局部极值的可能性成为粒子群计算方法的研究难点。
发明内容
本发明的目的是提供一种基于多种群的粒子群计算方法。
本发明的目的是按以下方式实现的,包括如下内容:
基于多种群的并发搜索,在每次迭代搜索过程中,都会有包含种群内以及种群间的信息交互,这样能够有效避免算法过早收敛,减小算法陷入局部极值的可能性,进而提高问题的求解质量;
基本粒子群计算方法采用速度-位置搜索策略,描述为:在一个n维的解空间中,有一个由m个粒子组成的种群,每个粒子代表解空间的一个候选解;其中,第i( i = 1,2,3,…,m)个粒子在n维解空间中的位置表示为X i = ( X i1 , X i2 ,…, X in ),速度表示为V i = (V i1 , X i2 ,…, X in );第i个粒子从开始到当前迭代次数得到的最优解:个体极值P i = ( P i1 ,P i2 ,…, P in ),整个粒子种群目前的最优解:全局极值P g = ( P g1 , P g2 ,…, P gn );单个粒子通过以下两个公式分别对速度和位置进行更新;
V id (t+1)=wV id (t)+c 1 r 1 (P id (t)-X id (t))+c 2 r 2 (P gd (t)-X id (t)) (公式1)
X id (t+1)=X id (t)+V id (t+1) (公式2)
其中,d = 1,2,3,…,n;w为惯性因子。c 1 ,c 2 称为学习因子或加速因子,一般在0到2之间取值;r 1 ,r 2 为0到1之间的随机数;公式1由三部分组成,第一部分为惯性部分,反应了粒子的运动惯性,代表粒子有维持自己先前速度的趋势;第二部分为认知部分,反映了粒子对自身历史经验的记忆,代表粒子有向自身历史最佳位置逼近的趋势;第三部分为社会部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体历史最佳位置逼近的趋势;计算条件如下:
(1) 该计算方法的模型中存在多个粒子种群,每个种群都会对解空间进行搜索;
(2) 粒子间的协同合作与知识共享分为两类:同一种群内部和不同种群之间的信息交互;
(3) 每个种群之间交换的信息为各种群的历史最优适应值和相应的位置矢量;
(4) 粒子的位置更新公式不用变化,而粒子的速度更新公式变为:
Vid (t+1) = wVid (t) + c1r1 (Pid (t) - Xid (t)) + c2r2 (Pgd (t) - Xid(t)) + c3r3 (PGd (t) - Xid (t)) (公式3)
其中:PG = ( PG1, PG2,…, PGn)为所有种群中的最优解,符号g表示:在种群中所有粒子经历过的最好位置的索引号,即Pg;符号G表示:在所有种群中粒子得到的最优解的索引号,即PG;
同时增加了相应的学习因子c3和随机数r3,t表示时间;
(5) 种群间采用不同的惯性参数w,学习因子c 1 ,c 2 ,c 3 以及随机数r 1 ,r 2 ,r 3 ,体现种群间的差异性;
基本计算步骤如下:
step1 随机初始化多个种群以及种群中的每个粒子;
step2 判断是否满足算法终止条件。若是,则退出算法;否则,继续以下步骤;
step3 针对每一个粒子,计算该粒子的适应值。判断是否更新该粒子的历史最优适应值和位置矢量;
step4 选择该粒子所属种群中适应值最优的粒子,判断是否更新该粒子所属种群的历史最优适应值和位置矢量;
step5 选择所有种群中适应值最优的粒子。判断是否更新所有种群的历史最优适应值和位置矢量;
step6 按照公式3和公式2更新每个粒子的速度和位置,跳转到step2。
本发明的有益效果是:该系统基于多种群的并发搜索,在每次迭代搜索过程中,都会有包含种群内以及种群间的信息交互,这样能够有效避免算法过早收敛,减小算法陷入局部极值的可能性,进而提高问题的求解质量。
具体实施方式
基于多种群的并发搜索,在每次迭代搜索过程中,都会有包含种群内以及种群间的信息交互,这样能够有效避免算法过早收敛,减小算法陷入局部极值的可能性,进而提高问题的求解质量;
基本粒子群计算方法采用速度-位置搜索策略,描述为:在一个n维的解空间中,有一个由m个粒子组成的种群,每个粒子代表解空间的一个候选解;其中,第i( i = 1,2,3,…,m)个粒子在n维解空间中的位置表示为X i = ( X i1 , X i2 ,…, X in ),速度表示为V i = (V i1 , X i2 ,…, X in );第i个粒子从开始到当前迭代次数得到的最优解:个体极值P i = ( P i1 ,P i2 ,…, P in ),整个粒子种群目前的最优解:全局极值P g = ( P g1 , P g2 ,…, P gn );单个粒子通过以下两个公式分别对速度和位置进行更新;
V id (t+1)=wV id (t)+c 1 r 1 (P id (t)-X id (t))+c 2 r 2 (P gd (t)-X id (t)) (公式1)
X id (t+1)=X id (t)+V id (t+1) (公式2)
其中,d = 1,2,3,…,n;w为惯性因子。c 1 ,c 2 称为学习因子或加速因子,一般在0到2之间取值;r 1 ,r 2 为0到1之间的随机数;公式1由三部分组成,第一部分为惯性部分,反应了粒子的运动惯性,代表粒子有维持自己先前速度的趋势;第二部分为认知部分,反映了粒子对自身历史经验的记忆,代表粒子有向自身历史最佳位置逼近的趋势;第三部分为社会部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体历史最佳位置逼近的趋势;计算条件如下:
(1) 该计算方法的模型中存在多个粒子种群,每个种群都会对解空间进行搜索;
(2) 粒子间的协同合作与知识共享分为两类:同一种群内部和不同种群之间的信息交互;
(3) 每个种群之间交换的信息为各种群的历史最优适应值和相应的位置矢量;
(4) 粒子的位置更新公式不用变化,而粒子的速度更新公式变为:
Vid (t+1) = wVid (t) + c1r1 (Pid (t) - Xid (t)) + c2r2 (Pgd (t) - Xid(t)) + c3r3 (PGd (t) - Xid (t)) (公式3)
其中:PG = ( PG1, PG2,…, PGn)为所有种群中的最优解,符号g表示:在种群中所有粒子经历过的最好位置的索引号,即Pg;符号G表示:在所有种群中粒子得到的最优解的索引号,即PG;
同时增加了相应的学习因子c3和随机数r3,t表示时间;
(5) 种群间采用不同的惯性参数w,学习因子c 1 ,c 2 ,c 3 以及随机数r 1 ,r 2 ,r 3 ,体现种群间的差异性;
该系统基于多种群的并发搜索,在每次迭代搜索过程中,都会有包含种群内以及种群间的信息交互,这样能够有效避免算法过早收敛,减小算法陷入局部极值的可能性,进而提高问题的求解质量。
该方法的基本步骤如下:
step1 随机初始化多个种群以及种群中的每个粒子。
step2 判断是否满足算法终止条件。若是,则退出算法;否则,继续以下步骤。
step3 针对每一个粒子,计算该粒子的适应值。判断是否更新该粒子的历史最优适应值和位置矢量。
step4 选择该粒子所属种群中适应值最优的粒子。判断是否更新该粒子所属种群的历史最优适应值和位置矢量。
step5 选择所有种群中适应值最优的粒子。判断是否更新所有种群的历史最优适应值和位置矢量。
step6 按照(公式3)和(公式2)更新每个粒子的速度和位置,跳转到step2。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。