优化算法1--粒子群优化算法(原理)

1 粒子群算法简介

       粒子群算法(Particle swarm optimization, PSO)是一种仿生算法,它是一种 在求解空间中寻找最优解 的简单算法。它与其他优化算法的不同之处在于,它只需要 目标函数,不依赖于目标的梯度或任何微分形式。它也有很少的超参数

       粒子群算法是由Kennedy和Eberhart在1995年提出的。正如在最初的论文中提到的,社会生物学家认为一群鱼或一群鸟在一个群体中移动,可以从所有其他成员的经验中获益

       换句话说,当一只鸟在空中随机寻找食物时,鸟群中的所有鸟都可以 分享 他们的发现,并帮助整个鸟群获得最佳狩猎。

       PSO算法将待解决的 优化问题看作是鸟群捕食的过程,其 飞行空间 即为优化问题的解空间,而 捕食空间 中的 1个粒子,即为待解决的 1个解

       具体来说,在某一 D维空间 的目标搜索空间中,有一个种群大小为M的粒子群,其中第i个粒子在t时刻的状态由 速度和位置 2个 向量 来描述。

粒子的 速度 可表示为:

式中:

 

 

 

 

2 算法流程简介

利用这两个简单的方程,PSO例程的基本流程结构如下:

    1 初始化:

 

3 算法思想解释

       PSO背后的主要概念(从上面的粒子速度方程可以明显看出)是,在 三个不同的力 对每个粒子的牵引之间存在一个恒定的平衡:

  1. 惯性部分:由惯性权重和粒子自身速度构成,表示粒子对先前自身运动状态的信任;

  2. 认知部分:表示粒子本身的思考,即粒子自己经验的部分,可理解为粒子当前位置与自身历史最优位置之间的距离和方向;

  3. 社会部分:表示粒子之间的信息共享与合作,即来源于群体中其他优秀粒子的经验,可理解为粒子当前位置与群体历史最优位置之间的距离和方向。

 

 

        可以在上面的例子中看到,粒子惯性和个体最佳的权重超过了群的影响。在这种情况下,粒子将继续探索搜索空间,而不是收敛到群上。下面是另一个例子:

        这一次,分配给群体影响的权重超过了迫使它向群体移动的粒子的单个力量。这将导致更快的收敛,但代价是没有充分探索搜索空间以及没有找到更好的解决方案。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值