最优化算法(三):PSO

1.介绍

     我这里就不去生动形象的举什么鸟类捕食的例子了,直接给出流程,基本的粒子群算法很简单,只用明确它每次迭代优化的方法就好了。同样PSO也是一个无约束的迭代求解的最优化算法,我们的目标是(这里的min只是举例子,真实情况不一定是求最小值,可能是求一个特定的f(x)):

                                                                                  min_{x\in R^{(N)}}f(x)

     N就是x所在的搜索空间的维度,我们的目标是要找到一个x^{*}={x_{1}.......x_{N}}使得我们能达到目标,一般f(x)被称为适应函数,初始化的时候我们是要随机生成M(自己定)个x值(即种群),每个x值会初始化一个变化速度v,这个变化速度是一个向量,它的维度和x是一样的,因为你肯定在不同的维度有不同的变化,之后就是随机初始化全局最优(什么叫全局最优?就是这M个x中令适应函数更接近目标的x就是全局最优值)和个体最优(什么叫个体最优?我么的算法在不断的迭代的,对于种群中的每个x我们都会记录他的适应函数值,最好的那个值对应的x就是个体最优),然后我们在每一次迭代中都会向全局最优值和个体最优值学习,这里的学习会有一个学习权重,代表着它们是更相信种群还是更愿意保持自己的优势,那学习它们的什么呢?当然是学习它们的位置和变化速度了,这就是我最开始说的你需要明白的每次迭代优化的方法,下面详细介绍流程和更新公式。

2.流程

     输入:目标求解函数f(x),以及种群大小M,目标求解值K,c1,c2,w

     输出:当f(x)=K时x的取值 

     step1:初始化M个x(种群)的x值(N维)和速度v(N维)

     step2:对于每个x计算适应度值f(x),并得到每个粒子的个体最优pbest和种群当代的最强粒子gbest     

     step3:对于每个粒子,将本次迭代的适应度值和pbest比较,如果比它大就更新pbest,同理更新gbest

     step4:按下列公式更新每个x的值和它的变化速度(w是惯性指数,即粒子保持自身的系数):

                                                

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值