我是怎么拿到美赛F奖、国赛二等奖、上海赛区一等奖的

🗓️ 2020-11-14

“打过”一整轮的数学建模,让我收获了美赛F奖、国家二等奖、上海赛区一等奖,更让我在竞赛中明白了很多。本文从我的亲身经历出发,分享我们团队如何分工以及从结果反观过程。更重要的是给你一些建议,尤其是对软件/计算机专业同学。

缘起:创业谷讲座

原本近期的计划里没打算写数学建模的文章,一方面这个领域一片红海,我怕自己跳不出既有的框架;另一方面最近的时间比较紧张,怕很难写一篇含金量足够高的文章帮助大家。

但上周,姜哥(国赛美赛队友|交运学院国奖|校学生会主席团成员|创业谷负责人)找我做一场数学建模讲座,再三推辞不下,决心把自己一年多的经历好好整理一下,希望能对热爱这项竞赛或者想参与其中的同学有所帮助。

有兴趣可以参看创业谷的相关推送

数学建模大神来了

数学建模总结,满满干货,戳!

我也为大家准备好了如下材料,后台回复「数学建模」即可

  • 自整理数学建模常用算法
  • 个人数学建模经历
  • 11.10创业谷讲座ppt

blog-mcm1

数学建模竞赛商业化的二三思考

在准备讲什么的时候,我打开公众号找资料,看到一篇【数学建模大神亲自传授十大获奖技巧】的文章,一股浓浓标题党的味道扑面而来,于是我抱着学习的心态点进去看他分享的内容都有些什么。这里我简单的分了下类,结论也很简单,这些内容我全都不会讲

blog-mcm2

文章里的讲座看似要分享很多“干货知识”,但只要你冷静下来就会发现,这些内容要么网上都能直接找得到;要么主观性太大,一个团队的经验即使你听懂了也很难运用到自己身上;最可笑的是找本科生来详解算法,退火、蚁群...一系列高端算法接踵而至,好不厉害。突然想起学院大牛教授之前说过的话,“现在大家都搞人工智能深度学习,但如果说真正懂这其中的原理,你们没有一个敢说话的,大家都只是在做表面功夫罢了”,真的很感谢教授及早点醒梦中人,让我能清醒的认识到自己的层次和能力,把时间花在更有意义的事情上。

再往下看这篇营销文章,集赞、转发到百人群、付费课程资料、998一节的数学建模一对一辅导全都如约而至。在数学建模竞赛商业化的现在,目的变得越来越不纯粹,虽然大学生有头脑有知识,比学习小学奥数的孩子们难收割,但这个社会越来越强调数学建模竞赛在以后升学找工作时的作用,越来越强调奖项,而忽略建模竞赛最本质的东西和对个人知识和能力的培养,真的为此感到很心寒。

我眼里的数学建模

我眼里的数学建模非常简单

在一个极短的周期内接触一个全新领域,并解决一个实际问题

在刚刚入坑的时候,觉得数学建模不同于我之前参加过的所有竞赛,它真的很有趣,也真的是在解决真实的问题,拿今年美赛题目为例:预测苏格兰鱼群未来的位置、用模型分析足球队的传球表现、拯救因为温室效应濒临灭绝的岛国,有的时候你甚至会感受到自己所做问题的伟大。那如果把这段话再扩充一点呢?

在一个极短的周期内,和其他两位朋友,在你们已有的知识域下,接触一个全新领域;并用你们了解过的数学模型或参考相似问题的已有模型,解决一个实际问题,能自圆其说

这里有四个关键词,我们来详细的分析下:

  • 已有的知识域:你并不是从0开始数学建模的,你和你的团队有着几年各种课程的学习,也有很多课外知识的积累,这些沉淀都会在你解实际问题的时候发挥着潜移默化的作用,而你们多学科的交叉融合也会让你了解到其他学科和领域所研究的问题和研究方法等等
  • 了解过的数学模型:在本科的课程中,或多或少的也学习过一些简单的数学模型。拿19年校赛举例,流水线就是软院在计组和CA中花了很长时间学习的一个核心问题,所以那道题获奖的大多都是软件学院的同学。
  • 相似问题的已有模型:之前跟数学学院同学聊天,他说数院不是很喜欢参加建模竞赛,我非常不解道数学学院不爱参加数学建模竞赛是什么原因?他说数院的大佬觉得数学建模就是在已有模型上进行一个迁移,没有什么真正的含金量,比如今年是研究足球队,明年换成篮球队的问题,很大概率就是在网上查找足球队相关的模型移植到篮球队上。我深感理解,但又不能感同身受,我们站在前人的肩膀上看世界,才能看到更远的世界,而我们能不能有所创新创造,不更是我们要为之探索的吗?
  • 自圆其说:数学建模不同于数学竞赛,并没有唯一的答案,很重要的一点是你能通过你的建模和叙述,让别人信服你的解决办法。因此常有初学者从第一问第一点就开始担心自己做的对不对,其实大可不必,只要从头到尾牢牢的让自己信服于自己的框架,相信评委也一定会被你感动的。

我亲身经历的三场比赛

从大二到大三,亲身经历了「校赛 -> 国赛 -> 美赛」一轮完整的数学建模周期,从校赛三等奖,到国赛全国二等奖上海赛区一等奖,再到最后美赛的Finalist特等奖提名,一步步稳扎稳打慢慢成长。站在时间轴的尽头回头看这个过程真的感触良多,接下来就以我的亲身经历分析数学建模的一些问题,虽然如上面说的可能主观性比较大,但作为与你层次相仿学长的介绍一定可以让你有所感悟的。

我们团队如何分工

有趣的是,这一整年的数学建模竞赛只和交运学院和数学学院的同学组过队,人员分配和奖项如下:

  • 校赛🥉:软件+数学+数学
  • 国赛🥈:软件+交运+交运
  • 美赛🥇:软件+交运+数学

我将我们团队的流程大致分为7⃣️个步骤:「选题 -> 文献查找 -> 数学模型 -> 程序模拟/仿真 -> 图表绘制 -> 文章 -> 排版 」(这里需要说明的是,真实建模中不是这样瀑布的模型,而是并行流水线的推进模式),下图展示这三次比赛我们团队如何分工:

blog-mcm3

如果你真的想在这个领域中出类拔萃,非常推荐你仔仔细细从多个维度分析下这张图,由于篇幅问题,我只点出一些最核心的问题:

  • 选题:多学科交叉融合最好的体现,如何能从你们三个人的知识域交际中选出一道最适合大家的问题
  • 文献查找:发挥好多学科不同的资料收集办法,论文、数据、模型、代码等全方面捕获
  • 数学模型:数院最擅长的部分,由于他们本身就会开设数学建模课程,加上几年时间的积累,他们往往确定上层的框架,而具体的枝叶可以后期逐步完善;而交运(其他工学院也一样,土木、汽车等也都可以很好的类比)在课程中也会有很多实际问题的模型可以帮助数学模型的建立
  • 程序仿真:大多数都是软件/计算机同学来完成,在现有模型上数院同学往往也能给出很好的解决方案
  • 图表绘制任何论文里最重要的部分之一,如果你能有很好的图表可视化,将会极大程度上的提升你们团队的完成度和结果,而这一部分的科学绘图几乎是软件学院同学一手包办的
  • 文章:工学院同学往往要写很多实验报告等,对这部分很熟悉,辅以数院同学的理论推导,会让最终呈现的文章内容紧凑而完善
  • 排版:在我学会Latex之后,就接手了最终的排版,内容是一方面,呈现给别人优美的排版又是另一方面,强烈建议要参加美赛的软件学院同学学习Latex

从结果反观过程

就像讲座的时候我说的,更多的人是冲着我得过的这些奖来的,如果我只说我十分热爱数学建模并深有研究,大概率也不会有人听我讲东西。其实这并没有什么问题,毕竟大家都是更关注于结果,所以这部分我就从结果反观过程,看看三次结果不同到底是哪些问题导致的呢?

  1. 论文题目:作为经过大学锤炼的当代学生应该已经学会了“基于”式的起标题方法,但是“基于”这两个字本身没有任何含义,所以这两个字从来都不是让你的题目高大上的关键因素。出租车大数据、Markov Chain,一个是你的模型在真实数据集上的结果、一个是在一个优秀模型上的研究才是真正会让你加分的地方。

blog-mcm4

就像学习政治的时候老师说主观题应该写“马克思觉得、恩格斯觉得、习总书记指出”,如果你回答“我觉得...”那多半是炮灰答案。第一个标题也是这样的,“预测”本身就是你自己主观的想法,用一个主观的想法去研究一个未知问题,那得到的也一定是你自己猜的结论。

  1. 公开信:现在的建模竞赛越来越文科化,最后往往让你写一封信,多说无益直接看图,相信如果你是老师也会高下立判的! blog-mcm5
  2. 数据集:这张图表面来看是参考文献,但更多的是想说明在后两次成绩很好的比赛中使用了真实的数据集进行验证,证明我们的理论模型在实际的数据上有着非常好的效果,比你花几页纸狠吹自己算法有多么多么优秀要有说服力的多 blog-mcm6
  3. 图表绘制:刚刚也提到图表不仅是文章中最重要的部分,更是软件学院着手负责的部分,因此当我回过头来把三篇文章的图像(部分)放到一起来看的时候,真的感慨良多。从最开始只会画最简单的折线图、最简单的示意图和直接把Excel的表格截屏粘进来;到可以从多个维度、不同参数趋势比较的一组图;到充分利用2D和3D进行数据可视化,用多种多样形象丰富的方式尽可能描述好队友的工作。虽然你的职责可能不是图表绘制,但希望你一定要在每次的竞赛中有所收获,并让自己变得越来越好! blog-mcm7

    blog-mcm8

    blog-mcm9

软件/计算机专业同学在数学建模中如何发挥作用?

  1. 软件行业始终是服务业,你能做好编程这一件事就很棒了
  2. 你掌握的是基础的编程能力,但和实际的工程能力是两码事
  3. 由于基础数学课的欠缺,更多的时候像一个黑箱机器人
  4. 在你能呈现的地方尽可能完善,而你的这部分又往往是最重要的
  5. 尽可能实现你队友的想法,即使甲方往往天马行空,请原谅他们的“知识空白”,就像你也看不懂数学部分一样
  6. 权衡好代码和结果

以上六点建议是我站在自身角度对软件/计算机同学们想说的话,当你参加过一次数学建模竞赛后,很多人会感觉自己好像什么都没做,队友写的论文自己也看不懂,你会怀疑到底如何在数学建模中发挥自身优势。

我想跟大家说的是,数学建模是团队工作,每个人都要扮演好自己的角色,从来没有人说必须要从论文第一行看懂到最后一行才是优秀,你能在你自己的领域发光发热并努力做到最好,就是你能做的最重要的事情。

我们学院学习的数学课确实很少,没上过树莓DIP和CV的同学甚至都没接触过复变,也没在工程中运用过线性代数。但这些不意味着我们学院不适合数学建模,事实上每年学校组队的时候,软件学院是最受大家欢迎的学院,希望大家也能不负队友的期望,也能不负我们软院的厚望,努力做好自己力所能力的事情,把每一行代码、每一次仿真、每一个图表尽可能完美的release,甚至你可以在建模中应用软件工程的思想!

写在最后:几点建议

  1. 数学建模是一项集体竞赛,不是一个人逞英雄的时刻,如果你天资太过聪慧导致无法与他人合作,推荐参加大学生数学竞赛而不是数学建模竞赛
  2. 请对你的队友负责,如果不适合建模请提早退出(个人认为只排版文章等同于耍流氓)
  3. 任何时候请学术诚信,即使模型效果不理想也不要伪造数据和结果
  4. 竞赛的结果固然非常重要,但是你的队友、快速解决问题的能力、多学科交叉融合开阔视野、大学时光里一段不错的竞赛体验也足够值回“票价”,请不要太过为此烦恼

数学建模是我本科中难忘的一个记忆符号,感谢数学建模让我收获了成绩、收获了非常要好的友谊、收获了技能、收获了成长......

也希望后来人能在自己热爱的路上一路坚定的走下去,最后把这句话送给你作结

开始做一件事并不需要有“坚定不移的意志”或是“崇高的动机”,只是一点点的好奇心而已

Copyright © Zhe ZHANG | doubleZ, Peking University.

All Right Reserved.

吉ICP备20002957号