我接受并同意 《用户服务条款》《隐私权相关政策》
也谈美赛对背景提升和思维启发
分类:

专家指南

时间:2019-01-25

之前有同学询问关于国赛一等、二等以及美赛O、F、M奖的含金量排序及获奖难度问题,华中科技大学管理学院18级博士研究生苗枫,本科时全国大学生数学建模国赛一等奖,并多次带队获得美国数学建模竞赛一等奖这里详细解释下这些奖项的评分过程,然后大家就可以大致明白啦。

 

关于国赛

首先,国赛中,当9月中旬国赛论文提交后,各个省会互评论文,比如湖北省试卷交给山东组委会评,山东省试卷交给山西省组委会评。各个省会选出一批优秀论文来递交给国家组委会评选国家一等和国家二等。需要注意的是,每个学校参评国赛一等的队伍不超过5支,参评国赛二等的队伍也不超过5支。参评国赛一等的结果可能是国赛一等或者二等,参评国赛二等的结果可能是国赛二等或者省赛一等(注意国赛一等或者二等都会有省赛一等的证书)。这也是为什么每个学校国赛一等奖不会超过5支,一等和二等加起来不会超过10支的原因了。

 

关于美赛

再说美赛,美赛的评奖机制是当比赛结束后,首先试卷会在中国区参与评阅,评阅的教授为中国高校教授,评阅过程为打分机制,满分7分,3分以下为S奖(成功参赛奖),3-5分为H奖(二等奖),这部分试卷将会被留在国内,5分以上试卷将会被送往国外参与评审。然后在国外的评审过程中有一个国内教授一个国外教授一起评阅,达到5.5分会被评为M奖(一等奖),其余会被打回成H奖。然后在M奖中再次评选出大约30篇左右评分最高的论文参与O奖(特等奖)和F奖(特等奖提名)的评选,最终会产生约12篇O将,其余为F奖。

Ps:之前说所国赛、美赛获奖难度是按照各个奖项获奖比例而来,就难度排序O大于F大于国一大于国二大于M,但美赛和国赛考察重点也不相同的,这一点在本文后半部分会做重点说明,且二者在不同学校也有着不同参赛规模,所以奖项高低也没办法做出精准的判断,因人而异了。

 

 

建模、编程、论文该学点什么

建模、编程、论文是数学建模中三个非常重要的板块,一般而言同一支队伍中三个人要各自分工负责三者之一。一支好的队伍中,每个人对三个方面都有所了解,又有一方面特别精通。

建模

建模是数模比赛的基础,是写出优秀论文的地基。对于初学者而言建模是最难的部分,它过程主要包含建模思维的培养、常用模型的熟悉、以及实际比赛的锻炼。

就我自己的经验来谈谈我是如何开始建模部分的学习的,最开始就是看教材,这里有两本十分推荐的入门教材——姜启源《数学模型》(第四版)以及司守奎《数学建模算法与应用》

《数学模型》的学习

 

 

 

其中《数学模型》偏向于基础的数学建模知识,实用性不强,包含一些最基础的数学模型,是一本能把高中应用思维逐渐向大学建模思维逐渐开阔的教材,并且难度不大,适合大一、大二刚刚接触建模的同学阅读,能为初学者打开学习数学建模的大门。

简单说说我是如何学习这两本书的:

我自己学习这两本书时,每本书读了三遍。

第一遍,粗略过教材。最开始接触数模是在大一时候,没有抱着多么大的抱负去准备,《数学模型》这本书最开始只是把它当做一本故事书来读,大概三天左右就浏览了一遍,知道了什么是数学模型——就像一道比较复杂的应用题。在这期间有很多看不懂的地方就跳,基本没看数学相关的东西,但是在自己脑海中搭建了一个有关建模的框架,受益匪浅。如果本身数学功底不是很好,当初第一次接触就开始细究一些比较晦涩的概念或公式,可能会读不下去。

第二遍,精致过教材。这个时候已经对“什么是数学建模”这个概念有了模糊的认知,那么接下来就认认真真的读课本,一行一行读。不需要从宏观角度去看,只要用心理解每一行每个字的意义,上下文的含义,就像在高中读课本那样,实在不会或者没有头绪的可以跳过去,但是要做好标记,方便以后基础扎实了再回头看。这个过程是最费时间的,也可以学习到很多很多新的知识(虽然可能学过一两天就会忘掉,但是下次拿起他的时候你能很快想到自己之前是怎么看的怎么想的这就足矣)。

第三框架构建。这个时候需要我们有一定的宏观认知能力,要学会做分类,重在思考轻于细节。带着问题去第三遍读课本:这个模型是什么?它能够解决哪些问题?适用于什么样的环境?然后在最后做一次大的梳理,看看自己究竟学到了什么,哪些地方还是很模糊。

《数学建模算法与应用》这本书我是在后面才接触到的,也是很不错的一本书,值得一看。

此外,在学习建模的过程中多问自己几个问题。

第一:这个模型是什么?这个问题对于初学者而言是最难的,很难用系统语言来描述一个模型,但这个过程是必须的,因为你只有把它用自己的话表达出来,才能真正的理解这个模型,在比赛过程中快速与队友、指导老师交流。提供一个小方法:每看完一章节,给队友讲一讲你对这章节内容的看法,你学到了什么,你觉得什么有价值,它的创新点在哪里。如果你能把这一点表达清楚,这一步你就做的非常棒了。

第二:它能够解决哪些问题。这个问题是最重要的,很多人学完很多资料但是看到题目后还是没有什么思路,很可能就是因为这一点。多想、多练、多看、多做总结,经验是最好的老师。

 

第三:模型的具体操作步骤怎么实现?也就是操作层面上的问题,这个模型可以用什么软件实现?参数怎么调?有没有现成的代码?每一步的操作是否清楚?要做到什么程度呢——我们无需记忆模型具体的步骤但是要对它很熟悉,保证在需要用到这个模型时能很快把它融入到自己的题目中。融会贯通是很难的,这个过程里会遇到很多意想不到的、纸上谈兵时看不到的困难,具体的操作要受你的系统环境、软件版本、时间限制等各种方面的现实考验,没有什么捷径,只有平时多练,多做,才能临场时最快地找到解决的办法。

 

《数学建模算法与应用》的学习

 

 

 

 

 

 

《数学建模算法与应用》基本涵盖了常见的数学建模算法理论,是学习各类型算法不可多得的好教材,虽然里面部分内容和现在国、美赛题目的热门考点稍有脱节,但是也是学习数模算法的很好的入门教材了。

在学习《数学建模算法与应用》这本书时,因为它更偏向于算法层面,我的建议是先看完《数学模型》后再来读这本书。走到这一步说明你已经有了一定的基础,那么就按照自己的方法来看吧,没有固定的方法,适合自己的才是最有效率的。

我说下我自己阅读这本书时候的一些体会:一定要对每个算法的作用和领域有清晰的认知和判断。


例如规划,包括线性规划、目标规划、整数规划、非线性规划、动态规划等等。他们的应用范围不同但总是解决类型相同或者相似的问题的,是最常见的数模问题。

例如优化算法,能解决问题的特征是问题要求某些量达到最大或最小,比如销售量最大化,而且我们可以人为地控制某些变量,比如原材料的投入量。只要是存在可控制的量和要达到最优的目标,这就是一个优化问题。优化问题由很多现代优化算法,而且往往是和规划结合在一起,密不可分。


但是话说回来,学数学模型,其实看哪本书都可以,一本书只是一个线索。学到比较深入的地步时候一本书上的内容是不够用的,往往需要读者以此为引导去查找相关资料。

学习教材的阶段过去后,进入实战环节。一是看论文,二是模拟赛。


看论文,看往届优秀的获奖论文——国赛二等奖及以上,美赛O、F奖。(这里不推荐看美赛M奖论文是因为M奖中论文质量参差不齐,很大概率会遇到带有误导性质的文章,得不偿失)。

拿到论文,首先看对应的题目,时间充裕的话不妨自己先去拿着做着试试看,大概一天左右就会遇到瓶颈,发现这道题的难点在哪里,这时候再去看看别人的论文时如何解决这个问题的,就会有一种恍然大悟的感觉。

看论文一是看思路,而是看行文结构,例如图表如何做如何数据可视化,文章逻辑如何安排,问题结论如何表示,摘要如何书写等。

魔鬼藏在细节中,要努力使得论文尽善尽美,更好地表达自己的思想。

 

模拟赛——数模前最关键的环节

 

重要的事情说三遍,一定要做模拟赛,一定要做模拟赛,一定要做模拟赛。

我身边斩获数模大奖的,90%以上都做过一次以上的模拟赛。

尝试去做往年的真题,如果参加美赛就找美赛原题(英文版),如果参加国赛就找国赛真题。先不要看别人已经完成的,尝试自己解一下,然后参考一下他们的,看看他们是怎么从问题中抽出变量、做出假设、结合现实约束列出方程。

可以看一些经典问题建立模型的书籍,按照自己的思路求解一遍,这样不断做,接触各种类型的题,体会其中建立模型的思路。

具体做题的时候,可以根据问题本身的现实(物理)规律建模,也可以套用已有的经典模型,也可以在经典模型的基础上根据问题适当地改变其中某些变量的表达式,也可以对比两种算法建模对问题求解的效果等等。

 

编程部分

编程,也就是我们口中常说的编程码代码,由于我自身专业原因,不是专业写代码,但是也学习过不少的编程语言,如c、c++、python等。但是个人认为正常的编程和数学建模中的编程还是具有比较大的区别的。数模中的编程不同于做项目和ACM(国际大学生程序设计竞赛),对编程者的敲代码能力要求其实并不高。实际上,这里的编程更准确说是对软件的使用,包括对、MATLAB、Lingo 、Sps的使用,还有别的专业软件的使用。编程这一块并非一定是专业码农,软件学得比较快就可以。当然 Matlab 和 Lingo 都不是图形界面,需要命令行输入,有编程基础的同学对这一块儿学起来可能会更加容易上手。此外我认为,会算法要比会编程更重要(一般而言算法学得好的编程不会很差)。司守奎的《数学建模算法与应用》中算法和代码讲的都很好。

 

 

 

 

三大软件


 

Matlab、lingo、Spss是三款必备的软件,matlab是很多工科学生的必修课,常用来解决复杂的科学计算,lingo是用来求解(非)线性规划和目标规划非常有用的软件,Spss可以用来解决数据标准化,数据处理等问题。


此外还有一个小技巧——工具箱是个好东西。比如如果想用遗传算法计算优化模型结果,可以直接使用遗传算法工具箱,而并不需要为了凸显编程能力自己动手,除非对算法设计有自己得独到之处(很多并不要求提供代码附件)。当然可能在某些地方需要编程,比如用Matlab 做个元胞,写个优化算法。但是这部分的编程也都是建立在对已有工具的使用上,而非从底层码起。总而言之,数模比赛对编程要求能力并不高,能够做到对程序的模仿运用便已足够。

 

有几点个人学习数模编程的经验总结:

1、自己的程序文件要整理好,方便查找和修改:

编程过程中经常会出现对程序的修改和测试:有时是因为程序本身存在问题,有时是因为建模方法改变,有时是因为对模型进行了进一步改进,有时是因为要处理的数据发生变化……因此会产生一些不同版本的程序代码。文件的命名用英文和数字,而且最好形成一种统一的格式,能够“顾名思义”,方便了解是什么时候、哪次建模过程中使用的何种模型以及同一模型的哪个版本。

2、代码要整齐易读,写好注释:

除了方便自己读和修改,也方便队友对程序进行了解。需要注释的地方如:开头可以写一下程序的作用、所需数据格式、程序仍存在的问题等;重要的变量假设、Flag、累积量;每个模块的作用;关键的步骤和函数;常常要进行修改调整的语句……变量假设、函数名称也要易于识别。

3、利用好程序资源,在已有的程序上进行修改可以提高效率:

常用算法的源程序是很好找的,从代码网站、博客或者算法书上总能找到相关的编程案例,自己以前编写的程序也能拿来用而且用起来更顺手,所以不用执着于一定要自己从头到尾地编代码。平时多看一些案例,看到好的代码就收藏起来,分类保存好。
4、函数和工具箱的使用:

软件中常内置有功能丰富的函数和工具箱。有时我们会发现软件中意想不到地刚好存在能实现所需功能的函数,因此编程前可以先在网上搜一搜有没有这样的函数,没有的话再自己写,写好以后也能存起来以后用。工具箱的使用要看情况。有的算法不用工具箱实现比较好,用自己写的代码更灵活和利于修改,而且对于算法的原理也更清楚;依赖工具箱而对算法的解释不清楚的话可能会让论文失色,而且工具箱可能不利于大量数据的反复运算;有时候用工具箱可能更好,主要是对一些算法原理比较简单的运算过程可以减少编程、提高效率,而且有时候用工具箱求解出的数据格式或图表样式也比自己编程做出来的更整齐好看、看起来更专业。

5、积累程序调试的技巧:

对于自己的程序自己要做到完全把握,清楚来龙去脉,出现问题时快速找出问题所在。以MATLAB为例,利用好Workspace和Debug,对于代码节点和每个变量的数值变化能清楚了解。程序运行出岔子常常是因为以下一些原因:数据读取格式不对;变量行列数不匹配;循环出错,在“有些命令放在循环内还是外?”“从什么地方开始循环?”“什么时候停止循环?”“行列式循环时数据怎么对应?”这样的地方出问题;调用函数时变量格式不对;运算式写错,如括号丢失;画图时数据读取出错,如xy搞反。

6、通过编程制作好看的图表:

用excel能做一些图表。编程实现虽然麻烦一点,但能做出很多excel不能做的图。有时候在编程做图的过程中也会为了使图表更好看而不断调试。要熟练掌握一些通过编程画图的常用函数,包括二维图、三维图。除了折线图、直方图、拟合曲线图等一些常用数据统计图以外,还有聚类分析图、树状图、有限元分析图等一些和具体算法相关的图。把代码积累起来,方便展示数据时使用。推荐几款绘图软件:R、亿图(网站)、Eviews等。

总的来说,编程不是很麻烦的事情,主要就是要熟悉:基本语句,数据格式、调用和输出,基本运算符号,基本函数,软件常用视窗和命令。在此基础上能不断研究和积累新函数、新算法。关键还是要建好模型,在假设好变量和确定好要用的公式或算法后,编程就是用代码语言把它重述的过程,是自然而然的后续工作,是建模和论文的中间过渡且与两方都有重叠。

写作

论文写作是比赛获奖至关重要的一步,建模和编程都需要论文来表达,能不能把内容思想结论准确的传达给评委就是写作的同学需要做的事情。

写作中要注重两点。一是要保证论文整体的逻辑性很强,保持前后贯通:论文的各部分的应当是顺接或相互照应的关系,而不是毫无关联的独立部分。国赛题目会有几个小问引导论文展开,而美赛则是一个大问题整体,要做到论文脉络清晰,就要对题目做合理的拆解。二是令人信服,模型结果可以不理想,但是呈现于论文上的一定是有理有据、能够自圆其说的建模过程与模型结果。除了写作的这两点外,论文的排版与插图也很重要,这两个是论文中最直观的。排版大多数推崇用latex,但是latex的弊端就是论文只有一个人可以进行排版,队友只能围观,而word可以队友一起做。至于是不是latex得奖率更高,wps一样拿奖。(更推荐三个人都用office同一版进行写作排版,并且公式采用mathtype)

写论文一定要要深入理解模型。不要因为自己负责写论文就把建模和求解的任务全交给队友来做,造成写论文者初期很闲、后期赶时间的情况。要尽可能地解放发展生产力,团队中的每个成员都要有大局观。

关于写作,推荐比较好的准备方式是多阅读优秀论文,学习别人的行文结构,然后写作的同学一定要记得多学点图表制作方面的内容,非常重要。


如何更有把握获得国/美赛一等奖,这两者之间还是有所差距的。给出下面这六条比较长的建议:

 

搞清楚美赛国赛考察重点

    在上篇数模相关推送中,曾经提到过美赛和国赛的评审机制,这里不再赘述了。仅从评审角度看,国赛由中国评委(一般是数学院出身教授)评审,美赛高等级奖项由外国评委(部分是来源于某公司)评审,因此即便对于同一问题,两者侧重点也是完全不同的。国赛更侧重于一种规范性以及标准性,一方面指的是书面排版及语言文字问题,国赛对于论文的章节结构包括字体字号等都有着严格的要求,必须统一规范,而美赛相对来说宽松很多,以美观清晰为首要目标,甚至字体都可以放缩1-2号;另外一方面体现在结果方面,国赛要求提供完整版的程序,甚至有些题目具有标准答案(比如2015年A题太阳影长问题,问准确经纬度以及时间,我相信比赛官方是有标准答案的,因为题目是根据实验结果推测实验条件,结果越接近实际情况得分越高,即便方法有一定缺陷;假设方法很好很创新但是答案离标准太远可能也不会有很高的奖项),在美赛中最看重的是思路而非结果,比如马航370残骸搜索问题,压根没有答案——官方追求的是解决问题的创新思路,只要合理,哪怕你解不出准确结果都可以(但是尽量还是要有结果做一个完满的回答),有很多队伍都没有回答完所有的问题但依旧获得了M奖,就是因为前面的几问做的很精彩,这在国赛中是不可想象的(但O奖一定要回答完所有问题)。

    知道这些有什么用呢——见人说人话。国赛论文务必追求结构的完整性以及语句的逻辑性,各种图表要有很强的学术范(可以多看看论文中图表样式,避免使用EXCEL直接做很low的图),多采用数据说话,多做数据分析和结果分析,想办法证明结果的正确性和准确性。美赛论文要追求整体的美观性及高大上的排版,很多图最好有PS做标记修正(这点在后面重点说),由于语言是英文,那么要主要关键图表附近的翻译一定不要有语法错误,很伤,论文中要多解释下自己的思路,用各种流程图或者示意图来展示。在做题过程中,国赛题目多追求程序上的完善,多做算法上的优化使得结果精确,美赛多追求思路上的优化,多提出一些小方案而得到结果。

花大量时间和精力写好摘要

    一般无论是国赛还是美赛,一篇论文的平均阅卷时间都只有20分钟左右,其中12分钟左右看摘要,8分钟左右看论文其余部分(认识几个阅卷老师,他们都是以这样方式阅卷的)。看摘要主要目的在于了解整篇文章的思路、创新点、结果,看论文其余部分主要是挑选在读摘要过程中感觉比较新的、有特色点点,顺便浏览其他部分做的怎么样,这有点类似读高考作文,先看标题以及看透结果,用少量时间浏览中间内容。私认为摘要占比重可达40%以上,每次比赛期间哪怕问题还没有解决完,我都会预留出至少1天时间开始写摘要,例如国赛早上8:00交卷,我最晚前一天上午就会开始写摘要,花5小时左右写出来然后再不断打磨修改,需要12小时左右才能把摘要完整写完,之所以在上午开始写是因为刚睡醒精力旺,如果放在晚上再写累了一天可能精力就会跟不上了,用最宝贵的时间做做含金量的事,美赛的摘要习惯先列好提纲然后直接用英文来写作,因为中文和英文表达方式还是有很大区别的,写好中文再翻译会浪费很多时间。另外注意摘要千万不要超过一页,不要短也不太长,写完以后让队友多读几遍看看是否能通过摘要大致想象到论文内容。

做合适的图表对论文非常加分

    图表一直以来都是数模论文中非常重要的部分——图表可以将思路可视化、数据可视化,尤其是对于美赛论文而言,有一部分阅卷工作是在国内完成的,在短时间内评审无法准确地翻译论文每一段话,而图表是一个让人很容易读懂的点,一篇优秀的论文如果光看其图表以及附近的解释性文字,能够基本明白整个研究思路及研究结果,如果没有这样的效果的话论文让人读起来是很不舒服的(这一点看过比较多文献的人应该有所体会)。在短时间内,相同的内容用图和表的形式相比纯文字更容易让人接受。

    在数模中图表大致分为三类:流程图、示意图、结果图。流程图一般主要体现的是做题的思路;示意图用来表达一些抽象的概念,比如汽车超车时超车方案示意图、机场排队论研究时机场布局示意图;结果图多为数据分析结果。

    高大上的图表能够极大程度上提高论文的“逼格”,比如下面这样的图,制作起来很简单,但是看起来就会比较高端。

  如何做一些逼格高的图表,如果需求的人数多的话后面可以专门写一期作介绍,内容太多这里就不赘述啦。

    如果说摘要占比40%的话,图表占比大概能到20%,也是相当重要的。个人建议一些重要的图表要在摘要中有所体现。


王小五

刚参加完建模比赛,身心俱疲,再也不要建模了。我选的B题,其实我两题都不会。马马虎虎凑了点东西交了上去,其实自己都知道数据,分析,模型都不正确,并且感觉这种题目明明人家要花很久的时间才能统计出来再研究证实,我只有三天,做出来的东西自己都没法骗自己。我很想了解真正会建模的人到底是什么样的?

喵教授

其实说实话看到这个问题时候我十分能够理解题主的感受,我自己曾经获得过国/美赛一等奖,也曾给学生做过很长一段时间系统培训,最终达到75%的美赛一等奖获奖率(共四支队伍,三支M奖),在外界看来是一个相当不错的成绩了,但是很可惜,我并不是真正会数学建模的人,至少目前是这样的。在我理解中,会拿奖绝不等于真正会建模。

  虽然数学建模竞赛涉及的知识面挺广,但深度实在有限。以至于很多时候凑几个自己都似懂非懂的模型,组合一下写成一篇论文,再用一些小技巧包装一下,差不多就能拿到一个不错的奖,并且在这个过程中,你确实接触到了新的数学模型,但是对它的理解太浅;也确实写了一些程序,但是可能更多时候是在调用工具箱和已有的函数,自己写的也就是一些简单的逻辑或者画图的程序。


私以为,数学建模的核心应该是建立模型和求解模型;但是数模竞赛里面似乎包装比这两者更重要,一个牛逼的数模论文写手能把一些很简单很low的东西扯得非常高大上,看起来逼格很高,以至于竞赛成绩胜过那些真正有干货但论文写得不是很好的选手。(上述原话部分摘取自知乎,觉得说出个人观点便将其修改引用)。能拿到奖仅仅能证明入了建模的门,并且会使用一些技巧将模型表达出来。我目前已经能做到对竞赛要求、比赛论文书写等种种技巧把握的比较不错的地步,这也就是为什么我不继续参加数模竞赛的原因了,面临一个真正的实际难题,不是三、四天时间能完成的工作,我现在更愿意把时间花费在如何将问题能够实实际际的解决上,从根本上解决问题,希望十年后的自己能够真正成长为一个会数学建模的人。

 

畅谈

真正会建模的人能在数学建模竞赛中拿到好成绩,也能真正地解决问题,不管是算法问题还是工程问题;有着良好的数学基础与建模思维,也有强大的编程能力;能把科研工作做的很好,至少对工程各个方面都有着比较深刻的理解;阅读过大量文献,懂得遇到问题后常规的解决问题的手段。


 

一定选择合适的队友一起组队

    虽然说这点可能已经比较晚了(参加国赛的同学应该已经都组好了队伍),但是还是要作为一个重点来说的,经常有人听我说完这方面经验以后有换队友的冲动,希望他们的队友不要打死我。

    根据以往绝大多数时候的经验,能够获奖的队伍往往有两种,一是队内有超强大腿,能以一人之力扛起大局力挽狂澜,带走队友一起走,队友只需要大腿指哪里,自己打哪里即可,没事干时候点个外卖端端茶送送水揉揉肩,三天下来利利的就能把一篇论文写完(尽管队友都不知道自己写了点什么,但依旧能拿到不错的奖),只不过这种情况极其稀少,一般活在梦里才能遇到这样的队友,可遇不可求;第二种就是三个队友配合的很默契,编程、建模、写作三方面各有所长,又能有所配合,尽管单兵作战能力相对较差,但是往往能发挥出1+1+1远大于3的效果,也就说所谓的团队精神发挥的很好的队伍,这样的队伍往往成绩都不会太差。

    

在与队友做配合时要注意以下几点:

    

1、与队友性格上要互补

    三个人最好是能在性格上有所互补,有主意有想法的人配合着能实干有能力的参赛是最好不过了。假如三个人都比较犟,一旦出手短时间内都拉不回来,我曾听说过一件事儿,一对情侣拉着自己玩的最好的朋友去一起参赛,想着可以通过比赛进一步加深感情,结果没想到遇到需要讨论的问题时,三个人都比较有想法都想用自己的想法去实践一下,结果三个人因为思路问题愈吵愈烈,最后决定各自写各自的,结果当然是都没做完,拼凑了一篇论文随便提交了上去。但三个人性格都比较温和也不太好,没办法有思想上的碰撞,有很多很不错的想法其实都是在争吵的过程中才能诞生的。

   

2、与队友能力上要互补

    传统的建模、编程、写作的分工还是有其合理性存在的,至少三个人不会在比赛期间分不清主次分工,但是也千万不要说建模完全一个人来建,写作完全一个人来写,会很影响整体进度以及团队氛围,很可能会造成第一天建模的人累死累活,其他俩人边休息边催促,模型还不一定能建立出来,第二天编程的人头很大,旁边两人只能眼巴巴看着,第三天就要到写作的人崩溃了,要只是这样还好,起码能把论文写的完整,关键就是在于很有可能编程的人不知道模型是怎么回事儿,写作的人不知道模型和编程是怎么回事儿,结果连论文都写不出来。那比较理想的状态是什么样的呢——三个人对于三方面都很了解,又有所专长,在比赛开始后能够一起进行讨论把思想和解题步骤大概确定下来,然后再开始分工,建模的同学继续完善修正模型,看是否能找到创新点;编程的同学尝试开始编程工作,参数暂时先不管先把程序跑出来,或者是帮忙搜索数据;写作的同学可以帮忙一起看文献或者开始问题重述、问题分析等部分的写作,这样就能更有效地利用时间了。

  

3、主动去配合队友

    一定要记住建模比赛是三个人的比赛,不要把担子撂在某一个或者两个同学身上,主动去承担一些责任,比如主动组织队伍模拟,上网搜集一些资料,为队友制定一些队内学习计划,分享自己学习心得,组织大家团队建设活动(吃吃饭看看电影之类,调节团队氛围)。但是也切记不要在比赛期间做一些出格的事情,比如自己看文献看的很累,想放松一会看个电影电视剧,这种事儿千万不要做,很有可能吸引队友一起来看剧,看完一集又一集,三天时间很快就过去了,如果你有什么坚持很久的习惯,比如夜跑、每天背半个小时单词这种雷打不动的事情,在比赛期间为了队友着想稍微放一放,比赛过后再坚持(身边有活生生的例子,半夜大家讨论的都很焦躁,结果某个队友坚持看一个小时文学类小说说是坚持了好多年改不掉,然后直接导致另外两个队友非常生气弃赛回家)

 

第一天做的事决定了能走多远  

    经历过一些实战比赛的同学应该比较清楚,三天的时间是很紧张的,一天比一天工作量大,基本第一天是在了解题目背景确定解题思路完成第一问,第一天晚上开始就是在通往第二问的路上了(放题时间为早上8点时,但今年比赛放题时间有所更改,改至周四晚上8点放题)

为什么说第一天做的事决定了能走多远呢?很重要的一个原因是参考文献与数据。第一天大家都刚拿到题目,所做的第一件事儿便是通过讨论把题目确定下来,之后便开始查阅与题目相关的参考文献并搜集相关数据了。一场数模比赛仅仅有短暂的3天时间,面对一个从未接触过的领域的问题,最快的切入方式便是上网去阅读前人文献,看看别人对这个问题是如何看待如何解决的,是否能学到一些相关的方法或者模型,然后在此基础上结合题目的问题作出一些改变或者优化,就可以算是创新点了。如果是想在三天时间内不参考前人做法只凭自己的想法是很难对一个问题进行深入了解并解决问题的,即便可以解决,但回头会发现我们做的东西可能非常基础,根本就不能算作模型。因此,切记一定要站在巨人的肩膀上做论文,如果能在三天时间内把解决一同问题但侧重点不同2-3篇论文读懂,将之运用到自己的论文中,就算的上是一种创新了。

    道理大家其实都懂,但是论文却不是那么好看的,有很多人看完论文后觉得论文中讲的自己用不到,就赶紧去翻阅下一篇论文,看过十几篇以后发现没有一篇能和自己的题目有所契合,然后就赶紧换题了。出题老师不是傻瓜不可能出一道能找的到完全契合的论文的题目,往往是在基础的问题上加以变形或者加深难度,相关的参考文献我们并不是用不到,而且要用里面一些关键性的公式或者思维,然后再结合自己题目特点加入自己题目的独有的公式或者部分模型,将两者结合之后再对答案进行求解,一定要清楚的认识到这一点。

    除此之外一定要珍惜第一天的时间,第一天大部分人都会觉得比较放松,在心态上会比较松懈,会做很多与比赛无关的事情,比如睡个午觉晚上一起出去吃个串再喝点小酒,美其名曰调整节奏,结果到了第三天发现做不完论文,敲论文敲到手抖,最后排版乱七八糟,亦或者是觉得第一问考虑的太过简单,反复停留在第一问做完善,其实完全没必要,首先把论文抓紧时间写完模型都解完,有空余时间再返回头去对每一问做检验和优化。国赛每一问都必须要做完,这一点和美赛是有比较大的区别的。

做合适的图表对论文非常加分

    

这里引用毕导一篇文章里的内容,个人觉得描述的非常到位

   

 

 

 

 

 

虽然说在数模中图表的做法没有上面说的这么夸张,但也差不多。图表是除去摘要以外的核心内容,做图表有三个地方要注意:

1.图表一定要最简洁直观的表达出想表达的含义

2.图表上一定要有图例、横纵轴、单位、图表名称

3.图表上下要有文字说明,图表上方文字说明图表是根据什么原理、利用什么数据绘制而成,下方文字说明图表的结果、含义。

 


评论

新东方前途出国首页|企业文化|联系我们|加入我们|English website|微博:新浪
新东方前途出国咨询有限公司
经营许可证编号:京ICP备05067667号 ©版权所有:新东方前途出国咨询有限公司
©2019 New Oriental Vision Overseas Consulting Co. Ltd.

也谈美赛对背景提升和思维启发

2019-01-25 新东方前途出国 郭斯璐
之前有同学询问关于国赛一等、二等以及美赛O、F、M奖的含金量排序及获奖难度问题,华中科技大学管理学院18级博士研究生苗枫,本科时全国大学生数学建模国赛一等奖,并多次带队获得美国数学建模竞赛一等奖这里详细解释下这些奖项的评分过程,然后大家就可以大致明白啦。

 

关于国赛

首先,国赛中,当9月中旬国赛论文提交后,各个省会互评论文,比如湖北省试卷交给山东组委会评,山东省试卷交给山西省组委会评。各个省会选出一批优秀论文来递交给国家组委会评选国家一等和国家二等。需要注意的是,每个学校参评国赛一等的队伍不超过5支,参评国赛二等的队伍也不超过5支。参评国赛一等的结果可能是国赛一等或者二等,参评国赛二等的结果可能是国赛二等或者省赛一等(注意国赛一等或者二等都会有省赛一等的证书)。这也是为什么每个学校国赛一等奖不会超过5支,一等和二等加起来不会超过10支的原因了。

 

关于美赛

再说美赛,美赛的评奖机制是当比赛结束后,首先试卷会在中国区参与评阅,评阅的教授为中国高校教授,评阅过程为打分机制,满分7分,3分以下为S奖(成功参赛奖),3-5分为H奖(二等奖),这部分试卷将会被留在国内,5分以上试卷将会被送往国外参与评审。然后在国外的评审过程中有一个国内教授一个国外教授一起评阅,达到5.5分会被评为M奖(一等奖),其余会被打回成H奖。然后在M奖中再次评选出大约30篇左右评分最高的论文参与O奖(特等奖)和F奖(特等奖提名)的评选,最终会产生约12篇O将,其余为F奖。

Ps:之前说所国赛、美赛获奖难度是按照各个奖项获奖比例而来,就难度排序O大于F大于国一大于国二大于M,但美赛和国赛考察重点也不相同的,这一点在本文后半部分会做重点说明,且二者在不同学校也有着不同参赛规模,所以奖项高低也没办法做出精准的判断,因人而异了。

 

 

建模、编程、论文该学点什么

建模、编程、论文是数学建模中三个非常重要的板块,一般而言同一支队伍中三个人要各自分工负责三者之一。一支好的队伍中,每个人对三个方面都有所了解,又有一方面特别精通。

建模

建模是数模比赛的基础,是写出优秀论文的地基。对于初学者而言建模是最难的部分,它过程主要包含建模思维的培养、常用模型的熟悉、以及实际比赛的锻炼。

就我自己的经验来谈谈我是如何开始建模部分的学习的,最开始就是看教材,这里有两本十分推荐的入门教材——姜启源《数学模型》(第四版)以及司守奎《数学建模算法与应用》

《数学模型》的学习

 

 

 

其中《数学模型》偏向于基础的数学建模知识,实用性不强,包含一些最基础的数学模型,是一本能把高中应用思维逐渐向大学建模思维逐渐开阔的教材,并且难度不大,适合大一、大二刚刚接触建模的同学阅读,能为初学者打开学习数学建模的大门。

简单说说我是如何学习这两本书的:

我自己学习这两本书时,每本书读了三遍。

第一遍,粗略过教材。最开始接触数模是在大一时候,没有抱着多么大的抱负去准备,《数学模型》这本书最开始只是把它当做一本故事书来读,大概三天左右就浏览了一遍,知道了什么是数学模型——就像一道比较复杂的应用题。在这期间有很多看不懂的地方就跳,基本没看数学相关的东西,但是在自己脑海中搭建了一个有关建模的框架,受益匪浅。如果本身数学功底不是很好,当初第一次接触就开始细究一些比较晦涩的概念或公式,可能会读不下去。

第二遍,精致过教材。这个时候已经对“什么是数学建模”这个概念有了模糊的认知,那么接下来就认认真真的读课本,一行一行读。不需要从宏观角度去看,只要用心理解每一行每个字的意义,上下文的含义,就像在高中读课本那样,实在不会或者没有头绪的可以跳过去,但是要做好标记,方便以后基础扎实了再回头看。这个过程是最费时间的,也可以学习到很多很多新的知识(虽然可能学过一两天就会忘掉,但是下次拿起他的时候你能很快想到自己之前是怎么看的怎么想的这就足矣)。

第三框架构建。这个时候需要我们有一定的宏观认知能力,要学会做分类,重在思考轻于细节。带着问题去第三遍读课本:这个模型是什么?它能够解决哪些问题?适用于什么样的环境?然后在最后做一次大的梳理,看看自己究竟学到了什么,哪些地方还是很模糊。

《数学建模算法与应用》这本书我是在后面才接触到的,也是很不错的一本书,值得一看。

此外,在学习建模的过程中多问自己几个问题。

第一:这个模型是什么?这个问题对于初学者而言是最难的,很难用系统语言来描述一个模型,但这个过程是必须的,因为你只有把它用自己的话表达出来,才能真正的理解这个模型,在比赛过程中快速与队友、指导老师交流。提供一个小方法:每看完一章节,给队友讲一讲你对这章节内容的看法,你学到了什么,你觉得什么有价值,它的创新点在哪里。如果你能把这一点表达清楚,这一步你就做的非常棒了。

第二:它能够解决哪些问题。这个问题是最重要的,很多人学完很多资料但是看到题目后还是没有什么思路,很可能就是因为这一点。多想、多练、多看、多做总结,经验是最好的老师。

 

第三:模型的具体操作步骤怎么实现?也就是操作层面上的问题,这个模型可以用什么软件实现?参数怎么调?有没有现成的代码?每一步的操作是否清楚?要做到什么程度呢——我们无需记忆模型具体的步骤但是要对它很熟悉,保证在需要用到这个模型时能很快把它融入到自己的题目中。融会贯通是很难的,这个过程里会遇到很多意想不到的、纸上谈兵时看不到的困难,具体的操作要受你的系统环境、软件版本、时间限制等各种方面的现实考验,没有什么捷径,只有平时多练,多做,才能临场时最快地找到解决的办法。

 

《数学建模算法与应用》的学习

 

 

 

 

 

 

《数学建模算法与应用》基本涵盖了常见的数学建模算法理论,是学习各类型算法不可多得的好教材,虽然里面部分内容和现在国、美赛题目的热门考点稍有脱节,但是也是学习数模算法的很好的入门教材了。

在学习《数学建模算法与应用》这本书时,因为它更偏向于算法层面,我的建议是先看完《数学模型》后再来读这本书。走到这一步说明你已经有了一定的基础,那么就按照自己的方法来看吧,没有固定的方法,适合自己的才是最有效率的。

我说下我自己阅读这本书时候的一些体会:一定要对每个算法的作用和领域有清晰的认知和判断。


例如规划,包括线性规划、目标规划、整数规划、非线性规划、动态规划等等。他们的应用范围不同但总是解决类型相同或者相似的问题的,是最常见的数模问题。

例如优化算法,能解决问题的特征是问题要求某些量达到最大或最小,比如销售量最大化,而且我们可以人为地控制某些变量,比如原材料的投入量。只要是存在可控制的量和要达到最优的目标,这就是一个优化问题。优化问题由很多现代优化算法,而且往往是和规划结合在一起,密不可分。


但是话说回来,学数学模型,其实看哪本书都可以,一本书只是一个线索。学到比较深入的地步时候一本书上的内容是不够用的,往往需要读者以此为引导去查找相关资料。

学习教材的阶段过去后,进入实战环节。一是看论文,二是模拟赛。


看论文,看往届优秀的获奖论文——国赛二等奖及以上,美赛O、F奖。(这里不推荐看美赛M奖论文是因为M奖中论文质量参差不齐,很大概率会遇到带有误导性质的文章,得不偿失)。

拿到论文,首先看对应的题目,时间充裕的话不妨自己先去拿着做着试试看,大概一天左右就会遇到瓶颈,发现这道题的难点在哪里,这时候再去看看别人的论文时如何解决这个问题的,就会有一种恍然大悟的感觉。

看论文一是看思路,而是看行文结构,例如图表如何做如何数据可视化,文章逻辑如何安排,问题结论如何表示,摘要如何书写等。

魔鬼藏在细节中,要努力使得论文尽善尽美,更好地表达自己的思想。

 

模拟赛——数模前最关键的环节

 

重要的事情说三遍,一定要做模拟赛,一定要做模拟赛,一定要做模拟赛。

我身边斩获数模大奖的,90%以上都做过一次以上的模拟赛。

尝试去做往年的真题,如果参加美赛就找美赛原题(英文版),如果参加国赛就找国赛真题。先不要看别人已经完成的,尝试自己解一下,然后参考一下他们的,看看他们是怎么从问题中抽出变量、做出假设、结合现实约束列出方程。

可以看一些经典问题建立模型的书籍,按照自己的思路求解一遍,这样不断做,接触各种类型的题,体会其中建立模型的思路。

具体做题的时候,可以根据问题本身的现实(物理)规律建模,也可以套用已有的经典模型,也可以在经典模型的基础上根据问题适当地改变其中某些变量的表达式,也可以对比两种算法建模对问题求解的效果等等。

 

编程部分

编程,也就是我们口中常说的编程码代码,由于我自身专业原因,不是专业写代码,但是也学习过不少的编程语言,如c、c++、python等。但是个人认为正常的编程和数学建模中的编程还是具有比较大的区别的。数模中的编程不同于做项目和ACM(国际大学生程序设计竞赛),对编程者的敲代码能力要求其实并不高。实际上,这里的编程更准确说是对软件的使用,包括对、MATLAB、Lingo 、Sps的使用,还有别的专业软件的使用。编程这一块并非一定是专业码农,软件学得比较快就可以。当然 Matlab 和 Lingo 都不是图形界面,需要命令行输入,有编程基础的同学对这一块儿学起来可能会更加容易上手。此外我认为,会算法要比会编程更重要(一般而言算法学得好的编程不会很差)。司守奎的《数学建模算法与应用》中算法和代码讲的都很好。

 

 

 

 

三大软件


 

Matlab、lingo、Spss是三款必备的软件,matlab是很多工科学生的必修课,常用来解决复杂的科学计算,lingo是用来求解(非)线性规划和目标规划非常有用的软件,Spss可以用来解决数据标准化,数据处理等问题。


此外还有一个小技巧——工具箱是个好东西。比如如果想用遗传算法计算优化模型结果,可以直接使用遗传算法工具箱,而并不需要为了凸显编程能力自己动手,除非对算法设计有自己得独到之处(很多并不要求提供代码附件)。当然可能在某些地方需要编程,比如用Matlab 做个元胞,写个优化算法。但是这部分的编程也都是建立在对已有工具的使用上,而非从底层码起。总而言之,数模比赛对编程要求能力并不高,能够做到对程序的模仿运用便已足够。

 

有几点个人学习数模编程的经验总结:

1、自己的程序文件要整理好,方便查找和修改:

编程过程中经常会出现对程序的修改和测试:有时是因为程序本身存在问题,有时是因为建模方法改变,有时是因为对模型进行了进一步改进,有时是因为要处理的数据发生变化……因此会产生一些不同版本的程序代码。文件的命名用英文和数字,而且最好形成一种统一的格式,能够“顾名思义”,方便了解是什么时候、哪次建模过程中使用的何种模型以及同一模型的哪个版本。

2、代码要整齐易读,写好注释:

除了方便自己读和修改,也方便队友对程序进行了解。需要注释的地方如:开头可以写一下程序的作用、所需数据格式、程序仍存在的问题等;重要的变量假设、Flag、累积量;每个模块的作用;关键的步骤和函数;常常要进行修改调整的语句……变量假设、函数名称也要易于识别。

3、利用好程序资源,在已有的程序上进行修改可以提高效率:

常用算法的源程序是很好找的,从代码网站、博客或者算法书上总能找到相关的编程案例,自己以前编写的程序也能拿来用而且用起来更顺手,所以不用执着于一定要自己从头到尾地编代码。平时多看一些案例,看到好的代码就收藏起来,分类保存好。
4、函数和工具箱的使用:

软件中常内置有功能丰富的函数和工具箱。有时我们会发现软件中意想不到地刚好存在能实现所需功能的函数,因此编程前可以先在网上搜一搜有没有这样的函数,没有的话再自己写,写好以后也能存起来以后用。工具箱的使用要看情况。有的算法不用工具箱实现比较好,用自己写的代码更灵活和利于修改,而且对于算法的原理也更清楚;依赖工具箱而对算法的解释不清楚的话可能会让论文失色,而且工具箱可能不利于大量数据的反复运算;有时候用工具箱可能更好,主要是对一些算法原理比较简单的运算过程可以减少编程、提高效率,而且有时候用工具箱求解出的数据格式或图表样式也比自己编程做出来的更整齐好看、看起来更专业。

5、积累程序调试的技巧:

对于自己的程序自己要做到完全把握,清楚来龙去脉,出现问题时快速找出问题所在。以MATLAB为例,利用好Workspace和Debug,对于代码节点和每个变量的数值变化能清楚了解。程序运行出岔子常常是因为以下一些原因:数据读取格式不对;变量行列数不匹配;循环出错,在“有些命令放在循环内还是外?”“从什么地方开始循环?”“什么时候停止循环?”“行列式循环时数据怎么对应?”这样的地方出问题;调用函数时变量格式不对;运算式写错,如括号丢失;画图时数据读取出错,如xy搞反。

6、通过编程制作好看的图表:

用excel能做一些图表。编程实现虽然麻烦一点,但能做出很多excel不能做的图。有时候在编程做图的过程中也会为了使图表更好看而不断调试。要熟练掌握一些通过编程画图的常用函数,包括二维图、三维图。除了折线图、直方图、拟合曲线图等一些常用数据统计图以外,还有聚类分析图、树状图、有限元分析图等一些和具体算法相关的图。把代码积累起来,方便展示数据时使用。推荐几款绘图软件:R、亿图(网站)、Eviews等。

总的来说,编程不是很麻烦的事情,主要就是要熟悉:基本语句,数据格式、调用和输出,基本运算符号,基本函数,软件常用视窗和命令。在此基础上能不断研究和积累新函数、新算法。关键还是要建好模型,在假设好变量和确定好要用的公式或算法后,编程就是用代码语言把它重述的过程,是自然而然的后续工作,是建模和论文的中间过渡且与两方都有重叠。

写作

论文写作是比赛获奖至关重要的一步,建模和编程都需要论文来表达,能不能把内容思想结论准确的传达给评委就是写作的同学需要做的事情。

写作中要注重两点。一是要保证论文整体的逻辑性很强,保持前后贯通:论文的各部分的应当是顺接或相互照应的关系,而不是毫无关联的独立部分。国赛题目会有几个小问引导论文展开,而美赛则是一个大问题整体,要做到论文脉络清晰,就要对题目做合理的拆解。二是令人信服,模型结果可以不理想,但是呈现于论文上的一定是有理有据、能够自圆其说的建模过程与模型结果。除了写作的这两点外,论文的排版与插图也很重要,这两个是论文中最直观的。排版大多数推崇用latex,但是latex的弊端就是论文只有一个人可以进行排版,队友只能围观,而word可以队友一起做。至于是不是latex得奖率更高,wps一样拿奖。(更推荐三个人都用office同一版进行写作排版,并且公式采用mathtype)

写论文一定要要深入理解模型。不要因为自己负责写论文就把建模和求解的任务全交给队友来做,造成写论文者初期很闲、后期赶时间的情况。要尽可能地解放发展生产力,团队中的每个成员都要有大局观。

关于写作,推荐比较好的准备方式是多阅读优秀论文,学习别人的行文结构,然后写作的同学一定要记得多学点图表制作方面的内容,非常重要。


如何更有把握获得国/美赛一等奖,这两者之间还是有所差距的。给出下面这六条比较长的建议:

 

搞清楚美赛国赛考察重点

    在上篇数模相关推送中,曾经提到过美赛和国赛的评审机制,这里不再赘述了。仅从评审角度看,国赛由中国评委(一般是数学院出身教授)评审,美赛高等级奖项由外国评委(部分是来源于某公司)评审,因此即便对于同一问题,两者侧重点也是完全不同的。国赛更侧重于一种规范性以及标准性,一方面指的是书面排版及语言文字问题,国赛对于论文的章节结构包括字体字号等都有着严格的要求,必须统一规范,而美赛相对来说宽松很多,以美观清晰为首要目标,甚至字体都可以放缩1-2号;另外一方面体现在结果方面,国赛要求提供完整版的程序,甚至有些题目具有标准答案(比如2015年A题太阳影长问题,问准确经纬度以及时间,我相信比赛官方是有标准答案的,因为题目是根据实验结果推测实验条件,结果越接近实际情况得分越高,即便方法有一定缺陷;假设方法很好很创新但是答案离标准太远可能也不会有很高的奖项),在美赛中最看重的是思路而非结果,比如马航370残骸搜索问题,压根没有答案——官方追求的是解决问题的创新思路,只要合理,哪怕你解不出准确结果都可以(但是尽量还是要有结果做一个完满的回答),有很多队伍都没有回答完所有的问题但依旧获得了M奖,就是因为前面的几问做的很精彩,这在国赛中是不可想象的(但O奖一定要回答完所有问题)。

    知道这些有什么用呢——见人说人话。国赛论文务必追求结构的完整性以及语句的逻辑性,各种图表要有很强的学术范(可以多看看论文中图表样式,避免使用EXCEL直接做很low的图),多采用数据说话,多做数据分析和结果分析,想办法证明结果的正确性和准确性。美赛论文要追求整体的美观性及高大上的排版,很多图最好有PS做标记修正(这点在后面重点说),由于语言是英文,那么要主要关键图表附近的翻译一定不要有语法错误,很伤,论文中要多解释下自己的思路,用各种流程图或者示意图来展示。在做题过程中,国赛题目多追求程序上的完善,多做算法上的优化使得结果精确,美赛多追求思路上的优化,多提出一些小方案而得到结果。

花大量时间和精力写好摘要

    一般无论是国赛还是美赛,一篇论文的平均阅卷时间都只有20分钟左右,其中12分钟左右看摘要,8分钟左右看论文其余部分(认识几个阅卷老师,他们都是以这样方式阅卷的)。看摘要主要目的在于了解整篇文章的思路、创新点、结果,看论文其余部分主要是挑选在读摘要过程中感觉比较新的、有特色点点,顺便浏览其他部分做的怎么样,这有点类似读高考作文,先看标题以及看透结果,用少量时间浏览中间内容。私认为摘要占比重可达40%以上,每次比赛期间哪怕问题还没有解决完,我都会预留出至少1天时间开始写摘要,例如国赛早上8:00交卷,我最晚前一天上午就会开始写摘要,花5小时左右写出来然后再不断打磨修改,需要12小时左右才能把摘要完整写完,之所以在上午开始写是因为刚睡醒精力旺,如果放在晚上再写累了一天可能精力就会跟不上了,用最宝贵的时间做做含金量的事,美赛的摘要习惯先列好提纲然后直接用英文来写作,因为中文和英文表达方式还是有很大区别的,写好中文再翻译会浪费很多时间。另外注意摘要千万不要超过一页,不要短也不太长,写完以后让队友多读几遍看看是否能通过摘要大致想象到论文内容。

做合适的图表对论文非常加分

    图表一直以来都是数模论文中非常重要的部分——图表可以将思路可视化、数据可视化,尤其是对于美赛论文而言,有一部分阅卷工作是在国内完成的,在短时间内评审无法准确地翻译论文每一段话,而图表是一个让人很容易读懂的点,一篇优秀的论文如果光看其图表以及附近的解释性文字,能够基本明白整个研究思路及研究结果,如果没有这样的效果的话论文让人读起来是很不舒服的(这一点看过比较多文献的人应该有所体会)。在短时间内,相同的内容用图和表的形式相比纯文字更容易让人接受。

    在数模中图表大致分为三类:流程图、示意图、结果图。流程图一般主要体现的是做题的思路;示意图用来表达一些抽象的概念,比如汽车超车时超车方案示意图、机场排队论研究时机场布局示意图;结果图多为数据分析结果。

    高大上的图表能够极大程度上提高论文的“逼格”,比如下面这样的图,制作起来很简单,但是看起来就会比较高端。

  如何做一些逼格高的图表,如果需求的人数多的话后面可以专门写一期作介绍,内容太多这里就不赘述啦。

    如果说摘要占比40%的话,图表占比大概能到20%,也是相当重要的。个人建议一些重要的图表要在摘要中有所体现。


王小五

刚参加完建模比赛,身心俱疲,再也不要建模了。我选的B题,其实我两题都不会。马马虎虎凑了点东西交了上去,其实自己都知道数据,分析,模型都不正确,并且感觉这种题目明明人家要花很久的时间才能统计出来再研究证实,我只有三天,做出来的东西自己都没法骗自己。我很想了解真正会建模的人到底是什么样的?

喵教授

其实说实话看到这个问题时候我十分能够理解题主的感受,我自己曾经获得过国/美赛一等奖,也曾给学生做过很长一段时间系统培训,最终达到75%的美赛一等奖获奖率(共四支队伍,三支M奖),在外界看来是一个相当不错的成绩了,但是很可惜,我并不是真正会数学建模的人,至少目前是这样的。在我理解中,会拿奖绝不等于真正会建模。

  虽然数学建模竞赛涉及的知识面挺广,但深度实在有限。以至于很多时候凑几个自己都似懂非懂的模型,组合一下写成一篇论文,再用一些小技巧包装一下,差不多就能拿到一个不错的奖,并且在这个过程中,你确实接触到了新的数学模型,但是对它的理解太浅;也确实写了一些程序,但是可能更多时候是在调用工具箱和已有的函数,自己写的也就是一些简单的逻辑或者画图的程序。


私以为,数学建模的核心应该是建立模型和求解模型;但是数模竞赛里面似乎包装比这两者更重要,一个牛逼的数模论文写手能把一些很简单很low的东西扯得非常高大上,看起来逼格很高,以至于竞赛成绩胜过那些真正有干货但论文写得不是很好的选手。(上述原话部分摘取自知乎,觉得说出个人观点便将其修改引用)。能拿到奖仅仅能证明入了建模的门,并且会使用一些技巧将模型表达出来。我目前已经能做到对竞赛要求、比赛论文书写等种种技巧把握的比较不错的地步,这也就是为什么我不继续参加数模竞赛的原因了,面临一个真正的实际难题,不是三、四天时间能完成的工作,我现在更愿意把时间花费在如何将问题能够实实际际的解决上,从根本上解决问题,希望十年后的自己能够真正成长为一个会数学建模的人。

 

畅谈

真正会建模的人能在数学建模竞赛中拿到好成绩,也能真正地解决问题,不管是算法问题还是工程问题;有着良好的数学基础与建模思维,也有强大的编程能力;能把科研工作做的很好,至少对工程各个方面都有着比较深刻的理解;阅读过大量文献,懂得遇到问题后常规的解决问题的手段。


 

一定选择合适的队友一起组队

    虽然说这点可能已经比较晚了(参加国赛的同学应该已经都组好了队伍),但是还是要作为一个重点来说的,经常有人听我说完这方面经验以后有换队友的冲动,希望他们的队友不要打死我。

    根据以往绝大多数时候的经验,能够获奖的队伍往往有两种,一是队内有超强大腿,能以一人之力扛起大局力挽狂澜,带走队友一起走,队友只需要大腿指哪里,自己打哪里即可,没事干时候点个外卖端端茶送送水揉揉肩,三天下来利利的就能把一篇论文写完(尽管队友都不知道自己写了点什么,但依旧能拿到不错的奖),只不过这种情况极其稀少,一般活在梦里才能遇到这样的队友,可遇不可求;第二种就是三个队友配合的很默契,编程、建模、写作三方面各有所长,又能有所配合,尽管单兵作战能力相对较差,但是往往能发挥出1+1+1远大于3的效果,也就说所谓的团队精神发挥的很好的队伍,这样的队伍往往成绩都不会太差。

    

在与队友做配合时要注意以下几点:

    

1、与队友性格上要互补

    三个人最好是能在性格上有所互补,有主意有想法的人配合着能实干有能力的参赛是最好不过了。假如三个人都比较犟,一旦出手短时间内都拉不回来,我曾听说过一件事儿,一对情侣拉着自己玩的最好的朋友去一起参赛,想着可以通过比赛进一步加深感情,结果没想到遇到需要讨论的问题时,三个人都比较有想法都想用自己的想法去实践一下,结果三个人因为思路问题愈吵愈烈,最后决定各自写各自的,结果当然是都没做完,拼凑了一篇论文随便提交了上去。但三个人性格都比较温和也不太好,没办法有思想上的碰撞,有很多很不错的想法其实都是在争吵的过程中才能诞生的。

   

2、与队友能力上要互补

    传统的建模、编程、写作的分工还是有其合理性存在的,至少三个人不会在比赛期间分不清主次分工,但是也千万不要说建模完全一个人来建,写作完全一个人来写,会很影响整体进度以及团队氛围,很可能会造成第一天建模的人累死累活,其他俩人边休息边催促,模型还不一定能建立出来,第二天编程的人头很大,旁边两人只能眼巴巴看着,第三天就要到写作的人崩溃了,要只是这样还好,起码能把论文写的完整,关键就是在于很有可能编程的人不知道模型是怎么回事儿,写作的人不知道模型和编程是怎么回事儿,结果连论文都写不出来。那比较理想的状态是什么样的呢——三个人对于三方面都很了解,又有所专长,在比赛开始后能够一起进行讨论把思想和解题步骤大概确定下来,然后再开始分工,建模的同学继续完善修正模型,看是否能找到创新点;编程的同学尝试开始编程工作,参数暂时先不管先把程序跑出来,或者是帮忙搜索数据;写作的同学可以帮忙一起看文献或者开始问题重述、问题分析等部分的写作,这样就能更有效地利用时间了。

  

3、主动去配合队友

    一定要记住建模比赛是三个人的比赛,不要把担子撂在某一个或者两个同学身上,主动去承担一些责任,比如主动组织队伍模拟,上网搜集一些资料,为队友制定一些队内学习计划,分享自己学习心得,组织大家团队建设活动(吃吃饭看看电影之类,调节团队氛围)。但是也切记不要在比赛期间做一些出格的事情,比如自己看文献看的很累,想放松一会看个电影电视剧,这种事儿千万不要做,很有可能吸引队友一起来看剧,看完一集又一集,三天时间很快就过去了,如果你有什么坚持很久的习惯,比如夜跑、每天背半个小时单词这种雷打不动的事情,在比赛期间为了队友着想稍微放一放,比赛过后再坚持(身边有活生生的例子,半夜大家讨论的都很焦躁,结果某个队友坚持看一个小时文学类小说说是坚持了好多年改不掉,然后直接导致另外两个队友非常生气弃赛回家)

 

第一天做的事决定了能走多远  

    经历过一些实战比赛的同学应该比较清楚,三天的时间是很紧张的,一天比一天工作量大,基本第一天是在了解题目背景确定解题思路完成第一问,第一天晚上开始就是在通往第二问的路上了(放题时间为早上8点时,但今年比赛放题时间有所更改,改至周四晚上8点放题)

为什么说第一天做的事决定了能走多远呢?很重要的一个原因是参考文献与数据。第一天大家都刚拿到题目,所做的第一件事儿便是通过讨论把题目确定下来,之后便开始查阅与题目相关的参考文献并搜集相关数据了。一场数模比赛仅仅有短暂的3天时间,面对一个从未接触过的领域的问题,最快的切入方式便是上网去阅读前人文献,看看别人对这个问题是如何看待如何解决的,是否能学到一些相关的方法或者模型,然后在此基础上结合题目的问题作出一些改变或者优化,就可以算是创新点了。如果是想在三天时间内不参考前人做法只凭自己的想法是很难对一个问题进行深入了解并解决问题的,即便可以解决,但回头会发现我们做的东西可能非常基础,根本就不能算作模型。因此,切记一定要站在巨人的肩膀上做论文,如果能在三天时间内把解决一同问题但侧重点不同2-3篇论文读懂,将之运用到自己的论文中,就算的上是一种创新了。

    道理大家其实都懂,但是论文却不是那么好看的,有很多人看完论文后觉得论文中讲的自己用不到,就赶紧去翻阅下一篇论文,看过十几篇以后发现没有一篇能和自己的题目有所契合,然后就赶紧换题了。出题老师不是傻瓜不可能出一道能找的到完全契合的论文的题目,往往是在基础的问题上加以变形或者加深难度,相关的参考文献我们并不是用不到,而且要用里面一些关键性的公式或者思维,然后再结合自己题目特点加入自己题目的独有的公式或者部分模型,将两者结合之后再对答案进行求解,一定要清楚的认识到这一点。

    除此之外一定要珍惜第一天的时间,第一天大部分人都会觉得比较放松,在心态上会比较松懈,会做很多与比赛无关的事情,比如睡个午觉晚上一起出去吃个串再喝点小酒,美其名曰调整节奏,结果到了第三天发现做不完论文,敲论文敲到手抖,最后排版乱七八糟,亦或者是觉得第一问考虑的太过简单,反复停留在第一问做完善,其实完全没必要,首先把论文抓紧时间写完模型都解完,有空余时间再返回头去对每一问做检验和优化。国赛每一问都必须要做完,这一点和美赛是有比较大的区别的。

做合适的图表对论文非常加分

    

这里引用毕导一篇文章里的内容,个人觉得描述的非常到位

   

 

 

 

 

 

虽然说在数模中图表的做法没有上面说的这么夸张,但也差不多。图表是除去摘要以外的核心内容,做图表有三个地方要注意:

1.图表一定要最简洁直观的表达出想表达的含义

2.图表上一定要有图例、横纵轴、单位、图表名称

3.图表上下要有文字说明,图表上方文字说明图表是根据什么原理、利用什么数据绘制而成,下方文字说明图表的结果、含义。

 


点击咨询
与我一起聊聊你的留学梦想吧

京ICP备05067667号
电脑版
返回顶部
获取定位

距离您当前最近的分公司:
新东方前途出国-上海

手动选择

切换城市
  • 北京
  • 上海
  • 南京
  • 武汉
  • 西安
  • 郑州
  • 深圳
  • 广州
  • 长沙
  • 重庆
  • 合肥
  • 成都
  • 杭州
  • 昆明
  • 济南
  • 天津
  • 青岛
  • 苏州
  • 厦门
  • 福州
  • 石家庄
  • 沈阳
  • 大连
  • 南昌
  • 长春
  • 乌鲁木齐
  • 兰州
  • 太原
  • 宁波
  • 哈尔滨
  • 无锡
  • 唐山
  • 洛阳
  • 贵阳
  • 南宁
  • 常州
  • 呼和浩特
  • 宜昌
  • 温州
  • 徐州