记录使用python实现QPSO求解最大值问题时,遇到的问题
今天继续在昨天PSO代码的基础上,将PSO代码改成QPSO的代码,QPSO与PSO的区别(不全,主要是代码实现过程中的区别):
[1] QPSO仅有位置没有速度, 并且QPSO用【波函数】来表示粒子的位置, 通过【蒙特卡罗方法】求出粒子位置
[2] 引入平均的粒子历史最好位置mbest: (即pbest的平均值)通过它来求解粒子出现在相对点的位置,用L表示
[3] QPSO要设置的参数较少: 没有PSO中的(惯性因子w, 局部学习因子c1和全局学习因子c2), QPSO中只有一个创新参数alpha(一般不大于1)
【注意:这里的mbest指的是x值,不是y的值】
mbest_x = np.mean(pbest_x)