广义粒子群算法(精选11篇)
广义粒子群算法 篇1
对约束广义预测控制问题, 求解带有约束的二次规划时, 由于约束优化问题常用的罚函数, 对函数和约束的特性要求较高, 很难解决复杂的约束优化问题[1]。为了提高广义预测控制的性能, 很多优化方法被用于求解约束广义预测控制。张强、李少远提出将遗传算法应用到广义预测控制中, 用遗传算法求解约束条件下的广义预测控制目标函数[2]。陈增强等将Tank-Hopfiled神经网络应用到求解约束预测控制中[3], 但是存在计算量大的问题。宋莹等将混沌优化算法应用到约束广义预测的滚动优化当中[4]。粒子群算法已经在许多优化问题中得到应用, 现将PSO-Powell结合算法引入到约束广义预测控制中。
粒子群算法 (PSO) 源于对鸟群觅食行为的研究, PSO实现简单、不要求目标函数和约束条件可微, 但是PSO的全局搜索能力较差[5,6]。Powell是对约束问题的一种直接搜索法, 它计算简单、具有快速收敛性, 但是对初始点的选择要求较严格。将PSO与Powell结合起来, 利用Powell的局部搜索能力, 提高PSO的收敛速度。将PSO-Powell应用到约束GPC中, 增强该算法在约束空间内的搜索能力。
1约束GPC问题的描述
在推导具有约束GPC时仍然用受控自回归积分滑动平均 (CARIMA) 模型来描述受随机干扰的对象:
式 (1) 中:A (z-1) =1+a1z-1+…+anaz-na;
差分因子Δ=1-z-1, u (k) 、y (k) 分别是系统输入和输出, d为滞后步数, 假设d=1;{ξ (k) }是一个不相关的随机序列。
考虑GPC的约束条件, 即控制量增量约束、控制量约束、输出约束。
控制量增量约束:
控制量约束:
输出约束:
引入丢番图方程1=Ej (z-1) AΔ+z-1Fj (z-1) 求得预测时域为N, 控制时域为Nu的预测模型可以写成
即
式中:
则k时刻满足上述约束条件的性能指标为
其中yr为参考轨迹;
约束GPC的滚动优化即为求得满足约束条件的情况下, 求得k时刻最优控制率ΔU=[Δu (k) , …, Δu (k+Nu-1) ]T, 使得性能指标J (k) 达到最小。
2基于PSO-Powell算法的约束GPC算法
对于上述约束GPC问题, 引入粒子群算法结合Powell算法来求取最优解。在该算法中约束GPC的二次性能指标作为粒子群算法的适应度函数进行滚动优化, 为了解决粒子群算法全局搜索能力弱, 易陷入局部最优值的缺点, 引入Powell算法帮助粒子群算法跳出局部最优值, 扩大粒子群在解空间的搜索能力[7]。该算法在处理约束时, 把GPC的约束条件和适应度函数一起判断滚动优化求得的最优解的好坏。
基于PSO-Powell算法的约束广义预测控制结构如图1所示。
2.1粒子群算法
该算法对约束广义预测的被控变量ΔU进行寻优, 故令粒子群的搜索空间维数为Nu, 第i个粒子的位置可表示成一个Nu维向量xi=[Δui (l) , Δui (l+1) , …, Δui (l+Nu+1) ]。
将广义预测的二次性能指标作为粒子群优化的适应度函数, 即fik (xi) =J (k) , 以此来对xi进行迭代更新。
在Nu维搜索空间中的第i个粒子的位置和速度分别为Xi= (xi1, xi2, …, xiNu) 和Vi= (vi1, vi2, …, viNu) , 在每一次迭代中, 粒子通过跟踪个体最优解pi和全局最优解pg, 更新公式如下
其中vid (l) 、xid (l) 分别为第i个粒子在第l次迭代中飞行速度和位置的第d维分量, pid是粒子i最好位置的第d维分量, pgd是群体最好位置的第d维分量;w惯性因子, c1和c2为正的学习因子, r1和r2为0到1之间均匀分布的随机数。
2.2约束处理
在粒子群的寻优过程中, 粒子的更新受适应度函数和约束条件的影响, 为了方便更新粒子, 对约束条件做如下处理:
将式 (2) —式 (4) 式全部转化为关于Δu的表达式:
将3个不等式合为一个, 取
将式 (9) 转化成不等式约束形式
其中A由Γ、G、γ组成, b是相应的约束向量[8]。
2.3粒子的可行性规则
假设pik为种群中第i个粒子在第k代的历史最优位置, xik+1为该粒子在第k+1代时所在的位置, 由粒子的适应度函数和约束条件给出了粒子的可行性规则:
2.4 Powell算法
为了防止粒子群优化求得的全局最优解pg陷入局部最小, 应用Powell算法对pg做二次搜索, 以求得全局最优解。
Powell求minfik (xi) 步骤如下:
1) 给定初始点pg (0) , n个线性无关的初始向量组{p0, p1, …pNu}0及精度ε>0, 置s=0;
2) 令h0=pgs, 依次沿{p0, p1, …pNu}s中的方向进行一维搜索:
3) 令pNu=hNu-h0, 若pNu≤ε, 停止迭代, 输出pgs+1=hNu, 否则转4) ;
4) 求出m, 使得
若下式成立
转5) , 否则转6) ;
5) 求解minfik (hNu-tpNu) , 设最优解为tNu, 令
同时令
6) 置s=s+1, 转2) ;
令pgs+1=hNu置s=s+1, 转2) ;
3仿真结果及分析
为仿真对象, 采样时间为5s。
约束条件为:-30≤u (k) ≤30;-10≤Δu (k) ≤
设噪声为[-0.1, 0.1]的均匀白噪声。仿真过程中取预测步长N=10, 控制步长Nu=2, 加权系数q=1、λ=0.8, 输出柔化系数α=0.2。微粒数m=40, 最大迭代次数M=500, 惯性权重ω=0.8, 学习因子c1=c2=2。Powell线性无关向量为[1, 0][0, 1]。使用基于PSO-Powell的约束GPC算法时的仿真曲线如图2所示, 经过对比可以得出, 由于约束的存在, 约束GPC的输出跟踪速度较无约束GPC慢, 但是控制量变化较小, 输出较为平稳且无超调, 有较好的控制效果。
4结论
基于PSO-Powell的约束GPC具有很强的全局搜索能力, 能够很好地在约束空间内搜索最优解。仿真结果可以看出该算法有效地提高了约束广义预测的性能, 但是仍需要进一步提高算法的运行速度。
摘要:提出了一种基于PSO-Powell算法的广义预测控制算法, 利用PSO与Powell进行二次搜索来求取广义预测控制的最优控制率。将PSO-Powell算法引入到广义预测控制的滚动优化过程中, 约束条件函数和适应度函数一起判断最优解的优劣。该算法可以有效地处理约束并找到全局最优解。最后通过仿真验证该方法的有效性。
关键词:广义预测控制,约束,粒子群,鲍威尔算法
参考文献
[1]席少霖.非线性最优化方法.北京:高等教育出版社, 1992:190—312
[2]张强, 李少远.基于遗传算法的约束广义预测控制.上海交通大学学报, 2004;38 (9) :1562—1566
[3]陈增强, 赵天航, 袁著祉.基于Tank-Hopfiled神经网络的有约束多变量广义预测控制器.控制理论与应用, 1998;15 (7) :847—852
[4]宋莹, 陈增强, 袁著祉.基于混沌优化的有约束广义预测控制器.工业仪表与自动化装置, 2006; (2) :3—5
[5]刘华蓥, 林玉娥, 王淑云.粒子群算法的改进及其在求解约束优化问题中的应用.吉林大学学报:理学版, 2005;43 (4) :472—473
[6] Fan Shu-Kai, Zahara S E.Ahybrid simplex search and particle swarmoptimization for unconstrained optimiz-Ation.European Journal of Op-erational Research, 2007;181 (2) :527—548
[7]刘国志, 苗晨.一个与Powell搜索相结合的混合免疫进化算法.江西师范大学学报, 2010;34 (1) :53—56
[8] Bandyopadhyay S.Simulated annealing using a reversible jump mark-ov chain monte carlo Algorithm for fuzzy clustering.IEEE TransKnowledge Data Eng, 2005;17 (4) :479—790
广义粒子群算法 篇2
粒子群优化算法PSO(Particle Swarm Optimization)是一类性能优越的寻优算法.但由于早熟问题,影响了算法性能的发挥.针对这一问题,引入粒子距离的概念,提出一种新的PSO改进方法(称为NA-PSO).通过求解组网雷达的系统偏差,表明了NA-PSO算法的`可行性,与对比方法相比较,能有效配准,且具有更好的收敛精度和更快的进化速度.
作 者:王波 李瑞涛 王灿林 朱丹 WANG Bo LI Rui-tao WANG Can-lin ZHU Dan 作者单位:王波,李瑞涛,王灿林,WANG Bo,LI Rui-tao,WANG Can-lin(海军航空工程学院,山东,烟台,624001)
朱丹,ZHU Dan(91550部队,辽宁,大连,116023)
广义粒子群算法 篇3
关键词:粒子群算法;单目标;多目标;传递率;传递函数矩阵;无穷范数;状态反馈控制;控制力传递率
中图分类号:TU112.41文献标识码:A
单自由度、双自由度体系是研究设备振动隔离的主要模型方法,且隔振体系性能与隔振参数关系密切,选择合适的参数,能提高系统的隔振性能,如果参数选择不当,就会适得其反,所以隔振参数的优化研究显得非常必要.文献1将遗传算法与最大熵法结合,给出了两级隔振系统参数优化设计的一种混合方法;宋鹏金等2采用傅里叶变化法和直接积分法分别对时域函数和频域函数进行参数优化,提出了一种锻锤隔振参数优化的新方法;文献3根据超精密隔振器的内部结构和隔振系统的布置形式,建立了超精密隔振系统的动力学模型,并在此基础上推导出理论频响函数、进行了系统参数的辨识研究;LIU等4基于整星隔振体系进行了参数优化;ESMAILZADEH5采用梯度优化方法对汽车悬挂体系进行了隔振参数的优化研究;文献6提出了一种隔振参数线性变化的方法,主要通过刚度迟滞模型实现;刘春嵘等7基于反共振原理在小振幅假设下建立了两级浮筏系统的数学模型,并分析了隔振机理,推导出了力传递率的表达式.
作为新型的群智能算法——粒子群优化算法PSO自1995年提出以来,就因其简单、易实现、收敛快,可调参数少等优点得到了广泛应用8.由于传统粒子群算法的局限性,许多学者对其做出了改进.Shi9等提出了关于权重的线性调整策略,获得了满意的优化效果;李军等10在Shi的基础上提出了自适应权重变化策略,克服了传统粒子群算法寻优过程的早熟情况,能使粒子群算法达到局部最优及全局最优的平衡.Coello等首次提出了多目标粒子群优化算法MOPSO,掀开了多目标优化问题的新篇章,主要思想是通过Pareto最优解集决定粒子飞行方向以及在全局知识库中得到之前发现的非支配向量,以指导其它粒子飞行11.
状态反馈控制是振动控制领域的常用方法,通常包括线性二次型最优控制、极点配置控制、基于观测器的控制器等,由于实际问题的不确定性,鲁棒H2H
SymboleB@ 控制被提出并广泛应用 12.上述方法在机械、结构等振动控制领域中发挥了巨大作用,其实质是通过控制器产生基于输出的反馈控制力,以优化控制系统响应.
1粒子群算法
1.1标准粒子群算法
粒子群优化算法模型中,每一个粒子的自身状态都由一组位置和速度向量描述,分别表示问题的可行解和它在搜索空间中的运动方向.粒子通过不断学习它所发现的群体最优解和它在搜索空间中的运动方向,并不断更新它所发现的群体最优解和邻居最优解,从而实现全局最优解.粒子的速度和位置更新方程是PSO的核心,由式1表示:
1.3多目标粒子群算法
多目标粒子群算法的主要计算步骤如下所述:
Step1:初始化粒子群,计算各对应粒子的目标函数向量,将其中的非劣解加入到外部档案之中;
Setp2:初始化粒子的局部最优值pbest和全局最优值gbest;
Setp3:在搜索空间内,通过式1,2调整粒子的飞行速度和位置,形成新的pbest;
Step4:根据新的非劣解维护外部档案,并为每个粒子选取gbest档案的内容决定全局最优值的选取;
Step5:是否达到最大迭代次数,若否则继续计算,若是则停止计算,输出pareto最优解集及全局最优解.
多目标粒子群优化算法与单目标粒子群优化算法的主要区别就是全局最优解的选取方式及外部档案的设定和更新.需要着重指出的是,关于全局最优解的选取问题;对于多目标优化,直接计算会存在一组等价的最优解集,很难从每一次迭代中确定一个全局最优解.解决该问题最直接的方法即是利用Pareto支配的概念,考虑档案中的所有非劣解,并从中确定一个“主导者”,通常采用密度测量的方法来确定全局最优解.本文将采用基于粒子最近邻拥挤程度评判的最近邻密度估计方法
6结语
基于粒子群优化算法,以控制输出的传递率为目标函数,在单自由度、双自由度隔振体系传递率分析的基础上,分别进行了隔振参数的单目标和多目标优化设计研究.
传统的振动控制设计,往往是在已知隔振参数的情况下创新控制方法或者优化控制器,却忽略了隔振参数对控制系统的重要性,盲目地从控制角度优化体系,不仅容易造成控制能源浪费,还可能会引起系统响应发散.
我国《隔振设计规范》15仅对单自由度隔振体系的传递率等相关参数做了规定,事实上,本文研究表明,双自由度隔振体系更适用于常见的工程振动控制.本文亦为最优隔振体系设计及最优振动控制设计提供了新思路,对《隔振设计规范》接下来的修订工作具有指导意义.
参考文献
1 魏燕定,赖小波,陈定中,等. 两级振动隔振系统参数优化设计J.浙江大学学报,2006,405:893-896.
WEI Yanding, LAI Xiaobo, CHEN Dingzhong, et al. Optimal parameters design of twostage vibration isolation systemJ.Journal of Zhejiang University, 2006, 405:893-896.In Chinese
2宋鹏金,陈龙珠,严细水.锻锤隔振基础参数优化的新方法J.振动与冲击,2004,233:96-98.
SONG Pengjin, CHEN Longzhu. YAN Xishui. The new parameters optimization method of vibration isolation base of hammer J. Journal of Vibration and Shock, 2004, 233:96-98. In Chinese
3董卡卡,蒲华燕,徐振高,等. 超精密隔振系统的建模与参数辨识J.武汉理工大学学报,2013,31:126-128.
DONG Kaka, PU Huayan, XU Zhengao, et al. Modeling and parameter identification of the ultraprecision vibration isolation system J. Journal of Wuhan University of Technology, 2013, 31:126-128. In Chinese
4LIU L K, ZHENG G T. Parameter analysis of PAF for wholespacecraft vibration isolation J. Aerospace Science and Technology, 2007, 116: 464-472.
5ESMAILZADEH E. Design synthesis of a vehicle suspension system using multiparameter optimization J. Vehicle System Dynamics, 1978, 72: 83-96.
6ZHANG F, GRIGORIADIS K M, FIALHO I J. Linear parametervarying control for active vibration isolation systems with stiffness hysteresis J. Journal of Vibration and Control, 2009, 154: 527-547.
7刘春嵘,肖卫明,徐道临. 双层流体浮筏的隔振特性研究J.湖南大学学报:自然科学版,2013,401:43-48.
LIU Chunrong, XIAO Weiming, XU Daolin. Study of the vibration isolation of twodegreeoffreedom fluidtype floating raft J. Journal of Hunan University:Natural Sciences, 2013,401:43-48. In Chinese
8KENNEDY J, EBERHART R C. A new optimizer using particle swarm TheoryCProceedings of the Sixth International Symposium on IEEE.Micro Machine and Human Science, 1995: 39-43.
9SHI Y, EBERHART R C. A modified particle swarm optimizer CIEEE World Congress on Computational Intelligence.NewYork: IEEE,1998:69- 73.
10李军,许丽佳.一种带压缩因子的自适应权重粒子群算法 J.西南大学学报,2011,337: 118-120.
LI Jun, XU Lijia. Adaptive weight particle swarm optimization algorithm with construction coefficient J.Journal of Southwest University, 2011, 337: 118-120. In Chinese
11COELLO A C, LECHUGA, MOPSO M S: A proposal for multiple objective particle swarm optimizationC Proceedings of the 2002 Congress on IEEE.Evolutionary Computation, 2002, 2: 1051-1056.
12欧进萍.结构振动控制——主动、半主动和智能控制M. 北京:科学出版社,2003:61-68.
OU Jinping. Structure vibration controlactive, semiactive and smart controlM.Beijing: Science Press, 2003:61-68. In Chinese
13DEB K, PRATAP A, AGARWAL S, et al. A fast and elitist multiobjective genetic algorithm: NSGAII J. IEEE Transactions on Evolutionary Computation, 2002, 62: 182-197.
14GOLDBERG D E, RICHARDSON J. Genetic algorithms with sharing for multimodal function optimizationC Proceedings of the Second International Conference on Genetic Algorithms and Their Applications.Hillsdale, NJ: Lawrence Erlbaum, 1987: 41-49.
15GB 50463-2008 隔振设计规范S.北京:中国计划出版社,2008: 36-40.
蚁群算法与粒子群算法的比较研究 篇4
由简单个体组成的群落与环境以及个体之间的互动行为称群智能(swarm intelligence)。群智能算法作为一种新兴的演化计算技术已成为越来越多研究者的关注焦点,群智能在没有集中控制且不提供全局模型的前提下,为寻找复杂的分布式问题求解方案提供了基础。目前,群智能理论研究领域主要有两种算法:蚁群算法(Ant Colony Optimization,ACO)和粒子群算法(Particle Swarm Algorithm,PSO),前者是蚂蚁群落食物采集过程的模拟,后者是鸟群觅食过程的模拟。本文对这两种算法的原理、模型、应用等方面进行比较分析,并对这两种算法的改进以及与其它算法的混合做出总结。
一、蚁群算法
蚁群算法是由Colorni、Dorigo和Maniezzo通过对蚁群觅食行为的研究,于1991年提出的一种仿生进化算法[1],利用蚁群在搜索食物源的过程中所体现出来的寻优能力来解决一些离散系统优化中的问题。蚂蚁是一种社会性昆虫,通过一种特有的通信机制,其群体行为展现出高度协作性,能够完成复杂的任务,并且,蚂蚁还能够适应环境变化随时调整搜索路径。作为一种随机搜索处算法,与其他模型进化算法一样,ACO也是通过侯选解组成的群体的进化过程来寻求最优解。
蚁群算法首先被成功应用于旅行商问题(TSP)上,以此为例算法的寻优过程[2]:设有m只蚂蚁,每只蚂蚁根据信息素浓度选择下一个城市(tij(t)为t时刻城市i和j之间路径上残留的信息素浓度,dij(i,j=1,2,...,n)表示城市i和j之间的距离),规定蚂蚁走合法路线,除非周游完成,不允许转到已访问城市。完成周游后,更新蚂蚁访问过的每一条边上的信息素。
初始时刻,各路径的信息量tij(0)相等,m只蚂蚁被放置到不同的城市上。蚂蚁k(k=1,2...,m)在运动过程中,根据各条路径上信息量决定转移方向,表示在t时刻蚂蚁k由位置i转移到j的概率。
其中,allowedk表示蚂蚁k下一步允许转移到的城市集合,随k的行进而改变;信息量τij(t)随时间的推移会逐步衰减,用1-ρ表示它的衰减程度;α,β分别表示蚂蚁在运动过程中积累信息量及启发式因子在蚂蚁选择路径中所起的不同作用;ηij为由城市i转到j的期望程度,可根据某种启发算法而定。
经过n个时刻,蚂蚁k走完所有城市,完成一次循环。此时,根据式(2)一(4)更新各路径的信息素:
其中:ρ表示信息素挥发系数,Δtij表示本次循环中路径ij上的信息量增量,表示蚂蚁k在本次循环中在城市i和j之间留下的信息量,其计算方法根据不同模型而定,最常用的是ant-cycle system:
其中:Lk表示蚂蚁k环游一周的路径长度,Q为常数。
算法流程如图1所示:
二、粒子群算法
Kennedy和Eberhart于1995年受鸟群觅食行为的启发提出了粒子群优化算法(Particle Swarm Optimization,PSO)[3]。PSO中,每个优化问题的解视为d维搜索空间中的一个粒子,粒子在搜索空间中以一定速度飞行,所有的粒子都有一个由被目标函数决定的适应值,并且知道自己到目前为止发现的最好位置,每个粒子利用个体和全局最好位置更新位置和速度。
假设m个粒子组成一个种群并在D维空间搜索,第i个粒子在第t代的位置表示为一个D维的向量Xi(t)=(xi1,,xi2,…,xD),飞翔速度为Vi(t)=(vi1,vi2,...,vD),粒子本身历史最佳位置为Pi(t)=(pi1,pi2,...,pD),群体历史最佳位置为Pg(t)=(pg1,pg2,...,pD)。PSO算法迭代公式如下:
其中,w为惯性权重,使粒子保持运动的惯性,使其有扩展搜索空间的趋势;c1和c2为加速系数,代表了将每个粒子拉向Pi和Pg的随机加速项的权重;r1和r2是两个独立的介于[0,1]之间的随机数,t为进化代数。
算法流程如图2所示:
三、两种算法的比较分析
1算法各自优缺点
(1)由于群智能算法采用的是概率搜索算法,ACO和PSO具有共同的优点[4]:
①鲁棒性:由于算法无集中控制约束,不会因个别个体的故障而影响整个问题的求解。
②扩展性:信息交流方式是非直接的,通信开销少。
③并行分布性:可充分利用多处理器,适合于网络环境下的工作状态。
④优化过程无需依赖具体问题的数学特性,例如可微、线性等。
⑤算法简单容易实现:系统中个体能力简单,执行时间短。
另外,PSO还具有如下优点:
①群体搜索,并具有记忆功能,保留个体和全局的最优信息;
②协同搜索,同时利用个体和全局的最优信息指导进一步搜索。
(2)ACO和PSO也存在着局限性:
①优化性能在很大程度上依赖于参数设定,受初始值影响较大。
②容易产生早熟收敛。
另外,ACO收敛速度慢,只有小部分的ACO算法能够被证明是值收敛的,并且在实际应用中常常出现一种有害的搜索偏向现象,即二级欺骗现象。
PSO局部搜索能力差,搜索精度不高,并在理论研究上尚未完善,缺少算法设计的指导原则。
2应用领域
●ACO本质上适合于求解离散组合优化问题,在旅行商问题上取得成功应用后陆续渗透到其它领域。在指派、调度、子集、带约束满足等组合优化问题时达到了高效的优化性能。并在图着色、电路设计、二次分配问题、数据聚类分析、武器攻击目标分配和优化、大规模集成电路设计、网络路由优化、数据挖掘、车辆路径规划、区域性无线电频率自动分配、集合覆盖等优化领域得到了成功应用。
●PSO本质上适合于处理连续优化问题,但如果对求解问题进行变形或修正速度和位置更新公式也能将其应用于离散优化问题上。并且,鉴于其通用性和有效性,在解决一些典型优化问题时,其性能甚至超过了遗传算法,已成功应用于训练人工神经网络、函数优化、约束优化、多目标优化、动态优化、参数优化、组合优化、模糊系统控制、电力系统、信号处理、模式识别、生物医学等领域中。
3与其它算法混合
由于ACO与PSO具有容易与其它算法结合的特点,根据各算法的优缺点,在算法中结合其它优化技术,以提高算法的优化性能。
①蚁群算法与差分演化结合:针对蚁群算法对参数控制的依赖性、早熟和停滞等现象,以及易与其他算法结合的特点,将差分演化算法应用到蚁群算法的参数选取中,将蚁群算法的参数作为差分演化算法解空间的向量元素,自适应地寻找蚁群算法最优参数组合的同时求解问题的最优解。
②蚁群算法与粒子群算法结合:针对蚁群算法容易出现早熟现象以及算法执行时间过长的缺点,将粒子群算法引入到蚁群算法中,让蚂蚁也具有粒子的特性。
③粒子群算法与模拟退火结合:先利用PSO算法的快速搜索能力得到一个较优的群体,然后利用SA的突跳能力对部分较好的个体进行优化。
④粒子群算法与遗传算法结合:针对PSO容易早熟的缺点,在PSO中引入启发性变异机制,以扩展了算法的搜索区域,提高了算法的速度和精度且不容易陷入局部最优。
⑤粒子群算法与差分演化结合:针对粒子群算法易陷入局部极小点、搜索精度不高等缺点,在算法改进方面引用差分演化算法的变异操作,从而避免算法收敛到局部。
四、展望
群智能算法采用分布式计算机制、鲁棒性强、可扩充性好、优化效率高、并且简单易于实现,为解决实际优化问题提供了新的途径和方法。除了本文提出的ACO和PSO,群智能算法还包括研究蜜蜂通过与环境之间的信息交互实现安排工作的蜂群算法[5]、李晓磊博士通过模拟鱼群觅食行为和生存活动提出的鱼群算法[6]。作为一门新兴领域,群智能算法尚缺乏系统的分析和坚实的数学基础,实现技术不规范,在适应度函数选取、参数设置、收敛理论等方面还需要做进一步研究与探索。在此基础上,对算法加以改进或混合其他技术,以提高算法优化性能也是值得深入研究的一个方向。并且需不断拓宽其应用领域,以进一步推广群智能算法的应用。
参考文献
[1]A.Colorni,M.Dorigo,G.Theraulaz.Swarm intelligence: From natural to artificial systems[M].New York:Oxford Universyty Press,1999.
[2]宋雪梅,李兵.蚁群算法及其应用[J].河北理工学院学报,2006年2月,第28卷第1期:42-45.
[3]Kennedy J,Eberhart R.Particle Swarm Optimization[R].In:IEEE International Conference on Neural Networks,perth,Australia 1995:1942-1948.
广义粒子群算法 篇5
摘 要:针对目前配电网中存在的分布式电源规划问题,在最大化电压静态稳定性、最小化配电网损耗以及最小化全年综合费用三个方面建立了分布式电源规划的优化模型。在规划模型的基础上,采用拥挤距离排序的多目标量子粒子群优化算法(MOQPSO-CD)以及基于量子行为特性的粒子群优化算法(QPSO),来更新和维护外部存储器中的最优解,通过对全局最优最小粒子的选择引导粒子群能够对分布式电源的配置容量与接入点位置的真实Pareto最优解集进行查找,获得对多个目标参数进行合理优化。最后采用IEEE33节点的配电系统,在模拟仿真实验过程中获得了分布式电源容量配置以及介入位置的合理方案,验证了优化算法的可行性。
【关键词】分布式电源规划 Pareto最优解 配电网
分布式电源(Distributed Generation,DG)由于其在减少环境污染、节约成本、发电方式灵活、减少发电输送中的线路损耗、改善电网中的能源质量以及提高电网供电稳定性等方面具有优点,在配电网中发展迅速。然而,在配电网中加入分布式电源会使电网中原有的结构发生改变,从而导致节点电压、线路损耗与网络损耗产生了不同程度的变化。如果分布式电源注入容量与接入点位置的配置出现问题,会加大电网中线路与网络等损耗,并且会对电网供电的可靠性产生严重影响,因此,针对这一现象,对DG的容量与配置参数进行合理的优化具有重要意义。
国内外许多学者曾对DG的参数配置优化问题进行了较为深入的研究并取得了一定进展。文献[1]针对分布式电源中的地址定容问题采取了单一目标的优化方法,但是该方法在实际电网中的可行性存在问题。文献[2]采用传统的模糊理论提出将电网中具有多目标优化方案转变为只有单一目标的优化方法,并且采用遗传算法,优化了分布式电源中的容量与位置。文献[3]对于配电网中DG的容量与选址通过改进遗传算法进行优化,但是该方法存在计算时间长、算法过于复杂有时会计算得出局部的最有求解等缺点。文献[4]通过改进的自适应遗传算法,搭建了基于DG环境效益与政府关于可再生能源补贴的最小化经济模型。
在实际应用中,对于配电网中分布式电源的优化需要考虑许多变量,一般都具有比较复杂的目标函数,对其进行优化时将多个目标函数转化为单一函数非常困难,因此必须采取有效措施节约分布式电源多目标模型建立中的相关问题。本文以分布式电源的配置容量及其在配电网中的接入位置为两个切入点进行研究,建立配电网在单位年中的费用最小、电网网络以及线路损耗最低、静态电压在最优系统中的稳定性3个目标函数的分布式电源优化模型。在粒子群优化(QPSO)算法中量子行为特性的理论上加入拥挤距离排序技术,维护与更新外部存储器中的最优解,将生成分布式电源的最优配置方案问题转化为求解全局最优的领导粒子问题。最后,运用Matlab仿真软件对本文所提出的方案进行验证。配电网中DG的多目标规划模型
1.1 目标函数
1.1.1 网络损耗最小目标函数为
那么,求解出配电网中电压稳定指标的最小值minL即可知最大化静态电压的稳定裕度。
1.2 约束条件
1.2.1 等式约束
约束方程可以用潮流方程表示为:
式中,Pdi、Qdi为配电网中第 台发电机的有功、无功输出,PDGmax为分布式电源有功输出上限,PDGmin为分布式电源有功输出下限,QDGmax为分布式电源无功输出上限,QDGmin为分布式电源无功输出下限,Uimax为节点i电压上限Uimin为节点i电压下限,SDGi为配电网中拟接入的第i个DG的容量大小,SDGmax为配电网中可以接入的DG最大装机容量,Pl为线路l的传输功率。基于拥挤距离排序的粒子群优化算法
2.1 量子行为特性的粒子群优化算法
传统的粒子群优化(PSO)算法在求解方面具有不同程度的缺点,如容易陷入局部求解最优,收敛精度低等。为了防止粒子群算法进入早熟,并且尽可能加快算法的收敛减少计算时间,文献[10-11]给出了改进粒子群算法,使得具有量子行为特性的粒子群算法的实用性大大提高,在局部精度方面得到明显的提高,并且与PSO相比较仅具有一个位移更新公式。在本文中基本粒子群的集合设定为不同负荷节点处DG的输入功率,因此得到的集合为:
其中,i(i=1,2,???,P)为粒子群中的第i个粒子,j(j=1,2,???,N)为粒子在粒子群中的第j维,N为搜索空间的维数;ui,j(t)和φi,j(t)均为在区间[0,1]上随机均匀分布的数值,t为进化代数,xi(t)为在t代进化时粒子i的当前位置,pi(t)为在t代进化时粒子i的个体吸引子位置,yi(t)为在t代进化时粒子i的个体最好粒子位置,为群体在t代进化时的最好位置,C(t)为粒子在第t代进化时的平均最好位置,定义为全部粒子个体位置最好时的平均位置;α为扩张-收缩因子,是在迭代次数与除群体规模以外的唯一参数。
2.2 MOQPSO-CD算法
由于粒子群算法具有记忆特性,利用这一特性可以解耦特性粒子的解空间,求出解空间后可以适时调整控制策略,并能够通过记忆功能对当前动态进行搜索,同时具有优良的鲁棒特性和在全局范围内的搜索能力。然而,QPSO收敛的速度过快,导致了算法收敛过快,因此Pareto的解不具有多样性特点。为了寻找该问题的解决方案,本文通过利用外部存储器储存Pareto在求解过程中所产生的非劣解,从而可以较快地达到Pareto前沿。这样可以达到减少计算时间,更快获得领导粒子的目的。由于领导粒子是在所有粒子中表现最好的个体中得到的,它可以体现出整体粒子群体的认知能力,对于群体在搜索中的方向起着引导作用。为了即时更新外存储器中的非劣解,本文所采用的拥挤距离排序算法属于第2代非支配排序遗传算法(NSGA-II),通过对其进行操作,可以尽快地通过领导粒子找到Pareto的最优解。与此同时,为了使多样性在粒子种群中得到丰富,基于此算法的基础上加入高斯变革算子对粒子种群寻优过程中解的多样性进行扩充。
2.2.1 领导粒子的选择
在领导粒子选择的过程中即时对新外部存储器中粒子集进行维护更新是很有必要的。其目的在于保证粒子群的多样性,并能确保Pareto最优解集的合理分布。在此算法条件下,外部存储器中的粒子集必然会存在当前代数最优的粒子,然后通过拥挤距离值算法计算器内部粒子集中每个个体距离值,通过计算拥挤距离值的方法,将粒子集合内的个体进行量化,当出现拥挤距离值最大的粒子时,表明在目标空间中该粒子成为领导粒子可能性增加。当有两个或多个领导粒子的拥挤距离值相等时,领导粒子将会在之对应的最优粒子中随机选取。
2.2.2 拥挤距离值的计算
拥挤距离排序方法描述了在一个最优解周围分布其他最优解的密度情况。以下简单阐述了本文所用到的拥挤距离计算方法,具体实现可参考文献[13]。Gj(i)(j=1,2,3)依次表示网络损耗、年综合费用和静态电压稳定指标3个目标函数值;P为粒子群集合的大小,亦可描述可行解的数量。首先,对于存储在外外部存储器的全部最优粒子,在所有需要优化目标上的函数取值进行升序排列,然后可以得到在所有优化空间上与最优粒子相接近的其它最优粒子,然后可以计算得出在统一空间内两个优化粒子的距离;最后最优粒子的拥挤距离可以通过所有最优粒子距离的求和方式得出。以本文为例详细说明拥挤距离值的特征,逐一计算并遍历相邻最优粒子的空间距离,粒子i和相邻粒子i+1在优化目标空间的距离:
2.2.3 外部存储器更替算法
在本文中人为设定两条存储器更新规则,以便满足外部存储器中存在最优粒子的目的,规则如下:
(1)位于存储器中的粒子被新生成的粒子支配时;
(2)如若外部存储器已满,则需运用拥挤距离排序算法对其内部所有进行重新排序,根据公式(16)计算所有粒子的拥挤距离值,并且按照计算出数值的大小进行排列。
2.2.4 算法实施步骤
本文选用借鉴第2代非支配排序遗传算法的基于量子行为特性的粒子搜索解空间算法对配电网中的分布式电源进行优化配置,图1所示为算法具体流程,计算过程为:
(1)初始化起始数据,数据内容为事先已规划内容,初始化算法基本参数(粒子群的规模、粒子群的初始位置、并设定最大迭代次数),系统对分布式电源位置,以及初始粒子群数据集进行随机采样。
(2)依照步骤(1)中设置的规则,对外部存储器中的粒子进行初始化设置。
(3)需要对粒子进行排位,排位的算法由公式(1)~(4)给出,可以计算出目标函数值,同时,根据公式(16)可以计算出拥挤距离值,根据以上两个参数进行排位。“2.2.1节”的方法选出粒子群中的领导粒子,最后利用QPSO位移更新方程对每个粒子进行重置。以上计算过程将会计算采样粒子集合内任意粒子的拥挤距离值。评价其是否达到Gauss变异算法条件,若达到该算法条件,则进行Gauss变异操作(Gauss mutation operator),否则转到步骤④。
(4)对③中运用QPSO位移更新算法计算出的所有粒子进行评价,并算出所有粒子的潮流数值,将其接入位置以及配置容量用数值量化,并对比量化后的函数值,按照柏拉图最优解定律计算出个体最优粒子及外部存储器最优粒子集。与计算出的上一个最优粒子相比较,新产生的粒子群中某粒子更优,则将新出现粒子作为最优粒子;若二者不能相互支配,那么二者中任意一个将被选为最优粒子,并将其放入外部存储器,然后转步骤⑤;否则舍弃更新后的粒子并转⑥。
(5)对已进入外部存储器中的粒子,按照公式(16)对其进行计算,已达到随时更新存储器中粒子的目的。通过步骤(5)可以达到将最优粒子存入外部存储器的目的。
(6)计算进化代数,若满足终止代数,则将存储器中现有的粒子作为输出,此时输出的粒子集就是所寻找的柏拉图最优输出集;否则转步骤③。算例分析
利用本文建立的模型,对IEEE 33节点配电系统进行模拟仿真,配电网系统如图2所示,对分布式电源的位置以及其容量进行重新配置。该配电系统中,额定电压为12.66kV,有功负荷的取值为3715kW,总无功负荷的取值2300kVar,总节点数为33个,总支路数为32条(其中5条为联络开关)。配电系统基准容量设为10MVA,其中平衡节点选在0号节点,分布式电源接入比例小于30%,安装节点集合为?x1,2,???,31?y(图2中的32节点将不会接入分布式电源中,因为该节点是尾端节点,并且同变压器支路侧相连,因此不需接入)。根据文献[3]可知,在计算分布式电源时,可以将其近似看成负的PQ节点,根据经验公式,选取功率因数值为0.9。初始采样粒子群集合规模为90,进行100次迭代。
按照本文所搭建的数学模型及算法计算出分布式电源配置的柏拉图最优解,及其目标函数的空间分布,如图3所示。根据图3可知,计算出的所有解相互独立分布,每个不同解均可表示出当前条件下的配置效果。以图中所列出的解
1、解2及解3为例,说明不同情况下的DG配置结果。解1情况下电压稳定指标大于0.02,相比其他两种情况最不稳定,网络损耗为80kW,损耗过大,但是年综合用最小;解3和解2相比较而言,解3在网络损耗和电压稳定性方面要优于解2,然而解3在年综合费方面是三种情况中最大的;对于解2来说,无论是年综合费用或者网络损耗以及电压稳定性指标这三个参数指标适均介于解1和解3之间,因此,考虑综合因素以解2最好。表1所示为解
1、解2和解3的DG配置方案,3个解分别与3个方案对应。
通过对比表1中的方案配置可以看出,不同DG配置方案会对年综合费用、网损和电压稳定性产生影响。在对电源在辐射线路中放置位置的分析后发现,放置位置越靠前,线路潮流受到的影响就越小。根据表1配置DG方案接入配电网,配电网络损耗将会有一定幅度下降,同时电压稳定性指标也会达到满意的效果,按照该配置方案规划,最为突出的优点是电网网络损耗方面,按照方案3配置后,电网网络损耗下降了80%。
结语
以减少电网网络损耗及年综合费用为优化目标,同时兼顾静态电压稳定性为原则,建立了DG规划的模型,在计算方面选取具有量子行为特性的粒子群优化算法(QPSO),以及基于拥挤距离排序的多目标量子粒子群优化算法(MOQPSO-CD),同时采用模拟仿真对33节点配电系统进行优化,得出了基于DG配置的Pareto最优解集,由此实现了对DG优化规划的目的。并得出以下结论:为了尽可能的降低电网损耗,同时提高电压稳定性,需要将DG配置在主变电站远端位置,即馈线末端,此时DG配置收益最高。
参考文献
[1]QIAN Ke-jun,ZHOU CHENG-KE,ALLAN MALCOLM,et al.Effect of load models on assessment of energy losses in distributed generation planning[J].Electrical Power and Energy Systems,2011,33:1243-1250.[2]陈海焱,陈金富,杨雄平,等.配电网中计及短路电流约束的分布式发电规划[J].电力系统自动化,2006,30(21):16-21.[3]邱晓燕,夏莉丽,李兴源.智能电网中分布式电源的规划[J].电网技术,2010,34(4):7-10.[4]李德泉,徐建政,罗永.含分布式电源的配电网扩展规划[J].电力系统及其自动化学报,2012,(5).[5]孙俊.量子行为粒子群优化算法研究[D].无锡:江南大学信息工程学院,2009.[6]武晓朦,刘建,毕棚翔.配电网电压稳定性研究[J].电网技术,2006,30(24):31-35.[7]KENNEDY J,EBERHART R C.Particle swarm optimization[C].IEEE IntConf of Neural Networks.Perth,1995:1942-1948.[8]ABGELINE P J.Using selection to improve particleswarm optimization[C]/Proc IEEE CongrEvolComput.Anchorage.AK.USA"IEEE Service Center,1998:84-89.[9]MIRANDA V,FONSECA N New evolutionary particle swarm algorithm applied to voltage control[C].Proc 14th Power SystComputConf.Spain:IEEE Service Center,2002:1865-1873.[10]LIjun-jun,WANGxi-huai.Amodified particle swarm optimization algorithm[J].Intelligent Control and Automation,2004,1:354-356.[11]候云鹤,鲁丽娟,熊信艮,等.改进粒子群算法及其在电力系统经济负荷分配中的应用[J].中国电机工程学报,2004,24(7):95-100.[12]DEB K,PRATAP A,AGRAWAL S,et al.A fast and elitist multiobjective genetic algorithm:NSGA-II[J].IEEE Trans on Evolutionary Computation,2002,6(2):182-197.[13]张君则,艾欣.基于粒子群算法的多类型分布式电源并网位置与运行出力综合优化算法[J].电网技术,2014,38(12):3372-3377.[14]刘幸.基于量子粒子群算法的分布式电源多目标优化[D].北京:华北电力大学,2012.[15]ROUHANI A,HOSSEINI S H,RAOOFAT M.Composite generation and transmission expansion planning considering distributed generation[J].International Journal of Electrical Power & Energy Systems,2014,62(11):792-805.[16]叶德意,何正友,臧天磊.基于自适应变异粒子群算法的分布式电源选址与容量确定[J].电网技术,2011,(06):155-160.[17]BJELIC I B,CIRIC R M.Optimal distributed generation planning at a local level-A review of Serbian renewable energy development[J].Renewable & Sustainable Energy Reviews,2014,39(6):79-86.[18]朱艳伟,石新春,但扬清,等.粒子群优化算法在光伏阵列多峰最大功率点跟踪中的应用[J].中国电机工程学报,2012,32(4).[19]黄平.粒子群算法改进及其在电力系统的应用[D].广州:华南理工大学,2012.[20]施展,陈庆伟.基于QPSO和拥挤距离排序的多目标量子粒子群优化算法[J].控制与决策,2011,26(4):540-547.[21]ZHANG L G,ZUO H.Pareto optimal solution analysis of convex multi-objective programming problem[J].Journal of Networks,2013(02).[22]李中凯,李艾民,朱真才.拥挤距离排序的多目标文化粒子群优化算法[J].控制与决策,2012,27(09):1406-1410.[23]慕彩红.协同进化数值优化算法及其应用研究[D].西安:西安电子科技大学,2010.作者单位
广义粒子群算法 篇6
关键词:计算机神经网络;粒子群优化算法;应用
中图分类号:TP183
粒子群优化算法是一种相对简单、有效的随机全局优化技术,通过对粒子群优化算法进行相应的改进,以此确保其收敛性,然后再将粒子群优化算法应用到神经网络的学习训练中,能够更有效的找出最优化解。粒子群优化算法和遗传算法相比,粒子群优化算法并没有遗传算法复杂的交叉、变异以及编码,而是对粒子所在解空间的具体位置进行搜索,不需要对众多的参数进行调整,其收敛速度相对较快。
1 粒子群优化算法的基本原理以及优化改进
1.1 粒子群吧优化算法的基本原理
PSO中,每一个优化问题的解都是搜集空间中的一个“粒子”的状态,粒子群优化算法是对群体的全局进行考虑,通过迭代搜寻选取最优值,通过将系统转化成一组随机的例子,由于例子在解空间追随最优的例子进行凑所,所以粒子群优化算法是一种具有全局寻优能力的优化工具。例子群优化算法的基本原理表现为:假设在一个D维的目标搜集中间中,由N个不同的粒子组成了一个特定的群体,其中第i个粒子表示成其在这个D维空间中的向量(xi),也就是该粒子在D为空间中的位置,每一个粒子的位置都存在一个特定的解,通过将xi带入到相应的目标函数中,通过适当的函数计算就能得到其适应度值,然后根据该xi适应度值的大小,以此衡量xi的优劣程度。其中,第i个粒子飞行的速度表示D维中的另一个向量,表示为vi,将在D维空间中搜索到的第i个粒子的最有位置记录为pi,则整个粒子群搜索到的最有位置pi的粒子群优化算法表现为:公式一:vi=ci+c1r1(pi-xi)+c2r2(pg-xi);公式二:vik+1=vik+c1×rand()×(pbest-xik)+c2×rand()×(gbest-xik);公式三:xi=xi+vi,其中i=1,2,…N;r1和r2为学习因子,rand()表示介于[0,1]之间的随机常数,c1和c2表示为非负常数。其中迭代的终止条件是根据选择的最大迭代次数决定的,表示的为第i个李在迄今为止搜索到的最优化位置应该满足的适应度的最小值。
从社会学角度方面来说,粒子群优化算法公式中的表示的是粒子的记忆项以及自身认知项,能够表示上次速度的方向以及大小对粒子造成的影响,还能够将当前的指向粒子当作自身的最优化矢量,以此表示粒子的动作来源于自身的经验,能够反映粒子之间的协同作用以及知识共享,粒子能够根据粒子群中相邻粒子的最好经验,然后再结合自身的经验,以此来决定自身的下一步运动,从而形成PSO的标准形式。
1.2 粒子群优化算法的改进
粒子群粒子群优化算法需要用户确定的参数相对较少,并且其操作相对简单,因此该种方法使用起来非常方便,但是,由于粒子群优化算法容易陷入局部极值点,导致搜索的收敛性相对较低,并且粒子群优化算法的收敛性分析已经收到众多学者的重视,因此,为了增强粒子群优化算法的收敛性,可以将抗体多样性保持机制引入到粒子群优化算法中,其步骤表现为:首先,确定参数值,记忆粒子个数M,即常数因子c1和c2粒子群的个数N,粒子的浓度概率选择阀值Pi,其随机产生的N个粒子xi的飞行速度表示为vi,以此计算粒子的适应度函数值;根据公式计算粒子的选择概率,将粒子群体中前M个最大适应度的粒子当作记忆细胞进行储存,将概率大于Pi的粒子根据相应的方法进行计算,从而把M个记忆细胞替换成适应度最差的M个粒子,以此形成全新的粒子群,最终判断其能付满足相应的选择条件,如果满足输出适应度值最好的要求,则选定该粒子。由此可见,通过上述的方法对粒子群优算法进行改进,能够保证粒子群优化算法的精确性,并且通过实践证明,经过改进后的粒子群优化算法,其计算机的仿真结果显示,该种粒子群优化算法的收敛速度明显优于没有改进的粒子群优化算法的收敛速度。
2 粒子群优化算法在计算机审计网络中的应用
计算机神经网络能够模拟大脑的思维能力,然后通过对各种数据进行分析,从而建立其相应的数学模型,计算机神经网络中除了包含许多处理器以外,还包含了许多与人脑神经相似的节点,这些节点按照一定的规律进行连接。如果将计算机神经网络中的每一个过程都细分为若干个微程序,并且将所有的微程序都交付于处理器进行处理,那么处理器处理所有的微程序的过程,就是一条微程序的处理流水线,这样计算机处理信息的速度也将会显著的提高。粒子群优化算法在计算机神经网络中的应用,包括的内容有组合优化、参数优化、神经网络训练、学习算法、网络拓扑结构和传递函数、链接权重等,通过把个体转化成微粒,其中包括计算机神经网络中的所有能够用到的参数,然后经过一些列的复杂、重复的程序,最终达到最终的训练目标。相对于传统的神经训练法来说,由于BP算法需要可微的函数以及梯度信息等大量的数据,只有通过大量的计算才能得到相应的训练结果,其运行难度较大、程序相对复杂,而采用离子群优化算法,其处理信息的速度显著的提升,能够有效的克服其运行效率低的问题。粒子群优化算法在计算机神经系统网络中的应用,主要表现在两个方面:其一,粒子区优化算法在参数优化中的应用,能够通过解决计算机神经网络中的各种离散型问题,从而进行参数优化;其二,粒子群优化算法在组合优化中的应用,其中典型的应用表现为其在工程经济问题中的应用,其能够通过将各种资源进行科学的组合,通过设置一定的约束条件对这些组合进行排序,通过不断的尝试最终能够找到最有效的解决方案,然后合理的利用所有的组合实现经济效益的最大化。此外,粒子群优化算法不仅能够应用在计算机神经网络中,还能够应用在更多的领域中,例如软件编辑、游戏开发、电力系统等领域中。
3 结束语
文章对计算机神经网络中粒子群优化算法的应用进行了研究,对粒子群优化算法进行了相应的改进,有效的提高了粒子群优化算法的收敛速度。将粒子群优化算法应用在计算机神经网络中,其操作相对简单,比较容易实现,并且其还能够更快的收敛于最优解,有效的克服了传统遗传算法缺点。因此,在计算机神经网络学习训练中,广泛的推广和应用粒子群优化算法具有很大的现实意义。
参考文献:
[1]丁玲,范平,闻彬.粒子群优化算法在计算机神经网络中的应用[J].理论与算法,2013(17):39-41.
[2]曹大有.一种免疫粒子群优化算法及在小波神经网络学习中的应用[J].计算机应用于软件,2009(06):189-192.
[3]刘爱军,杨育,李斐.混沌模拟退火粒子群优化算法研究及应用[J].浙江大学学报(工学版),2013(10):1722-1729.
[4]虞斌能,焦斌,顾幸生.改进协同粒子群优化算法及其在Flow Shop调度中的应用[J].华东理工大学学报(自然科学版),2009(03):468-474.
[5]刘宝宁,章卫国,李广文.一种改进的多目标粒子群优化算法[J].北京航空航天大学学报,2013(04):458-473.
作者简介:张小军(1980.01-),男,河南人,讲师,研究方向:云计算,数据挖掘,通信技术。
多种群粒子群分层进化优化算法 篇7
粒子群优化算法 (Partical Swarm Optimization Algorithm, PSO) 是由美国学者Kenndy和Eberhart于1995年提出的一种群体智能优化算法[1], 现已广泛应用于科学和工程领域。但它存在收敛速度慢、容易陷入局部最优值的缺陷。本文介绍的多种群粒子群分层进化算法, 对具有不同适应度值的粒子采取不同的进化方式, 加快了算法收敛的速度和精度。
2 多种群粒子群分层进化优化算法
2.1 标准PSO
用标准PSO求解时, 先初始化一群随机粒子, 通过让粒子不断更新自己的位置, 来找到函数的最优解。在每次更新中, 粒子通过两个“极值”来调整自己的位置:粒子本身取到的最优值Pbest和粒子群找到的最优值Gbest。更新公式为:
其中, c为加速因子, rand () 是0-1之间的随机函数。
2.2 算法改进
美国的Shi和Eberhart引入惯性权重的概念[2], 将更新公式变为:
通过惯性权重w来控制前一速度对当前速度的影响。文献[3,4]基于控制理论分层控制的思想, 把PSO用于多种群2层优化, 文献[5]提出把粒子群分成两部分, 让粒子分别朝向最好最坏方向飞行。本文提出的分层进化让适应度值优的粒子采取较小的w值, 增加其局部搜索能力;让适应度值差的粒子采取较大w值, 增加其全局搜索能力, 并让适应度值特别差的用好的粒子代替, 便于粒子更快更好的找到最优值。
2.3 算法流程
Step 1.初始化n个种群, 每个种群m个粒子, 每个粒子记为Xij, 即第i个子群的第j个粒子;
Step 2.计算粒子的适应度值, 找出个体最优Xijbest、子群最优Li和种群最优G;
Step 3.根据不同适应度值将粒子分成不同层次, 对不同层次的粒子分别采取不同的惯性权重ωi, 将适应度值特别差的粒子用好的粒子替换;
Step 4.按如下公式逐个更新粒子:
Step 5.达到迭代次数或误差要求结束, 否则转Step2。
3 算法验证
为了比较算法的性能, 取Sphere、Ackley、Rastrigin、Griewank四个基准函数进行测试, 并与粒子群算法进行比较。四个函数形式为:
实例中取3个粒子群, 每群30个粒子, 每个粒子设定为3维, c1, c2, c3均取2, w按分层取得
对于适应度值与最优值差值大于10000的用最优粒子代替, 基本PSO中取w=0.7, 其他参数一样, 让每个函数分别运行100遍, 迭代90000次, 两种算法最优适应度值的平均值分别为[0.045064 0.68787 0.24894 0.14151], [0.259410.69659 0.26889 0.12891]。四个函数里边三个比基本粒子群寻到的结果要优, 两个算法的结果图像如图1、图2所示。
4 结论
本文提出的粒子群分层进化方法让具有不同适应度值的粒子取不同的惯性权重, 独立的改变自己的速度和位置, 这比基本粒子群对所有粒子采取相同操作更具针对性, 能让粒子更快更好的收敛到最优值, 通过对测试函数进行计算的结果图像很好地显示了粒子朝最优值逼近的趋势。但用来进行划分的适应度值的区间还有待进一步研究, 本文只是根据经验提出, 希望以后能有一种更好的划分适应度值的理论方法。
参考文献
[1]Kennedy J, Eberhart R C.Particle Swarm Optimization[C].IEEE International Conference on Neural Networks, Piscataway:IEEE Service Center, 1995:1942-1948.
[2]Shi Y, Eberhart R C.A Modified Particle Swarm Optimizer[C].IEEE World Congress on Computational Intelligence, 1998:69-73
[3]吕林, 罗绮, 刘俊勇等.一种基于多种群分层的粒子群优化算法[J].四川大学学报 (工程科学版) .2008;40 (5) :171-176
[4]吕林, 罗绮, 刘俊勇等.基于多种群分层粒子群优化的配电网络重构[J].电网技术.2008;2 (32) :42-45
粒子群优化算法综述 篇8
PSO在解决许多GO问题上被证明是一种有效的方法;在函数优化、神经网络训练、工业系统优化和模糊系统控制等领域得到了广泛的应用。
1 PSO算法原理
在PSO算法中, 首先随机产生一群粒子, 每一个粒子都是搜索空间的潜在解。然后通过迭代寻找最优解。每一个的粒子都有一个适应于种群的适应值 (fitness) , 及决定粒子飞翔的位移和速度。每次迭代后, 粒子下一时刻的速度和位移通过两个“极值”来更新:第一个极值是迭代后粒子本身的最优解, 称为局部最优解;第二个极值是整个种群的最优解, 称为全局最优解。
假设在一个D维的目标搜索空间中, 有m个粒子组成一个群落, 其中第i个粒子的位置表示为, xi= (xi1, xi2, …, xi D) , i=1, 2, …, m;速度表示为vi= (vi1, vi2, …, vi D) 。第i个粒子目前为止搜索到的最优位置为pi= (pi1, pi2, …, pi D) , 整个粒子群的最优位置为pg= (pg1, pg2, …, pg D) 。
PSO算法采用下列公式对粒子操作:
其中i=1, 2, …, m, d=1, 2, …, D;加速因子c1和c2是非负常数, 分别调节个体最好粒子和全局最好粒子飞行的最大步长。若太小, 则粒子可能远离目标区域, 太大则会导致粒子突然向目标区域飞去, 或飞过目标区域。合适的c1和c2可以加快收敛且不易陷入局部最优, 通常令c1=c2=2;r1和r2是介于[0, 1]之间的随机数。粒子在每一维飞行的速度不超过算法设定的最大速度vmax。
公式 (1) 的第一部分表示粒子当前速度对粒子飞行的影响, 这部分提供粒子在搜索空间飞行的动力;第二部分为“个体认知”部分, 表示粒子根据自己的经验飞行;第三部分为“社会认知”部分, 表示粒子通过交流和合作根据社会成员的经验飞行。文献[3]对公式 (1) 作了如下改动:
其中, w是非负数, 称为惯性因子。公式 (2) 和公式 (3) 也叫基本PSO算法。基本PSO算法需要用户确定的参数并不多, 而且操作简单。但是它的缺点是易陷入局部极小点, 搜索精度不高, 因此研究者们对其进行了各种各样的改进。
2 PSO改进算法
2.1 收敛PSO
文献[4]通过对算法的研究, 证明采用收敛因子能够确保算法的收敛。在收敛因子模型中速度的更新公式为:
其中, φ=c1+c2, φ>4, 通常取φ=4.1, 由此计算得χ=0.729。改进后的公式 (2) 和公式 (4) 被称为标准PSO。
文献[5]在对基本PSO算法分析的基础上, 提出了一种能够保证以概率1收敛于全局最优解的PSO算法———随机PSO算法 (Stochastic PSO, SP-SO) , 并利用Solis和Wets的研究结果对其全局收敛进行了理论分析。文献指出当ω=0时, 公式 (2) 、 (3) 描述的进化方程变为:
其中, 粒子的飞行速度只取决于粒子的当前位置xi、历史最好位置pi和粒子群的历史最好位置pg, 速度本身无记忆性。这样, 对于位于全局最好位置的微粒将保持静止。为了改善公式 (5) 的全局搜索能力, 可保留pg作为微粒群的历史最好位置, 而在搜索空间s重新随机产生微粒i的位置xi。
文献[5]通过将式 (5) 改成一个差分方程, 在理论上分析了当c1+c2<2时, SPSO算法的进化方程线性渐进收敛。
2.2 基于拓扑结构的PSO
最早的粒子群优化版本是全局PSO, 它使用全局 (gbest) 拓扑结构, 社会只能通过种群中最优的那个粒子对每个粒子施加影响。实验证明利用全局PSO训练前向神经网络的权矩阵是有效的。但是在全局PSO中, 粒子间的交流不够充分。文献[6]提出了一种局部 (lbest) 拓扑结构。在这种模型中, 每个粒子都和它的邻居进行交流。例如种群中的第5个粒子和第6个以及第7个粒子进行交流。图1是粒子群的全局和局部拓扑结构。
在局部拓扑结构中, 粒子之间的交流相对比较缓慢。如果第i个粒子找到一个比较好的解, 它可以传递给它的邻居j。若粒子k和j连接但是和i没有连接, 只有当j更新后才可能传给k。因为传递的比较慢, 粒子更容易搜索问题空间中的不同地区。
文献[7]根据对人类社会的模拟进而提出了FIPS (Fully-Informed Particle Swarm) , 认为粒子应受所有邻居的影响。对粒子速度用公式 (6) 进行操作:
其中, N是第i个粒子的所有邻居组成的集合, k是粒子i的第k个邻居, pk是粒子k目前找到的最优值。如果N定义为只包含粒子i它自己和它的最优邻居, 公式 (6) 就是标准PSO。在FIPS中, 粒子的速度是根据粒子当前位置和它的邻居目前找到的最优位置之间的加权平均差来更新。
文献[8]在研究了领域拓扑结构对粒子群算法性能的影响后, 设计了两种动态邻域生成策略, 验证不同的邻域拓扑结构和不同的算法模型能够影响粒子群算法的性能。文献[9]提出了一种该改进的PSO算法PSO-DSF。引进有向类无标度网作为粒子群寻优的拓扑结构, 提出作为粒子邻域拓扑的有向网络动态变化机制, 从而提高算法的多样性, 避免过早陷入局部最优的情况。文献[10]提出基于KRTG的动态拓扑结构的粒子群算法研究。从粒子间的拓扑结构出发, 动态地调整种群的拓扑结构, 增加种群的多样性, 使算法收敛于全局最优解。文献[11]提出了一种动态拓扑结构改进PSO算法。在这种结构中, 用了两种方法改进邻居的拓扑结构:随机边缘移植 (Random Edge Migration, REM) 、邻居重组 (Neighborhood Restructuring, NR) 。随机边缘移植是指随机选取一个邻居数目大于1的粒子节点, 移去一个邻居节点, 并把这个邻居节点和另一个随机选取的未满的粒子节点相连接。邻居重组保持粒子的邻居结构在一段时间内固定, 然后重新构造粒子邻居的结构。通过对六个基准函数的实验表明这种方法是一种好的策略, 对每一个函数的测试都取得了令人满意的结果。研究基于拓扑结构的PSO算法一直在持续, 是一个值得研究的方向。
2.3 混合PSO
文献[12]针对带障碍约束的空间聚类, 提出了一种改进的蚁群算法 (IACO) 和混合粒子群算法 (HPSO) 。首先, 使用蚁群算法获得最短的障碍距离, 然后设计了一个带障碍约束的遗传K中心空间聚类分析算法。
文献[13]中, 使用交叉算子和变异算子, 并结合混合粒子群优化算法以及遗传算法解决柔性作业调度问题, 并提出混合整数编程模型。
文献[14, 15]介绍了一种和差分进化 (Differential Evolution, DE) 算法结合的混合PSO算法。在DEPSO中, 传统的PSO操作和DE操作交替的进行, 当迭代次数为奇数时执行PSO算法, 而当为偶数时执行公式 (8) :
其中, r∈[0, 1]是随机数, k∈[1, D]是整数, 用来保证至少在其中一维产生变异, CR是一个交叉常数, δ2是N=2时的一般差分向量δN, 定义如下:
其中, 是一个差分向量用来表示从一个由粒子组成的集合中选取的两个元素的差, 这个集合包括当前所有的个体最优值 (pbest) 。N是包含的元素个数, 在第d维有:
其中, 和从pbest集中随机选取。在一组基准函数上的测试表明DEPSO优于PSO算法和DE算法。在DEPSO中, 如果知道参数之间的关系, 就能确定一个合适的CR, 但这通常需要人们对问题有很深的了解。
2.4 统一PSO
PSO算法的性能依赖于全局搜索和局部搜索之间 (Exploration and Exploitation) 的平衡能力, 即搜索空间的全局搜索能力和快速收敛于有希望的区域的能力, 分别对应全局变量和局部变量。根据这一思想, 文献[16]提出了一种新的PSO结构UPSO (Unified Particle Swarm Optimization) 。为达到全局搜索和局部搜索的平衡, UPSO将全局变量和局部变量合在一个公式里, 从而更新粒子的位置:
其中, u是统一因子, 在[0, 1]之间取值, 用来平衡全局和局部搜索。u=0和1分别对应着局部PSO和全局PSO。Gnid+1表示在全局PSO变量中粒子xi的速度更新, Lnid+1表示在局部PSO变量中粒子的速度更新, 它们分别用下式计算:
其中, k是迭代次数, g (全局变量) 是整个粒子群目前找到的粒子最优位置的下标, gi (局部变量) 是xi的邻居目前找到的粒子最优位置的下标。
2.5 感知PSO (PPSO)
感知PSO (Perceptive Particle Swarm Optimization, PPSO) [17]与传统PSO的搜索过程相似, 不同的是PPSO在n+1维空间搜索, 附加的维是粒子的适应值。一个n维的目标函数在PPSO中被看成n+1维的自然地形 (Physical Landscape) 。在PPSO中引入了三个参数:感知半径、要观察方向的数量和沿着每个观察方向要观察的点的个数。PPSO允许每个粒子有一个有限的感知范围去观测搜索空间, 并且感知在这个范围内的其他粒子的近似位置, 而不是在临近粒子之间直接交换信息。在PPSO中粒子通过采集固定数量要观察的方向和沿着这些方向的有限数量的点观测搜索空间。例如对一个三维的观察空间, 粒子沿着+x, -x, +y, -y, +z, -z六个不同的方向观测搜索空间。
研究表明:较大的感知半径易于群间个体的交流和扩大粒子的搜索空间。因为当在它的感知范围内没有邻居时, 粒子会飞到自己的最好位置。而要观察方向的数量越多, 得到一个好解的机会越大。观察的点的个数越多, 得到的解越精确。但是观测搜索空间需要的时间也越多。为了获得一个满意的解, 这是值得的。
2.6 主要素PSO (PCPSO)
主要素PSO (Principal Component Particle Swarm Optimization, PCPSO) [18,19]中的粒子在两个分开的空间飞行:传统的n维x空间和经过旋转后的m维z空间。PCPSO在x空间使用下面的公式进行迭代:
其中, 表示和z空间相关, 用下式进行计算:
在z空间用下面的公式迭代:
z空间和c空间之间通过标准正交基U~联系:
其中, U满足U'SU=L, L是一个对角矩阵, S是加权协方差矩阵, 是通过主元素分析 (Principal Component Analysis, PCA) 得到的。
和标准PSO相比, PCPSO的优点是时间复杂度比较低, 它一定能在少得多的迭代次数内找到最优解。实验证明PCPSO是一个很有前途的算法, 能降低求解高维函数最优解的时间复杂度。缺点是因涉及数学计算, 对数学基础要求比较高, 不易掌握。
2.7 带时间加速因子的自组织分层的PSO
文献[20]提出了一个新的参变量:随时间变化的加速因子 (Time-Varying Acceleration Coefficients, TVAC) , 目的是在算法前期提高全局搜索能力, 在算法后期促使粒子收敛到全局最优。方法是通过随时间改变加速因子c1和c2来减少个体认知因素而增加社会因素。研究表明在算法初期, 较大的个体认知因素和较小的社会因素使粒子能有更好的全局搜索能力。相反在粒子的后期, 较小的个体认知因素和较大的社会因素, 则能使粒子更好的收敛于全局最优。c1和c2分别用下式计算:
其中, c1i, c1f, c2i和c2f是常量, iter是当前迭代次数, MAXITER是最大允许迭代次数。
另外, 文献对PSO的另一个改进是去掉了公式 (1) 中粒子上一时刻的速度, 研究表明去掉此速度粒子会很快因为缺乏动力而收敛于局部最优, 并停滞不前。为了解决这个问题, 文献中提出了自组织分层的PSO, 提供粒子寻找全局最优的动力。方法是当粒子停滞不前时 (vid=0) , 重新初始化速度向量的系数。实验表明, 和传统PSO算法相比, HPSO-TVAV在单峰和低维函数上表现不时很好, 但是在多维和多峰函数上表现优异。
3 PSO应用
由于简洁易操作的特点, PSO算法一提出就引起了各方面的关注, 关于PSO算法的应用不断出现, 现已广泛应用于函数优化、神经网络训练、工业系统控制、模式识别及其他遗传算法的应用领域。
PSO最早应用时将其应用于神经网络训练。文献[21]将PSO算法用于神经网络集成, 加强了神经网络的泛化能力。文献[22]将PSO算法用于解决优化网页内容描述的问题中。文献[23]将离散PSO算法用于求解TSP问题;文献[24]提出一种将PSO算法用于文本知识发现的方法;文献[25]将PSO算法用于多目标问题的求解;文献[26]将PSO算法用于人脸识别中。文献[27]则将PSO算法用于软件结构测试数据自动生成也取得了良好的效果。文献[28]将BPSO算法应用于特征选择中, 提出了一种不基于分类器的特征选择方法。
总之, 在解决复杂问题时, PSO算法被证明是一种有效的方法, 已被应用于各个研究领域。
4 PSO展望
PSO是一种新兴的有潜力的基于群智能的演化计算技术。自从2002年PSO算法被引进国内[27], 已经有很多学者对PSO进行了研究。虽然已经取得了一些研究成果, 但是仍然有许多问题值得关注。
4.1 算法的理论基础
PSO算法在实际应用中已被证明是一种有效的优化工具, 已广泛的应用于科学研究和工程实践, 但是其内部机理仍不明确, PSO算法缺乏数学理论支持。PSO的改进算法及其应用也都停留在实验阶段。文献[4, 5]对算法的收敛做了一定的分析, 但是对于这样一个年轻有潜力的算法, 还远远不够。所以开展一些理论研究, 不仅可以加深对PSO算法内部机理的认识, 而且对于扩展PSO的应用领域也有深远意义。
4.2 拓扑结构
文献[7-11]对拓扑结构的研究表明一种好的拓扑结构能有效地改善算法的性能, 并且能在许多优化问题上取得非常不错的结果。寻求一种好的拓扑结构, 加强PSO算法的泛化能力, 使其能在多数优化问题上取得满意的结果, 并不是不可能。
4.3 参数调整模型
尽管目前已经有许多PSO算法的改进版本, 但是都各有优缺点。如何针对问题的不同特点, 构造一个参数调整模型, 达到平衡粒子的全局搜索能力与局部搜索能力, 避免粒子早熟收敛, 对工程应用有十分重要的意义。
4.4 与其他方法结合
PSO算法虽然是一种有效的优化工具, 但同样有其不足, 如迭代后期搜索能力不够, 早熟收敛等。所以, 如何将其他算法引进PSO算法, 以弥补其不足是一个重要方向。
4.5 算法应用
科学与工程实践中的许多问题都可以归结为优化问题。所以如何将PSO算法与实际问题结合, 将会有力的推动PSO算法的发展。
摘要:粒子群优化 (PSO) 算法是一种基于群智能方法的演化计算技术, 通过粒子间的相互作用发现复杂搜索空间中的最优区域, 优势在于简单容易实现而且功能强大。由于它简单易操作的特点, PSO一提出, 立刻引起演化计算等领域学者们的广泛关注, 并在函数优化、神经网络训练、工业系统优化和模糊系统控制等领域得到了广泛的应用。介绍了基本的PSO算法、若干类改进的PSO算法及其应用。
粒子群算法改进策略研究 篇9
1基本粒子群算法
PSO中, 每个优化问题的潜在解都是搜索空间中的一只鸟, 称之为粒子。所有的粒子都有一个由被优化的函数决定的适值 (fitness value) , 每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索[1]。
PSO初始化为一群随机粒子 (随机解) , 然后通过迭代找到最优解。在每一次迭代中, 粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解, 这个解称为个体极值;另一个极值是整个种群目前找到的最优解, 这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居, 那么在所有邻居中的极值就是局部极值。
假设在一个D维的目标搜索空间中, 有N个粒子组成一个群落, 其中第i个粒子表示为一个D维的向量:
Xi= (xi1, xi2, …, xiD) , i=1, 2, …, N。
第i个粒子的“飞行 ”速度也是一个维的向量, 记为:
Vi= (vi1, vi2, …, viD) , i=1, 2, …, N。
第i个粒子迄今为止搜索到的最优位置称为个体极值, 记为:
Pbest= (pi1, pi2, …, piD) , i=1, 2, …, N。
整个粒子群迄今为止搜索到的最优位置为全局极值, 记为:
gbest= (pg1, pg2, …, pgD)
在找到这两个最优值时, 粒子根据如下的公式 (1) 和 (2) 来更新自己的速度和位置:
vid=w×vid+c1r1 (pid-xid) +c2r2 (pgd-xid) (1)
xid=xid+vid (2)
其中:c1和c2为学习因子, 也称加速常数 (acceleration constant) , r1和r2为[0, 1]范围内的均匀随机数。式 (1) 右边由三部分组成, 第一部分为“惯性 (inertia) ”或“动量 (momentum) ”部分, 反映了粒子的运动“习惯 (habit) ”, 代表粒子有维持自己先前速度的趋势;第二部分为“认知 (cognition) ”部分, 反映了粒子对自身历史经验的记忆 (memory) 或回忆 (remembrance) , 代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会 (social) ”部分, 反映了粒子间协同合作与知识共享的群体历史经验, 代表粒子有向群体或邻域历史最佳位置逼近的趋势, 根据经验, 通常c1=c2=2。i=1, 2, …, D。vid是粒子的速度, vid∈[-vmax, vmax], vmax是常数, 由用户设定用来限制粒子的速度。r1和r2是介于之间的随机数[2,5]。
算法的流程如图1所示。
1) 初始化粒子群, 包括群体规模N, 每个粒子的位置xi和速度Vi;
2) 计算每个粒子的适应度值Fit[i];
3) 对每个粒子, 用它的适应度值Fit[i]和个体极值pbest (i) 比较, 如果Fit[i]>pbest (i) , 则用Fit[i]替换掉pbest (i) ;
4) 对每个粒子, 用它的适应度值Fit[i]和全局极值gbest比较, 如果Fit[i]>pbest (i) , 则用Fit[i]替gbest;
5) 根据公式 (1) , (2) 更新粒子的速度vi和位置xi;
6) 如果满足结束条件 (误差足够好或到达最大循环次数) 退出, 否则返回2) 。
2粒子群算法的改进分析
对粒子群优化算法改进之前必须要知道有哪些改进方向, 从基本的算法流程来看, 初始化过程可以进行处理, 研究也表明, 初始化过程的确会对性能产生一定的影响[2]。接着是适应值的计算这一过程, 适应值是适应函数决定的, 而这是根据实际情况而定的, 没法做改进。接下来的最优值的处理过程, 可以打破基本粒子群原有的方式, 比如运用遗传算法里面的选择方法、变异或是杂交方法改进粒子群优化算法, 这种改进方式, 我们称之为混合策略。Angeline引入了具有明显选择机制的改进粒子群算法[3]。粒子群优化算法的核心也就是更新公式, 对于数学公式的改进是大多数研究者所热衷的, Clerc提出了收缩因子的概念[4], 这种方法描述了一种选择w, c1, c2的方法, 以确保算法收敛, 属于带有惯性权重的改进。Kennedy指出, gbest模型虽然具有较快的收敛速度, 但更容易陷入局部极值。为了克服gbest全局模型的缺点, 研究人员采用每个粒子仅在一定的邻域内进行信息交换, 提出各种gbest局部模型[5]。由此可见, 在基本的粒子群优化算法的基础上进行改进, 可研究的方向有, 带有惯性权重方面的改进, 初始化方面的改进, 邻域拓扑方面的改进, 以及混合策略方面的改进。
3带惯性权重的改进
公式 (1) 中, 建议w的取值范围为[0, 1.4], 但实验结果表明当w取[0.8, 1.2]时, 算法收敛速度更快, 而当w>1.2时, 算法则较多地陷入局部极值。较大的w有较好的全局收敛能力, 较小的w则有较强的局部收敛能力。因此, 随着迭代次数的增加, 惯性权重w应不断减少, 从而使得粒子群算法在初期具有较强的全局收敛能力, 而晚期具有较强的局部收敛能力。此时粒子群算法称为惯性权重线性递减粒子群一般情况下, 将w的初始值设置为0.9, 然后按照迭代次数线性递减至0.4[6], 在粒子群算法领域, 这种改进是很常见的, 其处理方式如下:
undefined
(t为当前迭代次数, MaxNumber为最大代数) (3)
公式 (3) 是线性调整的, 当然也有非线性调整的, 像基于模糊系统的惯性权重动态调整, 该模糊系统需要两个输入参数:当前惯性权重w和当前最好性能评价值 (CBPE) ;输出为惯性权重w的改变量。由于不同的问题有不同范围的性能评价值, 因此需要对CBPE 进行如下的规范化, 处理方式如下:
undefined
NCBPE是规范化后的评价值, CBPEmin, CBPEmax依问题而定, 且需实现得知或可估计。
Clerc在式 (1) 更新公式的基础上提出了收缩因子的概念, 该方法描述了一种选择w, c1和c2的值的方法, 以确保算法收敛。通过正确选择这些参数, 就没有必要将vid的值限制在[-vmax, vmax]之中, 改进了的速度公式为:
Vundefined=χ·[Vundefined+c1·r1· (Pundefined-Xundefined) +c2·r2· (Pundefined-Xundefined) ] (5)
在式 (5) 中undefined
式 (6) 描述的是收敛因子, φ=c1+c2>4, 通常φ的值为4.1, 则χ=0.729, 实验结果表明, 与使用惯性权重的粒子群优化算法相比, 使用收敛因子的粒子群优化算法有更快的收敛速度。
4改进学习因子
粒子群算法中的粒子在搜索过程中, 希望搜索的前阶段速度大, 达到对整个空间的搜索不至于陷于局部。对学习因子进行改进在搜索的前期c1的取值较大, c2取值较小, 目的是让粒子多向自己的最优pbest学习, 少向社会最优gbest学习, 使粒子的全局搜索能力增强。而在后阶段则相反, c1取较小值, c2取较大值, 使粒子向社会最优位置gbest的局部靠拢, 使得局部搜索增强[7]。基于这种思想, 对c1和c2做如下处理:
undefined
5粒子群初始化
研究表明, 粒子群初始化对算法性能产生一定影响[7]。为了初始种群尽可能均匀覆盖整个搜索空间, 提高全局搜索能力, Richard 和Ventura[8]提出了基于centroidal voronoi tessellations (CVTs) 的种群初始化方法;薛明志等[9]采用正交设计方法对种群进行初始化;Campana等[10]将标准PSO迭代公式改写成线性动态系统, 并基于此研究粒子群的初始位置, 使它们具有正交的运动轨迹;文献[2]认为均匀分布随机数进行初始化实现容易但尤其对高维空间效果差, 并另外比较了3种初始化分布方法。
6邻域拓扑
在标准粒子群优化算法中, 粒子群跟踪两个极值, 自身极值pbest和群体极值gbest, 称为全局版本, 基本粒子群算法属于全局版本。另一种为局部版本, 指粒子除了追随自身极值pbest, 不追踪全局极值gbest, 而是追随拓扑紧邻粒子当中的极值lbest。在局部版本中, 每个粒子需记录自己和它邻居的最优值, 而不需要记录整个群体的最优值。Kennedy指出, 全局模型虽然具有较快的收敛速度, 但更容易陷入局部极值。为了克服全局模型的缺点, 研究人员采用每个粒子仅在一定的邻域内进行信息交换, 提出各种局部模型[11]。根据现有的研究成果, 本文将邻域分为空间邻域 (spatial neighborhood) 、性能空间 (performance space) 邻域和社会关系邻域 (sociometric neighborhood) 。空间邻域直接在搜索空间按粒子间的距离 (如欧式距离) 进行划分, 如Suganthan[12]引入一个时变的欧式空间邻域算子:在搜索初始阶段, 将邻域定义为每个粒子自身;随着迭代次数的增加, 将邻域范围逐渐扩展到整个种群。性能空间指根据性能指标 (如适应度、目标函数值) 划分的邻域。
7混合策略
混合粒子群算法就是将其他算法或传统优化算法或是其他技术应用到粒子群算法中, 用于提高粒子多样性、增强粒子的全局搜索能力, 或者提高粒子局部开发能力、增强收敛速度与精度。这种结合的途径通常有两种:一是利用其他优化技术自适应调整搜索因子、惯性权值、加速常数等;二是将粒子群算法与其他进化算法操作算子或是其他技术结合。
目前有很多研究混合策略的粒子群算法, 将蚂蚁算法与粒子群结合用于求解离散优化问题;Robinson等和Juang将GA与粒子群结合分别用于天线优化设计和递归神经网络设计;将种群动态划分成多个子种群, 再对不同的子种群利用粒子群或GA或爬山法进行独立进化;Naka等将GA中的选择操作引入到粒子群中, 按一定选择率复制较优个体;Angeline则将锦标赛选择引入粒子群 算法, 根据个体当前位置的适应度, 将每一个个体与其他若干个个体相比较, 然后依据比较结果对整个群体进行排序, 用粒子群中最好一半的当前位置和速度替换最差一半的位置和速度, 同时保留每个个体所记忆的个体最好位置;El-Dib等对粒子位置和速度进行交叉操作;Higashi将高斯变异引入到粒子群中;Miranda等则使用了变异、选择和繁殖多种操作同时自适应确定速度更新公式中的邻域最佳位置以及惯性权值和加速常数;Zhang等利用差分进化 (DE) 操作选择速度更新公式中的粒子最佳位置;而Kannan等则利用DE来优化粒子群的惯性权值和加速常数。
8结束语
目前, 大多数研究者在粒子群算法方面做了这样或那样的改进, 但是对于粒子群算法的改进的总体方向没有一个全面的分析, 对粒子群的各方面的可改进的方向做了整体的分析和总结。会对粒子群算法的改进有明确的认识, 更加明确如何改进粒子群算法。
参考文献
[1]dos Santos Coelho L, Herrera B M.Fuzzy identification based on a chaotic particle swarm optimization approach applied to a nonlinear yo-yo motion system[J].IEEE Trans.Ind.Electron, 2007, 54 (6) :3234-3245.
[2]Clerc M.Initialisations for particle swarm optimization.Online at http://clerc.maurice.free.fr/pso/, 2008.
[3]Kennedy J.The particle swarm:Social adaptation of knowledge[A].in:Proc.IEEE Int.Conf.Evol.Comput[C].1997:303-308.
[4]Clerc M.Stagnation analysis in particle swarm optimiza-tion or what happens when nothing happens.Online at ht-tp://clerc.maurice.free.fr/pso/.
[5]Kennedy J.Small worlds and mega-minds:Effects of neighborhood topology on particle swarm performance[A].in:Proc.IEEE Congr.Evol.Comput[C].1999 (3) :1931-1938.
[6]王维博, 林川, 郑永康.粒子群算法中的参数的实验分析[J].西华大学学报, 2008, 27 (1) :77-80.
[7]徐生兵, 夏文杰, 代安定.一种改进学习因子的粒子群算法[J].信息安全与技术, 2007, 19 (7) :17-19.
[8]Richards M, Ventura D.Choosing a starting configuration for particle swarm optimization[A].in:Proc.IEEE Int.Joint.Conf.Neural Network.[C], 2004 (3) :2309-2312.
[9]薛明志, 左秀会, 钟伟才, 等.正交微粒群算法[J].系统仿真学报, 2005, 17 (12) :2908-2911.
[10]Campana E F, Fasano G, Pinto A.Dynamic system analy-sis and initial particles position in particle swarm optimi-zation[A].in:Proc.IEEE Swarm Intell.Symp[C].2006:202209.
[11]Kennedy J.Small worlds and mega-minds:Effects of neighborhood topology on particle swarm performance[A].in:Proc.IEEE Congr.Evol.Comput[C].1999 (3) :1931-1938.
一种改进的粒子群算法 篇10
由于粒子群算法具有收敛速度快、计算简单和易于实现等优点。因此, 它一经提出, 立刻引起计算领域学者们的广泛关注。但由于粒子群算法在对复杂函数求解时有易于陷入局部最小点的缺陷, 因此许多学者对它进行了改进。一些文献中指出具有惯性的因子不仅有效地提高了原始PSO算法的收敛速度, 而且在收敛精度上也优于原始PSO。因此, 现在对粒子群算法的研究大都是基于这个版本, 在本文中我们称之为基本PSO算法。另外一些研究人员提出了通过控制种群多样性来提高算法性能的方法, 在标准的PSO速度和位置更新的基础上添加了Gaussian等变异参数以达到脱离局部最优点的目的。Hu等人提出了基于柯西因子的变异方法, 分别通过在历史最优解和群体最优解上进行变异, 有效地改善了粒子群的局部搜索能力。但这些算法都没有很好的改善粒子的全局搜索能力, 另外也没有考虑到如何有效地平衡全局以及局部搜索的能力。
本文, 笔者首先针对以往改进PSO算法的缺点, 在有效提高PSO算法全局搜索能力的基础上, 提出了基于柯西变异的粒子群算法 (CPSO) 。该策略针对群体历史最优解能够有效地引导粒子群前进的方向的特点, 对群体历史最优解有效地运用了柯西变异因子。由于该策略不仅保证粒子在有效地进行局部搜索的前提下, 同时允许历史最优粒子对整个搜索空间进行搜索, 从而保证改进以后的粒子群算法能够更为快速有效地进行全局搜索。
一、基本粒子群算法介绍
考虑全局优化问题 (P) min{f (x) ∶xΩ⊆Rn}, f∶Ω⊆Rn→R1, 则问题 (P) 的多个可行解的一个集合称为一个种群 (swarm) 。种群中的每个元素 (可行解) 称为一个粒子 (particle) , 微粒的个数称为种群规模 (size) 。我们用n维向量X1= (xi1, xi2, …, xin) T来表示第i个粒子的位置, 用V1= (vi1, vi2, …, vin) T来表示第i个微粒的速度。微粒在搜索空间飞行过程中, 它自身经历的最佳位置为P1= (ppi1, ppi2, …, ppin) T, 所有微粒经历过的最佳位置用索引号g来表示, 即Pg。因此, 微粒在每一次迭代中的速度和计算函数的评价函数的位置可通过如下两个公式计算:
其中:i=1, 2, …, m;d=1, 2, …, n;w称为惯性因子, 根据文献设置为大小随着迭代次数的减少由0.9下降到0.4。rand1和rand2是服从U (0, 1) 分布的随机数。学习因子C1和C2为非负常数, C1=C2=2;vid=[-Vmax, Vmax], Vmax是由用户设定的速度上限。
二、基于柯西变异的PSO算法
基于变异因子的粒子群算法主要是借鉴遗传算法中的变异因子来改善粒子群算法的全局搜索能力。但和遗传算法不同的是, 变异系数不仅仅局限于均匀分布函数。比较常用的是高斯变异、柯西变异等。以原点为中心的Gaussian和Cauchy分布的概率密度函数分别为:
其中为了覆盖整个解空间, Gaussian和Cauchy分布的参数分别设置为s=0.16、a=0.32。
从图1中可以看出, 在峰顶附近, 同等条件下, 柯西函数能够产生出更小的函数值, 那也就意味着柯西函数能够更为频繁和精确的在当前解的附近区域进行有效地局部搜索。而在两个函数图形的尾部, 柯西函数有着更大的概率来跳出局部点。
综上所述, 本文选择柯西函数作为粒子群的变异因子。
其中t是在[-1, 1]内的随机数。算法迭代过程描述为
Initialize population:random Xi
repeat:
until termination criterion is satisfied
三、对比试验
1. 实验设计。
为了分析本文提出的CPSO的总体性能, 本文设计了4类测试实验, 即PSO优化试验、GPSO优化试验、IPSO优代化试验和CPSO优化试验, 同时引入5个Benchmark优化问题来进行分析, 根据对测试函数和测试标准的规定, 函数形式以及搜索范围的设置见表1。研究结果表明粒子群的数目对于PSO算法的性能影响不大, 同时由于过多的粒子数目会增加算法的时间复杂度, 因此本文测试的粒子群数目设置为20。基本PSO中使用的vmax设置为xmax。另外针对Matlab语言的特点, 使用rand (‘state’, sum (i*30) ) 语句以保证每种算法运行时对应的rand函数种子相同 (其中i表示在算法中的当前运行次数) , 每一种算法独立运行50次。
测试函数中f1至f3是单模函数, 对于单模函数来说, 算法的收敛速度比实验结果更值得关注, 因此本文在列出比较结果的同时也列出比较函数在单模函数上的收敛比较图;对于f4至f6这种高维的多模函数, 实验结果的精度比收敛速度更值得关注, 因此在本文中列出了各种比较算法解的平均值和标准方差。对于以上两种函数本文分别测试各种比较算法在10、20以及30维下的运行情况。f7是具有较少局部最优点的低维函数, 用以测试比较算法在低维函数上的运行情况。所有测试函数的理论最优解都为0。
2. 实验结果及分析。
对于单模函数来说, 由于CPSO针对gbest使用了cauchy变异因子, 因此能够在当前历史最优解附近进行有效地搜索。根据表2的结果可以看出, 在单模函数上, 相对于其他比较函数来说, CPSO都获得了最优的成绩。另外, 图2的结果论证了该算法在收敛速度上都优于比较函数。
对于复杂的多模函数, 由于WPSO相对于其他比较算法来说粒子具有更强的跳出局部最小点的能力, 同时由于gbest能够提供给粒子群更为有效的进化方向, 因此相对于其他算法来说, CPSO可更彻底的搜索了解空间。根据实验结果无论是全局搜索能力还是稳定性, CPSO都获得了最好的成绩。对于低维函数的优化能力参考表3的结果, CPSO依然获得了最好的结果。
一种改进的粒子群算法 篇11
1 改进粒子群优化算法
1.1 标准粒子群算法
设一个有N个粒子的种群在D维搜索空间中飞行。 种群中某个粒子i在第t代的位置为
粒子i迄今为止搜索到的体极值为
整个种群迄今为止搜索到的全局最优值为
标准粒子群算法中粒子i位置和速度的更新公式如下:
从 (5) , (6) 式可以看出: 速度更新公式由以下几部分决定粒子的速度: (1) 惯性权重 ω, 体现当前速度和上一时刻速度之间的关系; (2) 学习因子c1 也被称为加速度常量, 它反映了粒子飞行过程中自己的最好位置对自己本身飞行的影响也称为认知项, 决定粒子的搜索能力; (3) 学习因子c2, 是另外一个加速度常量, 它反映了整个种群记忆中的最好位置对粒子本身的影响, 体现粒子之间的信息共享能力, 又被称为社会学习系数[6]。
1.2 惯性权重概略
在粒子群算法的参数改进方面惯性权重是一个重要的参数, 它的大小决定了粒子对当前速度的继承程度, 它说明了当前的飞行速度和先前飞行速度的关系, 选择合适的惯性权重有利于平衡粒子的全局搜索能力和局部搜索能力。 当惯性权重较大时, 全局搜索能力强, 局部搜索能力弱, 当惯性权重小时, 全局搜索能力弱, 局部搜索能力强, 由于标准粒子群算法在搜索过程中惯性权重保持不变, 粒子不具有这种动态寻优的意识, 因此应当根据粒子在寻优过程中的动态特征, 使粒子前期具有较高的全局搜索能力以保证能较快寻得合适的位置, 而后期具有较高的开发能力, 加快收敛速度, 提高精度。 Shi和Eberhart的惯性权重线性递减策略在目前应用最为广泛, 但由于在这种策略下迭代初期全局搜索能力较强, 如果在初期搜索不到最好点, 那么随着 ω 的减少局部搜索能力加强就陷入局部最优。
1.3 改进粒子群算法主要思想
结合Shi和Eberhart提出的线性惯性权重策略中利用的迭代次数用以调整惯性权重的递减特点和粒子寻优过程的位置分布, 提出另外一种非线性动态的惯性权重方法, 更加科学地使得算法在进化初期 ω 的减小趋势缓慢, 全局搜索能力加强, 算法后期一旦找到合适的适应值可以使得算法的收敛速度加快, 在一定程度上减弱了典型线性策略的局限性。 由于算法前期粒子具有多样性, 一旦找到最优置, 粒子将通过群体的信息共享的方式朝当前最好位置的方向聚集收敛。 用某一时刻粒子与当前全局最优位置之间的欧式距离d达到给定的聚集精度r的粒子个数M来表示聚集的粒子数, 这里把它称之为佳粒子, 用当前聚集在最好位置范围内的佳粒子数M与总粒子数N的比值U表示在最好位置的范围内粒子的收敛程度, 具体表达式如下
为克服粒子惯性权重前期粒子可能聚集度高, 粒子陷入最优, 克服后期可能聚集度低, 收敛速度慢的特点综合考虑粒子的聚集度和考虑迭代次数的综合作用, 通过正规化的方式, 结合幂函数的特点, 进行粒子惯性权重的调整。 具体过程如下:
为得到控制权重的控制因子, 将涉及的影响因素表示成以下矩阵: (8) , 再通过列正规化和行正规化[7]得到影响因素的一个权重矩阵: (9) , 令k= (a1+b1) / (a1+b1+c1+d1) , 结合幂函数的图像变化规律, 对K进行操作得到控制因子z=kh (10) , 其中a1=M/N, b1=T/TMAX, c1= (N-M) /N, d1= (TMAX-T) /TMAX (11) 。
用z对提出的线性策略加以改进, 得到动态惯性权重表达式为ω=ωstart-z* (ωstart-ωend) (12) 。
以此惯性权重来更新速度。
1.4 算法流程
step1 设置相关参数, 初始化种群位置、 速度, 设置聚集精度r, 计算并初始化粒子的个体极值、 种群的全局最优值。
step2 根据某一时刻粒子的佳粒子数和当前的迭代次数等因素依次用 (7) 、 (8) 、 (9) 、 (10) 、 (11) 、 (12) 式子计算权重, 并根据式 (5) 、 式 (6) 更新粒子的速度位置, 计算粒子的适应值fitness, 更新粒子个体极值和种群全局最优值。
step3 是否满足最大迭代次数停止条件, 若是, 输出全局最优值, 停止迭代; 否则, 转向step 2。
2 实验仿真
为验证改进算法是否具有一定的优越性, 利用Matlab软件对改进后的算法进行编程, 并选取经典测试函数中比较有代表性的单峰函数Sphere函数和多峰函数Griewank函数对算法进行测试并与参数设置具有代表的标准粒子群算法作比较。由于标准测试函数都是经过精心设计和严格测试的, 如果某一优化算法能解决某一个标准测试问题则可以认为他在大量的问题上会有良好的表现[7]。
2.1 实验参数讨论和设置
算法中引入的开始时的惯性权重 ωstart和结束时的惯性权重end、 学习因子c1 和c2、 收敛于最优值周围的精度r对算法的性能有一定的影响。 通过多次实验比较, ω 设置为0.7298-0.4 的范围, c1 和c2 均采用值1.4962,
用测试函数sphere测试算法时, 将种群数设置为80, 维数设置为3, 上下限为[5, -5], 最大速度设置为Vmax=1.2, 控制因子k的次数设置为h=1。 迭代次数设置为50、 100、150、 200、 150、 500、 1000、 1500; 用Griewank函数测试算法时将种群设置为80, 维数设置为3, 上下限设置为[-5, 5] , 最大速度设置Vmax=1.2, 迭代次数设置为50、 100、150、 200、 150、 500、 1000、 1500, 控制因子k的次数设置为h=1。 运行次数均设置为20 次。
2.2 实验结果
(1) 函数对两种算法的测试结果
Sphere函数对两种算法的测试结果如表1, 表2 所示。
(2) Griewank函数对两种算法的测试结果, 如表3, 表4所示。
3 实验结果分析
从数据结果来看, 单峰函数Sphere函数测试的最优值在每次设置的迭代次数中改进后的算法都要明显优于标准算法, 而对多峰函数Griewank函数, 则在较少的迭代次数中效果要优于标准算法, 并且改进后的算法收敛的速度要快一些。 另外当维数变化时, 以及h的值取2, 4, 6, 8 等值时均能得到较好的结果。 通过利用粒子的聚集程度和迭代次数的结合对惯性权重进行动态改进, 平衡了固定惯性权重在搜索方面的不足, 通过实验结果分析, 改进后的粒子群算法在寻优方面比标准粒子群算法要具有一定的优越性。
参考文献
[1]郭文忠, 陈国龙.离散粒子群优化算法及其应用.北京:清华大学出版社, 2012.
[2]刘晶晶.粒子群优化算法的改进与应用.武汉理工大学, 硕士学位论文, 2007.
[3]王俊伟.粒子群优化算法的改进与应用.博士学位论文, 2006.
[4]徐生兵, 夏文杰, 冯继强.一种改进的粒子群优化算法[J].计算机与现代化, 2015, 3.
[5]杨华芬, 董德春, 杨丽华, 李丽.一种改进的粒子群优化算法[J].重庆师范大学学报, 2015, 32 (5) .
[6]沈显君.自适应粒子群优化算法及其应用.清华大学出版社, 2015.
[7]谭跃进, 等.系统工程原理.北京:科学出版社, 2010.