预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于收缩因子的改进粒子群算法陈国鸿(河池学院计算机与信息科学系广西河池546300)摘要:针对基本粒子群优化算法(ParticleSwarmOptimization简称PSO)存在的早熟收敛问题提出了一种既保持粒子活性又保证粒子快速收敛于全局极值点的改进粒子群优化(XARPSO)算法。在算法运行过程中如果种群多样性逐步减小直至超出下限时种群不再向整体最优位置靠近而是纷纷远离该最优位置从而执行了“扩散”操作而当种群多样性逐步增大直至超出上限时种群又开始向整体最优位置靠拢即执行了“吸引”操作从而保持了粒子的多样性。同时该方法引入收缩因子的概念即通过正确选择惯性权重系数与加速常数即学习因子这些控制参数的值的方法确保算法收敛。通过Goldstern-Price函数的最小化测试结果表明该算法不仅具有较快的收敛速度而且能够更有效地进行全局搜索。关键词:粒子算法;收缩因子;吸引;扩散;多峰值函数引言粒子群算法最早是在1995年由美国社会心理学家JamesKennedy和电气工程师RussellEberhart共同提出的简称PSO算法。其基本思想是受他们早期对许多鸟类的群体行为进行建模与仿真研究结果的启发。粒子群算法与其他进化类算法一样也是一类基于群智能的随机优化算法。但与其它进化计算方法相比PSO算法具有收敛速度快、设置参数少、程序实现异常简洁、具有深刻的智能背景等特点既适合科学研究又特别适合工程应用。因此PSO算法一经提出就引起了国际上相关领域众多学者的关注和研究。目前PSO算法已广泛应用于函数寻优、神经网络训练、模式分类、模糊系统控制以及其它的应用领域。但是由于PSO算法在优化过程中所有粒子都向最优解方向飞去所以粒子趋向同一化群体的多样性逐渐丧失即存在早收敛问题因而也就难以获得较好的优化结果。为了克服这一缺点近年来出现了不少改进的PSO算法。如:ShiY.(1998)提出的带惯性权重的PSO算法、AngelineP.(1999)提出的杂交粒子群混合PSO算法、ClercM.(1999)提出的带约束因子的PSO算法、SuganthanP.(1999)提出的带有领域因子的PSO算法、ShiY.(2001)提出的模糊自适应惯性权重的PSO算法、Van(2001)提出的协同PSO算法、Natsuki(2003)提出的具有高斯变异的PSO算法、SunJ.(2004)提出的具有量子行为的PSO算法等。这些改进的PSO算法各有优缺点。本文提出一种既保持粒子活性又保证粒子快速收敛于全局极值点的改进PSO算法(XARPSO算法)。该算法描述了一种通过选择惯性权重系数w与加速常数、的值的方法以确保算法收敛并引入“吸引”和“扩散”两个算子动态地调整“勘探”与“开发”比例从而能更好的提高算法效率。测试表明该改进PSO算法在搜索能力方面和收敛速率方面都得到很大的提高。1基本粒子群算法美国的JamesKennedy和Russell受鸟群觅食行为的启发提出了PSO算法。PSO算法求解优化问题时问题的解就是搜索空间中的一只鸟的位置称这些鸟为“粒子”。所有的粒子都有一个被优化函数决定的适应值和一个决定它们飞翔方向与距离的速度。在优化过程中每个粒子记忆、追随当前的最优粒子在解空间中进行搜索。PSO算法初始化为一群随机粒子(随机候选解)然后通过迭代找到最优解。在每一次迭代过程中粒子通过追逐两个极值来更新自己的位置。一个是粒子自身所找到的当前最优解这个解称为个体极值pbest;另一个是整个群体当前找到的最优解这个解称为全局极值gbest。PSO算法数学表示如下:设=(……)为粒子i的当前位置;=(……)为粒子i的当前飞行速度;(t)=(……)为粒子i所经历的最好位置也就是粒子i所经历过的具有最好适应值的位置称为个体最好位置。对于最小化问题目标函数值越小对应的适应值越好。整个粒子群搜索到的最优位置为(t)=(……)称为全局最好位置。则基本粒子群算法的进化方程可描述为:(t+1)=(t)+(t)((t)-(t)+(t)((t)-(t))(2.1)(2.2)其中:下标“j”表示粒子的第j维“i”表示粒子it表示第t代、为加速常数通常在0~2间取值∪(01)∪(01)为两个相互独立的随机函数。从上述粒子进化方程可以看出调节粒子飞向自身最好位置方向的步长调节粒子向全局最好位置飞行的步长。为了减少在进化过程中粒子离开搜索空间的可能性通常限定于一定范围内即∈[-VmaxVmax]。如果问题的搜索空间限定在[-XmaxXmax]内则可设定Vmax=k·Xmax0.1≦k≦1.0。基本粒子群算法的初始化过程为:1)设定群体规模N;2)对任意ij在[-XmaxXmax]内服从均匀分布产生;3)对任意ij在[-V