—180—基于Tent 混沌序列的粒子群优化算法田东平1,2(1. 宝鸡文理学院计算机软件研究所,宝鸡 721007;2. 宝鸡文理学院计算信息科学研究所,宝鸡 721007)摘 要:针对粒子群优化算法易陷入局部极值和进化后期收敛速度缓慢的问题,提出基于Tent 混沌序列的粒子群优化算法,应用Tent 映射初始化均匀分布的粒群,提高初始解的质量,设定粒子群聚集程度的判定阈值,并引入局部变异机制和局部应用Tent 映射重新初始化粒群的方法,增强算法跳出局部最优解的能力,有效避免计算的盲目性,从而加快算法的收敛速度。
仿真实验结果表明,该算法是有效的。
关键词:粒子群优化算法;Tent 映射;变异机制;判定阈值;收敛速度Particle Swarm Optimization AlgorithmBased on Tent Chaotic SequenceTIAN Dong-ping 1,2(1. Institute of Computer Software, Baoji University of Arts and Science, Baoji 721007;2. Institute of Computational Information Science, Baoji University of Arts and Science, Baoji 721007)【Abstract 】Aiming at the problems of easily getting into the local optimum and slowly converging speed of the Particle Swarm Optimization(PSO) algorithm, a new PSO algorithm based on Tent chaotic sequence is proposed. The uniform particles are produced by Tent mapping so as to improve the quality of the initial solutions. The decision threshold of particles focusing degree is employed, and the local mutation mechanism and the local reinitializing particles are introduced in order to help the PSO algorithm to break away from the local optimum, whick can avoid the redundant computation and accelerate the convergence speed of the evolutionary process. Simulation experimental results show this algorithm is effective. 【Key words 】Particle Swarm Optimization(PSO) algorithm; Tent mapping; mutation mechanism; decision threshold; convergence speed计 算 机 工 程 Computer Engineering 第36卷 第4期Vol.36 No.4 2010年2月February 2010·人工智能及识别技术· 文章编号:1000—3428(2010)04—0180—03文献标识码:A中图分类号:TP301.61 概述粒子群优化(Particle Swarm Optimization, PSO)算法是种进化算法,是Kennedy 等人在对鸟类、鱼类群集活动时所形成的协同智能进行总结而提出的[1]。
与其他进化算法相比,PSO 算法简单通用、易于实现、可调参数少,具有较强的全局收敛能力和鲁棒性,且不需要借助问题的特征信息,非常适于对复杂环境中优化问题的求解。
目前,PSO 算法已被广泛应用于函数优化、神经网络训练、模糊系统控制等领域。
然而,与其他全局优化算法类似,PSO 算法亦有其不足:易陷入局部极值点,进化后期收敛速度缓慢、精度较差等。
文献[2]介绍了一种自适应逃逸微粒群算法,通过逃逸运动,使微粒能够有效地进行全局和局部搜索,减弱了随机变异操作带来的不稳定性。
但是,不论是基本PSO 算法还是此处的自适应逃逸PSO 算法,它们都具有不稳定性,究其原因是算法在初始化阶段微粒分布不均匀而造成的。
文献[2]只指出算法不稳定性的原因,而并没有给出具体的解决方案。
为此,本文提出基于Tent 混沌序列的粒子群优化算法。
2 粒子群优化算法粒子群优化算法的基本思想源于鸟群飞行的觅食行为。
在PSO 系统中,每个备选解被称为一个“粒子”,多个粒子共存与合作寻优。
而每个粒子根据其自身“经验”和相邻粒子群的最佳“经验”,在问题解空间中向更好的位置“飞行”,以便搜索最优解。
PSO 算法的数学表示如下: ()()()()()()11221id id id id gd id v t v t c r p t x t c r p t x t ω+=×+××−+⎡⎤⎣⎦⎡⎤ ××−⎣⎦(1)()()()11id id id x t x t v t α+=+×+ (2)其中,()1id x t +,()id x t ,()1id v t +,()id v t 分别表示第i 个粒子在1t +和t 时刻的空间位移与运动速度;ω为惯性因子;12,c c 分别表示粒子个体的加速权重系数和粒子群体的加速权重系数;12,r r 为[0,1]之间的随机数;()(),id gd p t p t 分别表示第i 个粒子个体在搜索过程中的最佳位置和粒子群体在搜索过程中的最佳位置。
3 基于Tent 混沌序列的粒子群优化算法3.1 混沌映射与混沌序列一般将由确定性方程得到的具有随机性的运动状态称为混沌,呈现混沌状态的变量称为混沌变量。
混沌是存在于非线性系统中的一种普遍现象,一个混沌变量在一定范围内具有随机性、遍历性和规律性的特点。
利用混沌变量的这些特征进行优化搜索,能使算法跳出局部最优,保持群体的多样性,改善算法的全局搜索性能。
然而,不同的混沌映射算子对混沌寻优过程有很大的影基金项目:陕西省教育厅科研计划基金资助项目(09JK335)作者简介:田东平(1981-),男,讲师、硕士,主研方向:模糊推理,专家系统,智能优化计算收稿日期:2009-11-20 E-mail :tdp211@—181—响。
目前文献中引用较多的是Logistic 映射算子。
文献[3]通过比较指出Tent 映射比Logistic 映射具有更好的遍历均匀性和更快的迭代速度,并经过严格数学推理,论证了Tent 映射具有作为优化算法混沌序列的前提条件。
Tent 映射又称为帐篷映射,其表达式如下式:()1201221121k k k k k x x x x x + ⎧⎪=⎨− <⎪⎩≤≤≤ (3)理论研究表明[3]:Tent 映射经贝努利移位变换后可以表示成如下形式:()12mod1k k x x += (4)因此,根据Tent 映射,可按如下步骤在可行域中产生粒子i 的混沌点列:Step1 取初值0x (0x 应避免落入小周期点内,如4周期(0.2,0.4,0.8,0.6)),记入标志组()0,1,1z z x i j ===。
Step2 利用式(4)进行迭代,i 自增1,产生x 序列。
Step3 如果迭代达到最大次数,则转向执行Step5;否则,若产生的x 序列落入不动点或5周期以内的小循环(如(){}0,0.25,0.5,0.75x i =或者()(){},0,1,2,3,4x i x i k k =−=),则转向执行Step4;若产生的序列未出现上述情况,则转向执行Step2。
Step4 改变迭代初值()()()1,1x i z j z j j j ε=+=+=+,返回Step2。
Step5 程序运行结束,保存产生的x 序列。
3.2 算法设计思想与实现流程针对PSO 算法易陷入局部极值和进化后期收敛速度缓慢的缺点以及文献[2]中指出由于算法在初始化阶段微粒分布的不均匀而导致算法的不稳定性等原因,本文提出基于Tent 混沌序列的PSO 算法。
一方面,应用Tent 映射初始化均匀分布的粒群,提高了初始解的质量;另一方面,设定粒子群聚集程度的判定阈值,经判断若知算法出现“聚集”现象,则计算粒群中每个粒子的适应度值()1,2,,i f i N ="和整个粒群的平均适应度值()11Ni i f f x N ==∑(其中,N 为群体中粒子数目),并依据f 将整个群体一分为二:对适应度值小于或等于f 的粒子,将粒子所在位置i x 增加随机扰动,即()1i i x x η=×+,其中,η是服从高斯分布的随机变量;对适应度值大于f 部分的粒子,应用3.1节中的Tent 映射,重新初始化并择优选取相同数量的粒子。
此处先计算并判断粒子的聚集程度,旨在明确算法的下一步具体执行策略,以避免盲目的变异和重新初始化而引起的大量运算,进而影响算法的收敛速度;将粒子群一分为二,对比较“聚集”部分的粒子实施高斯变异,对比较“发散”部分的粒子,应用Tent 映射初始化生成分布均匀的粒群,由变异和重新初始化两部分构成当前进化代新的群体,从而增强算法跳出局部最优解的能力。
为了判定粒子群的聚集程度,此处引用了粒子间最大聚集距离的计算式[4]:1,2,,max i mMaxDist ==" (5)其中,m 为相邻子群粒子数;ld p 为历史最佳位置;id x 表示第i 个粒子的第d 维分量。
由上述分析可知,基于Tent 混沌序列的PSO 算法的实现流程如下:Step1 应用3.1节中的Tent 混沌映射算法,在可行域中产生N 个粒子的初始位置;随机初始化各粒子的初始速度。
Step2 将第i 个粒子的pBest 设置为该粒子的当前位置,gBest 设置为初始群体中最佳粒子的位置。
Step3 计算粒子间最大聚集距离,判断算法是否陷入局部最优,若是则执行Step4;否则转Step5。
Step4 计算出每个粒子的适应度值()1,2,,i f i N ="和粒子群体的平均适应度值f 。
(1)对于所有的i f f ≤的粒子,由于出现“聚集”现象,因此将其对应的位置量i x 进行变异,即()1i i x x η=×+,其中,η是服从高斯分布的随机变量。