参考博文:粒子群优化算法(Particle Swarm Optimization)
【PSO】离散粒子群算法(DPSO)和离散二进制粒子群算法(BPSO )
粒子群优化算法(1)
粒子群优化算法(2)离散粒子群算法
离散粒子群算法
普通粒子群算法(Particle Swarm Optimization Algorithm,PSO)的粒子初始位置、更新速度都是连续函数,与之对应,位置和速度更新均为离散值的算法是离散PSO算法(Discrete Particle Swarm Optimization Algorithm, DPSO);
一般就是在跟新粒子位置后,对粒子进行离散点处理;
比如:你的粒子的离散点是0到9的整数。那么对每个粒子更新位置后,比如是在(0,1)范围内的随机数。那么就(0,0.1)范围令其值为0;(0.1,0.2)范围令其值为1;…(0.9.1)范围令其值为9。当然初始位置值也需要这样处理
基本PSO代码实现与解读
在DEAP遗传算法库种,有一个关于粒子群算法的示例。源码地址
代码主要有两个函数:
- generate:生成粒子
- updateParticle:更新粒子的位置和速度
下面注释了该代码
通过DEAP工具箱注册类Particle和几个函数(particle、population、update、evaluate)