【问题标题】:Particle swarm optimization pbest and gbest粒子群优化 pbest 和 gbest
【发布时间】:2020-04-02 20:46:41
【问题描述】:

可以更新粒子速度和位置,然后找到pbest和gbest吗?还是必须先找到 pbest 和 gbest? PSO 中的 pbest 和 gbest 是什么?

【问题讨论】:

    标签: machine-learning optimization mathematical-optimization


    【解决方案1】:

    如果我正确理解了您的问题,答案是肯定的。众所周知,PSO 的主要方程是:

    其中x和v是位置和速度,w、c1和c2是常数,r1和r2是两个随机数。总之,PSO 算法的流程是这样的:

    1. 开始你的人口
    2. 设置常量(w、c1 和 c2)
    3. 检查停止标准或收敛
    4. 获取随机数r1和r2
    5. 更新 Gbest 和 Pbest
    6. 更新 v 和 x
    7. 返回3

    Pbest 存储了迄今为止粒子 k 的最佳位置,Gbest 存储了所有粒子的最佳位置。它用于使所有粒子指向全局最大值/最小值。它也受拓扑的影响:

    如果您使用全局拓扑,则更容易陷入局部最小值/最大值。另一方面,您的算法可能收敛得更快。所以,这取决于你的问题,你需要测试。

    【讨论】:

    • 所以首先必须更新 pbest 和 gbest 并且基于该速度和位置可以更新。如果我们没有先设置初始 pbest 和 gbest,我们将无法更新粒子位置和速度。我说的对吗?
    • 是的,你是。您需要先提供 Gbest 和 Pbest。尽管如此,观察第一次运行算法循环时,所有粒子将在搜索空间中获得随机位置。因此,根据您的适应度函数,第一个 Pbest 将是粒子本身,第一个 Gbest 将是随机粒子之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多