## 基本PSO的改进

虽然粒子群在求解优化函数时,表现了较好的寻优能力;通过迭代寻优计算,能够迅速找到近似解;
但基本的PSO容易陷入局部最优,导致结果误差较大。

两个方面:
1.将各种先进理论引入到PSO算法,研究各种改进和PSO算法;(混沌技术,神经网络技术,自适应技术)
2.将PSO算法和其它智能优化算法相结合,研究各种混合优化算法,
达到取长补短、改善算法某方面性能的效果。

近时期粒子群改进策略主要体现的方面:
1.PSO算法的惯性权重模型,通过惯性权重的引入,提高了算法的全局搜索能力;
2.带邻域操作的PSO模型,克服PSO模型在优化搜索后期随迭代次数增加搜索结果无明显改进的缺点;
3.协同PSO算法,用K个相互独立的粒子群分别在D维的目标搜索空问中的不同维度方向上进行搜索;

*蓝色的曲线:w=0.8,黄色的曲线:w=0.6红色的曲线:w=0.4*

从上式可以看出,w越大,微粒飞行速度越大,微粒将以较大的步长进行全局搜索;w越小,则微粒步长小,趋向于精细的局部搜索。

同时,从右图也可以看出w=0.8时,微粒以更少的迭代次数取得全局最优;w=0.6时,迭代次数其次,
w=0.4时,迭代次数相对较多。

虽然较大的权重因子有利于跳出局部最小值,便于全局搜索,而较小的惯性因子则有利于对当前的搜索区域进行精确局部搜索,以利于算法收敛;但是w过大容易导致“早熟收敛”与算法后期在全局最优解附近产生振荡的现象。

**w的改进**

一般方法是把Wmax逐渐变成Wmin;

**1.权重线性递减的PSO算法**

  

                     自适应权重粒子群优化算法适应度曲线

2.自适应权重的PSO算法

f表示微粒当前的目标函数值。
当各微粒的目标值趋于一致或趋于局部最优时,将使惯性权重增大,而各微粒的目标值比较分散时,使惯性权重减小,同时对于目标函数值优于平均目标值的微粒,其对应的惯性权重因子较小,从而保留了该微粒,反之对于目标函数值差于平均目标值的微粒,其对应的惯性权重因子较大,使得该微粒向较好的搜索区域靠拢。(附图)

                           惯性权重线性递减PSO算法适应度曲线

3.随机权重策略的PSO算法

随机地选取值,使得微粒历史速度对当前速度的影响是随机的。
为服从某种随机分布的随机数,从一定程度上可从两方面克服 w的线性递减所带来的不足。
随机权重策略的PSO算法对于多峰函数,能在一定程度上避免陷入局部最优。

[随机权重策略的PSO适应度曲线]

4.增加收缩因子的PSO算法

          

压缩因子 比惯性权重系数w更能有效地控制与约束微粒的飞行速度,同时也增强了算法的局部搜索能力。

带压缩因子的的PSO算法适应度曲线

由上面两个图,可以看出惯性常数方法通常采用惯性权值随更新代数增加而递减的策略,在算法后期由于惯性权值过小,会失去微粒的探索新区域的能力,而压缩因子方法则不存在此不足。

**CONCLUTIONS**
PSO算法的搜索性能取决于其全局搜索与局部改良能力的平衡,这很大程度上依赖于算法的参数控制,包括N,Vmax,M,w,c1,c2等;

**微粒种群数目N**:N设置较小时,算法收敛速度快,但是容易陷入局部最优;N设置较大时,算法收敛速度相对较慢;导致计算时间大幅增加,而且群体数目N增至一定的水平时,再增加微粒数目不再有显著的效果。

参考取值:一般设N为10~50之间,对于比较复杂的问题,微粒数目N可以取100以上;

**最大速度Vmax**:决定搜索的力度;Vmax过大,粒子运动速度快,微粒探索能力强,但容易越过最优的搜索空间,错过最优解;如果Vmax较小,微粒的开发能力强,容易进入局部最优,可能会使微粒无法运动足够远的距离以跳出局部最优,从而也可能找不到解空间的最佳位置。(跟w的取值规则一样)。

**惯性权值w**:w越大,微粒飞行速度越大,微粒将会以更长的步长进行全局搜索;w较小,则微粒步长小,趋向于精细的局部搜索;因此,我们采用动态改变w的值;在搜索初期设w取一个较大值,然后随着迭代次数的不断增加,逐渐降低w的值;从而达到全局最优。

**ways**:随机调整,线性递减,非线性递减,模糊自适应。

**学习因子c1,c2**:c1,c2具有自我总结和向优秀个体学习的能力,从而使微粒向群体内或领域内的最优点靠近。c1,c2分别调节微粒向个体最优或者群体最优方向飞行的最大步长,决定微粒个体经验和群体经验对微粒自身运行轨迹的影响。学习因子较小时,可能使微粒在远离目标区域内徘徊;学习因子较大时,可使微粒迅速向目标区域移动,甚至超过目标区域。因此,c1和c2的搭配不同,将会影响到PSO算法的性能。

**ways**:一般令c1+c2=4;其实c1=2附近的迭代次数较小,在两个端点0和4附近的迭代次数较大,大致呈现出对称性;在俩端点处搜索失败率较大;通常,越接近端点,失败率越高。但并不是所有情况都是c1=c2=2时才有最优解。

r1,r2是[0,1]之间的随机数。

**最大迭代次数M**:算法停止迭代条件。

另外,随着变量范围和维数的增加,搜索空间呈几何级扩张,迭代次数相应增加,优化函数越复杂,所需的计算量越大,迭代次数也越多。

参数的选择影响算法的性能和效率,也是一个值得优化的问题。在实际应用中,没有选择参数的通用方法,只能凭经验选取。大量的仿真实验发现,参数对算法性能的影响有一定的规律可寻。例如:w=0.7298,c1=c2=1.49618是一组较为出色的参数组合。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190130151218495.png)
谢谢大家~~~~~~
欢迎大家和我一起讨论,一起进步。
有需求可联系本人邮箱qinwei1005@foxmail.com

PSO算法的改进(参数)的更多相关文章

  1. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:非hash方法

    http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  2. PSO算法

    1.简介粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 .该算 ...

  3. ISAP算法对 Dinic算法的改进

    ISAP算法对 Dinic算法的改进: 在刘汝佳图论的开头引言里面,就指出了,算法的本身细节优化,是比较复杂的,这些高质量的图论算法是无数优秀算法设计师的智慧结晶. 如果一时半会理解不清楚,也是正常的 ...

  4. 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  5. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法

    http://blog.csdn.net/pipisorry/article/details/48901217 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  6. md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样

    md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样

  7. 基本PSO算法实现(Java)

    一.算法流程 Step1:初始化一群粒子(粒子个数为50个),包括随即位置和速度: Step2:计算每个粒子的适应度fitness: Step3:对每个粒子,将其适应度与其进过的最好位置(局部)pbe ...

  8. KMP算法的改进

    KMP算法的改进 KMP算法已经在极大程度上提高了子符串的匹配效率,但是仍然有改进的余地. 1. 引入的情景 下面我们就其中的一种情况进行分析: 主串T为"aaaabcde-" 子 ...

  9. KMP算法(改进的模式匹配算法)——next函数

    KMP算法简介 KMP算法是在基础的模式匹配算法的基础上进行改进得到的算法,改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回退主串的字符位置指针,而是利用已经得到的部分匹配结果将模式串向 ...

随机推荐

  1. Mina源码研究

    目录 1. NioSocketAcceptor初始化源码研究 1.1 类图 1.2 方法调用时序图 1.3 初始化NioSocketAcceptor 1.4 SimpleIoProcessorPool ...

  2. 【CF163E 】e-Government

    题目 两个\(log\)的树状数组套树剖? 我们对于给出的\(n\)个模式串建立\(AC\)自动机,之后对于每一个询问串直接丢上去匹配 如果这里是暴力的话,我们直接一路跳\(fail\)累加作为结束位 ...

  3. centos 系统安装基本步骤,面试必考

    1.调整开机媒体,通常为cd或者dvd,也可以是u盘. 2.选择安装模式,是否需要图形化 3.语系及键盘语系选择 4.软件选择 5.磁盘分区操作,主+扩展分区最多4个.逻辑分区在扩展分区下建立 6.时 ...

  4. java 内存优化

    计数器pc 2.2 虚拟机栈和程序计数器一样,虚拟机栈也是线程私有的,它的生命周期与线程相同.虚拟机栈描述的是java方法执行的内存模型. 每个方法(不包含native方法)执行的同时都会创建一个栈帧 ...

  5. P1353 [USACO08JAN]跑步Running

    题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ...

  6. psql: 致命错误: 对用户"user1"的对等认证失败

    操作系统:Debian8 登录pg时可能会有提示错误: $ psql -U user1 -d exampledb psql: 致命错误: 对用户"user1"的对等认证失败 打开以 ...

  7. iOS开发网络篇—发送GET和POST请求(使用NSURLSession) - 转

    说明: 1.该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2.本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. ...

  8. 认识node

    node是一个基于Chrome V8引擎的ECMAScript运行环境,使用了ECMAScript语法规范.有了node之后,js文件就能运行在服务器端了,也可以用来创建web服务器. node的主要 ...

  9. matlab 基于 libsvm工具箱的svm分类遇到的问题与解决

    最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把 ...

  10. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...