(转)关于数学建模竞赛的一点思考、总结和建议

宋一凡html

环境保护与安全工程学院核安全工程专业程序员

 

大学生活即将结束,回顾几年的经历,数学建模竞赛留给我太多的回忆。虽然数模竞赛已经远去,但至今看到听到“三天三夜72小时”时,精神还会为之一振。在要告别数模竞赛的时候,想写一点本身零零碎碎的思考和总结,并给之后参赛的学弟学妹一点建议。面试

1. 关于个人数模之路算法

大一从学长口中知道了数模竞赛,就想参加,自学了姜启源的《数学模型》,但校赛时,队友不给力使第一次校赛不了了之,至今仍然遗憾大一时校赛未能入围;大二时,和本院的两个同窗组队,比我高一级的闯哥给了很多经验和资料,通过暑假的培训和屡次模拟赛训练,12年国赛拿到了湖南赛区的三等奖。编程

13年寒假,留在学校参加美赛,偌大的宿舍楼空无一人,好不凄凉,南方湿冷的冬天让我这个北方人冻得难以忍受,搞完比赛回到家时已是腊月二十七夜里,美赛S奖使我很失落,也从中找到了本身的不少不足之处。安全

因今年考研,本不肯参加国赛,但两位新队友的盛情邀请让我不忍拒绝,因而从新组队,再战国赛,一雪前耻,最后拿到国家一等奖,为大学的数模之路画上一个圆满的句号。网络

从大一到如今,关于数模的比赛,热身赛、校赛、模拟赛、国赛、美赛,大大小小不记得参加过多少次,也不知道熬过了多少个“72小时”。建模、程序员、写手,三个角色的工做我都认认真真作过,饱尝里面的酸甜苦辣,一步一个脚印走来,最后获得一个不错的成绩,收获颇多,感触颇深。框架

数模给我打开了一扇窗,窗外的世界带给我不同的精彩,而不只仅是拿几张证书,加几分综测。外人看来,数模痛苦、费人,而我感受数模自由、快乐。尤为是竞赛结束,早上八点交卷的时刻,通过三天三夜的努力,队友通力合做,从第一天的束手无策,到最后一天的顺利解决,疲惫、兴奋、知足、急切、不安,不少的感觉一时涌上心头,那是只有真正参加比赛的人才能体会到的快乐!编辑器

2. 关于数学建模竞赛的做用函数

在作一件事情以前总会去思考作成这件事情有什么好处,这样的内心再正常不过了。而数模竞赛这种须要投入不少时间和精力的事情,更须要好好决定下是否要参加。指导老师说:数模“费时间,强意志,提能力”,我以本身的经从来讲下数模竞赛的做用。

2.1   对自身能力的提升

参加数模竞赛能够提升自身能力,这一点是毋庸置疑的,全国数模竞赛组委会的网站上都有写“一次参赛,终生受益”。可能一两次的比赛看不出来,通过屡次竞赛的锻炼,与没有通过数模竞赛的人相比,就会慢慢感觉到这种细微的变化:

在遇到一个问题时,你会更多地去关注其内部的数学规律;在问题比较复杂时,也会更快地找到问题的关键所在;在任务繁重时,你的工做效率会更高;在须要熬夜工做时,你的耐力也会好过其余人……

学习的不少专业课程,其总体思路和数模是相似的,数模的训练使你学习更快;对与科研工做,一次数模比赛的过程就是解决一个课题的缩影,两者在流程上十分的相似,数模也培养了你科研的实力;甚至是单单写一篇论文,你完成起来也更加容易……

指导老师说:有了数模的锻炼,毕业设计可能不过是一个星期的事情,甚至只要三天三夜就能搞定。有一点夸张,却也说明了数模的巨大做用。

2.2   对考研和保研的做用

今年7月我去中国科学技术大学参加夏令营,面试环节中,我和面试的三个老师并无谈物理、加速器等专业相关问题,而是讨论了数模中所用到的“神经网络及其MATLAB实现”,最后顺利经过了面试,拿到了“提早面试经过函”这张免死金牌,这在很大程度上归功于在数模竞赛中积累。

因为南华大学的档次不高,考研复试时每每受到歧视被刷。而一位拿过美赛S奖的学长说:“我在面试中差很少是免试的,其功劳能够说是归功于个人数模历程的”。

 

 

2.3   对工做的做用

有数模的经历,应聘时拿几张数模的获奖证书,在找工做时候,必定更受青睐,我认识一个机械的学长,毕业时因为数模的经历拿到一份很好的工做。

就我而言,在参加数模以前,计算机方面是个彻头彻尾的小白,word都玩不转,两年数模经历,我长了很多知识,并且结交了不少学长、朋友,他们给个人影响和帮助已经远远超过了数模竞赛自己。

3. 关于组队

两年参加国赛,我是在两个不一样的队中,并且我也见到一些因为组队不当而形成比赛失利的状况,在组队方面也有一些感觉。

想要拿到好成绩,一支优秀的队伍是必须的,三个队友的我的素质不容马虎。不论特长与能力,至少要对数模有积极性,可以踏实作事,认真负责,队长分配的任务必须按时完成;准备、培训到比赛的整个过程要能完整参与,不能半途而废;有学习的热情,对新东西要有比较强的好奇心和求知欲;学习能力强,能比较快地接受新知识;时间观念要比较强,可以高效率工做。

我很推荐不一样学科背景的同窗组队,今年参加国赛时我所在队伍的三我的专业分别是核技术、核安全工程、预防医学,分别是偏理、偏工、偏医学,在分析问题时候不一样知识结构更能碰撞出好的思路。若是三我的来自一个专业或是一个学院,平时上一样的课,学相同的知识,就会造成相似的知识结构,倘若题目恰是三我的共同盲区,不就死掉了。

借用一点队长的看法,三我的中最好有一个思惟比较“跳”,脑海里每每有一些新奇的东西,常常闪现出一些火花,在论文中造成亮点;单有这我的也是不够的,还须要有一我的踏实一点,防止前面那个思惟飞得太远,不切实际,作不出结果。这样的队伍完成的论文就会感到有张有弛,既有条理的思路、严谨的推导,又有突出的亮点,有别与其余队伍。

队长很重要,虽然只是三我的的队伍,可是队长也如同军中之统帅。队长要决定任务的分配,把握思路的走向,规划时间的安排,责任重大。

队友之间不能有沟通障碍,要相互尊重和信赖,若是在比赛的过程当中队内互相掐架,怎能完成论文?

男女搭配,干活不累,此言不虚也。队中有妹子,必是极好的。

4. 关于分工

按照通常的说法,队伍中的三我的,一个建模,一个编程,一个写做。

建模的队友,要有比较好的数学功底,熟悉各类模型的适用条件,明白他们的前因后果;程序员要负责模型的求解,至少要会MATLAB,并有大量实战的经验;写手要把作好的东西以论文的形式完美呈现,有时候一篇文章行文流畅、思路清晰的做用甚至超过了建模自己。

比较好的一种组合是,每一个人在本身负责的方面要精通,同时对其余两个方面有必定的了解。例如,三我的都要有各类模型的基本了解;要知道程序员实力如何,不能创建一个程序员无法求解的模型;三我的都要有一点写做的底子,本身作的工做本身写,可能比写手直接写更省时间,写的东西也更准确。

今年我所在的队伍分工大概是这样的,队长曾玉读核技术专业,思惟活跃,总有新奇的点子,主攻评价类模型,负责论文排版、写做、图形图形处理方面的工做;吴文博读预防医学专业,善于统计和SPSS软件,主攻各种统计模型,英文好,搜索文献能力强;我读核安全工程专业,去年参赛时又作建模又作写做,今年作程序员,主攻理工科背景的模型以及各种模型的MATLAB实现,解决建模中遇到的各类计算机方面的问题。

分工虽是如此,可是并不严格:曾玉虽主要写论文,可是在各种模型上都有所涉猎;吴文博虽主攻统计,但其余模型也略知一二,因此能够把统计模型与其余模型很好结合在一块儿;我虽然是程序员,但也能够把本身作的工做完整写成论文。三我的能力互补,在遇到各种问题时都能游刃有余,不至陷入盲区。

例如在今年的国赛中,咱们所作的题目是“车道被占用对城市道路通行能力的影响”,一共四个问题:前两问题是统计的问题,吴文博的长处得以发挥;后两问创建车流波动模型,须要物理知识和编程,正是我能够作的;咱们作的工做写成初稿交给曾玉,她能够写成一篇高质量的论文。

5. 关于知识储备

数模竞赛所须要的知识太多,方方面面,难以理出个头绪。有些观点说,数模知识不须要学,比赛时候现学现用就能够。我并不一样意这一观点。

我认为应该在准备竞赛的过程当中尽量多学,肚子里东西越多,看问题就越深,前期掌握了的东西,就不用在比赛的时候花力气去学,省下来的时间能够把文章做出亮点。我曾经看过2011年题目“重金属污染”的国家一等奖论文,深有感触,和我校那年参赛时的论文相比,国一论文中作得工做量至少是我校论文的两倍。若是不是前期的积累,哪有时间作这样多的内容,譬如论文中的“偏微分方程数值解”是不可能在比赛的几个小时内就学会使用的。

下面分别谈下各方面的知识储备。

6. 关于数学模型和算法

参赛者大可能是从姜启源的《数学模型》开始接触各种模型的,我也是如此。这本书浅显易懂,是数模入门的好书,可让你懂得什么是数学建模、建模的流程是怎样的、有哪些方面的模型、每种模型的整体思路。可是在实际参加比赛时,这本书的实用性不强,难以应对比赛中遇到的复杂问题。准备参加比赛,要对每一种模型和算法有更为深刻的学习。

系统学习各种模型和算法,能够看《数学建模算法与程序》(司守奎,海军航空工程学院,http://wenku.baidu.com/view/fb7d696e7e21af45b307a845.html),俗称“算法大全”。这本书有900多页,涵盖了比赛中用到的大多数模型,并且每一种模型都有MATLAB代码,实用性较强,能够系统学习,也能够做为工具书查阅。

学习过程当中,没必要太过细究其理论,要着重考虑的是:基本思路是怎样的,能够解决哪些问题,如何求解,关键点或者最难解决的部分在哪里。

如下是我使用一些模型时的感觉以及对学习的建议。

1)优化

各种优化模型永远是数模中的热点,各种实际问题的目标每每是使其达到最优,个人感觉是,优化模型的创建和求解都是难点。

先说建模,在一个复杂的问题中每每分不清哪一个是目标函数,哪一个是约束条件,哪些条件是重要的,哪些条件能够忽略,明知道是一个优化问题,老是写不出优化的模型。再说求解,简单的模型能够借助LINGO软件编程求解,复杂的多维非线性优化模型还须要借助相关智能算法,选择的算法是否适用,运算效率如何,智能算法中参数如何肯定,是否达到全局最优仍是只求出了一个局部最优解,都是要仔细考虑的问题。

因此要多作练习,多看些复杂题目的论文,细细揣摩其中的思路,提升分析优化问题的能力。

2)统计

统计类模型很是重要,近几年,国赛数据量逐年加大,彷佛也预示着大数据时代的到来,相关的统计方法和数据挖掘技术也渗透到数模之中,如数据处理、回归分析、假设检验、因子分析、聚类分析、通径分析等等,可与SPSS软件一块儿学习。

3)预测类模型

包括了回归预测、灰色预测、马尔可夫链、时间序列等等,选择合适的模型是关键。预测结果很差是很正常的,能够尝试多种模型结合,如时间序列搭一个神经网络,能够起到必定的修正做用。

4)评价类模型

评价类的模型大多有一些主观的成分在里面,可以自圆其说便可。你们的方法都相似,做出亮点才能吸引评委。例如某年国赛题目“上海世博会经济影响力评价”,一篇国一的论文就引入了了“Google搜索量的变化”这一评价因子,成为亮点。

评价方法包括模糊综合评价、层次分析法等等,大同小异。我认为主要问题在于权重,权重肯定要合适、准确、让人信服,在生产实际中,每每采用专家打分的方法,可是在比赛中除了队友不能与其余活物打交道,权重肯定只能经过查阅文献得来。

5)图论

图论是一个相对独立又十分难学的部分,第一次听图论课的场景至今心有余悸。可是图论的应用又是十分普遍的,不少题目归根到底就是一个图论题。例如2013年国赛的“拼图题”(B题),整体的思路就是一个“旅行商TSP问题”,只是又复杂了许多。

图论的学习重在程序实现,不少算法的程序是现成的,如kruskal算法的MATLAB程序,就不须要本身一点一点去敲,平时要注意相关代码的积累。

 

6)智能算法

随着数模的题目复杂度愈来愈高,求解难度愈来愈大,传统的求解方法在复杂题目面前简直不堪一击,学习智能算法是必须的。从最基本的神经网络和遗传算法学起,而后有模拟退火算法、粒子群算法等等,其应用很是普遍。

推荐《MATLAB智能算法30个案例分析》(MATLAB中文论坛系列书籍,北京航空航天大学出版),每种算法都用于一个实际的案例,并有详细的代码分析。还能够看“MATLAB中文论坛”的视频教程http://www.ilovematlab.cn/thread-22239-1-1.html

7)实际模型

在遇到具体问题时,要在通用模型的基础上,查阅该学科的文献资料,选择有学科背景的模型,更有说服力。例如,11年“重金属污染”,评价污染程度时候,就要采用“地积累指数法”;13年“车道占用对交通流量的影响”,须要采用“车流波动模型”

数模中用到的模型还有不少没有说到,例如微分方程模型、数值计算、蒙特卡罗方法等等,学习模型是个长期积累的过程,要多学习,多应用,一个模型只有实际去解决一个问题并获得结果,才能算是真正学会。

7. 关于程序员

程序员的任务是把创建的模型用程序求解,还要解决比胜过程中遇到的各种与计算机有关的问题,下面分软件来谈谈如何炼成一个合格的数模程序员。

1MATLAB

MATLAB的强大天然没必要说,有人问我,作数模能不能不学MATLAB?我回答:除非你的C足够强,不然就老老实实去学吧。

学习开始,要打好矩阵运算的底子,在整个编程的过程当中要有矩阵的思想,而后再分块分模型去逐个击破。平时练习中写的代码要及时保存,也要注意积累其余人的代码,按期整理,比赛时拿来就用,不须要从新写。

必定要有一本教程和一本函数手册,推荐《MATLAB语言实用教程》《MATLAB数学实验与建模》(马莉,清华大学出版社),《MATLAB函数速查手册》(邓薇,人民邮电出版社)。

MATLAB作图功能很重要,必定学好,论文中一张好看的图顶一大段话。

要善于使用网络资源,“MATLAB中文论坛”是个好去处。

遇到不懂的函数,能够查帮助文件,英文并不难,这是最准确的说明。

不要总写脚本,要学着写函数,提升运行效率。

MATLAB编程的方法和技巧,网上太多了,多看多学多交流。

2SPSS

SPSS操做并不难,要与统计知识一块儿学习。因为涉及的知识比较多,能够将MATLAB和SPSS分给两我的去学习。

3LINGO

在规划问题上,LINGO和MATLAB相比,编程简单,运算效率高。学起来也很容易,推荐参考书籍《LINGO和Excel在数学建模中的应用》(袁新生等,科学出版社,http://ishare.iask.sina.com.cn/f/60817679.html)。

4latex

论文写做的软件,通常都选word,可是latex排本效果更好。尤为是英文排版上,与latex排出的效果相比,word的效果简直不堪入目,因此美赛推荐使用。Latex学习曲线陡峭,若是没有事先学好,匆匆使用,会带来很大的麻烦。找好模板,比赛前练习完整写一篇文章,比赛时就能应用自如。

使用Ctex中文套装便可,套装中的帮助文件是不错的入门书籍。极力推荐“Chinatex”网站的视频教程:http://www.chinatex.org/?page_id=218.

5Excel

普通的数据处理,excel必不可少,若是有时间能够学习“excel宏和VBA”,但用处并非特别大,它能实现的功能,均可以经过MATLAB编程实现。

6)各类图形相关的软件

VISIO做流程图,AutoCAD作工程图,Google sketchup作三维立体模型,photeshop或是美图秀秀作图形处理……这些图形类软件的简单使用须要掌握。

7)其余

Mathtype 写数学公式(使用快捷键,至少要会Ctrl+h和Ctrl+l吧);adobe acrobat 处理pdf;

文本编辑器,高手装13用VIM,普通至少要用sublime text或者notepad++吧,用记事本怎么对得起“程序猿”这三个字呢?

资料太多,推荐everything搜索文件,totalcommander整理文件;

 

 

8. 关于论文写做

最后拿给评委看的就是论文,论文写做的好坏及其重要。写手主要要解决两个问题:文笔和排版。

文笔:文章的思路要清晰,语言要准确简练,可以把作的工做清楚地写出来,须要有必定的功力。多看些优秀的论文,看论文的结构,如何引入问题,如何叙述模型,如何描述结果,如何分析偏差,如何与实际联系,都要仔细体会。

排版:学习word排版能够看《word排版艺术》(侯捷),也能够选择用latex来完成论文(要慎重!)。主要的问题有字形字号页码行距,图形、表格的排版、配色,公式规范书写等等,不少问题都在细微之处,可是细微之处的毛病在评委看来就很是扎眼。在模拟赛中,最好拿一篇写好的论文给指导老师仔细修改,改正其中的错误;正式比赛前作一个模板出来,比赛论文直接往进套。

论文写做中最重要的是摘要的写做,在最后一天晚上,必定要空出几个小时仔细写摘要,三我的一块儿修改,里面的内容要字斟句酌,无一废话,主要的句式就是“使用什么方法,得出什么结论,解决什么问题”,并且要着重写出文章的亮点。

9. 关于优秀论文学习

学习往年的优秀论文很重要,就像练习英语阅读,也要泛读和精读相结合。

泛读的文章要看文章的思路,使用了那些模型,各部分如何衔接,文章有什么突出的亮点,那些方法是本身没有见过的,要拿来学习。

精读更为重要,要选出有表明性的文章拿来精读。精度不能仅仅局限在读,最好是三我的实战作一遍题目,找资料,建模型,写程序,得结果,分析偏差,最后必定要本身拿出一篇完整的论文,不能只是从优秀论文中拿过来粘贴。论文写好再和优秀论文比较,就能看出差距,最好能和指导老师一块儿分析一下。有些问题和bug只有实际去作了,才能发现,早点处理掉,不然在比赛的72个小时里解决,影响心情,影响进度。

10. 关于模拟赛

学校的培训每一年都会安排几回模拟赛,个人感觉是一次模拟赛可以学到的东西比在平时10天学到的都多,同时也是队员之间相互了解相互磨合的过程。模拟赛必定要认真对待。

虽为模拟,但也要拿出实战的感受来完成题目。若是题目不难,能够自行把时间缩短,来锻炼工做的速度。除了学校举办的比赛,队内三我的能够拿往年的题目来本身组织模拟赛,作完后与优秀论文比对。还有一些网络赛,能够进行练习。

不过模拟赛毕竟只是模拟,不要累坏本身,尤为是比赛前的那次,一次模拟赛死多少脑细胞,正式比赛时没有精神就很差了。

11. 关于正式比赛

前面的准备工做作得再好,等到正式比赛那天8:00公布题目时,也会有措手不及的赶脚。只要按照以往的节奏,一点一点作下去,三天三夜,是必定能把问题解决的。

最开始的审题很是重要,咱们队的作法是题目出来后,打印稿每人拿一份,各自分析一个小时,期间并不交流,只是各自理出对问题的分析和基本的解决方案;一小时后,一块儿讨论,交流对题目的见解,同时肯定选作哪一个题目,并肯定基本的思路和分工。某些队伍直到第一天晚上还在嚷嚷着选题,在他们白白浪费了一天的时候,咱们已经完成了不少工做。

接下来就查阅文献,查阅文献的广度和深度,直接决定了论文的质量,经过文献的分析,调整思路,最终肯定文章的结构和分工。而后,建模者和程序员开始建模求解,写手就能够开始写论文,搭起论文的总体框架,完成一些不过重要的部分(如问题背景)。论文必定要从最开始就写,不能等到把全部的东西所有搞定,到第三天才开始写,那样太过仓促。

第一天晚上,三我的都须要回去睡觉,好好休息,至少要睡六个小时。

若是进展顺利,到次日晚上,基本能够完成建模部分和某些部分的求解。若是须要,次日晚上程序员能够适当熬夜,把模型求解的结果弄出来;若是程序复杂,也能够放在次日晚上跑。第二个晚上,若是进度跟不上,就不要回去睡觉了,后半夜眯几个小时就行;若是进度很快,第二个晚上也能够回去睡,为第三天晚上的冲刺保存体力。

第三天在前两天工做的基础上再作进一步的模型优化和推广,使之与实际状况更加吻合,或是有新的想法,插在前面的内容中。第三天的傍晚的时候,论文就要基本成型了,到晚上零点以前的时间,总稿,排版论文,最后的论文必定是队里三我的都要检查过的。

最后一晚上是必定要通宵的,写摘要,改摘要,检查论文中的错别字,最后定稿,标好版本序号,别最后提交的是一个半成品。虽然8:00交卷,可是能够提早半个小时到一个小时交卷,防止堵塞现象形成提交失败。

比赛中队友之间的交流、分工和配合很重要,要防止出现作重复工做的状况,也不能出现一个时间段内有某个队友无事可作,这就须要队长的领导和协调。

比胜过程中注意文件的备份,尤为是写好的部分论文的备份。防止出现一我的电脑挂掉,而后就没有而后了。此外,最后有一台备用电脑,里面装好建模所须要的全部软件,以备不时之需,也能够用来跑一些花费时间较长的程序。

比胜过程中要保持三天高效率的工做状态,要吃好喝好,学校提供了一餐15元标准的免费饭菜,还有各类水果,最后一晚上面包、泡面、咖啡、巧克力,三天过得仍是蛮滋润的。

比赛结束后,不要把三天的文件放在删掉了事,万一获奖通知去答辩时,只留下一篇论文,还要再从新弄一遍。

12. 关于美赛

美赛和国赛相比,有许多的不一样,网上有各类总结,再也不赘述。其实,美赛获奖比国赛要容易一点,由于毕竟参赛队伍少,获奖率高,大概有一半能获二等奖以上。

美赛的评阅标准和国赛不一样,美赛建模不须要太复杂,主要看思路是否是有创意。我参加13年美赛作“烤面包”的题目,用了复杂的三维传热方程,用有限元方法求解,弄的很复杂,仍是没有受到老美的青睐。

英文论文的写做是个考验,通常采起的方法是找翻译,咱们队找到了大学英语老师做为翻译,最后一天跟咱们熬夜翻译,才算弄出论文来。我了解到,中国矿大也是这么作的,最后一天集中不少英语老师来翻译文章。

13. 写在最后

“数模伤身体,参赛需谨慎”,比赛真的很辛苦。每次比赛完后,总有脑细胞死伤太多的感受,几天都缓不过来。亲眼看到一个胖胖的学长搞完一个暑假的数模后瘦了一圈,不失为一个减肥的好方法。

至今依然怀念暑假一块儿集训的日子,几十个参赛者无私分享,激烈讨论,交流方法,帮忙查bug,天天奋斗到深夜,真是一段激情燃烧的日子。

衷心祝愿母校的数模发展蒸蒸日上!

祝愿各位指导老师身体健康,工做顺利!

祝愿后起的学弟学妹可以得到更好的成绩!

 

告别数模!

相关文章
相关标签/搜索