当前位置: 首页 > news >正文

NSGA-II求解微电网多目标优化调度(MATLAB)

一、NSGA-II简介

NSGA-Ⅱ算法是Kalyanmoy Deb等人于 2002年在 NSGA 的基础上提出的,它比 NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比 NSGA 大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的共享半径 shareQ,并在快速排序后的同级比较中作为胜出标准,使准 Pareto 域中的个体能扩展到整个 Pareto 域,并均匀分布,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体的丢失,提高了算法的运算速度和鲁棒性。

NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面:

①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体;

②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度;

③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

二、微网系统运行优化模型

微电网优化模型介绍:

weixin的博客_CSDN博客46204734/article/details/132700070?csdnshare_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132700070%22%2C%22source%22%3A%22weixin_46204734%22%7D

三、NSGA2求解微电网多目标优化调度

(1)部分代码

close all;
clear ; 
clc;
global P_load; %电负荷
global WT;%风电
global PV;%光伏
%%
addpath('./NSGA2/')%添加算法路径
TestProblem=1;
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100;        % Population size
params.Nr = 200;        % Archive size
params.maxgen = 200;  % Maximum number of iteration
params.ngrid = 20;      % Number of grids in each dimension
[Xbest,Fbest]  = NSGA2(params,MultiObj);%% 画结果图ParetoFont
figure(1)
plot(Fbest(:,1),Fbest(:,2),'ko');
legend('NSGA2');
xlabel('运行成本')
ylabel('环境保护成本')
saveas(gcf,'./Picture/ParetoFont.jpg') %将图片保存到Picture文件夹下面%% 比较不同目标函数寻优对调度结果的影响
%idxn=1 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图
%idxn=2 第2种寻找总成本最低时的解并画图
%idxn=3 第3种寻找运行成本最低时的解并画图
%idxn=4 第4种寻找环境保护成本最低时的解并画图
for idxn=1:4pg=plotFigure(Xbest,Fbest,idxn);
end

(2)部分结果

pareto前沿:

 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图

第2种寻找总成本最低时的解并画图

第3种寻找运行成本最低时的解并画图

第4种寻找环境保护成本最低时的解并画图

四、完整MATLAB代码

相关文章:

NSGA-II求解微电网多目标优化调度(MATLAB)

一、NSGA-II简介 NSGA-Ⅱ算法是Kalyanmoy Deb等人于 2002年在 NSGA 的基础上提出的,它比 NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比 NSGA 大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的…...

7-9 jmu-python-班级人员信息统计

7-9 jmu-python-班级人员信息统计 分数 15 作者 郑如滨 单位 集美大学 输入a,b班的名单,并进行如下统计。 输入格式: 第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。 第2行:&am…...

Doris分区与分桶(八)

接上篇----------Doris 建表示例 Doris 支持两层的数据划分。第一层是 Partition,支持 Range 和 List 的划分方式。第二层是 Bucket(Tablet),仅支持 Hash 的划分方式。 也可以仅使用一层分区。使用一层分区时,只支持…...

mac VScode 添加PHP debug

在VScode里面添加PHP Debug 插件,根据debug描述内容操作 1: 随意在index里面写个方法,然后用浏览器访问你的hello 方法,正常会进入下边的内容 class IndexController {public function index(){return 您好!这是一个[api]示例应用;}public function hello() {phpin…...

53.最大子数组和

原题链接&#xff1a;53.最大子数组和 思路&#xff1a; 只需要判断当前和小于负数 如果小于则舍弃掉子序列即可&#xff0c; 子序列开头从下一个下标位置开始。 全代码&#xff1a; class Solution { public:int maxSubArray(vector<int>& nums) {int max_len I…...

455.分发饼干

原题链接&#xff1a;455.分发饼干 思路&#xff1a; 先使用大饼干喂饱大胃口的&#xff0c;再到剩余的里面用大饼干喂剩下大胃口的 &#xff0c;直到全部满足或者喂不了了为止。 全代码&#xff1a; class Solution { public:int findContentChildren(vector<int>&am…...

浏览器缓存控制讲解

缓存的作用 在你访问互联网中的任何资源其所产生的任何链路中的每一个节点几乎都会进行缓存&#xff0c;整个缓存体系和细节十分复杂。比如浏览器缓存&#xff0c;服务器缓存&#xff0c;代理服务器缓存&#xff0c;CDN缓存等。 但是缓存又十分重要&#xff0c;不可缺少&…...

批量插入SQL 错误 [933] [42000]: ORA-00933: SQL 命令未正确结束

使用DBeaver向【oracle数据库】插入大量数据 INSERT INTO Student(name,sex,age,address,birthday) VALUES(Nike,男,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike…...

北京数字孪生赋能工业制造,加速推进制造业数字化转型

随着新一代信息技术与实体经济深度融合进程的加快&#xff0c;企业数字化转型需求的提升&#xff0c;政策的持续支持&#xff0c;数字孪生将为工业制造、未来生活带来无限的可能。在制造业数字化大变革时代&#xff0c;以5G、大数据、物联网、人工智能等为代表的工业4.0&#x…...

【NLP】GPT 模型如何工作

介绍 2021 年&#xff0c;我使用 GPT 模型编写了最初的几行代码&#xff0c;那时我意识到文本生成已经达到了拐点。我要求 GPT-3 总结一份很长的文档&#xff0c;并尝试了几次提示。我可以看到结果比以前的模型先进得多&#xff0c;这让我对这项技术感到兴奋&#xff0c;并渴望…...

Linux下安装Foldseek并从蛋白质的PDB结构中获取 3Di Token 和 3Di Embedding

0. 说明&#xff1a; Foldseek 是由韩国国立首尔大学 (Seoul National University) 的 Martin Steinegger (MMseqs2 和 Linclust 的作者) 开发的一款用于快速地从大型蛋白质结构数据库中检索相似结构蛋白质的工具&#xff0c;可以用于计算两个蛋白之间的结构相似性&#xff0c…...

单元测试-java.lang.NullPointerException

报错信息 java.lang.NullPointerException 空指针异常 空对象引用 来源 对Controller层进行单元测试&#xff0c;解决完Spring上下文报错后继续报错。 解决 在测试方法执行前要为字段完成对象的注入&#xff0c;否则就报空指针异常。 测试例子 不完整启动Spring框架 pub…...

机器学习数据集整理:图像、表格

前言 如果你对这篇文章感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 表格数据 Sklearn 提供了 13 个表格型数据&#xff0c;且数据处理接口统一&#xff1b;LIBSVM 提供了 131 个表格型数据&a…...

Vue: Cannot find module @/xx/xx/xx.vue or its corresponding type declarations.

编辑器&#xff1a;Webstorm项目技术栈&#xff1a;vitevuets解决 1.vite.config.js设置别名resolve: {alias: {: path.resolve(__dirname, ./src),}, }, 2.src下创建globals.d.ts//通用声明 // Vue declare module *.vue {import { DefineComponent } from vue;const componen…...

怎样自动把网页截图发到微信群里

现在很多公司都在使用企业微信了&#xff0c;不但方便公司内部交流和客户交流&#xff0c;还能组建各种小组群&#xff0c;业务群。企业微信群提供一个机器人的功能&#xff0c;方便我们把公司业务信息&#xff0c;或来自外部的信息自动发布到群里。 这里研究一下如何向微信群…...

Netty实现websocket且实现url传参的两种方式(源码分析)

1、先构建基本的netty框架 再下面的代码中我构建了一个最基本的netty实现websocket的框架&#xff0c;其他个性化部分再自行添加。 Slf4j public class TeacherServer {public void teacherStart(int port) throws InterruptedException {NioEventLoopGroup boss new NioEve…...

深入理解C语言指针:基础概念、语法和实际应用

导言&#xff1a; 在C语言编程中&#xff0c;指针是一个强大而灵活的概念&#xff0c;它直接涉及到内存的操作&#xff0c;为程序员提供了更多的控制权。本文将深入探讨C语言指针的基础概念、语法规则以及实际应用&#xff0c;帮助读者更好地理解和运用这一重要的编程工具。 1…...

百度云加速免费版下线,推荐几款目前仍旧免费的CDN

近日&#xff0c;百度云加速实施了新政策&#xff0c;将不再支持免费套餐服务。现在免费的CDN也越来越少了&#xff0c;推荐几款目前仍旧免费的CDN&#xff0c;大家且用且珍惜&#xff01; 1、雨云【点此直达】 源站为雨云产品可以免费使用CDN&#xff0c;源站非雨云产品流量包…...

HarmonyOS(五)—— 认识页面和自定义组件生命周期

前言 在前面我们通过如何创建自定义组件一文知道了如何如何自定义组件以及自定义组件的相关注意事项&#xff0c;接下来我们认识一下页面和自定义组件生命周期。 自定义组件和页面的关系 在开始之前&#xff0c;我们先明确自定义组件和页面的关系 自定义组件&#xff1a;Co…...

DevExpress WinForms TreeMap组件,用嵌套矩形可视化复杂分层数据

DevExpress WinForms TreeMap控件允许用户使用嵌套的矩形来可视化复杂的平面或分层数据结构。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风…...

彻底告别DLL缺失烦恼:VisualCppRedist AIO一键解决Windows运行库问题

彻底告别DLL缺失烦恼&#xff1a;VisualCppRedist AIO一键解决Windows运行库问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况&am…...

保姆级教程:用Termux在安卓手机上装Kali Linux(附VNC桌面配置与常见网络问题解决)

安卓手机零基础部署Kali Linux实战指南&#xff1a;从Termux配置到VNC远程桌面 在移动互联网时代&#xff0c;安全研究人员和开发者常常需要在不同场景下快速搭建渗透测试环境。本文将手把手教你如何在不Root安卓设备的情况下&#xff0c;通过Termux终端模拟器完整部署Kali Lin…...

Vue大屏自适应解决方案:如何用v-scale-screen解决数据可视化适配难题?

Vue大屏自适应解决方案&#xff1a;如何用v-scale-screen解决数据可视化适配难题&#xff1f; 【免费下载链接】v-scale-screen Vue large screen adaptive component vue大屏自适应组件 项目地址: https://gitcode.com/gh_mirrors/vs/v-scale-screen 在数据可视化大屏开…...

别再被‘timing slicing’报错卡住!手把手教你搞定新版Web of Science数据导入CiteSpace

新版Web of Science数据导入CiteSpace全攻略&#xff1a;从报错排查到完美解决 当你满怀期待地将新版Web of Science导出的文献数据导入CiteSpace&#xff0c;准备开始文献计量分析时&#xff0c;屏幕上突然跳出"the timing slicing setting is outside the range of your…...

Docker技术入门与实战【2.0】

11.3 TomcatTomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下普遍使用&#xff0c;是开发和调试JSP程序的首选。Tomcat最初是由Sun的软件构架师詹姆斯邓肯戴维森开发的。后来在他的…...

Python openpyxl操作Excel完整指南:10个高频场景附代码

Python openpyxl操作Excel完整指南&#xff1a;10个高频场景附代码数据分析工作中&#xff0c;Excel处理是绕不开的环节。手动操作费时费力&#xff0c;用Python自动化才是正道。本文用10个实战场景&#xff0c;带你掌握openpyxl的核心用法。一、环境准备openpyxl是Python操作x…...

大模型应用开发岗、算法岗、C++/Java/Go开发岗到底什么区别?谁替代谁了吗?

现在大模型很火,也有了一个岗位叫做&#xff1a;大模型应用开发岗。 在boss上搜一下&#xff0c;现在 大模型应用开发 岗位很多&#xff0c;比普通开发岗位都多。下面我这还是仅仅深圳南山的结果&#xff1a; 很多粉丝&#xff0c;搞不懂 大模型应用开发就是是个啥&#xff1f…...

LFM2.5-VL-1.6B基础教程:config.json核心参数含义与微调入口点

LFM2.5-VL-1.6B基础教程&#xff1a;config.json核心参数含义与微调入口点 1. 模型概述 LFM2.5-VL-1.6B是Liquid AI发布的一款轻量级多模态大模型&#xff0c;专为端侧和边缘设备设计。这个模型结合了1.2B参数的语言模型和约400M参数的视觉模型&#xff0c;总参数量为1.6B&am…...

别再傻傻分不清了!Unity里Animation和Animator到底怎么选?附DoTween插件对比

Unity动画系统深度对比&#xff1a;Animation、Animator与DoTween的实战选择指南 当Unity开发者面对动画需求时&#xff0c;常常陷入选择困境&#xff1a;是用简单的Animation组件快速实现&#xff0c;还是构建复杂的Animator状态机&#xff1f;第三方插件DoTween是否更适合当前…...

手把手教你用VMware Workstation 17 Pro安装华为openEuler 22.03 LTS(附UKUI桌面安装教程)

从零开始&#xff1a;在VMware Workstation 17 Pro上部署openEuler 22.03 LTS全攻略 最近在开发者圈子里&#xff0c;华为的openEuler操作系统引起了广泛关注。作为一款面向数字基础设施的开源操作系统&#xff0c;openEuler不仅支持多种处理器架构&#xff0c;还在云计算、大…...