C题完整求解:四问全拆解与256种方案组合
已经完整求解完C题,每一个问题给了四五种方案。完整做完一篇论文之后,才可以拍着胸脯保证可以从头到尾讲清楚,讲明白,以及哪些漏洞你们没有遇到、遇见过的都可以讲一讲。本文从问题一到问题四逐一拆解,包括每个问题的多种方案、核心逻辑、常见误区,以及论文生成和自查的完整流程。核心提醒:提交的附件表格查的不是数值,而是关系(大小关系、加和关系、约束是否满足),结果千奇百怪没法测数值。
01 起点的三个方向:怎么做都对,自圆其说即可
首先就是我们这个问题,所有的起点有三个方向:
- 减少并网——这意味着我们其实并不卖电,但是有现实情况是存在卖电的,所以卖电或不卖电;
- 充电和放电是不是同时可以进行——输电和放电它们是不是同时可以进行;
- 预测的时候考虑当天的电幅情况——是需要考虑均值呢,还是前七天的均值,还是过去一年的均值?
就这个情况,怎么做都对。我们数学建模是一个应用性的题目,它没有一个明确的答案,只要你能自圆其说,都是OK的。所以就意味着我们其实每一篇论文、每一个角度都会产生不同的论文,每个队伍从不同角度都产生不同的论文。
02 重要提醒:附件表格查的是关系,不是数值
大家一直问:哎老师,39000对吧?35000对吧?
我只能说这个量级是不对的。我们虽然在一开始给大家提过,说我们提交那个附件表格里面,它会查结果。注意,这个结果不是去看你的数值结果,我们查不了的。
那查什么呢?查关系。
我可以给大家去讲一下,我们往年这个表格是怎么去查的。在这个表格里面,其实我们并不会去检测每一个数字大小,不会这样的,我们是检测一个关系——就是某些值它一定是二点的比一点的大,二点的比一点小,我们是一个大小的关系,或者加和的关系。这个来判断你的结果。
就当年我们种地那个问题一样,去判断你这个种完之后下一个是不是它,我们就加了九条约束。其实我们这里面判断的就是我们这个题目所说的这些约束,你是不是满足了。比如它可以随便出一列来去计算一下你这一列,你是不是能够满足我们题目中所需说的这个电能是不小于小区的负载的。
它不是算你数值去,它是算你这个优化关系有没有满足。 只要是你能保证你这个结果是基于你优化模型得到的,就可以了,只要是符合我们这个题目的约束条件——谁等于谁,谁大于谁,OK?我们就测这个,不测结果,因为结果没法测,千奇百怪。
03 问题一:四种方案(实际八种),初始值6000还是8500
奇异点
第一问呢,就是我刚才提过对吧?我们是否可以同时充电放电?是否能够卖电?这是我们第一问的一个奇异点。
其他的起点还有一个起点是什么呢?我们问题一这个日期呢,它并不是我们1月1日。我们后面提到我们1月1日凌晨零点的时候是一个6000千瓦值,对吧?但是明显的是这个1月1日的这个情况,大家可以看到它和我们这个附件一其实并不一样。所以附近有人呢,用8500——我虽然不知道8500怎么来的,你也可以用8500,你也可以用别的,这无所谓啊。
所以问题一大家不一样在什么地方呢?第一个出发点,有人不用6000;第二个,它是否方便(同时充放电);第三个,它这个卖点与否。
四种做法
OK,基于这个情况,我们问题一给大家实现了四种做法。这里就是我们分别针对于大家这个放电不放电、不放电、放电这么几种情况,给你做了一个结果。
这里这四种结果,以及每一种结果对应的一个数值,它们数值会不太一样。我们的目标呢,就是让我们总的放电最少,需要满足供给关系。
约束包括:
- 递进关系
- 容积约束(大于1200,小于10800)
- 上限约束
- 首尾相等
- 不卖电
这就是我们的基础模型。然后机电模型的话就是放电、充电,允许这种情况,就是改了一些这个板块就可以。
那么这得到的这四个结果呢,在这里就q1-1是第一种,q1-2是第二种,q1-3到q1-4都是第四种。
实际是八种
问题一下就是四种情况,其实也不止四种,是八种——就是这个这一天的初始电量,我们其实不知道。所以问题一是八种情况,是更多种情况。
这些图不太好看,因为就是给大家呈现一下,我们可以利用这个图,你直接去自己画图,或者你交给AI,让AI基于这个代码会生成更好看的图。
04 问题二:紧急购电非零,前七天均值大幅改进
核心逻辑
OK,到了问题二,它需要考虑的是什么呢?我们根据零点制定当天的一个策略。大家会有一个明显的问题,就是为什么我们的这个问题二的这个紧急购电是零?可以看我上一个视频,就是AI常见的问题一问题二的错误,给大家讲了。
所以我们需要的是,我们用过去的这个光伏数据来预测今天的一个情况。我们今天的情况是不知道的,那么我们要利用过去几天的呢?你们要自己去查查文献或怎么样,或者是你们可以利用全年的一个均值,或者是要利用过去一个月的,或者过去一个季度的——这是你自己去选,自己去考虑。
以此来实现我们利用过去的来表示当天的,我们就是累积当天的进行构建。然后我们再建立,就是每一天都做一个这样的模型,就每一天都像这个问题一一样去求解。
那么这样去求解的话,你想一下,我们预测的这个光伏发电和真实是有差距的,就会导致我们给大家提到的——我需要是6000,但是光伏发电其实不足,就是哪怕是这个发电加上4500的基本需求,它不够我们的6800,那么我们就需要紧急购电。因为我们买的电量就买这么多,没买更多了,对吧?
OK,这就是我们的这个问题二的逻辑。所以这么去做的话,我们就可以实现问题二这个紧急购电非零了。
非零的数值是多少
那么非零的数值具体是多少呢?又奇异了,大家选择的方向不一样,放电充电、充电放电。
前四个代码是什么呢?就是我直接取了一个值,我用附件一的光伏数据作为每天的计算优化模型的那个数据去做。所以很大,因为什么呢?大家可以看一个事情,这个是我们问题一的光伏数据图是这样的,但是全年是什么样子图呢?是这个图,这是全年的分布图。你可以看到全年的光伏分布其实是非常非常有季节性,包括中间是个七八月下雨啊什么,对吧?
那这么有季节性的东西,我们全年如果只这么算的话,这个误差很大。所以你前四个板块,我做的时候其实一直是千万级别——就是我们总的消耗费用是1000多万,然后紧急购电的话是600万,都是600万,哪怕你改的话也是800万,很高很高。
最后一种:前七天均值
我们可以引进最后一种。最后一种是什么呢?就是我们直接选择前七天的一个均值,它可以近似的表示今天。那这个的话,精度下降很多,你看总的经费变成了是1500万,对吧?而且我们最后总的这个紧急购电我记得是很低的,就只有100多万。
我们刚才的话是六七百万,现在100多万,所以我改进啊,大幅改进。
这是问题二。问题二我怎么选呢?随便,觉得哪一个好理解或哪一个你说能说服你自己,你就去做啊,这个都可以。
05 问题三:滚动规划+MPC/QAR算法,加18点效果最好
基础逻辑
问题三,其实就是还简单,比较简单,就是我们在问题一问题二的基础上,再引入什么呢?这个我们其实是个动态的,就是我们零点的时候,我们做一次规划,六点我们再做一次规划,12点再做一次规划。
这个每一次的规划都是做12个,每一次我们都做一次问题一,每一天的每一个时刻都做一次问题一。那么零点和六点,因为预测的值不一样,会导致他们的预测规划,他们跑一次问题一的结果不一样,对吧?
那OK,所以我们就是稍微修正零点的结果。那么,如果说我们要多进货的话,就用一点五倍的价格去进货;那如果我原计划比现在需求的要多,那就是违约嘛,对吧?那就是扣50%的钱。
那么就这个背景是很简单的,只不过是什么呢?就是题目有这句话,其实我们直接去处理这个其实很基础很基础。就是基础模型这四个,然后我们再加几个约束就能去求解了,告诉AI之后AI可以直接帮你去写。
MPC和QAR算法
那么问题在于什么呢?问题在于,其实在我做数模字典的时候,数模字典在这个板块提到了一个算法,叫做MPC和QAR,这两个算法它说是比较适合这个题目,我搜了搜,有一定说法。所以我们的q3-2和q3-3就分别运用我们数模字典里面建议的这几个模型进行求解。
最后一问的歧义:是否引入其他时刻的预报机制
那么求的过程中还有一个问题,我们会列到最后一问是什么呢?请分析是否引入其他时刻的预报机制。
这里其实就有歧义了,包括我们现在讨论了很久,就是这个其他时刻是指的是6、0、2、8还是什么时候?那我说我这很明显对吧,应该是1、2、3、4、5、6、7、8、9、10、11。这个数据怎么获取呢?本来这个6、0、2、8就是我们基本数据,那么我要获取中间数据的话,只能通过插值,那么差的这个数据还是和6、0、2、8息息相关,那么这样引入的数据其实没有意义。
所以我其实一直没做,我一直做的就是单独针对于0、6、12、18这几个点,就我分别去做,就滚动。就比如说就像这个表一样,第一个什么也不加,第二个加6+18,第三个加6+12+18,可以看到它们具体的这个整体的调整费、紧急购电费是不一样的。到我们加18之后,很明显你可以看到我们的紧急购电费的成本特别特别的低,所以加18是很好的。
就结束了,其实这一问。但是你感觉老师这不是偷懒吗?那明明都说了这未来加入其他时刻,对吧?那好,那你可以去做我们的最后一个模型,就是我们q3-3还有q3-4,q3-4插值——就是我们插上了3点、9点、15点,计算出来一个值,然后去做。
这样我觉得有问题是什么呢?本来这个3、9、15它就是我们其他数据查出来的,所以相当于我们带着答案去做问题一样,我觉得不恰当。但是这样还确定的会答这个题目的题干,那这个可能是需要我未来这几天和大家讨论去研讨去迸发出更好的想法来解决,那当前是只能如此。
06 问题四:电价变化,重新跑问题二问题三
问题四就我目前感觉就比较的基础了,我没找到坑,可能是因为我现在和大家讨论还是少。
那问题四我认为就是电价变,那么我们再重新跑一下问题二问题三,没了。所以这就是把我们的问题二、三改一个数量变一个变量就可以了呀。
所以我投了个胆,就是我们其实之前每一个模型不是跑了四个吗?我们其实问题四只跑了两个,跑q2-1和q2-2,就是问题一的第一个、问题二的第一个算法和问题三的第二个第一个算法,直接出结果就结束了。结束问题四了。
所以按理来讲问题四应该是有说法的,但是我确实没看到它有什么小的坑或什么,所以就只能这样。可能坑还在跟大家讨论或反馈,我再进一步去改正,目前是没发现。
07 论文生成与自查:MMA智能体+内置Skills
论文怎么生成
这样基本上就实现了整体的求解以及我们的每篇论文。怎么生成的呢?给大家展示了,对吧?我们直接把我们的代码和题目发给MMA,他会让我写。
比如说我会直接告诉我的MMA,就是我们给大家发的这个智能体,我会直接告诉他:这是我的题目,数据我已经写好代码了,根据我的代码写论文。然后输出论文了,论文是什么呢?就是我们的完整版二。
这个就是我们,它会自己的根据你的题目梳理及情况,当然这个目录需要删了啊,目录是没有的。会给你生成流程框架图呀,这个每一问的这个画的框架图啊,以及你这个论文的正文呀、描述呀。你看下面这个图他自己画的,它要根据我们这个代码,帮我们进行一定程度的可视化修正。
所以可视化包括之前晚上连麦说木工坊过来问,可视化是当前最好改的,而且可视化不加分啊。所以每一问你可以看到这些图,其实都没有出现过,是因为我们本来也没放,就是他会给我们去修正一个图。
完整版怎么做
完整版版本是怎么做的呢?还一样的,就是直接给它说:现在这个是题目,现在选择的是q1-1、q2-1、q3-1,作为我们写去写代码。因为我们每一问题给大家四种方法,一共是4×4×4×4=256种。
OK,结束了。论文怎么做的,真实材料是什么,代码是什么,这个相当于他已经给我们整理好了一个真实材料。所以大家只需要按照我们这个需求,按照你们对这个题目理解组合成你们的方案来去写就OK了呀。
写完之后怎么改
那写完之后这个论文是需要改的,怎么改呢?我们给大家做了就是也是MMA平台,对我们的信任,这在数模广场里面内置了,在扩展里面内置了我们数模社的各种各样的自查Skills。你直接可以直接调用这个Skills,你给他说:我调用这个Skills来实现我的摘要检查、模型假设,然后就OK了。
懂了吧,所以这样就能实现大家非常非常方便的写作求解。
写完之后呢,我们可以基于这个进一步的改进,就像我们公告里边给大家发的那个完整版的使用说明一样,结合智能体Agent或者你的工具去让这篇论文变成你能读懂的论文,而不是你用AI生成的论文就OK了。
总结
本期完整拆解了C题四个问题的求解思路:
- 起点三个方向都对——卖电/不卖电、同时充放电/不同时、预测用什么均值,自圆其说即可;
- 附件表格查关系不查数值——大小关系、加和关系、约束是否满足,结果千奇百怪没法测数值;
- 问题一四种方案(实际八种)——初始值6000还是8500都可以,容积约束1200—10800,首尾相等;
- 问题二紧急购电非零——用过去光伏数据预测当天,前七天均值大幅改进(紧急购电从600—800万降到100多万);
- 问题三滚动规划——0/6/12点三次规划,多进货1.5倍、违约扣50%,数模字典建议MPC/QAR算法,加18点效果最好;
- 问题四电价变化——重新跑问题二问题三即可,目前没发现坑;
- 论文生成与自查——MMA智能体根据代码写论文,256种方案组合,内置数模社自查Skills。
后续有新的发现会及时更新。