数学建模【对粒子群算法中惯性权重和学习因子的改进】

news2024/11/16 23:53:15

一、改进原因

这是前面 数学建模【粒子群算法】 中的一部分,这里提到了w存在的一些问题,那么本篇介绍一些方法对w和因子进行一些改进,提高粒子群算法的效率和准确度。

二、改进方法

1.线性递减惯性权重

惯性权重w体现的是粒子继承先前的速度的能力,Shi,Y最先将惯性权重w引入到粒子群算法中,并分析指出一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。为了更好地平衡算法的全局搜索以及局部搜索能力,Shi,Y提出了线性递减惯性权重LDIW(Linear Decreasing Inertia Weight),公式如下:

其中d是当前迭代的次数,K是迭代总次数。

wstart一般取0.9,wend一般取0.4。与原来的相比,现在的惯性权重和迭代次数有关。

参考论文:Shi, Y. and Eberhart, R.C. (1999) Empirical Study of Particle Swarm Optimization. Proceedings of the 1999 Congress on Evolutionary Computation, Washington DC, 6-9 July 1999, 1945- 1950.

既然有线性递减惯性权重,那肯定也有非线性递减惯性权重。

在网上找到结果非常多,这里给出常用的两个:

2.自适应惯性权重

假设现在求最小值问题,那么:

一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。

假设现在一共五个粒子ABCDE,此时它们的适应度分别为1,2,3,4,5。取最大惯性权重为0.9,最小惯性权重为0.4。那么,这五个粒子的惯性权重应该为:0.4,0.65,0.9,0.9,0.9。适应度越小,说明距离最优解越近,此时更需要局部搜索;适应度越大,说明距离最优解越远,此时更需要全局搜索。

假设现在求最大值问题,那么:

一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。

假设现在一共五个粒子ABCDE,此时它们的适应度分别为1,2,3,4,5。取最大惯性权重为0.9,最小惯性权重为0.4 。那么,这五个粒子的惯性权重应该为:0.9,0.9,0.9,0.65,0.4。适应度越小,说明距离最优解越远,此时更需要全局搜索;适应度越大,说明距离最优解越近,此时更需要局部搜索。

3.随机惯性权重

最开始提出随机惯性权重的论文:Zhang L, Yu H, Hu S. A New Approach to Improve Particle Swarm Optimization[J]. lecture notes in computer science, 2003, 2723:134-139.

使用随机的惯性权重,可以避免在迭代前期局部搜索能力的不足;也可以避免在迭代后期全局搜索能力的不足。

后面有一个对随机惯性权重的改进。

参考文献:基于随机惯性权重的简化粒子群优化算法[J].计算机应用研究,2014, 031(002):361-363,391.

其中:μmin是随机惯性权重的最小值;μmax是随机惯性权重的最大值;rand()为[0, 1]均匀分布随机数;第三项中randn()为正态分布的随机数;σ(标准差)用来度量随机变量权重w与其数学期望(即均值)之间的偏离程度,该项是为了控制取值中的权重误差,使权重w有利于向期望权重方向进化,这样做的依据是正常情况下实验误差服从正态分布。

一般σ取0.2-0.5之间的一个数。

4.压缩因子法

个体学习因子c1和社会(群体)学习因子c2决定了粒子本身经验信息和其他粒子的经验信息对粒子运行轨迹的影响,其反映了粒子群之间的信息交流。设置c1较大的值,会使粒子过多地在自身的局部范围内搜索,而较大的c2的值,则又会促使粒子过早收敛到局部最优值。

为了有效地控制粒子的飞行速度,使算法达到全局搜索与局部搜索两者间的有效平衡,Clerc构造了引入收缩因子的PSO模型,采用了压缩因子,这种调整方法通过合适选取参数,可确保PS0算法的收敛性,并可取消对速度的边界限制。

参考文献:M. Clerc. The swarm and queen: towards a deterministic and adaptive particle swarm op-timization. Proc. Congress on Evolutionary Computation, Washington, DC,.Piscataway,NJ:IEEE Service Center (1999) 1951- 1957

压缩因子法中应用较多的个体学习因子c1和社会学习因子c2均取2.05,用我们自己的符号可以表示为:

惯性权重w = 0.9,速度更新公式为:

将c1r1看成c1即可,c2r2看成c2即可。

参考文献:Eberhart R C. Comparing inertia weights and constriction factors in optimization[C]// Proceedings of the 2000 IEEE Congress on Evolutionary Computation, La Jolla, CA. IEEE, 2000.

5.非对称学习因子法

在经典PSO算法中,由于在手优后期粒子缺之多样性,易过早收敛于局部极值,因此通过调节学习因子,在搜索初期使粒子进行大范围搜索,以期获得具有更好多样性的高质量粒子,尽可能摆脱局部极值的干扰。

学习因子c1和c2决定粒子个体经验信息和其他粒子经验信息对寻优轨迹的影响,反映了粒子之间的信息交换。设置较大的c1值,会使粒子过多的在局部搜索(这里的局部搜索指的是粒子会过多的在自身的局部范围内进行搜索,从全局来看实际上增大了搜索范围。可以想象成每个粒子各干各的事情,团队意识比较弱);反之,较大的c2值会使粒子过早收敛到局部最优值。因此,在算法搜索初期采用较大的c1值和较小的c2值,使粒子尽量发散到搜索空间即强调“个体独立意识”,而较少受到种群内其他粒子即“社会意识部分”的影响,以增加群内粒子的多样性。随着迭代次数的增加,使c1线性递减,c2线性递增,从而加强了粒子向全局最优点的收敛能力:

c1 = c1i + k × (c1f - c1i) / kmax

c2 = c2i + k × (c2f - c2i) / kmax

其中,k为当前迭代次数;kmax是最大迭代数;c1i、c2i分别为c1、c2的初始值;c1f、c2f分别为c1、c2的最终值。

根据上述收敛性分析,在迭代过程中w值从1线性递减到0.4,参数c1和c2在满足c = c1 + c2 ≤ 4的条件下,有3种取值情况:

  1. c1和c2是常数且c1 = c2。表示“个体”与“群体”对粒子搜索过程的影响力相同
  2. c1和c2是对称的线性变化关系。即c1i = c2f且c2i = c1f,表示“个体”与“群体”对搜索过程起完全互补的作用,这是经典PSO的思想
  3. c1和c2是非对称的线性变化关系。即c1i ≠ c2f且c2i ≠ c1f,表示“个体”与“群体”对搜索过程具有不同程度的影响,这也是本文的改进PSO算法

综合以上分析,基于c1 = 2.5-0.5,c2 = 1.0-2.25 的非对称学习因子调节策略与文献[5]的对称调节以及学习因子固定取值的方法相比,均有较为明显的改善,表现出较好的全局寻优能力。

参考文献:毛开富,包广清,徐驰.基于非对称学习因子调节的粒子群优化算法[J].计算机工程,2010(19):188-190.

按照我们的符号就是:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何获取用户请求的真实ip,并返回访问者的ip地理位置?node,vue

一、获取真实IP 方式1、前端调用免费公共接口获取 前端获取访问者的真实的外网ip,可以通过调用接口https://api.ipify.org/来获取。你也可以直接在网页上访问它来看自己的外网ip。 ipify介绍: ipify是一个免费的公共 API,用于获取设备的公共 IP 地址。…

备考2025年AMC8数学竞赛:吃透2000-2024年600道AMC8真题就够

我们继续来随机看五道AMC8的真题和解析,根据实践经验,对于想了解或者加AMC8美国数学竞赛的孩子来说,吃透AMC8历年真题是备考最科学、最有效的方法之一。 即使不参加AMC8竞赛,吃透了历年真题600道和背后的知识体系,那么…

conda pack环境迁移并下载安装离线包

背景 训练服务器为了安全起见,限制不能联网,无法直接创建虚拟环境及安装模型的依赖库,所以需要把另一台测试服务器已经部署好的虚拟环境迁移到训练服务器上,并在不能联网的情况下安装一些离线包。过程记录如下记录。 一、环境迁移…

指针篇章(3)-(指针之间的区别)

学习目录 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————…

微信小程序开发系列(二十六)·小程序运行机制(启动、前后台状态、挂起、销毁)和小程序更新机制

目录 1. 小程序运行机制 1.1 启动 1.2 前台和后台状态 1.3 挂起 1.4 销毁 2. 小程序更新机制 1. 小程序运行机制 1.1 启动 小程序启动可以分为两种情况,一种是冷启动,一种是热启动。 冷启动:如果用户首次打开,或小…

mysql的trace追踪SQL工具,进行sql优化

trace是MySQL5.6版本后提供的SQL跟踪工具,通过使用trace可以让我们明白optimizer(优化器)如何选择执行计划。 注意:开启trace工具会影响mysql性能,所以只适合临时分析sql使用,用完之后请立即关闭。 测试数…

电脑中缺失EMP.dll文件怎么办,解决EMP.dll丢失问题的有效方法分享

当你的电脑出现由于找不到emp.dll无法继续执行代码的提示,那你要怎么办呢?其实解决方法还是挺多的,今天就来给大家详细的说说emp.dll这方面的信息吧。 一、电脑为什么会出现emp.dll丢失 不完全卸载软件:在卸载程序时,…

小迪安全37WEB 攻防-通用漏洞XSS 跨站权限维持钓鱼捆绑浏览器漏洞

#XSS跨站系列内容:1. XSS跨站-原理&分类&手法 XSS跨站-探针&利用&审计XSS跨站另类攻击手法利用 XSS跨站-防御修复&绕过策略 #知识点: 1、XSS 跨站-另类攻击手法分类 2、XSS 跨站-权限维持&钓鱼&浏览器等 1、原理 指攻击者利用…

可商用的HuoCMS建站系统,基于thinkphp内核且免费开源

HuoCMS是一套内容管理系统,同时也是一套适用于企业官网建设的系统,能够帮助用户快速搭建个人网站。满足企业站、外贸站、个人博客等多种建站需求。HuoCMS的优势在于可以通过统一后台管理多个网站的内容,方便维护和共享不同内容在不同网站上的…

关于playbook中when条件过滤报The conditional check ‘result|failed‘ failed的问题

问题现象 在使用plabook中的when做过滤脚本如下: --- - hosts: realserversremote_user: roottasks:- name: Check if httpd service is runningcommand: systemctl status httpdregister: resultignore_errors: True- name: Handle failed service checkdebug:ms…

离线数仓(六)【ODS 层开发】

前言 1、ODS 层开发 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构(JSON/CSV/TSV)。 (2)ODS层要保存全部历史数据,故其压缩格式应选择高压缩比的…

Android 学习之追踪应用的安装情况

先上结论,急用的话直接看结论 结论一、借助 API 读取安装信息,然后上报二、借助手动埋点,然后上报三、对比 前提过程 结论 一、借助 API 读取安装信息,然后上报 通过 PackageManager 的 API,我们可以得知自身应用安装…

基于VSCode安装Node.js开发环境

根据官网介绍,Node.js 是一个免费的、开源的、跨平台的JavaScript实时运行环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本. Node.js框架由于是采用JavaScript语法进行调用的,因此Node.js环境除了用来编写调试Node.js代码&#…

2024 年排名前 5 名的 Mac 数据恢复软件分享

如果您已经在 Mac 上丢失了数据并且正在寻找恢复数据的方法,那么您来对地方了。互联网上有超过 50 个适用于 Mac 的数据恢复程序。哪个是最好的 Mac 数据恢复软件?不用担心。本文列出了 5 款 Mac 数据恢复软件,可帮助您在 Mac OS 下恢复丢失的…

jvm八股

文章目录 运行时数据区域Java堆对象创建对象的内存布局对象的访问定位句柄直接指针 GC判断对象是否已死引用计数算法可达性分析算法 引用的类别垃圾收集算法分代收集理论标记清除算法标记复制算法标记整理算法 实现细节并发的可达性分析 垃圾收集器serial收集器ParNew收集器Par…

手机短信恢复 - 如何在 Android 手机上恢复删除的短信

手机每天发送和接收的短信数以亿计,而Android消息丢失每天都在发生。 Android短信恢复对于那些在设备中保存了一些重要信息的人来说显得至关重要。首先,我们向您推荐奇客数据恢复安卓版,这款软件能够高效、安全地恢复已删除的短信&#xff0…

结构指针的使用

结构指针的使用 指针类型变量: 指针类型,是变量类型的一种,它是专门用来存储变量的地址的。 例如 int *p; 表示p是一个指针变量,它用来存储某个整型变量的地址。 int a5; int *p&a; 这样,就将整型变量a的地…

有什么针对新闻媒体行业的安全解决方案

对媒体行业而言,门户网站是最易受到攻击的地方。常见的攻击方式有网页篡改、挂马和被植入暗链等。门户网站作为新闻媒体对外的第一扇门,通常承载了大量的流量,一旦遭到攻击,造成的影响会更具有可怕的“传播力”。那么我们应该如何…

Tree Shaking:优化前端项目的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

1、功能安全入门之内功心法ISO26262介绍

目录 0. 对于安全规范的认知 0.1 ISO26262简介 0.2 功能安全的必要性 2. ISO26262第1部分基本术语 2. ISO26262第2部分-功能安全管理 3. ISO26262第3部分-概念阶段 4. ISO26262第4部分-产品开发:系统层面 5. ISO26262第5部分-产品开发:硬件层面 6. ISO26262第6部分-…