1、智能单粒子优化算法摘要:本文在传统粒子群优化(Particle Swarm Optimization, PSO)算法的基础上,提出了智能单粒子优化算法(Intelligent Single Particle Optimizer, ISPO) 。与传统的 PSO 算法不同,该算法采用了一个粒子在解空间中搜索,粒子的位置矢量被分成一定数量的子矢量,并基于子矢量对粒子进行更新。在子矢量更新过程中,通过分析之前的速度更新情况,引入一种新的学习策略,使粒子在搜索空间中能够动态地调整速度和位置,从而向全局最优靠近。实验表明,此算法对大部分标准复合测试函数都具有很强的全局搜索能力,其寻优能力超过了国际上最近
2、提出的基于 PSO 的改进算法。关键词:智能单粒子优化,粒子群优化,子矢量,学习策略A Novel Intelligent Single Particle OptimizerAbstract: Intelligent single particle optimizer (ISPO) is proposed based on conventional particle swarm optimization (PSO). ISPO applies a particle, which is different from conventional PSO, to search in the probl
3、em space. The whole position vector of particle is split into a certain number of subvectors, and the particle is updated based on these subvectors. During the process of updating each subvector, a novel learning strategy is introduced based on the analysis of previous velocity subvectors, and the p
4、article adjusts its velocity and position subvector dynamically. Experimental results have demonstrated that ISPO has an outstanding ability to find the global optimum. ISPO performs much better than most recently proposed PSO-based algorithms on the optimization of most complicated composition test
5、 functions.Keywords: Intelligent single particle optimizer, Particle swarm optimization, Subvector, Learning strategy1 引言1995 年 Eberhart 博士和 Kennedy1博士基于鸟群觅食行为提出了粒子群优化算法(Particle Swarm Optimization, PSO) 。由于该算法概念简明、实现方便、收敛速度快、参数设置少,是一种高效的搜索算法,近年来受到学术界的广泛重视。但在优化复杂函数时,PSO 算法很容易陷入局部最优,并出现早熟收敛现象。为了提高算法的
6、收敛性能,随后出现了各种基于不同思想的改进算法。其中在对于基本粒子群算法进化方程的改进方面,Shi 和 Eberhart2于 1998 年对 PSO 算法的速度项引入了惯性权重,并提出在进化过程中动态调整惯性权重以平衡收敛的全局性和收敛速度。后来 Shi 和 Eberhart3又提出了基于模糊系统的惯性权重的动态调整,从而实现对惯性权重的非线性控制。此外 Clerc45提出带收缩因子的粒子群算法,以确保算法收敛。在借鉴其它优化方法的思想方面,也出现了各类的改进粒子群算法,如 Angeline6于 1999年借鉴进化计算中的选择概念,将其引入到 PSO 算法中,从而淘汰差的粒子,将具有较高适应值
7、的粒子进行复制以产生等数额的粒子来提高算法的收敛性,随后 Angeline7又提出了借鉴杂交的改进粒子群算法。在利用小生境思想方面,P. N. Suganthan8于 1999 年提出一种基于领域思想的粒子群算法,其基本思想是在算法开始阶段,每个个体的领域为其自身,随着进化代数的增长,其领域范围也在不断增大直至整个种群。为进一步改善算法性能,避免过早收敛的现象,J. Kennedy9于 1999 年提出几种基本的领域结构,如环形结构和轮形结构及它们的推广。近来性能较为显著的基于 PSO 算法的改进算法有 Thanmaya Peram10等人于 2003 年提出的基于粒子群优化的适应值-距离-
8、比例算法(Fitness-Distance-Ratio based Particle Swarm Optimization, FDR-PSO),在此算法中每个粒子根据一定的适应值- 距离- 比例原则,向附近具有较好适应值的多个粒子进行不同程度的靠近,而不仅仅只向当前所发现的最好粒子靠近。此算法改善了 PSO 算法的早熟收敛问题,在优化复杂函数方面,其性能得到了较大改善。F. Bergh11等人于 2004 年提出了协同粒子群优化算法(Cooperative Particle Swarm Optimizer, CPSO),采用多个协同工作的子粒子群对解向量的不同部分分别进行优化,达到较好的寻优结
9、果。为防止 PSO 算法陷入局部最优,J. J. Liang12等人于 2006 年提出了综合学习粒子群优化算法(Comprehensive Learning Particle Swarm Optimizer, CLPSO),使得每个粒子的速度更新基于所有其它粒子的历史最优位置,从而达到综合学习的目的。但上述算法在优化复杂高维多模函数时,容易陷入局部最优,且解与全局最优值相差较大。本文基于传统粒子群算法,提出了智能单粒子优化算法(Intelligent Single Particle Optimizer, ISPO)。在ISPO 算法的优化过程中,算法不是对整个速度矢量或位置矢量同时进行更新,
10、而是先把整个矢量分成若干子矢量,并按顺序循环更新每个子矢量。在子矢量的更新过程中,此算法通过引入一种新的学习策略,使得粒子在更新过程中能够分析之前的速度更新情况,并决定子矢量在下一次迭代中的速度。而在传统粒子群算法中,粒子只是简单的个体,不具备分析之前速度更新情况的能力。实验结果表明,此算法在优化复杂的具有大量局部最优点的高维多模函数方面具有一定的优势,其性能显著优于最近提出的粒子群改进算法的性能,且其解非常接近全局最优点。2 PSO 算法在一个 D 维的目标搜索空间中,由 n 个粒子构成一个群体,其中第 i 个粒子(i=1,2, n)的位置可表示为 D 维的位置矢量 。n 也被称为群体规模,
11、过大的 n 会影响算法的12(,)iiidiDzz 运算速度和收敛性。根据一定标准计算 当前的适应值,即可衡量粒子位置的优劣。每次迭代中粒子 i 移动的距离为粒子的飞行速度或者速度矢量,表示为 ,粒子迄今为止搜索到12(,)ii iDidvv 的最优位置为 ,整个粒子群迄今为止搜索到的最优位置为12(,)ii iDidpp 。每次迭代中,粒子根据以下式子更新速度和位置:12(,)gggdgDp 12()()kkkkiididigdivwcrzcrpz(1) 11kkidiidv(2) 其中 , 是迭代次数, 和 为0,1之间的随机数构成的矢量。 和 为学习因子,也称1,2in k1r 1c2加
12、速因子,其使粒子具有自我总结和向群体中优秀个体学习的能力,从而向自己的历史最优点以及群体内历史最优点靠近。速度 取值范围为 , ,位置 的取值范围为 , 。idvminvaxidzminzax3 智能单粒子优化算法在 ISPO 算法的优化过程中,算法并不是对整个速度矢量或位置矢量(即所有维的数值)同时进行更新,而是先把整个矢量分成若干个子矢量,并基于子矢量进行粒子更新。在子矢量的更新过程中,通过引入一种新的学习策略,使其对之前的速度更新情况进行分析,并决定下一次迭代的速度,从而实现对速度的动态调整。3.1 子矢量大部分随机优化算法(包括粒子群算法和遗传算法等 )的性能随维数增加而变差。在更新过
13、程中,传统的 PSO 算法往往同时改变整个解矢量中各维的数值,并根据更新后的解矢量得到一个适应值(Fitness value) ,从而判断解矢量的适应程度。此适应值能够判断解矢量的整体质量,但不能判断部分维是否向最优方向移动。例如,在解决三维函数问题中,其全局最优为0,0,0 ,解的初始值设为1,1,1 ,给其一个随机扰动0.2,-0.5,0.3 ,可得到更新后的解为1.2,0.5,1.3。假设更新后的解的适应值比初始值对应的适应值有所提高,则在下一次迭代中解将会在某种程度上向0.2,-0.5,0.3方向移动。此时,虽然第二维的数值向全局最优靠近,但第一维和第三维的数值却远离了全局最优。因此,
14、对于高维函数,一般 PSO 算法很难兼顾所有维的优化方向。为解决这个问题,在保证粒子能够搜索到空间中的每个区域的同时,可把搜索空间分解成若干个低维小空间进行搜索。在本文提出的 ISPO 算法中,一个粒子代表着整个位置矢量。在更新过程中,把整个 D 维的解空间分成 m 部分,即把整个位置矢量分成 m 个位置子矢量,其中每一位置子矢量与其对应的速度子矢量分别表示为 和 , 。为简单起见,设 D 刚好被 m 整除,则每个子矢量包括了 l (l=D/m) 维,如jzjv1,图 1 所示。1 l (j-1)l+1 jl D- +1l Dzjzmz 子矢量 1 子矢量 j 子矢量 m图 1 位置子矢量示意
15、图对于维之间相关性较大的函数,需根据函数特征来决定子矢量的个数。如图 2 所示,假设全局最优点为(0,0),而( k1,k2)为直线 x=k1 和 y=k2 上的最优解。把初始值设在 (k 1,k2),并在更新过程中轮流更新每一维。在更新其中一维的数值时需保持另一维的数值不变。由于(k 1,k2)为两直线上的最优解,所以对这两维数值进行轮流更新将会导致解跳不出局部最优(k 1,k2)。此时,如果同时改变两维的数值,解有可能会跳出局部最优点,并到达全局最优。因此在解决不同问题时,需根据维之间的相关性来决定每个子矢量所包含的维数。k1k200(k1,k2)xy图 2 维相关性示意图3.2 子矢量的
16、更新过程ISPO 的更新过程是基于子矢量,按先后顺序(从 到 )进行循环更新。在更新第1zm个子矢量的过程中,将按以下的速度和位置更新公式迭代执行 N 次:(1)jm(3)(/)kjpkjabvrL(4)112 if ()k kjjkj kfzx(5)112/ if()kjj ksfLv其中 ; ; 。参数112,kkjmxzz 12,kjjmxzvz 1,2.kN为学习变量,用于分析之前速度的更新情况,从而决定下一次迭代的速度;随机矢量 在-0.5,0.5范围L r内服从均匀分布;多样性因子 、下降因子 、收缩因子 和加速度因子 为常数; 为评aps()b( )f估算法性能的适应值。在子矢量
17、更新过程中,位置子矢量由速度子矢量决定。速度子矢量由两部分组成:多样性部分和学习部分 。在多样性部分中, 控制随机矢量 的幅度,而 控制幅度的下降梯(/)pakrkjbLarp度。由于 是随迭代次数增加而下降的幂函数,所以粒子在优化前期更趋向于全局搜索,并随更新/过程逐渐从全局搜索向局部搜索转换。学习部分 完成一种新的学习策略,其中学习变量 能够根kjbLL据之前的速度更新情况而动态地调整速度子矢量。学习部分在更新过程中所起的作用主要为如下三点: 在每次迭代中,如果一个粒子找到比历史最好位置更优的位置时,它将会把这次迭代的速度增加到 倍,并决定下一次迭代的速度,如公式(4) (5)所示。b 如
18、果在第一次迭代中,适应值得到改善,但在第二次迭代中适应值没有得到改善。这是因为第二次迭代的速度子矢量是第一次迭代的速度子矢量的 倍,其速度太大以至于位置子矢量跳过b了最优点。在这种情况下,如果 ,降低速度将会有助于搜索全局最优点,因此第三次迭0L代中的学习子矢量 将减小为原值的 。1/s 如果粒子经过几次迭代后适应值仍然没有得到改善, 将会被减到一个很小的值,当其小于时将被设为 0,此时只有多样性部分 决定着速度子矢量。这意味着此时的速度会()pakr具有更大的多样性,更容易跳出局部最优。从上述几点可见此粒子的智能性。ISPO 的伪代码如下,其中 为函数计算(Function Evaluati
19、ons, FEsNFEs)的次数,N max 为 的最大次数。FEsN开始初始位置矢量 ;0012,mzz计算适应值 , 即 ;()f1 初始 FEs 的次数为 ;FEs2 初始子矢量的个数 ;j初始学习变量 ;0L3 初始子矢量中的迭代次数 ;1k计算 ;(/)kpj jabvr计算 ; 12,)mffxzz 计算 ;121kjjv = ;FEsNs如果 ,设置 ; ;12() kkffkjjjkjjLv如果 ,设置 ; ;1kz1/s如果 , 设置学习变量 ;jL0j如果 N, 跳至步骤 3;1如果 jm, 跳至步骤 2;如果 Nmax, 跳至步骤 1;FEs结束4 实验结果实验仿真平台为
20、 WindowsXP,Matlab 6.5。本实验把 ISPO 算法与带惯性的粒子群算法(Particle Swarm Optimizer with inertia weight w, PSO-w) 2、协同粒子群优化算法 (Cooperative Particle Swarm Optimizer, CPSO)11和综合学习粒子群优化算法(Comprehensive Learning Particle Swarm Optimizer , CLPSO) 12进行比较 *。本实验采用了国际上通用的 6 个标准复合测试函数 13:CF 1-CF6。这些测试函数为高维多模函数,具*各算法的程序可从 h
21、ttp:/ 下载和浏览。有大量的局部最优点,是优化领域中公认的较难优化的函数。大部分优化算法在对其进行寻优的过程中往往会陷入局部最优点。近年来,优化高维多模函数已成为优化算法领域的研究热点。在实验中,适应值函数 的值为当前位置对应的函数值。PSO-w 算法的参数设置为:( )f 2。CPSO 和 CLPSO 的参数设置参考文献13。ISPO 算法的参数设置如表 1 所示。1c表 1 ISPO 算法的参数设置函数 abplsCF1 4000 2 40 1 4 1.00e+00CF2 5 2 40 1 4 1.00e+00CF3 300 2 0.1 1 4 1.00e+00CF4 4000 2 1
22、 1 4 1.00e+00CF5 10 2 100 1 4 0.00e+00CF6 4000 2 1 1 4 1.00e+00各算法对 6 个标准复合测试函数分别执行 10 次,在每次执行中函数的总计算次数 FEs 设置为5104,其平均结果和标准方差如表 2 所示。在优化这 6 个标准复合测试函数时,ISPO 算法都能够到达距全局最优点较近的位置,其算法稳定性较好。与 PSO-w、CPSO 和 CLPSO 算法相比,ISPO 算法在测试函数 CF1、CF 2、CF 3 和 CF5 上所得到的最终位置比其它三个算法更接近于全局最优点。特别是对于 CF1 和CF5,ISPO 算法的适应值明显优于
23、其它三个算法。ISPO 的优化结果的标准方差也相对较低,从而证明其算法的稳定性。表 2 各算法对 6 个标准复合测试函数进行优化的结果函数 PSO-w CPSO CLPSO ISPOCF1 2.32e+021.17e+02 1.39e+022.79e+01 1.41e+022.13e+02 2.47e+017.79e+01CF2 2.29e+021.61e+02 1.15e+023.48e+01 1.12e+021.40e+02 6.54e+016.03e+01CF3 3.42e+021.52e+02 2.27e+026.45e+01 3.01e+021.95e+02 2.12e+026.06
24、e+01CF4 4.71e+021.51e+02 3.77e+024.79e+01 3.32e+021.26e+02 4.11e+025.87e+01CF5 2.69e+022.41e+02 1.11e+022.47e+01 1.95e+022.36e+02 3.37e+012.88e+01CF6 9.05e+023.10e+00 6.71e+021.58e+02 8.39e+021.44e+02 6.95e+022.07e+02图 3 给出了各算法在优化复合测试函数时的收敛特性,图中横坐标显示 FEs 的范围为 05104,纵坐标为适应值的对数。ISPO 在 CF1、CF 2 和 CF5 上
25、收敛速度明显快于其它三个算法。0 1 2 3 4 5x 10410-2010-1010010101020FEs值值值f ( )PSO-wCPSOCLPSOISPO0 1 2 3 4 5x 104101102103104FEs值值值f ( )PSO-wCPSOCLPSOISPO(a) 函数 CF1 (b) 函数 CF2 0 1 2 3 4 5x 104102103FEs值值值f ( )PSO-wCPSOCLPSOISPO0 1 2 3 4 5x 104102103FEs值值值f ( )PSO-wCPSOCLPSOISPO(c) 函数 CF3 (d) 函数 CF4 0 1 2 3 4 5x 104
26、101102103FEs值值值f ( )ISPO-wCPSOCLPSOISPO0 1 2 3 4 5x 104103FEs值值值f ( )PSO-wCPSOCLPSOISPO(e) 函数 CF5 (f) 函数 CF6 图 3 各算法对标准复合测试函数进行优化的收敛曲线5 结论本文在粒子群优化算法的基础上,针对复杂高维多模函数很难极小化的问题,提出了智能单粒子优化算法,并给出了一种确定算法参数的方法。智能单粒子优化算法先把整个矢量分成若干子矢量,并按顺序循环更新每一子矢量。在更新每一子矢量的过程中,此算法通过引入一种新的学习策略,使粒子能够根据之前的速度更新情况进行动态地调整子矢量速度。粒子在陷
27、入局部最优点时会增加速度的多样性,从而跳出局部最优,并向全局最优靠近。实验表明,此算法对大部分函数都具有很强的全局搜索能力,特别在优化复杂的高维多模函数时,其性能比起 PSO-w、FEP 和 CLPSO 算法有着很大的改善,且其解非常接近全局最优点。参考文献:1 Kennedy J, Eberhart R C. Particle swarm optimization. In: Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ, IEEE Service Center, 1995: 19
28、421948.2 Shi Y, Eberhart R C. A modified particle swarm optimizer. In: Proceedings of the IEEE International Conference on Evolutionary Computation, Piscataway, NJ, IEEE Press, 1998: 6973.3 Shi Y, Eberhart R C. Fuzzy adaptive particle swarm optimization. In: Proceedings of the IEEE Congress on Evolu
29、tionary Computation, Seoul, Korea, 2001: 1011 106.4 Clerc M. The swarm and the queen: toward a deterministic and adaptive particle swarm optimization. In: Proceedings of the Congress on Evolutionary Computation, 1999: 19511957.5 Corne D, Dorigo M, Glover F. New ideas in optimization. McGraw Hill, 19
30、99: 379387.6 Angeline P J. Using selection to improve particle swarm optimization. In: Proceedings of IEEE International Conference on Evolutionary Computation, Anchorage, Alaska, USA, 1998: 8489.7 Angeline P J. Evolutionary optimization versus particle swarm optimization: philosophy and performance
31、 differences. In: Proceedings of 7th Annual Conference on Evolutionary Programming, Germany, 1998: 601610.8 Suganthan P N. Particle swarm optimizer with neighborhood topology on particle swarm performance. In: Proceedings of the 1999 Congress on Evolutionary Computation, Piscataway, NJ: IEEE Press,
32、1999: 19581962.9 Kennedy J. Small worlds and Mega-minds: effects of neighborhood topology on particle swarm performance. In: Proceedings Congress on Evolutionary Computation, Piscataway, NJ: IEEE Press, 1999: 19311938.10 Peram T, Veeramachaneni K, Mohan C K. Fitness-distance-ratio based particle swa
33、rm optimization. In: Proceedings Swarm Intelligence Symposium, Indianapolis, Indiana, USA, 2003: 174181. 11 Bergh F, Engelbrecht A P. A cooperative approach to particle swarm optimization. IEEE Transactions on Evolutionary Computation, 2004, 8, (3): 225239.12 Liang J J, Qin A K, Suganthan P N et al.
34、 Comprehensive learning particle swarm optimizer for global optimization of multimodal functions. IEEE Transactions on Evolutionary Computation, 2006, 10, (3): 281295.13 Liang J J, Suganthan P N, Deb K. Novel composition test functions for numerical global optimization. In : Proceedings of IEEE Inte
35、rnational Swarm Intelligence Symposium, Messina, Italy, 2005: 6875.BackgroundParticle Swarm Optimization (PSO), proposed by Kennedy and Eberhart in 1995, has been widely used for optimization problems. Since PSO was proposed, research on its improvement and application in engineering optimization be
36、comes a hot spot in the area of evolutionary computation and swarm intelligence. Recently, IEEE Transactions on Evolutionary Computation published a special issue on PSO. PSO has a lot of advantages compared with other evolutionary algorithms, due to its simplicity of implementation, fast convergenc
37、e rate and easy selection of parameters.However, for most stochastic optimization algorithms, including PSO, their performance deteriorates as the dimensionality of the search space increases. Many existing PSO-based algorithms are easily trapped into local optima on solving complicated multi-modal
38、functions. In this paper, the new algorithm ISPO, proposed as the improvement of PSO, aims to optimize complicated multimodal functions. ISPO uses a single particle instead of a particle swarm, and applies a novel learning strategy to update the particles velocity and position. Experimental results
39、have shown that: on solving some widely used multimodal benchmark functions, SPO outperforms PSO with inertia weight, Faster Evolutionary Programming (FEP) and Comprehensive Learning PSO (CLPSO), which was published on IEEE transaction on Evolutionary Computation in 2006. The research on ISPO is com
40、pleted by cooperating with a researching group, led by Prof. Zhen Ji in School of Computer Science and Software Engineering, Shenzhen University and Prof. Qinghua Wu in Department of Electrical Engineering and Electronics, The University of Liverpool. The source code of FEP is provided by Yang Z. Y.
41、, a student of Yao X. who proposed FEP and is the Editor-in-Chief of the IEEE Transactions on Evolutionary Computation. The source code of CLPSO is provided by Prof. Suganthan, who is the author of the paper CLPSO and is also an associate editor of the IEEE Transactions on Evolutionary Computation.A
42、nother paper entitled “A Strategy of Particle-pair for Vector Quantization in Image Coding”, belonging to the same project, has been published on Acta Electronica Sinica, Oct. 2007, Vol. 35(10), pp. 1916-1920 by JI Zhen, LIAO Huilian, XU Wenhuan, JIANG Lai. In this paper, a novel algorithm based on PSO, called particle-pair optimizer (PPO), is proposed to solve vector quantization in image coding.