一种新的自适应混沌粒子群算法

2012-11-21 03:01李梦霞
长江大学学报(自科版) 2012年34期
关键词:测试函数荆州扰动

李梦霞

(长江大学信息与数学学院,湖北 荆州 434023)

关 雪

(江汉机械研究所,湖北 荆州 434000)

吕一兵,陈 忠

(长江大学信息与数学学院,湖北 荆州 434023)

一种新的自适应混沌粒子群算法

李梦霞

(长江大学信息与数学学院,湖北 荆州 434023)

关 雪

(江汉机械研究所,湖北 荆州 434000)

吕一兵,陈 忠

(长江大学信息与数学学院,湖北 荆州 434023)

提出了一种新的自适应混沌粒子群算法。在标准粒子群算法中引入An混沌映射,以特殊的方式,利用An混沌映射来初始化粒子的位置和速度,并且每隔一定的代数就用An混沌扰动部分粒子的位置和速度。数值仿真的结果表明,该算法的收敛性和全局搜索能力得到提高,能有效避免早熟收敛。

混沌;粒子群算法;适应度值;收敛速度

粒子群算法(PSO)是群随机搜索算法,其产生受到了鸟群的个体行为和群体行为的启发。群体中的成员通过通信分享在对环境的搜索中发现的共同目标。原始的PSO是Kennedy和Eberhart提出的,后来,Shi等对速度项引入惯性权重,得到了标准PSO形式[1]。现在,标准PSO是一种流行的优化算法,被应用于神经网络训练、控制、电力系统、管理设计、系统辨识和状态评估等多方面。PSO的流行部分是因为它形式简单,更主要是因为它能以较低的消耗获得好的结果[2]。PSO适合于搜索空间大且具有许多局部极小值的问题(以求最小值点为例)或者是目标函数的性质很差的问题。

在应用中,PSO表现出早熟收敛的问题,一种解决方法是引入跳出局部最优的机制。混沌因为具有随机性和遍历性,所以它是一种合适的机制[3]。下面,笔者利用An混沌来帮助PSO跳出局部最优,提出了一种新的自适应混沌粒子群算法(AC-PSO)。

1 An混沌与标准PSO

1)An混沌 An提出了一种随机数产生格式[4]:

(1)

式(1)能产生周期为无穷的序列,其经验分布为F(y)=(ln(y+1/2)+ln(2))/ln(3)。根据cxi=(ln(yi+1/2)+ln(2))/ln(3)得到的序列{cxi}可以看作是服从[0,1]上均匀分布的随机数列。

(2)

式中,pi,j表示第i个粒子到目前为止找到的最优解的第j个分量的值;pi=〈pi,1,…,pid〉被称为个体最优;pg,j表示粒子群(S)到目前为止找到的最优解的第j个分量的值;pg=〈pg,1,…,pg,d〉 被看做领导粒子,pi和pg,每个粒子都能够同时利用个体和群体信息来更新自己的速度和位置;c1,c2∈R是学习因子,分别代表了个体最优解和全局最优解的影响权重;r1,r2是[0,1]上均匀分布的独立随机数;w是迭代权重,它能够调整过去速度在当前速度中的份额,影响算法的局部和整体开发能力,Shi等[2]指出:w随着迭代次数的增加从0.9线性减小到0.2,可以增加算法的收敛性。对w的修改记为w=(wstart,wf,wend),其中,wstart和wend分别表示w的初始值和最终值,不是在所有的迭代次数中w都变小,对应w变小的迭代次数占总迭代次数的比例记为为wf。这样,w按照下式变小:

(3)

式中,T表示最大迭代次数;w从迭代次数t=1(此时w=wstart)直到t=⎣T×wf⎤递减变小(此后w=wend)。

2 AC-PSO

1)初始化 设置p(1)是[0,1]中的一个随机数,产生p(2),p(3),…,p(I×d),其中I是群体规模,d是问题维数。这样,p是一个I×d维的向量,其元素的取值范围是[0,1]区间。从p中依次取出d个数,每d个数构成一个向量,将每个元素映射到相应的区间[aj,bj]后,就得到了各个粒子的的初始位置。

采用类似途径可以得到各个粒子的初始速度。

2)更新方程 为了充分利用An混沌的优良性质,不仅利用An混沌做初始化,而且每L次迭代就利用An混沌扰动部分粒子的速度和位置。

3)算法设计 算法步骤如下:

步1初始化学习因子c1=c2=2;总迭代次数T=1000;群体规模I=10;问题维数J;惯性权重w=(0.9,0.5,0.2);扰动比率λ=0.5;扰动周期L=40;计算w的减小步长wdec=(wstart-wend)/⎣T×wf⎤;初始化粒子群各粒子的位置、速度。

步2计算适应度值,确定粒子群的全局最优位置gbest,粒子本身经历的最优位置pbesti,i=1,2,…,I。转步3;

步3若迭代次数小于⎣T×wf⎤,w按照式(3)递减,粒子的位置和速度按照式(2)更新;迭代次数增加1。更新gbest,pbesti。若迭代次数等于L的整数倍,转步4,否则转步5;

步4对粒子群进行混沌扰动,更新gbest,pbesti,转步5;

步5若迭代次数小于T,转步3,否则,转步6;

步6输出最终结果:gbest,最优函数值。

3 仿真试验

采用实数编码,惯性权重按照式(3)递减,采用表1所示测试函数评估AC-PSO的性能。

表1 测试函数

表2 测试PSO和AC-PSO采用的参数

表2显示了测试算法采用的参数,算法分别运行20次,各算法每次运行迭代1000次。

图1和表3对比了对表1中测试函数的优化结果,该结果是20次运行结果的平均值。运行中,PSO采用随机初始化,AC-PSO则采用前迭初始化方式。

从图1和表3可以看出,在表1的参数下,对所有的测试函数AC-PSO算法优于标准粒子群算法,PSO算法在早期迭代中寻优能力优于AC-PSO,AC-PSO算法在迭代后期寻优能力优于PSO。

a-f:对应函数1-6;实线对应AC-PSO、虚线对应PSO。图1 测试函数的优化结果

表3 不同问题的PSO与AC-PSO算法的仿真结果

4 结 语

提出了一种新的算法,即AC-PSO。新算法引入了新的位置和速度更新规则:以特殊方式利用An混沌初始化粒子群的位置和速度,在一些特定迭代次数时,利用An混沌扰动部分粒子的速度和位置。在一些测试函数上,AC-PSO的性能优于PSO,具备了较好的抗早熟能力。

[1]Shi Y,Eberhart R C.A Modified Particle Swarm Optimizer[A].In Proceedings of the IEEE Congress on Evolutionary Computation[C].IEEE Press,1998: 69-73.

[2]Reyes M, Coello C.Multi-objective particle swarm optimizers: A survey of the state-of-the-art[J].International Journal of Computational Intelligence Research,2006,3(2): 287-308.

[3]Li B,Jiang W S.Optimizing Complex Function by Chaos Search[J].Cybernetics and Systems,1998,29: 409-419.

[4]Feng Yan.Study and realization for a new generation method of random nuber[D].Beijing: Beijing University of Technology,2002.

[编辑] 洪云飞

10.3969/j.issn.1673-1409(N).2012.12.034

TP301.6

A

1673-1409(2012)12-N105-03

猜你喜欢
测试函数荆州扰动
Bernoulli泛函上典则酉对合的扰动
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
基于博弈机制的多目标粒子群优化算法
荆州棗林鋪楚墓出土卜筮祭禱簡
(h)性质及其扰动
崛起的荆州诗歌
小中见大尺水兴波(外一篇)——李白《秋下荆州》
具有收缩因子的自适应鸽群算法用于函数优化问题
荆州:湘鄂西苏区的中心地带