2023华为杯数学建模D题第三问-碳排放路径优化(能源消费结构调整的多目标优化模型构建详细过程+模型假设(可复制))

1.碳排放约束下(人为干预按时碳达峰与碳中和的基准情景)能源消费结构多目标优化模型构建

1.1基本假设

本文的模型设计主要基于以下几个基本假设:
(1)能源消费结构调整的根本驱动要素,是对投资耗费的最小化和对环境污染处理费用的最小化。
(2)受科学技术进步制约,假定各燃料种类的来源方式不变,则单位种类能源的碳排放系数恒定不变。
(3)依据 BP神经网络模型的能源消费预测结果,取其在特定范围内波动值为最佳优化区域,以实现能源结构优化。
(4)各行业间不存在技术差异,能源利用效率的改变反映在能源消费结构的调整中,忽视科技、管理等因素对能源利用效率的影响。
(5)在低碳转型背景下,模型目标是在保持经济平稳增长的前提下,能源消费总量达到最少,同时让碳排放量最低。
(6)碳排放量是环境污染指标的最主要考虑因素。

1.2总体目标函数

多目标优化问题(multiobjective optimization problem,MOP)是一门迅速发展起来的学科,是最优化的一个重要分支,它是智能计算(Intelligent Computing)领域的一个重要研究方向。起源于对许多实际复杂体系的设计、构造与规划。它重点研究在某种意义下多个数值目标的同时最优化问题[81]。多目标综合优化提问是和传统的单目标综合优化提问相比,在特定情况中,当要求实现多种总体目标时,由于很易产生总体目标之间的内在矛盾,某个总体目标的优势往往是以其他总体目标优劣为代价,所以很难产生唯一最优预测解,取而代之的是在他们之间进行调和与折衷处理,使总体的目标尽量的达到最大化,也是探究在某种意义下多数量总体目标的共同最大化提问。它和单目标优化问题的根本差别就是,它的求解目标绝非惟一,只是面临着一套由多个帕累托求解(Pareto Optimal)所构成的最优预测求解集,整体中的所有元素均为 Pareto解,也称为非劣解[82]。而过多的非劣解是无法直接应用的,所以在求解时就是要寻找一个最终解。但过多的非劣解是无法进行实际应用的,所以在求解时候就是要寻求一种最终解法。过多目标规划的好处,就是非常强调对可行方法的替代性以及对所要实现目标的选择性。而且,多个目标计划还可以同时兼顾几个相互产生矛盾的目标,并能够通过决策者对公司几个目标间不同相对价值的选择,解决公司几个不同优先级目标的优化问题。就这样,可以在解决公司产品规划、生产区域选择、能源计划、交通运输等问题时,多目标规划法得到了广泛的应用。在实际生活中,优化设计工作从总体上都体现着最佳效果、最低成本这二条基本的设计优化原则,但在这一原则基础上很多问题都是由彼此矛盾和相互影响的几个目标所构成,这就使得决策变动相对困难。大多数系统的多目标优化技术的基本思路都是把多个项目问题简单化,再转换为单个项目进行解决。求解的一般步骤是首先将问题调整分析,之后采取单目标的求解模型寻找答案,最后将求得最优解作为非单一目标问题的答案。常用的多目标综合设计优化方式有:加权求和法(Weighted SumMethod)、ε-约束法(ε-Constraint Method)、加权度量方法(Weighted Metric Method)。本节采用加权求和法对能源消费结构进行多目标优化,构建目标函数如下:

经过加权处理后的目标函数形式为: 

上式中, F x 代表的是总目标函数,  \lambda(i=1,2i) 代表的则是不同目标函数的权重,总目标函数中包括了能源消费成本最小和环境污染治理费用最小这两个目标。

(1)能源消费成本量。能源消费量最小是追求能源效益最优的重要方面,设其目标函数为:

(2)环境污染治理费用最小。减少碳排放量可以转化为最小化环境治理费用的问题。目标函数可以表示为:

1.3模型约束条件

(1)能源消费总量约束。根据题目中的结果显示,

非化石能源消费比重是指非化石能源消费量与能源消费量的比值,提高非化石能源消费比重是降低单位能耗二氧化碳排放量的根本和关键。

《意见》中明确指出,到2025年非化石能源消费比重达到20%左右;到2030年非化石能源消费比重达到25%左右;到2060年非化石能源消费比重超过80%。为了实现非化石能源消费比重超过80%的目标,非化石能源发电比重和电力消费比重均应达到90%。提高非化石能源消费比重的必要条件是提高非化石能源发电占比,需要由新能源发电、脱碳火电和包含储能在内的新型电网等能源生产部门完成;而充分条件是提高非化石能源消费比重,需要由工业消费部门、建筑消费部门、交通消费部门、居民生活消费和农林消费部门等能源消费部门完成。

因此本文中根据2023年中国研究生数学建模竞赛题思路及模型 | 知新的官方博客对能源消费总量的预测,按照上下浮动 5%的水平同时设置上限和下限

(2)碳排放总量约束。

假设2、2060年生态碳汇的碳消纳量为基期碳排放量的10%;

假设3、2060年工程碳汇或碳交易的碳消纳量为基期碳排放量10%。

 \lambdai为不同能源的碳排放系数,得到式(5-11)约束条件

(3)能源消费结构约束。

碳排放量核算模型与问题二中预测模型相一致(即在多情景条件约束下,区域与各部门能源消费量、能源消费品种及其碳排放量预测方法相一致)。

(4)非负约束

相关分析方法主要是研究变量间是不是具有某种相互依存关系,而结合到本课题就是运用 SPSS统计分析软件,观察能源行业固定资产投资费用和环境污染处理费用与各能源消费量之间的相关程度。对 5个自变量:煤炭、石油、天然气、水电及其他能发电的消费量、能源消费总量与 2个因变量在 SPSS软件的支持下,

1.4优化方案设计

 1)节能优先
在节能优先的方案中,设置能源消费成本权重大于环境污染处理费用权重,即 \lambda(i=1,2),( 0.75,0.25) 。能源消费成本代表的是在生产活动中实际消费的各种能源消费成本的总和,本文中用固定资产投资表征能源消费成本。为了使能源效率达到最高,能耗强度降低,达到节能要求,就要使得能源固定资产投资得到充分利用。
(2)减排优先
在减排优先的方案中,设置能源污染治理费用权重大于能源消费成本权重,即 \lambda(i=1,2)( 0.25,0.75) 。能源污染治理费用与碳排放息息相关,为了降低碳排放,优化生态环境,减少能源消费污染物,可以通过设置能源污染治理费用最小来实现能源
减排的优化。
(3)节能与减排并重
在综合节能和减排方案中,对能源污染治理费用和能源消费成本分别设置相同权重,即 \lambda(i=1,2),( 0.5,0.5) 。能源消费结构的优化使能源消费结构趋于合理化发展,终极目的是为达到在能源消费和生态环境之间保持均衡,而平衡节能与减排之间的关系能很好的反映能源消费结构优化的效果。

1.5多目标优化结果

1)遗传算法(Genetic Algorithm,GA)
1975年,美国纽约 MicHigan学院的 J.H.Holland博士在研究学习时注意到,机器学习不但能够利用对一个生物体的适应性来实现,并且还能够利用对一个群体的许多进化适应性来进行实现,于是 KennethDeJong把这些计算用于处理优化问题。因为遗传算法的计算中并不包括所有待解决所具有的问题形态,它是通过改变人类基因组的配置来进行对问题的总体优化的,所以属于自下而上的优选方案。人的天然演化过程也是进化论流程,这个进化论流程主要出现在染料体上,天然筛选使适应性值较好的染料体比一些适应性值较不好的染料体具有更多的增殖机会,天然变异使子代染料体不同于父代染料体。遗传算法,就是是为了模仿在大自然中生物发展的遗传机制和天然筛选流程所提出的[84]。遗传算法是一个群体式运算,该方法可以以生物学族群中的任何一个为对象,三种重要控制算子为筛选、交错和突变,也因此形成了所说的遗传操作法(geneticoperation),利用对生物学遗传与进化流程中筛选、交错与突变等机制的仿真,来实现对难题最佳预测解的自适应性搜索过程方法,实质上有所不同于常规的多目标与整体风险和解计算技术,不要求对各子任务的权重设定,比传统的多目标优化方式作用更突出,已被人类普遍地运用在组合优选、机器学习、信息加工、自适应控制,以及人力健康等应用领域。也是现代有关生物学智能算法中的核心技术之一。由于能源消费结构优化问题配置的多目标性,利用原有的规划方式往往不得而解好这类提问,但多目标遗传算法却具有运算简单易行等优点,甚至可以在一个运行中就得到优化问题的类似 Pareto最优解集[85],于是本节使用遗传算法对的能源消费结构多目标优化模型进行了计算。

遗传算法的过程包括编码、交叉、变异、选择等,它们能够相互独立参与进化。具
体操作步骤如下:
Step1:编码和产生初始群体。
选择以二进制编码方法,把问题的可行解从解空间中转移到由遗传算法所能控制的
空间结构中,并随机得到 N个串结构数据, N个串结构数据构成一个群体,当作起始
节点开始迭代。设有进化代数计算器 0t  ,设置最大进化代数T ,随机生成 N个个体成
为初始群 P0

Step2:计算适应度值。
适应度函数表明了个体的优劣性,需要根据具体的问题计算群体  pop t 中各个个体
的适应度值。

Step3:选择操作。

将选择算子作用于群体,根据 Step2中所得适应度函数值计算概率大小 iP ,随机选取适应度高的个体遗传到下一代群体中,构成一个新种群 newpop进行下一步操作。

Step4:交叉操作。将交叉算子作用于群体,交叉操作以概率 cP随机选取个体在随机
生成的位置上进行交叉,得到群体 crosspop (t+1)。

Step5:变异操作。将变异算子作用于群体,以变异概率 mP随机选取个体进行变异,

得到新的群体 mutpop (t +1) 

在进行了最大的迭代代数后,算法停止执行。遗传算法的计算流程图,如图 5-1所
示。

 结果分析
在对遗传算法做了基本的学习了解之后,调用 MATLAB软件中遗传算法工具箱,
按照上述步骤利用的历史数据,通过优化模型对能源消费结构进行优化。
其中,设置交叉 cP概率为 0.9变异概率 mP为 0.02,取迭代次数为 500,得到如下的约
束违反度曲线和收敛曲线。

图 5-2的约束违反度曲线在迭代次数达到第 50次的时候就已经降低到 0,意味着找到了满足约束的解。图 5-3的目标函数值的收敛曲线在迭代的过程中趋势逐渐下降,说明优化效果较好。图 5-2和图 5-3均为节能优先的方案中,运算的效果呈现,在减排优先和节能减排方案中效果类似,故不做赘述。不同方案下的优化结果如表 5-11所

表 5-11中呈现的是三种不同的优化方案下,未来的能源消费结构与能源消费总量。由表可知,节能优先的方案下,在目标函数中设置能源消费成本权重最大,也就是此方案中,在一定的碳排放和能源消费总量等约束条件上,力求能源消费成本达到最小。优化结果中,煤炭消费占比为 73.3%,在所有能源消费占比重遥遥领先,天然气消费占比次之,符合能源消费结构状况,但是没有有效的控制煤炭消费量。减排优先的方案下,煤炭消费占比优化到了 66.1%,是三种方案中最能有效控制煤炭消费的优化方案,同时天然气消费和水电消费在该情况下的消费比重均有上升。节能减排方案下,不仅有效的减少量能源污染治理费用,而且煤炭消费占比较非优化状态下有所降低,为 69.8%。石油、天然气和水电及其他消费占比都略有提高,小幅度的、平均的优。

相关参考代码如下:

% 遗传算法参数
population_size = 100;    % 种群大小
num_generations = 50;    % 迭代代数
mutation_rate = 0.1;     % 变异率% 初始化种群
gene_length = 10;        % 基因长度
population = randi([0, 1], population_size, gene_length);% 适应度函数:示例目标函数 f(x) = x^2
fitness = @(x) sum(x.^2, 2);% 主循环
for generation = 1:num_generations% 计算适应度fitness_values = fitness(population);% 选择操作selected_population = zeros(population_size, gene_length);for i = 1:population_sizeparent1 = select_individual(population, fitness_values);parent2 = select_individual(population, fitness_values);[child1, child2] = crossover(parent1, parent2);selected_population(i, :) = mutate(child1, mutation_rate);endpopulation = selected_population;
end% 找到最优解
best_individual = population(1, :);
best_fitness = fitness(best_individual);
fprintf('最优解: ');
disp(best_individual);
fprintf('最优值: %f\n', best_fitness);% 选择操作:轮盘赌选择法
function selected = select_individual(population, fitness_values)total_fitness = sum(fitness_values);r = rand * total_fitness;current_sum = 0;for i = 1:length(population)current_sum = current_sum + fitness_values(i);if current_sum >= rselected = population(i, :);return;endend
end% 交叉操作:单点交叉
function [child1, child2] = crossover(parent1, parent2)point = randi([1, length(parent1) - 1]);child1 = [parent1(1:point), parent2(point + 1:end)];child2 = [parent2(1:point), parent1(point + 1:end)];
end% 变异操作:单点变异
function mutated = mutate(individual, mutation_rate)mutated = individual;for i = 1:length(individual)if rand < mutation_ratemutated(i) = ~mutated(i);endend
end

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

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

相关文章

威胁的数量、复杂程度和扩散程度不断上升

Integrity360 宣布了针对所面临的网络安全威胁、数量以及事件响应挑战的独立研究结果。 数据盗窃、网络钓鱼、勒索软件和 APT 是最令人担忧的问题 这项调查于 2023 年 8 月 9 日至 14 日期间对 205 名 IT 安全决策者进行了调查&#xff0c;强调了他们的主要网络安全威胁和担忧…

Java流式编程的使用

流式编程的使用步骤 使用流式编程的步骤就是: 设置数据源, 设置数据处理的方式,设置收集结果的方式。 使用filter方法实现过滤条件 例子为下&#xff08;查询年龄大于18的用户&#xff09;: Testpublic void streamTest1() {List<Student> students Arrays.asList(ne…

《JVM》第二篇 JVM内存模型深度剖析与优化

目录 一. JDK体系结构与跨平台特性介绍二. JVM内存模型深度剖析三. 从Jvisualvm来研究下对象内存流转模型四. GC Root与STW机制五. JVM参数设置通用模型 一. JDK体系结构与跨平台特性介绍 二. JVM内存模型深度剖析 按照线程是否共享来划分 TLAB(Thread Local Allocation Buffe…

改写软件-怎么选择改写软件

什么是改写软件&#xff1f;改写软件是基于自然语言处理技术的工具&#xff0c;它们可以分析一段文字&#xff0c;并将其重新表达&#xff0c;以保持原始意义&#xff0c;但使用不同的词汇和结构。这种技术可用于减少内容的重复&#xff0c;增加多样性&#xff0c;或者简化复杂…

Python量化交易学习笔记(0)

本文将简单回顾我的量化交易学习的历程&#xff0c;并给出新手学习量化交易的建议学习路线&#xff0c;适合于尚无稳定盈利策略的量化新手阅读&#xff0c;量化大神们请略过。 本文将在博客中置顶&#xff0c;并不定期根据我的学习、交易进行更新。 回顾学习历程 2020年初接…

SpringMVC初级

文章目录 一、SpringMVC 概述二、springMVC步骤1、新建maven的web项目2、导入maven依赖3、创建controller4、创建spring-mvc.xml配置文件&#xff08;本质就是spring的配置件&#xff09;5、web.xml中配置前端控制器6、新建a.jsp文件7、配置tomcat8、启动测试 三、工作流程分析…

pytorch环境搭建到pycharm项目映射配置(成功后回顾性记录/自用)

利用Anaconda创建pytorch虚拟环境 前提&#xff1a;成功安装Anaconda&#xff0c;确保可以打开NVIDIA控制面板 开始-》搜索“Anaconda Prompt” 打开后输入&#xff1a;conda create -n 你的虚拟环境名 python3.9。输入y&#xff0c;继续安装&#xff0c;完成。 输入&#…

合肥综合性国家科学中心人工智能研究院-机器学习作业(一)

1.试析min-max规范化和z-score规范化的优缺点 可参考博客&#xff1a;https://wenku.csdn.net/answer/fdbf30eb204644e5b69fc533a3757268 2.试分析损失函数与性能度量的关系 损失函数和性能度量之间的关系可以根据优化目标来理解。损失函数的优化目标是最小化预测值与实际值之…

力扣刷题-链表-两两交换链表中的节点

24.两两交换链表中的节点 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 解题思路 采用正常模拟的方法。 建议使用虚拟头结点&#xff0c;这样会方便很多&am…

面向面试知识-Redis

面向面试知识-Redis 什么是Redis 运行于内存的基于key-value的非关系型数据库。 一款开源的内存数据结构存储&#xff0c;用作数据库、缓存、消息代理等。&#xff08;可以基于Redis实现分布式锁、以及消息队列&#xff09; 发布订阅&#xff1f;&#xff1f; 对数据类型的操…

消息队列中,如何保证消息的顺序性?

本文选自&#xff1a;advanced-java 作者&#xff1a;yanglbme 问&#xff1a;如何保证消息的顺序性&#xff1f; 面试官心理分析 其实这个也是用 MQ 的时候必问的话题&#xff0c;第一看看你了不了解顺序这个事儿&#xff1f;第二看看你有没有办法保证消息是有顺序的&#xf…

Spring Boot的新篇章:探索2.0版的创新功能

文章目录 引言1. Spring Boot 2.0的响应式编程2. 自动配置的改进3. Spring Boot 2.0的嵌入式Web服务器4. Spring Boot 2.0的Actuator端点5. Spring Boot 2.0的Spring Data改进6. Spring Boot 2.0的安全性增强7. Spring Boot 2.0的监控和追踪8. Spring Boot 2.0的测试改进结论 &…

6、SpringBoot_项目的打包与运行

七、SpringBoot项目的打包与运行 1.目前项目怎么运行的 通过浏览器访问idea 将jar部署到服务器 2.maven 打包项目 命令 mvn package使用命令后会得到如下的jar 3.程序运行 命令 java -jar 项目.jar启动如下 4.springboot打包需要插件 插件 <plugin><group…

从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式

本篇文章的内容 一、GCC&#xff08;GUN Compiler Collection&#xff09;1.1 GCC的命令格式1.2 GCC的主要执行步骤1.3 GCC涉及的文件类型 二、ELF简介2.1 ELF文件格式图2.2 ELF文件处理的相关工具2.3 练习 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&…

机器学习第十四课--神经网络

总结起来&#xff0c;对于深度学习的发展跟以下几点是离不开的: 大量的数据(大数据)计算资源(如GPU)训练方法(如预训练) 很多时候&#xff0c;我们也可以认为真正让深度学习爆发起来的是数据和算力&#xff0c;这并不是没道理的。 由于神经网络是深度学习的基础&#xff0c;学…

debug过程中,矩阵左乘右乘相关概念梳理

1. 变换点或者变换向量 1.1左乘 矩阵左乘通常是指对”目标点“进行左乘&#xff0c;即: A ′ R ∗ A AR*A A′R∗A 其中&#xff0c;A为原始3维点&#xff0c;表示一个3*1的列向量&#xff0c;R为33的旋转矩阵&#xff0c;A‘为变换后的点 B ′ T ∗ B BT*B B′T∗B 其中…

The 2023 ICPC Asia Regionals Online Contest (1) E. Magical Pair(数论 欧拉函数)

题目 T(T<10)组样例&#xff0c;每次给出一个n(2<n<1e18)&#xff0c; 询问多少对&#xff0c;满足 答案对998244353取模&#xff0c;保证n-1不是998244353倍数 思路来源 OEIS、SSerxhs、官方题解 2023 ICPC 网络赛 第一场简要题解 - 知乎 题解 官方题解还没有…

SpringBoot2.7.14整合Swagger3.0的详细步骤及容易踩坑的地方

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Sp…

指针笔试题详解

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂。 目录 1.前言 2.指针题写出下列程序的结…

记一次逆向某医院挂号软件的经历

背景 最近家里娃需要挂专家号的儿保&#xff0c;奈何专家号实在过于抢手&#xff0c;身为程序员的我也没有其他的社会资源渠道可以去弄个号&#xff0c;只能发挥自己的技术力量来解决这个问题了。 出师不利 首先把应用安装到我已经 Root 过的 Pixel 3 上面&#xff0c;点击应…