基于粒子群优化算法的的微电网多目标优化调度----算法改进

前言:

        当阅读过前一篇我的博客之后,并且认真去读懂了那篇文章末尾的代码,那么,后续的算法改进对于你来说应当是很容易的了。前文中提及过,粒子群在进行迭代时,每迭代一次,都会根据自己个体最优值,全局最优值,自身惯性三个因子,来决定粒子下一次的飞行方向。传统的粒子群算法为什么是传统,就是他这三个因子,都是保持的一个常数值,缺乏适应性,这也就是为什么需要进行改进粒子群算法。

本文的目标:

1.解释如何对传统粒子群优化进行简单改进,与第一篇文章结果进行对比;

2.通过改变粒子群中粒子的数量,存档库的大小,迭代次数,观察算法效果。

基础知识:

1.传统型粒子群算法更新粒子的方式-------请看下面这篇博文,讲解十分精炼(基于Python实现)粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解-CSDN博客

先看上边这个公式1(红圈),表示第n个粒子,在k+1次迭代时候的位置=第k次迭代时的位置+即将移动的速度(第k+1次的移动速度)。需要注意,粒子的位置使用一组数值来表示的,速度是对粒子位置进行增减,也是和前者尺寸长度相同的一组数值。所以,粒子的位置实际上就是代表问题的一组解。下面这个公式2(红圈)是在计算k+1次时候的速度,这个速度由粒子自身惯性(鸟飞行时的惯性)、个体最优值(这只鸟自己飞行时候遇见的最佳历史值)、群体最优值(整个鸟群飞行时候遇见的最佳历史值)共同决定。w'是粒子本身惯性权重因子,c1'和c2'是学习因子,r1'和r2'是分布在[0,1]区间内的随机数。以上w',c1',c2'都是保持一个恒定值,这样子求解容易出现局部最优解的情况,无法探索更大的空间。---------------传统型PSO的特点,恒定值导致的定步长,使得搜索成本增加,且不一定能够搜索到最优(这一点可以去哔哩哔哩上看动画演示)

2.粒子群群里粒子的数量越多,也就是每次参与寻找食物的鸟的数量越多,在同样的迭代次数下,寻找到全局最优的可能性越大,而且更加趋于收敛。在粒子群群里粒子数量一定的情况下,延长迭代次数,也可以达到寻找全局最优的效果,但是收敛的时间可能会比较漫长。毫无疑问,更大的粒子数量和迭代次数,都会导致搜索时间成本的增加,所以需要慎重选择二者间的平衡。

3.改进后的粒子群算法更新粒子方式---------------------将定步长修改为变步长

大致意思就是:在开始迭代的时候,粒子的迭代策略更加注重自身的最优解,以达到增大全局探索能力的目的。迭代次数过半的时候,开始逐渐将重点放在全局最优解,寻求一个稳定的收敛。

改进后的粒子群算法更新方式如下:

只对原来的恒定值做了更新,让其随着迭代次数的逐渐增加而C1数值逐渐减小,C2逐渐增大。

IT 是当前迭代次数; MI 是总迭代次数; w s 和 w e 是惯性权重因子的初始值和终止值。在迭代
初期,较大的 w 使算法不宜陷入局部极小值,便 于全局搜索[14] 。在迭代后期,较小的 w 有利于局 部搜索,有利于算法的收敛;c 1s c 1e c 1 的初 始值和停止值,c 1s 大于 c 1e c 2s c 2e 是的初始值和停止值,c 2s 小于 c 2e 。在迭代初期,大 c 1 和小 c 2 使粒子具有较好的自学习能力和较差的社会学 习能力,有利于全局搜索。在迭代后期,小 c 1 和 大 c 2 使粒子具有较强的社会学习能力和较差的自 学习能力,有利于算法的收敛。

代码实现:

定义了两个匿名函数w和pm用于对原来恒定常数值的动态更新。
这里使用了一个Matlab的语法,wc=w(it),和pc=pm(it),调用了两个匿名函数,使用w(it)就能调用66行定义的函数公式。这样在每一次群体迭代过程中,都会先计算一下本次迭代的最新权重系数值,然后再针对每个粒子去更新位置。这样更加保证搜索到全局最优(可以多次实验记录一下)
其余部分和传统型粒子群算法完全一样。

调整迭代次数和粒子个数

设置迭代次数为200,粒子个数为500,存档库的大小为500,点击运行代码即可。最直观的感受是,单次运算速度相比之前(迭代次数100,粒子个数100,存档库100)慢了很多,在视图上可以看见更多的粒子在动态搜索。下图为最新粒子个数

下面这个是迭代次数设置为100,粒子个数为100时候的对比

能够很明显看到,粒子数为500时候对应的界面更加密集。

改进粒子群算法代码如下:

链接:https://pan.baidu.com/s/1LmaxCCHlg-HhtaYZThoi9Q 
提取码:3333

搭配复现的论文PDF:

链接:https://pan.baidu.com/s/1tbuboB1sI6wIzMlkZdK7iw 
提取码:2222

暂时先告一段落啦,休息一会儿。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA小知识22:迭代器iterator与列表迭代器ListIterator

一、迭代器 在 Java 中,迭代器是一个设计模式,用于遍历集合中的元素。Java 提供了 Iterator 接口来实现这一功能。迭代器的主要作用是提供一种通用的遍历集合的方法,而不需要了解集合的具体实现细节。 1.1、迭代器的特点 统一接口&#xf…

MySQL中实现行列转换的示例

在 MySQL 中进行行列转换(即,将某些列转换为行或将某些行转换为列)通常涉及使用条件逻辑和聚合函数。虽然 MySQL 没有像 Oracle/SQL Server 中的 PIVOT 和 UNPIVOT 那样的直接功能,但你可以通过结合 CASE 语句、UNION 或 UNION AL…

Linux下Shell脚本基础知识

主要参考视频: 这可能是B站讲的最好的Linux Shell脚本教程,3h打通Linux-shell全套教程,从入门到精通完整版_哔哩哔哩_bilibili 主要参考文档: Shell 教程 | 菜鸟教程 (runoob.com) Bash Shell教程 (yiibai.com) 先用视频入门&…

银行数仓项目实战(一)--什么是数据仓库

文章目录 数据仓库特点目的:监管报送监管报送的系统主要有?监管报送报送的数据 OLTP和OLAP 架构 数据仓库 数据仓库是一个面向主题的,集成的,非易失的且随时间变化的数据集合,用来支持管理人员的决策。 数据仓库是一个…

采集罗克韦尔AB、西门子等PLC数据发布成HTTP接口

智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC的原厂协议转换为HTTP协议的服务端,通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,即可接收来自客户端的GET、PUT和POST命令,解析和打包JSON文件(JSON文件格…

两个链表合并升序-链表题

21. 合并两个有序链表 - 力扣(LeetCode) 非递归 class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(list1 nullptr && list2 ! nullptr)return list2;if(list2 nullptr && list1 ! nullptr)re…

电子传真怎么在国产系统上使用?一文看懂网络传真信创方案

国产化浪潮正在逐步深入,越来越多的企业开始关注如何在国产系统上高效、安全地使用办公软件,电子传真系统也不例外。 作为网络电子传真领域的重要品牌,EastFax也对原Windows电子传真系统进行了信创改造,全面支持国产化操作系统、…

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析

天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。 SysTools SQL Log Analyzer 是 Systools 取证工具系列之一,用于调查 SQL Server 事务日志,以对数据库篡改进行取证分析。 什么是 SQL Server 事务日志? 在深入研究 SQL 事务日…

【工作】计算机行业相关的十六类工作简介

本文简单介绍了计算机行业相关的工作类别,共16种,包括常见招聘要求与平均工资。平均工资信息来源:米国企业点评职场社区glassdoor(https://www.glassdoor.com/index.htm) (一)软件工程师 软件…

【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术

🔥 个人主页:空白诗 文章目录 引言一、图数据及其应用场景1.1 图数据的定义和特征1.2 常见的图数据结构1.2.1 社交网络1.2.2 知识图谱1.2.3 分子结构1.2.4 交通网络 1.3 图数据在不同领域的应用实例1.3.1 社交网络中的推荐系统1.3.2 知识图谱中的信息检索…

流量卡怎么办理的攻略

一、确定需求 在办理流量卡之前,你需要明确自己的需求。根据不同的使用场景,你可能需要考虑以下几个方面: 月租费用:不同运营商提供的流量卡套餐价格各异,从低至19元到高达199元不等。 流量大小:从30GB到3…

ChromeDriver新手教程:一步步指导Chrome 114到127版本的驱动安装

114之前版本下载链接在这里 ​​​​​​125以后版本下载链接在此,只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一样;下载所需版本只需点击对应的版本名称即可跳转到对应版本的下载位置。 以…

同三维T80004JEH2-4K60 双路4K60 HDMI解码器

输出:2路HDMI2路3.5音频,最高支持1路4K60HDMI输出 可以同源/独立分屏输出两种模式可选:对应两个HDMI输出一样和不一样的信号 同源可以解码36路网络流(1/4/9/16/25/36),两个HDMI输出一样的信号&#xff…

《骑行健身:“柳叶刀”研究揭示的健康与经济双赢策略》

在这个物价飞涨、经济压力日益加重的时代,普通人如何在不增加额外负担的情况下提升生活质量?《柳叶刀》的最新研究为我们揭开了一个意想不到的秘密:坚持健身,尤其是骑行,竟等同于每年为自己赚取了一笔不小的财富。这一…

表格识别工具哪个好?简单操作,一键识别表格

随着2024年高考的圆满结束,考生们迎来了新的挑战——志愿填报。这不仅是一个技术活,更是一个信息战。 面对海量的高校信息和复杂的数据表格,考生们需要一种快速、准确的方法来整理和分析这些数据。幸运的是,现代科技提供了多种表…

【初阶数据结构】深入解析单链表:探索底层逻辑(无头单向非循环链表)

🔥引言 本篇将深入解析单链表:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &…

【软件测试入门】软件测试那些事

在日常生活中,我们早已习惯于各类软件带来的便捷与效率,从手机里的应用程序到电脑上的办公软件,它们无声地编织着现代社会的运作网络。然而,每一款流畅运行、体验优良的软件背后,都离不开一个关键环节——软件测试。《…

同三维T80004EH-N HDMI高清NDI编码器

1路HDMI 1路3.5音频输入,支持NDI 产品简介: 同三维T80004EH-N 高清HDMI编码器是专业的NDI高清音视频编码产品,该产品支持1路高清HDMI音视频采集功能,1路3.5MM独立音频接口采集功能。编码输出双码流H.265/H.264格式,音频MP3/AAC格…

SRM供应商管理系统建设方案及源码实现(方案+源码)

1. 供应商管理 2. 采购需求管理 3. 采购寻源管理 4. 采购合同管理 5. 采购订单管理 6. 采购协同管理 7. 外部商城采购管理 8. 报表查询管理 9. 系统管理 10. 集成管理 资料获取:本文末个人名片。

免费分享一套SpringBoot+Vue房地产销售管理系统【论文+源码+SQL脚本+PPT+开题报告】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue房地产销售管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue房地产销售管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue房地产销售管理系统 Java毕业设计…