一、基于粒子群算法的寻优
数学物理中的很多问题归结为解非线性方程。
解决方程求根的传统方法:
牛顿法弦割法抛物线法牛顿下山法
传统方法的缺点:收敛性和结果与初始值的选取有较大关系,依赖于背景知识,算法缺少通用性。
历史: 1995年,Kennedy等以鸟类群体行为进行建模仿真的思想启发,提出了粒子群优化(Particle Swarm Optimization,PSO)算法。
算法优点:
群体智能内在并行性迭代格式简单可快速收敛到最优解所在区域
应用:
函数优化神经网络训练模糊控制系统
1.1基本粒子群算法
PSO基于群体的随机优化,通过一组随机解初始化,通过迭代搜寻最优解。PSO模拟社会。每个可能产生的解表述成群里的一个微粒,每个微粒有自己的位置向量和速度向量,以及一个由目标函数决定的适应度。所有微粒在搜索空间中以一定速度飞行,通过追随当前搜索到的最优值来寻找全局最优值。
PSO模拟社会采用以下三条简单规则对粒子个体:
1. 飞离最近的个体,以免碰撞2. 飞向目标3. 飞向群体的中心
反应群体行为:鸟类被吸引飞向栖息地。在仿真开始,每只鸟均无特定的目标进行飞行,直到有一只鸟飞到栖息地,当设置的期望栖息比期望留在鸟群中具有较大的适应性时,每只鸟都离开群体而飞向栖息地,随后就自然形成了鸟群。
数学模型:设在S维目标搜索空间,有m个粒子组成一个群体,其中第i个粒子表示为一个S维向量
将Xi代入目标函数就可以算出其适应度。根据适应度大小衡量解的优劣。第i个粒子的飞翔速度是S维向量,记为
记第i个粒子至今搜索到的最优位置为
整个粒子群至今搜索到的最优位置为
f(x)是最小化的目标函数,则微粒i的当前最好位置由下式确定:
Kennedy用下列公式对粒子进行操作
其中:
学习因子 和 为非负常数。 和 为相互独立的伪随机数,服从 上的均匀分布。 为常数
从以上进化方程可见,c1调节粒子向自身最好位置方向的步长,c2调节粒子向全局最好位置方向的步长。Vis用来降低进化过程中粒子离开搜索空间的可能,一般设定
Y.Shi对上式修改:
式中,动力常数w为非负数,控制前一速度对当速度的影响。w大时,前一速度影响大,全局搜索能力较强;w较小时,前一速度影响较小,局部搜索能力较强。通过调整w大小跳出局部极小值。
终止条件根据具体问题取最大迭代次数或粒子群搜索到的最优位置满足的预定最小阈值。
初始化过程:
1. 设定群体规模m。2. 对任意i、s,在[-Xmax,Xmax]内服从均匀分布产生Xis;3. 对任意的i、s,在[-Vmax,Vmax]内服从均匀分布产生Vis;4. 对任意的i,设Yi=Xi。
PSO算法步骤如下:
1. 初始化一个规模为m的粒子群,设计初始位置和速度。2. 计算每个粒子的适应度。3. 对每个粒子将其适应度和其经历的最好位置Pis的适应值进行比较,若较好,则将其作为当前最好
位置。4. 对每个粒子将其适应值和全局经历过的最好位置Pgs的适应度进行比较,若较好,则将其作为当前
的全局最好位置。5. 根据方程对粒子的速度和位置进行更新。6. 如果满足终止条件,则输出解;否则返回第二步。