Skip to content

数模回忆录

前言


2024年数模国赛结束了,算起来从2023年12月的第一次校内选拔赛起到现在,差不多也刚好迎来了建队一周年。

一年里和队友大大小小打过6次数模比赛,写过11篇数模论文,在最后这场收官之战里也取得了满意的成绩。

从最初的概率论相关的校赛B题,到最后的概率论相关的国赛B题,也算是做到了有始有终。

尘埃落定之后,喜悦退去,总想写点什么,来留住这一段不算漫长的时光。

记录 ,是经验分享 ,也是站在参与者的视角对这一年数模生涯的总结与思考

阅读指南

  • 比赛成果 :2024美赛H奖;2024国赛国一。
  • 分享视角 :博主为建模手,主要负责建模、示意图绘制、美化、部分写作工作
  • 分享内容 :队友选择及分工;前期准备;选题;负责部分经验;时间分配。

主打一个随心所欲,想到啥写啥,知无不言言无不尽。


经验分享


分工

合理的分工是选择队友的基础,数模队伍的构建需要综合各位队员的特长。

数模的队伍配置一般为【建模手+编程手+写作手 】。

但在实际工作工作中,并非一个队员固定做一个模块的工作;相反,很多时候更需要的是【随机应变、团队合作】的能力。

比如在我们的队伍配置中,建模手负责了总体建模和部分写作的工作,而编程手也会为建模提供思路,写作手作为队长则兼任了整理、总结和补充的工作。

因此,团队分工关键在于【各司其职的同时发挥特长、互帮互助 】,在遇到困难时即时与同伴沟通,不要一个人死磕。

最直白的语言就是,谁擅长什么就干什么,或许你的写作手不是很擅长绘图,或许你的建模手不是很擅长查找文献,让更擅长的队员去负责就好。


队友选择和各自的前期准备

前期准备工作主要以建模手的视角来写,因此对建模手的部分比较详细,其他部分相对省略。

总体来看,在队友选择时,博主并没有明显专业偏好,因为就本人所见,取得优异成绩的队伍并没有特殊的队员搭配,更重要的是要有【充分的学习意愿,良好的沟通态度】,以及不可避免的——还算不错的【数理基础知识】。

特别地,就A题和B题而言,良好的【编程能力】是不可或缺的!!!

尽管部分较为简单的模型或许可以借助AI的力量,但想要获得较好的成绩,优秀的算法是一定要有的。

在美赛中,这可能体现在优美的结果展示作图,合理的结果;

在国赛中,对结果的准确性要求更高,且在国赛答辩时,对算法的原创性要求也极高,编程手是必不可少的。

如果队伍中的编程手对自己的能力并没有充足的自信,最好其他的队员也应该对算法有较好的了解,可以在每一个编程手崩溃debug的夜晚起到出乎意料的作用。

毕竟一个人死磕很容易钻牛角尖,而其他人来帮助检查算法思路,很可能能够另辟蹊径、峰回路转,救结果于危难之中。


建模手

知识储备

作为建模手,足够的【模型储备】是必要资质。

一般而言,上课所学的【微积分、线性代数、大学物理、概率论】知识就完全足够了。

在模型的储备方面,了解一些常用的模型即可,B站的“数学建模学习交流”、“数学建模BOOM”、“连大数学建模”都是还不错的入门性质课程,通过这些视频能够迅速了解常用模型的基本原理与经典用途,作为建模的基础。

在此,博主不推荐花费大量时间硬啃数学类专业书籍,拿着厚厚的一本《数学建模算法与应用》无从下手,毕竟本人在打比赛之前的准备以及打比赛中途,从未翻开过任何一本系统的数学建模教科书。

只是在将理论知识与实际问题联系起来的过程中,有时候需要大量查阅相关论文,参考先例的做法。

因此,这就引出了建模手的另两项关键技能——【迅速的学习能力和丰富的想象力】。

学习能力

在实际解题过程中,题目的情况往往是复杂而非理想的,此时仅仅有模型的基础知识往往是不够的,更重要的是如何针对具体问题建立具体的模型。

对此,建模手往往需要参考题目背景的相关文献,快速阅读并学习其中与题目内容相关的思想,并尝试将其应用于模型的建立。

在前期准备中,建模手就应该做好阅读各种文献的准备,学习如何【查找参考文献】和锻炼良好的总结归纳能力。

想象力

在美赛中,想要获得F奖及以上的奖项,创新性是不可或缺的一项;在国赛中,虽然评阅标准没有明确表明,但参考往年的优秀论文也能明显看出其必然有其独特之处,或在模型、或在算法。

想要在比赛时能够有所创新、出类拔萃,只靠一时的灵光乍现显然是不靠谱的,最好在平时就要养成思考的习惯,在阅读优秀论文和其他文献时多多思考如何将他人的思想为我所用。

总结

以上提到的建模手的前期准备工作,除了知识储备这一项,其他的两项显然不是一朝一夕就能培养出来的。

最好的方法还是实践,多做点题比什么都强,不要忘了复盘和【复现优秀论文】。


编程手

作为编程手,【编程能力】当然是第一要义。

平时重要的是了解常见的算法,并最好自己手搓熟悉一遍,这样能够更好地理解算法的原理。

针对B题而言,常用的算法一般为:

  • 常规优化算法:LM算法、梯度优化等;

  • 启发式优化算法:粒子群算法、遗传算法、退火算法等;(此类优化算法的思路大致相通,重点精通其中一种即可)

  • 预测类算法:神经网络、灰色预测、K-means、ARIMA、元胞自动机、马尔科夫预测等;

  • 评价类算法:层次分析法、TOPSIS & 熵权法、模糊综合评价等;

  • 插值拟合:多项式拟合;

  • 微分方程算法:能够根据模型编写微分方程并求其解析解或者数值解;

  • 其他算法:遍历法、蒙特卡洛法等;

除了以上固定的一些经典算法,大部分算法都可以在比赛时根据需要现学,其实程序的编写更多时候需要为模型服务,换句话说,即:【将模型的数学语言转换为相应的编程语言】;此时,更考验的是编程手抽象化思维和基础的编程能力,需要大量平时的积累。


写作手

写作方式

在数模论文的写作中,一直存在着word派和latex派之争,在此博主强烈推荐【latex】以及latex编写软件【overleaf】。

latex是一种编程式的写作语言,其特点主要有以下几项:

  • 无需排版:latex的排版是提前设定好的,只需要下载一个论文模板,写作时只需要往其中添加内容便会自动排版;
  • 公式书写方便:latex的公式书写是用编程语言写的,推荐方法:手写公式,发送给AI生成latex代码,解放双手;
  • 学习成本低:latex的语言简单易懂,遇到不会的语法可以直接问AI,学习成本很低。
写作风格

历年优秀论文的写作风格其实各不相同,但其基本符合学术论文的特征,在学习如何写作数模论文时建议直接参考一篇优秀论文,对照着进行行文安排和风格学习。


选题

选题介绍以国赛ABC三题为例,其中博主主攻B题,对其他两题仅为概括性介绍,但选题方法其实是互通的。

题型特点

  • 在美赛中,A题一般为连续型问题;在国赛中,A题一般为物理题,存在参考答案,对结果的精度要求很高。

  • 在美赛和国赛中,B题一般为离散型优化问题,其主要特点为:变量或者数据为离散型,解决的是一个优化问题。

  • 在美赛和国赛中,C题一般为数据题,其数据量有时可以达到上几十万条,需要具备相应的数据处理知识。

如何选题

选题的关键在于于团队的技能点相契合,综合考虑选题难度和获奖难度两个方面。

  1. 选题难度:

    • 一般而言,AB题难度较高,上手需要较好的【数学物理基础】,且对模型的原创性要求很高,即很难在网上找到类似的模型套用,历年A题的优秀论文参考文献都比较少,大部分的【模型公式需要手搓】。

    • C题比较容易上手,对代码要求一般来说较低,但想要完成得出色也需要对统计数学有较高的理解。

    • 特别地,难度只是相对的,不排除某道题突然难度陡增的情况,例如2024年国赛的BC题难度就明显上升。

  2. 获奖难度:

    • AB题由于自身难度较高,选择人数较少,而国赛和美赛均是按照固定数量发奖,因此选择AB题具有天然的优势。
    • 特别地,国赛规则规定每个学校最多推荐12篇文章进入国奖,其中每道题最多4篇。因此,在参赛队伍较多的学校,数学国赛更多的是校内比拼,此时关注【校内选题偏好】会比网上的统计更好。
    • 例如,在某理工类院校,选A题的人数是选B题的1.5倍,选C题的3倍;【差异化竞争】是获奖的小tip。

不管选择什么题目,最好都能够尽早确定专攻方向,在比赛时不要轻易换题!!!


比赛经验

时间分配

以2024国赛B题为例,其中第二、三问为题目重点;以建模手、编程手、写作手的顺序写时间安排。

第一天第二天第三天第四天
上午--第二问模型的建立;第一问结果的可视化;第一问论文第三问模型的建立;第二问结果;第二问论文插图绘制,问题重述,问题分析;第三问算法;第三、四问论文
中午--第二问模型的建立;第二问算法编写;第一问论文第三问模型的建立;第一二问算法调试,结果分析;第二问论文论文完善补充,摘要;第三、四问算法,结果可视化;论文完善
晚上选题;第一问模型的建立与求解;查阅相关文献第二问模型的建立;第二问算法调试debug,第二问结果可视化;第一问论文(论文手开始熬夜……)第四问模型的建立,示意图绘制,结果图美化;第三问算法;第二、三问论文(全队通宵,睡觉时长约1~2小时全队检查论文,整理支撑材料
  • 由于不同题目的侧重点和难度分布都不尽相同,时间分配上也可以相应灵活处理,但一定需要保证最后有1~2小时的时间进行论文的检查和修缮

负责部分经验

建模

共享文档】是很有用的辅助工具,我们一般会将文档分为【文献、建模、绘图】等模块,方便实时分享进度,即时沟通,分享思路和查找到的资料。

建模过程可以参考查找到的相关文献方法,若实在没有相关文献则手搓模型,遇到无法解决的难点适当假设简化;

建模由建模手主要负责,编程手辅助,当用数学语言难以表述时可以适当求助于编程语言的方法;

建模完成后由论文手进行总结和书面化规范,从读者的视角能够更好地讲清楚模型。

示意图绘制
  • AxGlyph:上手快,适合绘制流程图、物理示意图等,且支持公式插入;
  • PPT:万金油示意图绘制和整合软件,可用于将几张图片拼接或者为图片加入文字注释;
  • FigureBest:MATLAB绘图插件,直接在Figure视图中进行美化和修改,内置科研绘图模板,支持一键美化、插入形状、局部放大等众多功能。

摘要 & 问题分析

摘要与问题分析往往是最容易写混淆的两个部分,但两者的侧重点其实有所区别。

  • 对于摘要,关键在于【体现成果】,内容一般为“采用xx方法+得到xx结果”;

  • 对于问题分析,关键在于【体现思考的过程】,内容一般为“考虑到xx因素+可以采用xx做法”。


后记


作为A类竞赛中相对入门门槛较低的竞赛,数模比赛常常因为含金量不够高而被诟病。

它是最不公平的比赛,因为任何人都可以很轻松地违背比赛规则,寻求队伍之外的帮助;它也是最公平的比赛,因为无论专业,只要付出努力就能无限进步。

在功利地追求简历、加分之余,希望你能够收获到更多更宝贵的东西,或许是一项新的专业技能,或许是一群志同道合的战友,或许只是一次拼尽全力的经历;

愿你的数模生涯远不止崩溃、困顿与争吵;

愿你在尘埃落定后回望这一路的艰辛与成长,也能如释重负、无悔当下。