如何准备数学建模竞赛

  • 数模国赛国一
崔江枫·中国石油大学(华东)
2015-12-11
阅读数1856

说明:原文链接https://www.zhihu.com/question/23931891/answer/60354266?from=profile_answer_card,更为详细且不断更新。

 

前言

首先介绍一下我的竞赛经历吧,一共4次:美赛二等奖(很水);2013年入选“深圳杯”(还不错);国赛国家一等奖(最拿得出手的);2014年未入选“深圳杯”(比较意外)。希望我的解答能给大家另外的一些启发。当初我开始搞数学建模竞赛的时候,没有人带我,自己一路摸索过来。希望我的经验能够帮助到真心想在竞赛中取得优异成绩的同学们。

 

 

如何准备

(1)学习数学模型。数学建模,顾名思义,建立数学模型,需要了解一下常用的数学模型;对于国赛,最常用的,莫过于概率论与数理统计了。有人做过统计,国赛有一半的题目需要用到这方面的知识。在准备的过程中,会发现知识的范围非常宽广,如何去有效地备赛呢?我的做法是,对于所有的模型,都有所了解。了解每个模型的适用范围,大致的思想方法以及实现步骤,做到比赛的时候能够迅速地知道能用什么模型来做,以及大概需要多少时间来搞定,就足够了。如果你不提前了解都有什么数学模型的话,很容易走入死胡同难以自拔却不自知。推荐书籍:《数学建模算法与应用》,这本书的作者,领导队伍拿过2还是3次高教社杯,编著的书籍也应该非常有参考价值。

 

(2)阅读国一论文。竞赛结果的唯一体现形式是论文,所以也有必要多看一下往年的优秀竞赛论文(国一论文)。学习他们的行文语言、论文格式、一些习惯。以及如何从实际问题,进行简化假设,一步步导出最终的数学模型。我认为,这才是最精华的部分。数学中国,也就是www.madio.net, 有CUMCM的板块,里面的一些帖子共享了往年的一些优秀论文。说到格式,挺多的人可能不以为然。实际上未获得国奖的所有论文,都是几分钟内定的成绩。而且,根据某年的评分标准,论文概貌是筛选论文的第一关。如果第一关都过不了,内容再好,连省三都拿不上。好的格式,给人一种赏心悦目的感觉。说到行文语言,我听老师说,有很多人最后结果算的很准,但是没拿大奖,这是为什么呢?因为论文内容混乱,条理不清晰,语言不严谨,等等。说到习惯,比如对论文涉及的理论的大致步骤和基本原理进行简要的介绍,如果阅卷人对于你使用但是很少有人使用的理论不熟悉的话,可能会影响他对于你的论文的评价。我参加国赛那年的答辩的时候,一个评委就问,我使用了“秩和检验“(我直接使用它,没有对它进行介绍),它的使用条件是怎样的?推荐书籍:《数学建模竞赛优秀论文精选与点评》,西北工业大学出版社的,里面不仅有该学校的国赛的优秀论文(国一为主),也有美赛的一些论文,具有比较大的参考价值。《全国大学生数学建模竞赛优秀论文汇编》,这本书可以说是非常有价值和权威性,里面有国赛2000年及以前的,来自全国各地的优秀论文,以及全国组委会阅卷专家的试题剖析和阅卷感受。这本书的内容、高度、权威,是绝大多数数学建模竞赛类的辅导书籍所不能匹及的。唯一的缺憾是,里面的题目是早年的,比较简单,近年的竞赛内容没有出书。当然,网上也有相应的电子书,实体书一般途径也是买不到了,我通过孔夫子旧书网购买了一本。对于数学建模竞赛的老手,我感觉该书也有比较大的收藏价值(我就是这么想的)。

 

(3)精心挑选队员。根据我的多次竞赛经验(不仅限于数学建模竞赛),团队合作对于最终的成绩也是有很大影响的。一方面,是性格上能合得来,否则比赛过程中会有很多矛盾的;另一方面,最好专业互补,如果竞赛遇到的问题,恰好某个同学非常熟悉,那么可以大大缩短熟悉题目的时间,有助于取得更好的成绩。其实,最重要的问题是,他真的想参加这个比赛并为之付出么?我见过因为需要掏钱而不想参赛的同学,见过号称要付出所有课余时间却因为是班干部并没有付出多少时间的同学,见过欺骗我说已经看了很多的同学,见过比赛期间一直忙着和老婆聊天的同学,见过比赛前说不参加了的同学,见过为了进队说的非常好但是参赛过程中没有任何付出老是借口有事的同学,见过进来以后专门挑拨关系的同学……另外,如果能够整个队在比赛前找一个题目,模拟竞赛几天做一下,应该会收获很大,在时间的安排,以及队员之间的配合上。如果想要更仔细地挑选队员的话:最好成绩中等偏上,因为他们关心学习,学习能力较强,但是又不过分拘泥于课内学习;最好选择有参赛经验并获得一定奖项的,轻车熟路;最好选择上过数学建模相关课程的,对数学建模有个大概的了解;最好有充足的课余时间,因为需要准备的东西有很多;最好选择性别一致而且单身的,否则行动非常不便,当然不纯为着竞赛出成绩的话另说;选择有ACM竞赛经历的就再好不过了,无需担心程序无法实现,而且ACM竞赛的内容与数学建模竞赛的内容,有相当大一部分是重合的。最好不要班干部或者交际花,因为他们不可避免要花很多时间与人交往。在提到挑选队员之前,有一个问题是,通过什么渠道认识队员。首先,可以和身边熟知的同学组队,他们的性格和能力自己比较了解;然后,数学建模培训课是最重要的渠道了,全校所有想搞数学建模的人大多都在这里了,没组队的同学一定要好好抓住这个机会;其次,也可以是偶遇聊天认识的。想做相同的事情的不同的人,更有可能在相同的地方相遇;其他渠道,比如同学介绍等。

 

(4)学习相关软件。好好学习Matlab就够了,它可以实现所有数学建模需要的功能。对于某些问题,Excel也可以胜任。C语言也能胜任大部分的程序设计问题。一般来说,可以百度一下某个需要的功能+Matlab,便可以找到对应的Matlab函数,一般来说也有相应的例子说明如何使用该函数。如果没有的话,可以在Matlab命令窗口中输入:help 该函数,会返回关于该函数如何使用的说明。但是,Matlab的基本语法,比如循环、条件、判断语句的结构以及赋值等运算,需要提前熟练掌握,这个和C语言很相似。如果你学过C语言或者任何一门程序设计语言的话,这个是很好上手的。当然,如果你确实学有余力的话,可以学习SPSS或者SAS等统计专用软件、Surfer等绘图软件。这些软件在统计或者绘图等方面,用起来更为方便,绘图更为精美。

 

(5)了解比赛风格。对于国赛来说,结果是很重要的,内容完整也是很重要的;对于美赛来说,结果根本不重要,做不完也没有关系,最重要的应该是其中的“创新性”(对于美赛,我成绩很一般,也没有过多的研究,相关叙述仅供参考)。对于顶级的选手来说,这都没什么;但是对于绝大多数参赛队伍,时间是很紧张的。想在有限的时间内取得尽量好的成绩,就要有所取舍。如果你参加的是国赛,应该尽量完成所有问题,并保证结果的正确性,创新性倒是其次;如果你参加的是美赛,重点把一个问题做的很出彩就够了。

 

(6)研究评分标准。评奖是按照评分排名,而评分是按照评分标准。研究评分标准,可以有针对性地知道什么样的论文是出色的,进而知道该如何去建模型、写论文。

 

 

思想方法,不太好说,我想到了以下几点:

(1)简单最美。有的同学或许会错误地认为,复杂的模型体现自己的能力强,也应该能够获得好的成绩,但是实际上不是这样的。如果复杂的模型和简单的模型得到的结果精度差不多,这时应该选择相对简单的模型。这是因为,数学模型是为实际的生产生活服务的。相对简单的模型,更容易实现,也更容易为大家所接受,何乐而不为呢?

 

(2)从简单到复杂。这和前面所说的“简单最美”好像有矛盾。但是,这里“到复杂”的前提是,结果得到改进。一般来,“复杂”是指考虑了更多的因素。有一些捧得大奖的论文,都是先建立一个简单的模型,然后考虑更多的因素再建立一个相对复杂的模型,这也是科学地研究问题的思路。

 

(3)多模型对比。对于一个问题,往往可以建立不同的模型,各有千秋。对于有的题目,两篇国一论文可能做法截然不同,这是非常正常的。如果时间充裕,可以建立不同的模型,对不同模型的优缺做对比,或者说明其不同的适用条件。这,就是特等奖的水平了。例如2013年国赛交通那道题目,我用了相对简单的一个方法做的,做了比较多的检验,结果也不错,比较成功,国一。我后来偶然看到那道题目的特等奖论文(厦门大学的),是用两个更为合适的相对复杂的方法做的。

 

(4)模糊指标量化。指标只有量化,才有可能建立数学模型,才可能运用数学方法进行求解。没有量化的指标,只能够运用文字进行定性的叙述,无法进行数学上定量的分析。模糊数学,就是解决模糊问题的数学方法。模糊指标,当然可以采用模糊数学的方法进行定义,也可以采用其他方法(比如比值)定义。

 

(5)结果可视化。大片的文字叙述,或者堆叠的数学公式,给人的感觉都不够直观,都需要一定的阅读时间、背景知识、数学功底才能够理解。可是一张图,往往可以瞬间形象直观地反映所要表达的内容,与数学功底也没有多大的关系。这与数学模型本身的好坏无关,但是能够大大促进作者和读者之间的交流,属于“写作水平”的范畴。

 

(6)检验结果。建立模型并进行求解,得到的结果可能是正确的,也可能是错误的。如果不对结果进行检验,严格意义上论文是不完整的。我听老师说,对于模型没有检验的论文,不可能获得国奖。对结果进行检验,主要有以下几种方法:①敏感性分析。分析因变量随各个自变量的变化趋势。趋势合理(符合常识),起码证明模型很有可能是正确的,没有大问题。②实例检验。实际的数据,最有说服力,也可以检查结果的精度如何。但是有一个问题,实际的数据可能不好找。③仿真。这个需要学习使用该领域的仿真软件,实际上算是充当了”实例“的作用。这也存在一个问题,不一定有相关的仿真软件,尤其是处理的问题属于新领域的话。④算例分析。这个算是下下策了,在找不到实际的数据,以及相关的仿真软件的前提下,只能这么做。与敏感性分析相比,这个方法也显得较为片面。⑤特殊情况分析。如果原模型比较复杂,可以分析其特殊情况(一般更容易分析)。如果特殊情况被检验为正确的,对于说明原模型是正确的,也是比较有说服力的。

 

 

竞赛心态,也是很重要的:

(1)全力以赴。获得国一的论文,只能说明他们做的“相对”很好,但是不一定做的就真的很好。也有可能,你确实做的很好,但是没有捧得大奖。为什么呢?评奖是根据评分排名,而不是预先定好论文是什么质量对应什么奖。例如,我参加过一次美赛,题目是原题。大家都搜到了原题的特等奖论文。我的论文在这基础上做了一定的改进,结果是H奖,这个就很水了~我也参加过一次国赛,2013年交通那个题目,没有听说过这是陈题。时间只有几天,极少有人能建立很完善的模型并解答。说句心里话,我认为我们做的真的很水~没有太大实际价值。但是,我们的论文是完整而且基本正确的。我从网上搜到了一篇那个题目的省一论文,发现它的内容本身就是残缺的,没做完~论文的质量更是不堪入目。从另一个角度,如果你这次没有全力以赴,会对结果抱有遗憾,后悔当时为什么不再多努力一点。还有一个问题是,以后的比赛参加么?你可能还想参加一次,争取更好的结果。也可能不想参加,因为怕题目出的不合口味而白忙活,或者等到下一年的时候你根本没有心思来搞这个比赛了,留下几多遗憾。大多都是大三的队伍参赛,大四的时候要么保研、考研、找工作。所以最好的做法就是,这次全力以赴,不留遗憾。

 

(2)团队合作。目前我所发现的唯一高效的合作方式是:相对独立而完整的内容,主要由一个人来完成,其他人起辅助的作用。因为,交流是有成本的。论文,需要一个人完成,因为不同队员的风格是不一样的;程序,需要一个人完成,因为程序的不同模块之间是有一定衔接的。大家可以参考:软件工程所倡导的“极限编程”的组成成分——“结对编程”,和这里所说的是一个道理。对于认真参赛的队伍来说,很容易出现意见分歧。所以,比赛前应该确定下来,出现矛盾以后隔多长时间仍然无法统一意见,无条件服从队长或者擅长这方面的同学的意见。这无疑会节省很多宝贵的时间。当然,要根据这个矛盾的重点程度,分配给它相应的讨论时间。实际上,前面商量得再好,用心比赛的选手之间也会产生矛盾,这就需要大家之间互相体谅了。

 

(3)分清主次。换一种说法,就是不要恋战,该收手时就收手。一般题目都有好几问。比较聪明的人,能够看得出来,哪个问是重点。对于重点问,自然要投入更多的精力;对于非重点问,做个差不多就可以了。这就需要队长统筹兼顾,提前估摸好每一问花多大精力去搞定它 。

 

(4)学会表现。这一条看起来不是那么正经;但是,这是我对参赛选手的实在话。我一共弄过两次深圳杯。第一次深圳杯,我们的论文感觉很乱,我们都不明白我们在做什么,但是显得很厉害。最终很意外,我们被选中了~第二次深圳杯,那次我可以说是全身心的投入了,题目也很对我的胃口,我甚至做好了可能因此无法保研的最坏的打算。我非常认真负责,但是论文语气非常地谦虚。最终也很意外,我们在山东省这关被涮掉了。后来我想明白了:你都不夸自己做得好,怎么能指望阅卷者欣赏你?另外,我也听老师说过,实际上现在很多所谓的“好论文”,不过是“会写论文”罢了~

 

(5)参赛动机。比赛斩获大奖,首先这是个荣誉。其次,这可以证明自己的研究能力,这对于大部分工科学生来说是重要的。再者,可以通过这个平台,认识很多志同道合的朋友,拓展自己的交际圈。然后,有的院校拿国奖可以保研,或者是保研加分。一般来说,在期末的奖学金评选中,也会更有优势。美赛获得一等奖或者更高的奖项,据说也有利于出国。如果被邀请办讲座,也可以培养自己的粉丝。如果你志在科研,工科+数学是个很好的选择,多学科融合会有更多科研的成果。如果你是个学霸,但是感觉统一课程太枯燥了,参加数学建模竞赛也是丰富课余生活的一个方法。

 

(6)尽快落实。第一,可能等到想写的时候,时间已经不足了;第二,刚有想法的时候,知道是怎么从现实问题一步步转化为数学模型的,这时候思路最清晰、逻辑;第三,就算后来又做了新的模型,之前的结果也可以作为检验,或者借其说明新模型的优点。

 

(7)正视竞赛缺点。数学建模竞赛本身,确实存在很多不足之处,但是它本身也存在很多积极的地方,例如培养严谨科学的思维,查阅文献的技巧,论文撰写的技巧,编写程序的能力,迅速消化知识的能力,团队合作的能力,等等。例如,作为选拔人才重要举措的高考,也经常受到抨击,很多抨击或多或少也都有合理的地方,但是这并没有影响到它几十年来在人才选拔中发挥的重要作用。任何一个选拔制度,一般多少都有不足之处,因此不足之处不是摒弃选拔制度的理由。

 

(8)正确理解题目。不要还没有充分地理解题目就急忙下手。有的题目如果不仔细读,可能会理解错误,或者弄错题目的重点,那么后面的付出就会大打折扣了。应当好好分析题目各问之间的联系,一般问题按照递进的关系,后一问往往会利用到前一问的结果或者结论,然后有的问或者小问会利用已建立的模型进行一定的计算。如果题目确实存在不同的理解,那么任一种做法都是可以的,这不会影响到评分。

 

(9)不要卡壳。对于后面的问题,可以先找个差不多的数据算着,说不定过会会有人讨论这个问题该如何解决。重新计算一遍的时间,往往小于干耗在目前问题所需的时间。另外,可能后面的问和前面的问没有太大的联系,这种情况下不必按照给定的问的顺序做。

 

(10)过程重于奖项。无论结果好坏,参赛过程本身培养了能力,也有助于意识到自身能力的局限性,实际上这是最实在的作用。奖项的作用,无非使简历多了一行。在跨过求职这道门槛以后,估计就没有多大的作用了;唯一起作用的,是获得的奖项所对应的处理实际问题的能力。我看知乎上有的IMO金牌(当然是非常非常厉害的了)提到,在若干年后,谁还会在意你这个国际奖项啊~但是实际上,将注意力放在如何享受竞赛过程上,这本身有助于取得更好的奖项,因为忧虑的情绪会影响到水平的发挥。

 

(11)见好就收。在你拿到很好的成绩之前,和你合作的队友或许还可能会认真准备并参与竞赛,因为谁也靠不住;在这之后的话,如果去寻找新的队友,新队友可能是“抱大腿”的心态:表面上说会好好准备,实际上能偷懒就偷懒。这一点我有非常深刻的体会。在拿到很好的成绩之后,一方面自己没有那么大的动力重新准备,另一方面队友也不如以前努力,自然也很难超越以前的成绩了。

 

 

实用攻略,这是最直接的:

(1)竞赛论文里面,一定要突出显示自己的数学模型。因为,这是数学建模竞赛,最重要的当然是模型。模型一般的体现形式为公式或者算法步骤。要保证,阅卷者花十几秒时间扫一下你的论文,就能知道你做到了什么程度。

(2)关于参考文献:里面不可以出现太多网址,这只会体现你的业余;如果参考文献太少,可以随意找几篇相近的看似能用到的论文加上。最好引用比较权威的期刊上的文献。如何判断期刊的权威性?一般来说,中文核心期刊算是比较权威的,影响因子越大,期刊越权威。对于国赛,仅仅参考中文期刊,也已经足够了。

(3)关于页数:如果你自己做的东西还不到10页,东拼西凑各种论文,也要凑到将近20页;页数也不可太长,评委会感觉很累的。

(4)关于数字、字母:你要是时间多的话,可以都用公式编辑器编辑,麻烦,但是美观~

(5)关于作息:最后一个晚上熬夜,前面几个晚上好好睡觉。一般这样有利于发挥。

(6)关于数据:对于自己搜集到的数据,如果得到的结果和理想的有一点差距,这是非常正常的。索性手动改一点点,让得到的结果更好看~另外,有的数据根本搜不到,怎么办呢?自己弄一组看似合理的数据进行分析,这叫做“算例分析”。

(7)关于换队友:直接说不太好。可以说,我提前答应过某某同学,可是跟你组队的时候忘了这事了。

(8)关于指导老师:虽然竞赛规律明令禁止比赛过程中老师参与,但是老师或多或少会参与一些。对于实力不强的队伍,可以找一个竞赛过程中参与比较多的老师。切忌找很厉害的老师,教授对这个根本不感兴趣。讲师应该是个不错的选择,副教授也可以。

(9)关于外援:比赛的过程中,确实有的找外援。只是提示一下,自己看着办吧。

(10)关于选题:最好选择一个,能够把大家都调动起来的题目。如果其中某人确实很强,也可以选择一个他擅长的题目,这样可以将竞赛结果的期望最大化。要换题的话,一定要早换,否则换题的成本太高了。

(11)关于结果:听说有的队伍,弄一个看起来比较正确的模型,然后搜一下别人比较公认的结果,再搜一下相关的程序(虽然自己都不知道那是什么意思),然后就这么凑到一块。很机智啊!

(2)(6)(7)(8)(9)(11)不大正经,不要说是我教的,请谨慎考虑!

 

 

论文写作

(1)摘要:第一段:简述本文研究的价值所在,和本文的特点。以后每一段,分别针对每一问:陈述该问的研究内容,研究方法,主要结果,表述简洁扼要。采用首先、然后、最后等词,使得文章结构清晰。摘要是全文的精华,一定要好好写。摘要写不好,评委根本没有继续阅读的愿望。

(2)关键字:4至6个为宜,要能够体现本文的特点。

(3)问题重述:一般来说,直接copy题目即可,说明附件数据的部分一般去掉。

(4)模型假设:假设过多,问题简单而没有意义;假设过少,问题复杂而无法研究。“套话”假设,也需要说。简化假设后,与实际问题不能有太大的出入。最后一条末尾为句号,其他末尾为分号。

(5)变量说明:列举文中出现的所有符号,并解释其含义。

(6)问题分析:注意与摘要的区别!这里分析问题的重点、特点、难点,不是陈述如何研究的。

(7)模型的建立及求解:要有承上启下的语句,体现了逻辑性,或者说清晰的思路。注意对异常数据的处理,包括缺失数据、明显错误的数据。对于文中的任何一个图,要说明采用什么软件,并对图所反映的规律进行说明。注意结果的可视化。表格最好采用三线格。最好有语句体现论文不同问之间的联系。注意联系实际,分析结果的合理性。文中最好不要出现主语,比如“我们”。论文的同一部分尽量在一页上。突出显示最重要的公式、图表。注意区分引用的内容与自己做的内容,如果是引用的内容,需要标注参考文献。

(8)模型评价及推广:模型的优点,本文最能拿得出手的地方;模型的缺点,不要避讳,实事求是;模型的推广,体现还有工作可以做,只是因为时间不足。

(9)参考文献:不要自己写,找个可以自动生成格式的,比如Google学术搜索。

(10)附录:可以是论文中用到的程序,比较长而不重要的图表等。

 

如何建立模型

(1)首先搜索相关的文献,大多数问题都有相关的研究,要”站在巨人的肩膀上“,这样可以减少很多的自己摸索的时间。

(2)如果没有相关的文献,就需要自己建立模型。根据经验、分析,甚至是一定的尝试,决定采用哪个模型来做。

 

竞赛与科研的关系

竞赛本身可以在一定程度上培养科研能力,但是与科研还是有很大不同的。竞赛是几天的投入,所研究的问题,也是经过很多简化处理的,就是为了保证参赛者在这几天的时间里面能做个差不多。科研,是针对实际需要解决的问题,一般需要用长的多的时间来解决。一般也不能指望竞赛几天做出来真正有科研价值的东西来。

 

关于数学类专业与非数学类专业

对于数学类专业学生来说,数学建模所可能用到的知识大部分都学过,对于数学的理解也较为全面和深刻,自然不需要在该竞赛准备上投入过多的精力,很多数模大神也都出身于数学类专业;对于非数学类专业学生来说,数学上一般只学了点皮毛,要取得好成绩甚至成为大神级别的,就需要课余下很多工夫了,也很难匹及出身于数学类专业的真正的高手。

但是,数学类专业的,往往比较缺乏工科的分析实际问题的思维;工科专业的,这方面思维较强。我个人认为,数学类与工科类专业的学生搭配组队,是不错的选择。

 

如何查找文献以及数据

对于大部分本科生来说,CNKI应该是最佳的选择。如果英语较好的话,可以考虑使用Google学术搜索(一般可以用Glgoo作为替代品),按说这里可以搜索到所有相关的文献。如果想真正做出很好的成果的话,建议将搜索重点放在相应学科的重要的数据库里面。国家统计局网站,有很多统计数据,可能会用到。一些数据库,比如CNKI,也提供了搜索统计数据的功能。

 

如何选题

一般比赛都会提供若干个题目。

(1)对于新手:建议选一个门槛不高、容易上手的题目。比如,以前有过类似的赛题,并能够搜到相关的优秀论文;背景曾经在中学阶段熟知,或者题目属于所学专业领域内的;需要处理的数据关系复杂,题目叙述繁杂,或者其他没法体现经验丰富的竞赛选手优势的题目。第一次比赛,最重要的是熟悉竞赛流程和时间分配,不要期望也很难取得很好的成绩。

(2)对于老手:建议选一个能够体现自己优势的题目。一般来说,阅读题目并简单搜搜文献,能够大致了解每个题目用什么方法来做。选一个方法上自己最有优势的题目,或者题干简单,数据关系相对明了,应该是明智的选择。老手有一定的选题经验,在此不多说了。

本文由 崔江枫 授权 赛氪网 发表,并经赛氪网编辑。转载此文章须经作者同意,并请附上出处(赛氪网)及本页链接。原文链接https://www.saikr.com/a/2557
收藏
分享
别默默的看了,快来和大家聊聊吧,登录后发表评论~ 登录 立即注册
打赏
崔江枫
打赏金额(金额:¥0)
给Ta留言
赏金已入袋,多谢!(*^__^*)
温馨提示

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

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

热门问题