王丽亚 贺兴辉 姜君娜
摘 要:為研究各种各样的优化问题,文章结合粒子群算法,分别选取一个简单的三维函数和一个复杂的三维高斯函数为例,分别进行研究,得出:微粒在整个群体的最佳位置与维度、迭代次数和种群数有关,粒子群算法通过减少运算量得到近似解,来达到优化的目的;对于高斯函数而言,其结果表明:红色越深的点即是微粒的最佳位置。
关键词:粒子群算法;高斯函数
粒子群优化算法是近年来发展起来的一种新的进化算法,源于观察鸟类的觅食行为,对其进行模拟而提出的。PSO算法比遗传算法规则更为简单,参数较少,不过多的依赖于求解问题的信息,并且它没有遗传算法的“交叉”和“变异”操作,更具有收敛速度快,全局搜索能力强等优点,它通过追随当前搜索到的最优值来寻找全局最优,因此具有较强的通用性。
1 PSO算法基本原理的由来
受到鸟类觅食行为的启发,国内外一些学者提出了一种新的智能优化算法,就是粒子群优化算法。PSO算法是一种随机性寻优算法,将需要求解的实际问题所需要的空间类比于鸟类觅食飞行的空间,将优化问题所要求的最优解比作鸟类觅食要找的食物,将每只鸟比作质点一样的微粒,使其在一定的空间、法则来求得最优值。
2 粒子群算法步骤PP[ 1 ]
Step1:对加速常数进行设置并且随机的开始设置种群中各粒子的位置和速度若所需搜索空间为d维;
Step2:把种群中的各个粒子当前所处的位置及各个微粒目标值储存于pbest中;
Step3:根据相关公式不断地重新更新种群中微粒当前的速度和所处的位置;
Step4:对种群中所有的微粒的位置作出评估和分析;
Step5:对种群中每个微粒的当前的目标解与其pbest的目标值进行比较;
Step6:比较种群中微粒的当前所有pbest和gbes的目标值。
3 优化问题数学模型的建立
解决优化问题首先需要建立数学模型,主要包括:目标函数、约束条件和可行域。目标函数一般用表示,两者并没有本质区别。
约束条件分为等式约束和不等式约束两种:
4 基于PSO算法的优化问题
为验证粒子群算法能否解决优化问题,编写粒子群算法程序来求解函数优化问题。利用软件进行编程。
本文先选取一个简单的三维函数为例:
随着维度的不同,微粒的初始位置和微粒的初始速度,都存在一个不同的范围。本文再选取一个三维函数,以高斯函数为例[ 3 ]。运行结果为:
由实验结果可知:运行刚开始的时候,微粒以低速频繁运动,见图中蓝色区域;随后微粒通过共享信息资源,逐渐集中,最后聚集在一小片区域,其变化过程如图中颜色变化所示,由最开始的深蓝、天蓝、嫩绿、橘黄、浅红逐渐变化到深红。图中红色越深的点表示微粒最佳的位置。由此可知,该算法可以解决这一类问题,但仍有需要改进的地方,可进一步研究。
参考文献:
[1] Singh G,Serra L,Ping W,et al. BrickNet:Sharing object behaviors on the Net [C] //Proc of IEEE VRAIS95.Piscataway,NJ:IEEE,1995:19-25.