粒子群算法


前言

粒子群算法是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法,通常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统(Multiagent Optimization System, MAOS)。粒子群优化算法是由Eberhart博士和kennedy博士发明。(百度百科)

一、算法描述

以鸟群寻找食物为例,鸟群的鸟是可以共享信息的,类似于每只鸟都会向大家公布自己的找到的最好的进食地点。每只鸟都有自己的速度矢量,每一次遍历,每只鸟都向鸟群公布自己找到的最合适的进食地点。每只鸟通过整个鸟群找到的最优地点和自己找到的最优地点,决定下次自己飞行的方向。也就是说,如果某只鸟找到了一个最优地点,下次寻找的方向可能就会偏向这个最优地点的附近。

二、算法公式

速度更新公式:

            V(t+1)=w * V(t) + r1 * c1 * (pbest-X(t)) + r2 * c2 * (gbest - X(t) )

位置更新公式:

                 X(t+1)=X(t)+V(t+1)

V(t+1)和 X(t+1)表示t+1时刻的速度和位置,V(t)和X(t)表示t时刻的速度和位置,pbest是个体的最优位置,属于局部最优解,gbest是群体的最优位置,也称全局最优解。
V,X,w,pbest,gbest均是多维向量。V是速度矢量,X是位置坐标,w是惯性权重,也就是上一时刻对下一时刻速度的影响。
r1,r2是在(0,1)之间的随机数;
c1,c2是学习因子,一般取2。

根据公式理解粒子群算法的基本思想,下一个时刻速度受个体最优解和群体最优解影响,这个很容易理解,就是在较优解附近寻找更优解,慢慢找出全局最优解。这里有一个风险,如果鸟群太少,或者初始化速度和位置不够广泛,很容易陷入局部最优解而出不来。

三、算法流程

1、初始化
初始化惯性权重w;
设定常数:遍历次数cycle,学习因子c1,c2,群体个数n;
随机生成速度矢量V,位置坐标X;
2、运行
a.计算第i只个体下一时刻的解f_i(X_i)
b.如果f_i(X_i)<pbest_i,pbest_i=f(X_i)
c.如果f_i(X_i)<gbest,gbest=f_i(X_i)
d.重复运行2,直至计算出所有个体的个体最优解,和群体最优解。
3、更新
根据更新公式更新每个个体的速度和位置;
若cycle==0或者群体最优解保持不变,结束,输出群体最优解;
否则,返回2;

举个例子

求函数 f=sin(x)+cos(y)+z^2在范围x,y,z属于[-3,4]的最小值:
函数参数有3个,所以粒子群算法的速度和位置向量都是三维的,对应x,y,z的坐标,速度矢量表示x,y,z坐标系方向的改变大小,位置向量就是坐标系的坐标。确定好这些变量,就可以初始化速度和位置,在设定粒子群算法的常数,就可以了。
实际操作中,随机函数取值范围不合理,还是很容易陷入局部最优解的,慢慢调参就是了。

总结

不知道是因为前面写蚁群算法有了些经验还是什么,实现这个粒子群算法比蚁群算法简单多了,感觉粒子群算法比较好理解,毕竟更新公式就是以前学的向量的加减法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
粒子算法(Particle Swarm Optimization,简称PSO)是一种群体智能优化算法,通过模拟鸟群或鱼群等生物群体的行为,通过个体之间信息共享和协同搜索的方式来寻找最优解。 在传递函数辨识中,我们可以使用PSO算法来寻找具有最佳拟合度的传递函数模型。首先,我们需要根据已知的输入输出数据来建立一个传递函数模型的适应度函数。适应度函数的作用是衡量当前传递函数模型和实际数据之间的拟合程度,可以使用均方根误差(Root Mean Square Error,简称RMSE)作为适应度函数,即计算实际数据与传递函数模型输出数据之间的差异。 接下来,我们使用PSO算法来优化传递函数模型的参数。PSO算法中的每个个体都代表一个传递函数模型,个体的位置代表了传递函数模型的参数。在每次迭代过程中,个体根据自身位置和速度的信息更新自身位置,并通过与其他个体信息的共享和合作来寻找最优解。个体的适应度函数值会影响它们在搜索过程中的表现,适应度函数值越小表示个体与实际数据的拟合程度越好。 经过多次迭代后,PSO算法将收敛到一个最优解,该最优解对应的传递函数模型参数即为我们所需的辨识的传递函数模型。我们可以将优化后的传递函数模型参数代入原始模型中,得到输出数据,并与实际数据进行比较,以验证辨识结果的准确性。 总之,通过PSO算法可以较为准确地辨识传递函数模型,不仅可以提高传递函数模型的拟合程度,还可以减少人为干预和主观判断的影响,进一步提高辨识的可靠性和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值