简单说一下我们队的情况,一个电子,一个数学,我计算机,团队分工我是负责编程和画图部分,建模主要由两个队友负责,今年的建模题居然有一道很特别的题,这对于爱打游戏的我来说简直就像猫看见了毛球,哦不,是猫看见了老鼠,哎也不对,反正就是特别吸引我,于是在我们激烈的讨论下成功入坑了B题(穿越沙漠),不过奈何这游戏设置太过变态(一个人好好穿越沙漠害得去做苦力挖矿0.0),另一方面本人编程能力比较低,今年第一次参加国赛只得了国二,下面谈谈我建模的经历和感受吧。
赛前
刚接触到建模的时间大概在今年5月份,因为突如其来的疫情我失去大学半年时光,参加国赛时已经是大三学长了,当时我们学校在组织校赛,因为一直以来我对数学这方面的知识和比赛都比较关注,因此毫不犹豫的准备拉队友参加,原本是和舍友三个人一起组队,后来居然有三个数学的小姐姐主动找到了我们,结果恩,可想而知,我们原本的三个人成功分到了两只队伍,没错我们数学专业的队友是一个非常可爱的女生,这也让我们的建模时光增添了无限的活力。
之后我们就开始各自的建模工作,因为我们团队都没有任何建模经验,只能向各大CSDN大佬们求助,学习众多建模经验和知识,当时在学长的推荐下,买了《数学模型(姜启源)》、《MATLAB数学建模方法与实践》这两本建模必备宝典开始啃。自学了几天matlab。
两星期后校赛发题了,不过这次比较水,因为提交时间有14天,我们选的是图论题,这对于我来说是相当熟悉了,对以前数据结构实验的代码进行了修改就基本可以解决了。因此校赛我们的成绩还算凑合。
校赛过后,参加国赛时间是9月初,这一段还有2个多月,按以往学校的安排我们是需要在暑假在学校进行集训的,但因为疫情原因无法返校,于是我们就在线上进行合作训练,不过嘛效果就不太好啦哈哈,我们是按国赛时间安排,三天完成一篇往届国赛题,一天时间老师指导意见,一天休息,大概是五天一篇25+论文吧,那段时间真的是我在家以来最最最充实的日子,真是“一次建模,终身受益”,“多次建模,放肆哭泣”,ε=(´ο`*)),不过最后好歹还是坚持了下来。
国赛
终于到了国赛的日子,不过凑巧的是当时本人学院上学期疫情的考试安排在的本学期开始,这意味着我要开始边备考边建模,顶着挂科的压力放肆复习。
选题的话,之前说过了果断选的新颖B题(穿越沙漠)。
简单说下我们的思路:
我们对赛题的理解是这题情景非常具体,数据需要少,感觉三问都是优化模型,而且需要很强的编程。
首先我们分析题目,对游戏规则摸清楚,没有急着建模。
涉及到路线、事件的选择,使用 0-1 变量等定义模型。
最短路径用Floyd算法或者基本可以数出来,考察的是最优路径以及路径前对资源的购买(收益最大)。
第一问:
在第一关和第二关的探险过程中,运用初始的资金对于资源进行合理的分配,可以通过线性规划,确定好在未来一段时间的消耗与收益,制定好合理的规划,通过 MATLAB 计算出需要使用的资源。经过多次训练对比,最终计算出最优策略,对比资金数量。因为不确定答案是否正确,后来我们又用excel表格进行了推导,最后得到是12730,与优秀论文中的12760相比小了30块,估计大概因为这个答案的问题,没有国一。
第二问:
第二问与第一问相比提升了难度,如果玩家在进行策略安排的时候,
不知道天气的状况那么小伙伴们可以自己商讨给出何种方案,比如多买水,多买食物等等方法,再这之后通过选择最优路径进行合理的方法选择并讨论,具体的解决方法是通过编程和启发式算法的excel解决的。
第三问:
(1) 对于n 名相同的初始资金,且同时从起点出发的玩家来说,游戏规则需要进一步注意规范,为了保证多方共赢,在天气状况已知的情况下, 可以通过先前 MATLAB 中的神经网络算法算出的最优旅行路线,计算多次的结果进行对比,保证不会出现重复的状况, 剔除掉重复出现的次数。因为天气状况已知,所以相对比较好安排合理的路线,对于安排好的路线分别进行编号,再依次进行合理的计算,最终确定结果,
(2) 对于n 名相同的初始资金,且同时从起点出发的玩家来说,游戏规则需要进一步注意规范,为了保证多方共赢,在天气状况未充分被知晓的情况下,可以通过先前 MATLAB 中的神经网络算法算出的最优行走路线,分别对其进行最终受益进行计算,选择出比较合理的解决方案,在一般情况下,第六关的地图也相对较为复杂,通过 LINGO 进行编码,再带入模型中进行计算,再对理想化结果进行对比,确定两者之间的差距,对于自身的资源进行调整,对于不同的地图,携带的资源往往也会发生不同,那么就需要对其进行合理的解释即可实现题目要求。
我们考虑了零和博弈和共赢的两种情况,再分情况进行的分析和求解,这一问过于复杂我的编程能力不够无法实现,我们靠的是启发式算法来推导求解的。
感受总结
1.团队的力量真的伟大,每次三天三夜的奋战,你做不下去的东西有队友,你不愿意做的队友做,这不是逃避责任,而是让你放松心态,因为你觉得在困难的事,你还有两个队友一起帮你。此外分工一定要明确,每个人都要了解整个流程,但是每个人要有侧重点。单说visio的使用和matlab的作图,只有更好看的图,没有最好看的图。图就是你整篇文章的灵魂。
2.尽量接近模型,不是所有的问题都要模型,但是如果有可以用到的模型一定要用,因为你自己的话在完美,也没有写在书上的理论来的直接,很简单的一个例子:中学时候的数学证明题不是用定理来证明吗?
3.一篇文章的灵魂在于它的摘要,如果开头都没有自己的亮点,基本告别国家奖。
4.一些最基本的word排版,公式编辑器,matlab的使用,都要十分熟练,如果用python当然也可以,我们这次就是综合使用的。会latex的同学最好用latex,因为这个排版出来的论文真滴飞常好看,我们这次没有用到latex,不过21年美赛坑定要用到。
最后我想说,感谢我的队友,我的指导老师。在一起拼搏的日子很美。
这篇总结可能讲的比较乱,大家凑合看,21年美赛我也在准备了,要狂补英语了哈哈,期待明年的美赛总结。