数学建模美赛2019 人生经验


本人于今日刚刚结束2019年的本科生数学建模美赛的比赛,由于加入了校队,得到了指导老师的悉心指导,所以受益良多。为知恩图报,现将美赛准备过程和比赛过程中的人生经验分享如下。

Table of Contents

美赛的意义和流程

意义

流程

美赛前的准备工作

写作

建模

编程

数模科学计算软件

英语论文作图软件

建模三人小组的组建和运作

领域知识

人员素质

团队运作

争取指导老师的支援

美赛中的具体参赛

题目获取与研读

选题规划与权衡

任务分解、模型算法与文章结构

任务分工与进度规划

与指导教师的交流与修改工作

版本控制与团队一致

结语:建模论文雷区提示


美赛的意义和流程

意义

美赛是由美国举办的数学建模大赛,因此最终的评审是在美国并主要由美国的老师评审颁奖的。和国赛最大的一点不同是,美赛不限制单个学校的大奖数量。以2018年的国赛为例,因为川内高校的国赛数模几乎是电子科技大学一家独大,校内神仙打架的后果是很多有能力拿国一的队伍,因为但个学校国一名额有限,最终只拿了国二或者省一。而美赛对于所有队伍都是一视同仁的。所以,这完全是一个自由竞争的平台。除了保研加分、奖学金加分外,美赛的大奖无论对于出国还是就业都很是贴金。

以及补充一句废话(后面会详细研究这句“废话”的内涵),美赛使用英文写作,文章中不得出现任何中文字符。

流程

美赛一般在春节前举行,大概在小年附近。以2019年为例,美赛正式比赛于1月25日6:00发题,29日9:00前网上提交论文。老师要求我们提交论文的时间有一定的提前,以避免临近截止时间服务器高并发故障的风险。

美赛前的准备工作

写作

为什么要把写作放在准备工作的第一位呢?实际上,无论是美赛还是国赛,数学建模比赛考核的基础永远是最终提交的文档。从这种角度来看,文档的表现能力(吸引力、独创性、说服力)永远是第一位的。

我们在集训中,获得老师对文档逐字逐句的指导后,才明白了数学建模比赛论文写作要求的本质:

  1. 解放表现力
  2. 发展表现力
  3. 消灭枯燥
  4. 消除图表分离
  5. 实现整体表达

从写作的本质要求来看,文档的第一要义是表现力,或者从评委的角度来说,是吸引力(不是“硬核建模”)。一篇文章的吸引力最基本的表现就是美观生动的图表和排列有序的公式。特别的,图表颜色的合理搭配,图形结构的灵活设置,公式格式的正确书写,做到这三者无疑会让评委对你们小组的写作能力有一个很好的第一印象。

从准备的角度出发,那么我们无疑是需要重视写作能力的培养的。所以,团队里面最好有一个学雅思或者托福较强的成员,主战写作。除了图表公式的“花里胡哨”,英语句式的组合运用和高级词汇的信手拈来,会让阅卷的评委老师,尤其是到后期在美国的评审老师,给你们论文加分。

具体的说,一方面是对专业术语和篇章结构的梳理,这可以很轻松的在百度上搜索诸如“数模美赛写作词汇”或“数模美赛经典句式”等,就可以在短时间内得到较好的表达效果。

另一方面,仅仅看句型词汇是不够。往年的优秀论文,尤其是近两年的O奖论文,是很好的学习对象。尽管没有任何论文堪称完美无缺,但任何一篇O奖论文都有其独到之处,用评审意见的话说就是,有“把这篇文章从其他文章中区分出来的要素”。在学习优秀论文的时候,在明白其所答题目的task要求之后,一是学习其篇章结构,二是学习其模型算法,三是学习其语言表达,四是学习其图表公式。

往届O奖论文的获取可以上数模的论坛网站,或者到各大论坛以及百度云盘中去获取。

建模

文档是表达,编程是实现,但最终决定一篇文章从众多优秀文章中突出重围的,只会是也只能是其优秀的,或者说别出心裁的数学模型。

优秀的数学模型有以下几类:

  1. 对现有模型算法进行组合,以大规模取胜
  2. 对现有模型算法进行改进,以细节、适应问题域能力强取胜
  3. 自己独创复杂模型,以创新取胜
  4. 利用领域知识辅助建模,如2018某篇O奖论文使用了经管专业中的特有模型——贝叶斯纳什均衡,脱颖而出。

一个优秀的建模成员,往往是团队的核心,因为他决定了团队的任务和方向。所以,对常用模型的熟悉和掌握,对于建模大佬来说,无疑是最基本的工作。常见的数学模型如下图所示:

对于上述模型,尤其是绿色和紫色的高频模型,必须要做到最大熟悉。这样才会在运用时得心应手。这里推荐《数学建模算法全收录800页》以及国防工业出版社司守奎出版的《数学建模算法与应用》。司守奎的书比较简单,可以入门,但深入还是要细看800页这本书。另外,这两本书都有丰富且高质量的MATLAB和lingo代码,这也是我推荐它们的原因之一。

编程

再优美的文档,再高级的模型,最终也是落实在编程实现上。数学建模并没有要求只允许使用某一种语言,以下几种较为常见:

  1. 奠基的MATLAB
  2. 规划问题的方便助手Lingo
  3. 人工智能领域的python
  4. 数据分析领域的R
  5. 虽不起眼但真正会用的人只用它就可以打数模的excel

有一定的编程基础当然更好。没有的话就要抓紧学习。

  1. MATLAB的学习推荐w3cschool的教程 https://www.w3cschool.cn/matlab/
  2. Lingo的学习推荐http://www.mathor.com/thread-21085-1-1.html网站上的三个文件,一般入门就够了。当然,进一步的学习推荐国防工业出版社的《lingo软件及应用》
  3. python的学习推荐菜鸟的教程 http://www.runoob.com/python/python-tutorial.html,但其实python并不难,麻烦的是使用AI框架如caffe、TensorFlow的相关API。当然麻烦不仅仅是指对API的熟悉,还有对人工智能算法的深入理解。
  4. R的学习推荐w3cschool的教程 https://www.w3cschool.cn/r/ 另外推荐一本python和R的实战书籍——《数据科学实战手册(R+python)》
  5. excel说白了就是一大堆神奇的公式API,从average到vlookup,从std到rand,几乎是包罗万象。另外,excel对数据的绘图能力也是极强的。这也就是为什么我在前文说“真正会用的人只用它就可以打数模”。

对于编程语言,以实用为上,熟悉为主,不要在一些很高级或者复杂的应用上花大力气。因为过来人都知道,让你全写代码的机会很少,大部分其实只是改改别人的.m或者py文件而已。所以,除了动手实践外,github是碾压任何编程书籍的代码大全存在。但尽管如此,熟练的编码能力依然是数模的基石之一。

建模和编程的工作其实是不矛盾的,团队中负责建模的人往往也编程,编程人员的编程能力也是建立在对模型算法的理解基础上的。所以,编程工作中对语言和算法的熟悉,完全可以和建模工作中对模型的学习合并起来,实现“模型-编码”两开花。

这里给出我们三人小组在学长的工作基础上建立的github程序库,需要者自取:https://github.com/TotallyFine/MCM-ICM

数模科学计算软件

这里主要是是指编程的IDE,常见的有以下几个:

  1. MATLAB2016 这是MATLAB较为常见的版本,功能齐全,界面简单,速度较快(用python的方式干C的事情)。可能唯一的诟病之处就是十几个g的软件尺寸。
  2. lingo 具体的版本并没有太大区别。但是lingo有一个毛病是,如果不使用完全破解版,它会在内存、变量等方面对程序进行苛刻的限制。在不少情况下,代码并没有问题,但由于上述的限制原因,导致了正确的代码不能顺利执行。因此,我在这里给出一个我辛苦找到的lingo破解包 链接:https://pan.baidu.com/s/1vH028TVR0ObX3I46SrSxJQ 提取码:us9w  
  3. python的编译器,准确来说它需要的是解释器。美观的IDE有pycharm,但jetbrain公司是要求收费的,学生使用学校的邮箱可以在上学几年时间免费使用。另外的推荐就是vscode,简洁高效的开发一定会令你爱上这个编程软件。
  4. R同样可以用vscode(这其实是个前端为主的软件,用配置和插件实现编译和运行)高效书写并执行。
  5. excel就是用office2016的excel2016就好,不推荐使用wps这样的“野鸡”(不是我贬低,wps还是一款很优秀的软件,只是office正规也正式一些)。

英语论文作图软件

这里主要是指画类似于架构图、流程图一类的画图软件,常用的有以下几个:

  1. visio2016 是微软(但不在office套件里)的画图软件,市场占有率极高,也很流行。界面操作延续了office的传统界面,操作较为简单,画图开发效率高,但有特色的图标以及模板较少。
  2. 亿图图示 这是完全国产的画图软件,看成中国版的visio。青出于蓝而胜于蓝的是,它吸收了visio的开发界面的风格优点,配合有大量的优秀图标素材以及开发模板以供选择。破解9.0版本成功率较高,9.1以上较难破解,且不要多次交叉破解9.0和9.1及以上版本,否则不仅9.1以上不能用,能破解的9.0也会出现模板无法下拉的bug。否则,就只能像我一样去氪金了……
  3. process on 这是个神奇的画图工具,还是网页在线版本的。操作清新流畅。唯一的小毛病是由于有会员限制所以总作图数量受限,但用多个账号可以轻松解决这个小问题。
  4. xmind 8 思维导图画图软件,极为流行的思维导图画图软件,风格清新简洁,开发高效方便。详细破解方式见我的文章《xmind8 破解激活教程》 https://blog.csdn.net/Zjhao666/article/details/80851530
  5. 亿图思维导图MindMaster 亿图图示的姐妹软件,针对思维导图开发,有丰富的模板库和素材库。破解方式应该和亿图图示类似。但由于我之前氪金,看亿图有优惠,就把亿图图示、思维导图和信息图三者一起氪了……

建模三人小组的组建和运作

这其实是最麻烦的工作。管理人的事情往往比管理物的事情要麻烦很多,而管理团队使其高效而又协调一致的能力,实际上是管理型人才强大领导力的体现。

领域知识

具体来说,数学建模美赛分为MCM和ICM,即数理竞赛和交叉学科竞赛。以六类题目来说,A偏通信原理,B偏统筹规划,C偏数据分析,D偏网络科学,E和F作为交叉竞赛,没有定论,但从近两年的趋势来看,经管和资环专业的学生有较大的优势。

上面这段话是对题目要求的知识方面的梳理。但无论是哪方面的知识,我只想说一句“废话”:团队在一个该专业的大佬成员指导下,可以节省大量查阅相关文献的精力和时间耗费。但其实在具体领域知识之上的,是对新知识的快速学习和掌握能力。另外值得注意的一点是,大学期间对于要参加数模美赛的理工科学生,尤其是要做EF交叉竞赛的同学来讲,一定不要对类似于工程管理、环境保护、经济学一类的经管、资环等文科学院开设的通识课程掉以轻心。事实证明,没有我在经济学概率课上的认真学习所攒下来的一些有用的经济学常识,这次的F题的开展将是困难重重的。(至少对于我来说是这样)

人员素质

首先,团队内的成员必须以和善且沟通能力较好的人未上。寡言之人不利于团队协作,争执过多只会虚度光阴。

其次,你的队友必须要是人品上和技术上都信得过的人。技术就是写作、编程或建模,不再赘述。人品上,具体指以下几点:

  1. 踏实用功
  2. 平易近人
  3. 乐于助人
  4. 责任心强
  5. 最重要的一点,有帮助团队一直走到比赛终点的决心和勇气

团队运作

运作的方式多种多样,且不同专业的学生,不同数量的男女比例的组合情况层出不穷。鉴于没有人比你更了解你们自己的团队情况。所以,他人过于细节的要求必然是没有建立在实事求是的基础上的。所以,我给出一些运作中的原则即可:

  1. 三人组相处的时间要尽可能长,三人之间要尽可能熟悉彼此的脾气
  2. 出现分歧时不要指责,更不要批评人。而应该就事论事,不强调反对的意见,而反复陈述反对的原因。相信这句话吧,“两个绝对真诚的人在一起发生争执的时候,他们最终总能在听取对方意见的基础上,实现意见上的统一和观点上的一致”。
  3. 要有时间规划和进度安排,使比赛的任务按时并保质保量的完成
  4. 团队达成一致只有两种情况,“拍板”人物的决定或者民主集中的全员认同,并且以民主集中制还照顾了团队团结为上。

争取指导老师的支援

正如同土八路不同于正规军,参加了校队、接受了指导教师悉心指导的团队远强于自己倒腾的三人组。值得注意的一点是,今年的获奖名额比去年少了整整一半,这也就意味着想划水混一个奖的想法越来越不现实,也意味着老师指导越来越重要。

美赛中的具体参赛

题目获取与研读

题目是在早上六点发布的,这意味着六点前起床将能使得你们看题的时间长于睡懒觉的小组。所以我们是五点半起床看题的。但不幸的官网好像因为高并发刷新不出题目,不过老师随即在六点一刻左右发了题目在群中,所以早起还是有优势的,问题不大。

之前我们习惯于看题目的中文翻译,但这样做有以下几点问题:

  1. 中文翻译不贴切英文原意
  2. 中文翻译会使人忽略了原文中重要的英语单词
  3. 当中英文题目发生理解上的冲突时,不好好看英文原文,不仔细理解题目要求的任何策略都是南辕北辙

所以得出的结论是,只看英文原文,读到不懂的长句再参考翻译。无论如何,英文原文的题目要求永远是第一位的。

选题规划与权衡

前文论述了美赛不同题目的学科倾向,但具体的任务取决于具体的问题。

以这次比赛为例,我们对于AB的连续和离散型建模不感冒,C和E神仙打架,D网络科学了解不多,所以一开始我们的选择就是倾向于F的。这是从主观倾向上的考虑。

再者,E的资环成本分析我们几乎不了解,F的经济我们多少有些基础。这是从客观能力上的考虑。

最终,当我们到老师办公室时看到一百多支队伍只有四支队伍选择了F题,这意味着我们的竞争压力大大小于其他五题,神仙打架的概率也很低。此外,从独立同分布大数定理的角度来看,总体选F的人也应当很少,至少远少于其他五题,这意味着评审F的老师可以更认真地看我们的文章,这也就意味着“草菅人命”的概率大大降低。这是从竞争博弈上的考虑。

综上,主观倾向决定了我们的方向,客观能力决定了我们的需求,竞争博弈决定了我们的角度,所以选择F题远不只是“对经管有一定了解”一句话就可以轻易得出来的。

任务分解、模型算法与文章结构

一篇文章中展示的是文章结构。但它是基于对task任务的解读和模型算法的选择和组建的基础上形成的。实际上,正常的比赛流程是,通过仔细研读英文原文题目画出task任务分解图,通过分析出的任务选择要使用的算法和要组建的模型画出模型结构图,最后根据模型和算法再结合task之前的逻辑,画出文章结构图。最终任务图、模型图、文章图在一张图上,通过线条相连,便于对文章整体了解,便于对模型整体把握,便于对任务深度分析,便于对修改及时应对。我们在比赛中最终画出的的“任务分解-模型算法-文章结构”图如下所示:

任务分工与进度规划

随着“任务分解-模型算法-文章结构“”图的完成,实际上,任务和实现已经完全确定下来了。具体的分工取决于两个方面:

  1. 任务复杂度和规模量
  2. 团队成员的能力和人数

具体原则如下:

  1. 当复杂度较高、规模较大时,应注重问题的成功求解,适当简化模型。
  2. 当复杂度较低、规模较小时,应注重问题的细化优化,适当提高模型泛化能力。
  3. 当只有一个人做某项工作时,应注意对其进行适当照顾,避免单点故障。
  4. 当有两个及以上的人做同一项工作时,应注意及时协调,保持一致和版本控制工作。

进度原则如下:

  1. 尽快完成工作,为后期迭代优化提供足够的时间。
  2. 后期能不熬夜就不熬夜,加班加点的质量远不如正常作息的效果。
  3. 不要制定过于详细的进度计划,以免因为细枝末节的频繁出入扰动军心。
  4. 团队内的“拍板”人员或者“leader”应该对总体进度和时间剩余量有一个总体的感知,能根据实际决定是否加班或加派人手。

与指导教师的交流与修改工作

正如前文所述,在保质保量的前提下加快进度,可以获得更多的和老师交流的机会,使得文章的优化程度更高。

在和老师的交流中,对老师的指导意见原则上应无条件服从。除非老师对具体领域知识的模型不太清楚时可能犯错再跟老师及时探讨以谋对策,其余情况下应该严格听命于老师丰富的“人生经验”。

修改工作最好在一台机器上运行,这涉及到下文中所述的版本控制问题。

版本控制与团队一致

版本控制是软件工程术语,指的是在对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。对应到建模论文中,实际上指的是多个文档之间的一致性——大家的更改都能正确的汇集到新的版本中;大家的更改都是基于最新的版本。

所以,在后期的版本修改中,应主要在一台电脑上完成,即确定“主分支”非常重要。

团队一致主要指建模思想和任务意识的一致性,这需要在完成阶段模块工作中反复统一,以实现“心往一处想,劲往一处使”。

结语:建模论文雷区提示

  1. 不要泄露个人、团队、学校信息。
  2. 不要超过页数限制。
  3. 文档不要有中文字符。
  4. 模型在实用的基础上,尽量创新、优化,提高跨领域的泛化能力。
  5. 图表丰富,公式详尽,文字言简意赅。
  6. 出现分歧应尽量化解,原则上避免爆发冲突,但如果自己认为自己的观点很重要时应竭力陈述原因,而不是否定他人的观点。观点实在无法调和就找老师仲裁。
  7. 前期加快速度,后期才有足够的时间进行调整、优化。

数学建模是利国利民的事情,所以,最后送大家一句话:

苟利国家生死以,岂因祸福避趋之。

祝大家数模比赛顺利。

猜你喜欢

转载自blog.csdn.net/Zjhao666/article/details/86689696
今日推荐