美赛经验漫谈

赵令霄·西安交通大学
2015-07-29
阅读数3866

美赛有幸获得了O奖,数模论坛希望我能够分享经验,也就正好写个总结,算是为这一年来的建模之路画个句号。

First:建模组队:

对于大一的学弟学妹们,目前最关心的可能不是如何去获得国赛的高奖或者美赛的高奖,而是如何去组一个好的队伍。还记得大一的时候我也参加了校内赛选拔,当时没当回事,知道比赛时间的时候也就还有4、5天的样子,许多学院的大神们都抱了团,加之当时第一次考试成绩不咋地,于是乎就成了光杆司令,不过最后多亏了班里的两人从了我才使得我能够参加校内赛。但是结果惨不忍睹——毛线奖都木有,也就彻底伤了我脆弱的心灵~第二年国赛跟了老缪他们,替补了好基友的位置,却仅仅相差一名与国奖失之交臂。美赛则是因为英语问题,我们三个人迫不得已要拆开,于是乎离开了原来的队伍,和去年得了M奖的高老师合作,另外我们两个队伍又拉到了两个英语好人又漂亮的妹纸。最巧的是,最后我们两支队伍都获得了O奖。

其实第一次建模,又加上我们才刚刚入学半年多一点,每个人都不知道如何去“建”这么一个东西,当然也有可能有些大神早就有所准备。所以嘛,这个时候组队并不是多么注意成绩,而是要更多的注意队员有没有毅力和兴趣。不过数学建模是个合作性的比赛,那就要求每个队员都要有分工:写作、编程和建模。当然这不是绝对的,在后面的比赛中,建模和编程两个人常常是根据每次赛题有所调换,有时候每个队员也会负责自己创作部分的写作。

因此其实每个人最后所有的工作都能够处理。当然每个人能力是有限的,因此在学习过程中有必要分配好三部分的主要负责人员。

下面简要说一下各个部分的任务。

写作:无论对于国赛还是美赛,都是重中之重,一篇获奖的文章,必定要有着流畅的表述和清晰的逻辑。写作主要有两大任务:一是内容写作;二是排版。有时候由于写作人员不负责建模,无法对模型特别了解,因此内容部分的写作也常常是由负责建模的队友大体完成,然后由写作人员完善修正,以达到逻辑清晰的目的。那么是不是负责写作的人就只用排排版呢?听起来如此轻松。其实不然。首先说一下排版,无论是用word还是latex,都要求队友具有良好的排版技巧和办公软件强大的功底。.除了排版,文献的查找、阅读、处理图像等等很多的事情也常常由写作的人完成。而对于美赛,负责写作的人又有两种分别,一种是负责翻译和排版,主要是负责将队友的中文写作翻译至英文,并负责文章各个必要结构出的写作,当然如果他能够参与建模负责一部分论文的直接写作再好不过。另一种是能够对模型有很好的了解,参与到建模过程中与其他队友商议完成论文的主要写作,这种队友能力较强,需要对整体有较好的把握,一般比较少见。

编程:好吧,回顾几次比赛,负责编程的次数也不少了,大概说一下编程感言。编程软件方面常用的C/C++, MATLAB, Lingo等。具体的选择要看题目,如果题目中要求比较多,程序比较复杂特别是数据结构较复杂,采用C++编程最好不过,如一些处理大数据的题目。如果数学性较强,且编程不是很复杂,最好用MATLAB编程,MATLAB等专用数学工具的强大之处是其自身就具有某些常用数学模型的求解命令,方便快捷。除了这些需要写代码的,一些统计学数值处理工具如SPSS等也需要熟练掌握。每个善于编程的人都有一个宁死不屈的心——不到长城非好汉,所以细心、坚持就是胜利。数学建模常用的一些编程算法有很多,对于一些前人花了很长时间研究出的经典算法,我们不可能在比赛那么短的期间独立完成,因此赛前针对数学建模的常见几类问题,阅读和研究部分算法是很有必要的。百度上能够搜到数学建模常用的30个算法,感觉总结还是挺不错的,如果觉得内容还是太多的话,可在不同的章节里重点挑上一分部详看,其余的部分则要知道算法的大体思路和功能,做到在比赛中遇到该方面的题目时能够迅速找到已有算法并学习改进。

建模:一般情况下,建模和编程的人是紧密联系的,这要求两个人都有一定的编程和模型积累,在比赛的过程中能够不断探讨,通过思维的碰撞产生灵感的火花。在数学建模的初期,大家都不怎么懂得如何去做一个比赛的时候,或许建模这部分相对是最难的。的确,任何的学习都需要模仿和积累,建模的过程就像搭积木的过程,如果手边没有足够的积木储备,自然也搭不出高高的楼房。因此初期大家必然需要常常看一些建模的书籍,模型有很多,要求大家在短时间内全部掌握也是不现实的,当然也是不必要的。我们要做的,是能够大体掌握常用模型的框架和思路,如果你同时参考多本建模书籍,不妨做个笔记,大体记录下所学模型对应的思路和位置,能够在用到的时候迅速定位学习。知识学过必定会忘,而我们训练的是快速学习能力,如何能够在最短的时间内掌握有用的内容,才是最重要的。不过这并不意味这你可以不看,到比赛的时候现场去学,有些模型比较复杂,要求我们必须有所研究才能快速应用,因此对各个常用模型有一个框架性的学习是很有必要的。在后期的时候,随着我们建模能力的提升,面对问题常常首先考虑的是如何自己建出一个创新性的模型,当你有这种感觉的时候,才意味着你的建模能力已经合格。那么如何针对不同的问题建立自己所创新的模型呢?有些问题就像科学研究,当对这个问题能够分析其物理过程或者形成原因和发展变化过程时,我们就能够将一个复杂的问题简化,分解成一步步的阶段性处理,当然这也要求你的积累足够,思维快速,在搭建一个新的房子的过程中,我们常常还是会引入一些已有的模型,或者从已积累学习的模型中找到灵感。

队长:队长这个位置,有时候对一个队伍是相当重要的。数学建模是一个团队性的合作比赛,那么必然要有一个team leader,不然当一个队伍的所有队员不能一起朝同一个方向前进时,那么这个队伍就必然不能取得成功。一个队长应当有足够的责任心和综合建模能力,没有足够的优点如何让其他队员信服?所以常常队长也是在备战过程中付出和努力最多的。另外,一个队长需要果断,但同样需要倾听,果断是面对犹豫不决的问题时,能够迅速选择一个最正确的方向,引导整个队伍前进。倾听是指当整个队伍讨论和学习的过程中,能够给予队员足够的空间去发散思维,去提出自己的想法,并在大多数情况下采纳各个队员的思维,让整个队伍保持足够的积极贡献度。一个再NB的队长,如果不能虚心听从他人的建议和想法,也没有资格去担任这个队长。

Second:训练

任何建模的学习,都不如实战训练的效果明显。首先对于一个刚刚建成的队伍,必须在实战训练的过程中才能够磨合确定分工,明白自己在队伍中的职责。大概经过2~3次的实战训练,这个队伍就会有个自己的队伍风格,清楚的明白每次遇到一个问题应当如何去下手处理。另一方面,单纯的学习模型是枯燥无味的,在训练的过程中,面对不会的模型需要迅速学习,这时候也是学习模型效率最高的时候,通常每次实战训练的过程中都能够掌握2~3个新的模型。最后,训练有一个最重要的作用,就是能够快速提高我们的快速学习能力和思维能力,这在比赛的过程中能够是至关重要的。因此面对学校中组织的每一次实战训练,我们都必须尽最大的努力去完成去。不过对于那些学校本身就没有组织的,比如南京大学,就需要各个队长起作用,带领整个队伍不断训练。

Last: 美赛过程回忆及感悟

美赛过去有近半年了,不过当时的情形依然历历在目。比赛开始的那一天面对四道赛题,我们花了一上午去通读和讨论所有的赛题,最终选择了题目最长的ICM C题。这就告诉大家不论题目多长(大概有8页吧我记得),都要耐心的读完,然后才能决定哪道题目最适合你们队伍。ICM出题有一个特点,几乎每年的题目都有和图论和网络相关的,因此在赛前我们也在这方面做了一定的准备,自然就选择了这道关于人力资源网络的题目。大概第一天下午是最痛苦的时候,因为题目比较难,刚刚看到这个题目,还是没有任何想法的。三个人去查需要的文献,看了一大堆英文都没有太多思路,心里也有点打退堂鼓了,因为当时的比赛AB两题比较简单,有一道题基本上以前也有研究过,就打算如果实在讨论不出来就换题目。好在高老师的坚持,我们最终下定决心不死不休。整个下午都在不断的看文献分析问题,当天下午9点钟的时候还是没有确定下模型的主要方向,于是负责作文的小易开始对论文的整体架构撰写。幸运的是当天晚上大概11点钟的时候,高老师跟我到了思维的爆发期,当意识到大部分文献然而并未有什么卵用的时候,我们开始独立分析整个问题的过程,一步步简化处理,大概用了3个小时确定了第一道题的大体思路,就带着问题睡觉了。第二天应该是主要的建模和编程时间,整个问题的解决更偏向于算法设计,确定用MATLAB编程后,我便在脑海中有了一个哪些过程可以编程实现哪些还不能实现的大体思路,于是乎从头到尾开始于高老师讨论,形成算法的流程图,针对不能直接编程实现的部分给出适当假设简化处理,拆分成一个个可以实现的步骤等等,大概下午6点钟,我们将整个问题全部转化成了可以编程解决的问题。然后接下来就是我去编程高老师去写中文,好在当天思路很清楚,大概凌晨2、3点钟,我前前后后整个程序300行左右的代码也成型了。当然作为一个程序员知道这时不能高兴的太早,最恶心的调试部分来了…咳咳,不过幸运的是,编译运行一遍成功,没有任何bug。这样整个程序的初版便在第二天结束的时候大体搞定。第三天大概是我比较蛋疼的时候,高老师不断的写中文加画图,有时我也帮帮忙,但是由于还有第二问没做,我便把所有的精力都投入了第二问上。然而第二问很难,比较理论化,题目给出的一个英文文献大概有60多页,英文不怎么样的我花了相当长的时间去研究这篇文献,但是思路还是不很清晰,高老师建议我先回去修改完善第一问,于是整个队伍的第一个矛盾出现了,我还是打算坚持搞搞第二问。晚上12点钟,第二问写了有1面多的英文,思维还是不清晰,决定听高老师的,先放放第二问,回去完善完第一问。就这样第三天过去了,负责英文写作的小易也开始越来越苦逼,大量的中文需要被翻译。最后一天节奏还是相当紧凑的,上午11点之前完善完第一问,我继续写第二问论文,高老师大概在下午3点完成了整个第一问的写作,开始搞各个其他部分,模型检验,分析评价,等等一系列的必要东西。第二问的写作大概在晚上10点钟搞得差不多了。这时候由于长时间高强度工作,我的头痛开始肆虐,没办法去休息了2个小时…这意味着其他队员的工作也加重了。大概凌晨4点钟,整个论文完成,我们开始集体修改查错,主要是针对英文的表达和拼写,然后一直到早晨7点钟…整个比赛结束了。

现在回想起还觉得那段时间简直惨不忍睹…如此高强度的作业相信没有太多人有过这般体会。美赛比国赛多了一天,也就意味着整个强度上升了一天的时间,最后一天真的是最难熬的一天,也希望广大美赛参赛者有所心里准备。在比赛过程中保持一个良好的心态是很必要的,整个队伍比赛时常常出去转转,半个小时的时间就能调节整个队伍的氛围。

美赛结束了,收获最大的不是那个O奖,而是整个队伍的友情,整个奋斗过程,人生总有那么些情况需要我们超越极限的拼搏,美赛给我们一个平台,让我们每个人知道自己有多强大。珍藏这份心态,收获这份努力,有一天会发现,它是我们成长的过程中的一块块基石,让我们走的更远,更高。

 


本文由 赵令霄 授权 赛氪网 发表,并经赛氪网编辑。转载此文章须经作者同意,并请附上出处(赛氪网)及本页链接。原文链接https://www.saikr.com/a/1973
收藏
分享
别默默的看了,快来和大家聊聊吧,登录后发表评论~ 登录 立即注册
打赏
赵令霄
打赏金额(金额:¥0)
给Ta留言
赏金已入袋,多谢!(*^__^*)
赛氪APP全新升级 反馈 下载
关注 微信公众号 关注赛氪订阅号 微信服务号 关注赛氪服务号
购物车
顶部
温馨提示

非常抱歉!本站不支持旧版本IE浏览器~~建议使用IE10/IE11/Chrome/Firefox/Safari等高级浏览器浏览。

温馨提示
温馨提示
帮助与反馈

热门问题