宁波工程学院本科毕业设计论文
佳的分数阶PID参数后采用SIMULINK的仿真工具对分数阶PID参数优化系统进行仿真,得出系统的响应曲线。从中发现它的性能指标,都比原来的曲线有了很大的改进。
5
宁波工程学院本科毕业设计论文
第2章 粒子群算法的介绍
2.1 粒子群算法思想的起源
自然界中每个生物种群都有他们特定的一些群体行为,人们通过把这些自然界中生物体的行为作为一个重要的研究领域,在电脑上模拟群体行为,建造这些群体的模型。自然界中的群体有很多,其中科学家对鸟还有鱼这两种群体的行为的研究兴趣比较浓厚,上世纪80年代生物学家Craig Reynolds提出了一个十分著名的鸟群聚集模型[7],该模型有重大的影响力。他讲鸟群进行仿真,使得每一个个体都符合下面几点:
(1)个体都想鸟群中心飞,并且整个群体向目标飞。 (2)相邻区域的个体不碰撞。 (3)相邻区域的个体的速度相匹配。
他的仿真中通过了上面三条简单的规则,十分接近的模拟出鸟群飞行的状态信息。同时期的生物学家Frank Heppner也提出了一个鸟群的模型[8],它和前者的区别是鸟类的栖息地不同。在他的仿真中,鸟群的中每个个体最先的飞行目标都是不确定的,仅仅是大致确定自己飞行的方向和速度大小(鸟群中的每个个体都尝试让自己在不碰撞到其他个体的前提下留在在鸟群中),当有一只鸟到达了目的地时,鸟群中的其他鸟也会跟着飞向目的地,经过这过程,整个鸟群就会到达这个栖息地。
粒子群算法是由美国的电气工程师Russell Eberhart的社会心理学家James Kennedy在1995年共同提出的。正是对鸟类鱼类等群体行的建模和仿真的的研究结果启发了他们,才有了研究粒子群算法的基本思想。他们将Frank Heppner的鸟群仿真模型做了修改得出了行的模型,以使粒子想鸟群的个体一样飞向目的地(即
6
宁波工程学院本科毕业设计论文
解的空间)并在最好的栖息地(即最好的解)降落。粒子群算法思想的起源内容在Kennedy在的书内容是这样的:
自20世纪30年代以来,随着社会心理学的研究发展:我们人类的行为也遵循这鸟群或鱼群聚集的行为。人们的不规范和文明的形成就是随着人们相互交往的过程中,不断的相互的影响和并且模仿,最终人们的行为变得更相似的过程。人类的自然行为和鸟群并不类似,但是有一点是非常类似的,那就是人类在高维认知空间中的思维轨迹。所不同的就是相对于鱼群和鸟群聚集过程而言中人们思维背后的社会现象要复杂得多:第一,两种思想一致是,它们在认知的空间是聚在同一点的但是却不会发生冲突;第二,思维是一种虚无缥缈的东西,它发生在维数远远高于3的信念空间。
2.2 算法原理
有一个由n个微粒组成粒子群存在在一个D维的目标搜索空间里面,这n个微粒每一个都表示一个D维的向量,则它的空间坐标可以表示成xi =(xi1,xi2,?,xiD),i=1,2,?n。目标优化问题中的每一个解就是微粒的所有的空间位置。微粒的优劣是通过衡量适应度值的大小来判断的,而适应度值就是将它代入到适应度函数中计算得到的。第i个微粒的飞行速度和每个微粒一样仍然是一个D维的向量,记为vi=(vi1,vi2,?,viD);个体历史最好位置就是第i个微粒所经历过所有位置中的适应值最好的那个位置,记为pi=(pi1,pi2,?,piD);而全局历史最好位置就是指整个微粒群所经历过的所有位置中最好的那一个,记为pg=(pg1,pg2,?,pgD),则粒子群的进化方程可以表示成:
vij?t?1??vij?t??c1r1?t??pij?t??xij?t???c2r2?t??pgj?t??xij?t?? (2-1)
xij?t?1??xij?t??vij?t?1? (2-2)
其中:下标j的含义是微粒的第j维,下标i表示微粒i,t表示第t代,c1,c2
为取值在(0,2)间的加速常量,r1 ~U(0,1),r2 ~U(0,1)是两个随机的函数,它们是相互独立的。我们可以通过上面微粒进化方程得出以下信息,c1调节的步长是
7
宁波工程学院本科毕业设计论文
微粒飞向自身最好位置方向的,而c2的步长是调节微粒向全局最好位置飞行的。
通过分析基本粒子群的特点,可以知道式(2-1)中的第一部分表示的是微粒开始的速度;而微粒本身的思考则是由第二部分为“认知”来表示;其第三部分为“社会”部分,表示的是微粒之间共享社会信息。就现阶段来说,模型的社会部分比对认知部分显得更为重要。虽然模型的社会部分和认知部分的两者的相对重要性还尚未从理论上给出,但有一些研究的结果表明了这个问题。
2.3 算法流程
基本粒子群算法的是按照以下流程的:
(1)通过把各个粒子随机进行初始化,将粒子群进行初始化,。 (2)把各个粒子的适应度的值计算出来,计算是根据适应度函数来的。 (3)选择历史最优。即把每个粒子的最优适应度和计算出来的进行比较,若计算出来的更好。计算值就是历史最优。
(4)选择群最优。即把群体经历的最好位置的适应度和每个粒子计算出来的进行比较,若计算出来的更好。计算值就是群最优。
(5)进化粒子的位置和速度。
(6)如果有了足够好的解或最大迭代次数(即达到了结束条件),就结束,反之转到步骤(2)。
如图2.1表示的就是其算法的流程
8
宁波工程学院本科毕业设计论文
开 始 初始化每个粒子的速度和位置 计算每个粒子的适应值 求出每个粒子的个体最优 求出整个群体的全局最优值 根据方程(2.1)对粒子的速度进行进化 根据方程(2.2)对粒子的位置进行进化 否 是否满足结束条件 是 输出结果 图2-1 基本粒子群算法流程图
2.4 全局模型与局部模型
从2-1描述的算法可以看出,全局最优gbest和粒子自身最优pbest影响了它的的行为,叫做全局版本PSO算法。如图2.2所示的是一种全局最优gbest是不会影响粒子的行为的算法,叫做局部版本PSO算法,但是他拓扑结构中邻近粒子中的局部最优lbest和自身的最优pbest还是会影响,如图2-3所示的是对局部版本,式(2-1)变成:
vij?t?1??vij?t??c1r1?t??pij?t??xij?t???c2r2?t??pij?t??xij?t?? (2-3)
其中,pij为邻近粒子的局部最优。
将这两个版本的算法进行比较后可以知道:局部PSO算法不易陷入局部最优,
9