【PSO】离散粒子群算法(DPSO)和离散二进制粒子群算法(BPSO )


1. 什么是离散粒子群算法?

普通粒子群算法(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。当然初始位置值也需要这样处理。参考

2. 什么是离散二进制粒子群算法?

离散二进制粒子群算法(Discrete Binary Particle Swarm Optimization Algorithm, BPSO)最初由J.Kennedy和R.C.Eberhart在1997年设计;

PSO主要优化连续实值问题,BPSO主要优化离散空间约束问题;

BPSO是在离散粒子群算法基础上,约定位置向量、速度向量均由0、1值构成;

BPSO有很强全局搜索能力,但不能收敛于全局最优值,且随着算法迭代搜索随机性越来越强,缺乏后期的局部搜索能力;

3. 离散二进制粒子群算法步骤

初始化粒子位置:按一定策略,生成二进制编码;

速度更新公式:速度 x 惯性权重 + (个体最优位置 - 当前位置)x 学习因子1 x 随机数 + (全局最优位置 - 当前位置)x 学习因子2 x 随机数


位置更新公式:概率映射方式,采用sigmoid函数将速度映射到 [0, 1] 区间作为概率,这个概率就是粒子下一步取值为1的概率;


位置变化的绝对概率:当前位置为0变化为1,当前为1变化为0,这二者被称为绝对变化;概率表示为:


其中S(Vid)表示粒子轨迹当前为0的概率,则1- S(Vid) 表示当前为1的概率;如果当前为0,则改变的概率为1- S(Vid) ,如果当前为1,则改变概率为 S(Vid)。结合(2)式可以得到如下方程:


图形表示为



其中,最大改变概率不超过0.25;

随后更严谨的分析加入了前后时间的影响,位置改变概率变为:


公式(8)也就是第8代位置改变的概率,与两代的速度有关;


即,最大改变概率不超过0.5

4. 实验步骤

参考:离散二进制粒子群算法分析

第一步:确定测试的基准函数;

第二步:测试某个粒子的平均速度迭代变化,某个粒子取1的平均概率迭代变化;某个粒子改变概率迭代变化;某个粒子到最优粒子距离的迭代变化;

第三步:提出改进的粒子群算法,改进点为概率函数;按照第二步进行实验;

第四步:提出改进的基于遗传算法的二进制PSO算法;进行显著性分析,测试最小平均适应度值和标准方差;


参考文献

刘建华, 杨荣华, 孙水华. 离散二进制粒子群算法分析[J]. 南京大学学报(自然科学), 2011, 47(5):504-514.




发布了392 篇原创文章 · 获赞 492 · 访问量 241万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览