今天是2018/09/06,好像又快到数学建模国赛的日子了。一直觉得自己应该写点东西,但又觉得自己还是不够资格,毕竟在数学建模上的建树不多甚至很差。但是还是想把自己的一些经验分享给即将参加国赛的学弟学妹吧。我想在此之前你已经看过很多国赛一等二等大佬们的经验分享,所以如果想换个口味,我这种建模loser的文章也可以看看,就当玩咯,反正也花不了多少时间。
不过成功的案例,我还是推荐一个帮助过我很多的学长的经验分享--我的零经验数模路
不想看多余的废话的,可以直接跳到--超多干货分享
为什么我要参见数学建模竞赛?
因为这个竞赛是我所在学校获取保研资格的竞赛之一。虽然我承认数学建模的过程中的确能获得很多知识,不过不好意思,最初始的目的就是为了保送研究生。
我的角色:coder
初次遇见数学建模竞赛是在大一下的举行的校数学建模竞赛,听说了这个比赛的重要程度(当然不是校赛就能保研,校赛只是用于选拔),加上收到当时所在协会的学姐的鼓励(啥也不会,只用Excel就得了个二等奖),所以和同室友马上就参加了。拿到题目后直接傻眼了,我记得当时是从”深圳垃圾处理“、”水能节源减排“和“生物医疗”的题目选择一道,不过当时确实什么都不会,首先就上贴吧啊,论坛啊之类的搜答案去了,结果也可想而之--全是卖论文的,关于“网上共享答案”这一点我会在之后给出我的一点点小建议。最后大一的校内比赛不了了之了。
收获:
2.2.1 学习阶段
转眼就到了大二下,为了不走大一的老路,从大约2017年4月中下旬开始,拿了一两本MATLAB和lingo的书每天呆在实验室啃。系统学习完MATLAB(现在,我不推荐学习lingo,因为有更好的替代品--yalmip,当然已经学习了的肯定是不错的,毕竟各有各的优点),就向国一学长借了两本数学建模的书籍正式刚模型。同时,和同实验室的一个朋友组好了队,一起学习数学建模,等着6月的校内选拔赛。
2.2.2 校内选拔
不久后,6月校内选拔赛开始了,虽然没能学习完两本书,但是一些基本模型是掌握了的。这次的题目有”钢结构优化“,”宜居城市评定“和”深圳垃圾处理”(垃圾处理真是热门。。。)。拿到题目后,稍微文献分析了一下,第一题和建筑物理有关,不大适合就干脆放弃了。第三题数据量没做过处理就没做了。锁定了最简单的第二题后,准备开干。
然而,这个时候,一个队友有事回家,另一个队友却说想打篮球晚点来。。。。其实当时心里真的是哔了dog的感觉,毕竟准备了挺长的时间而且也是很重要的一个比赛。
虽然比赛时间为一周,但是这一周也要上课嘛。不过咬咬牙自己单干了一两天,差不多把文献资料整理了一下,分析了一些重要的文献。比赛结束的前一晚,请学长过来帮忙看了看,终于完成了第一份数学建模的论文。
大约两周后,成绩下来了,不过很遗憾的是,只得到了建模二等奖。
阶段分工:
阶段收获:
2.3.1 背景
学校背景:
我的情况:
培训方式:
2.3.2 第一套模拟题
浪完了后,回到学校正式解决第一套题目,这次题目有:“能源相关的题目”,"交通分析",“快递派送”。因为受到学长论文的影响,很喜欢元胞自动机模型(学长论文中就是使用元胞自动机模型),这个模型很适合做交通类别的题目,所以选择了第二题,依葫芦画瓢的想搬过来用用,使用这个模型大约一下午+一晚上。晚上走的时候决定放弃了,在编程实现的时候,堵塞等待,红路灯时间设置,转向等问题不好实现,所以放弃了。
之后转向了VISSIM(交通仿真软件)学习,大约花了两到三天掌握了VISSIM的基本功能,队友们也将模型建立好了就等实现。不过,最后实现的效果并不好--有红绿灯反而使得交通更拥堵了。这样一来,所有工作全部废掉了,心情很是沮丧,和队友反复检验哪里有问题,到最后也没发现什么问题,因为不设置红绿灯时,汽车自己懂得避让然后转向。所以无奈,重新选题(这个时候距离第一次训练交卷大约还剩一个星期)。
之后选择了“快递派送”题目,这个题目做起来就很顺手了,一天半基本上就解决了所有问题。之后就是修改论文,对team member2写完的论文进行仔细推敲,反复修改,甚至是重写。因为特别想写好,所以这套题目花费了3-4天3个人同时写、修改论文。最后交卷并且去听了讨论会(每套题目,都会让完成组去分享)。
结果:
收获:
2.3.3 第二套和第三套题目
第二套:
第一套结束后,休息了一天就开始了第二套,这次又选择了一个“派送优化”类型的题目(这是一个错误的决定,即使我们学到了一些东西)。第二套题目是最累的一次训练,因为要解决的问题很多,但时间一共4天,最后我们完成的论文差不多有60页。
对启发式算法进行了实际运用,学习了yalmip(强烈建议学习这个东西,优化类型的题目真的很好用)
对比了别人做的方案,我们发现我们的模型还是相当不错的,本来想去分享的,但是还没走上台其他人就冲上去了。所以这次也没能分享。
第三套:
2.3.4 训练结束
训练结束了,收获到很多东西,书上的内容基本都看完了,基本上每行代码都看了敲了,但是却没什么信心(这大概也在预兆了我们的失败)。结束训练后,大概也开学了,这期间对所有模型进行了总结归类,写论文的同学也对模板进行了重排版,购买好零食,电脑做完清理,等等xxx。反正这段时间就是在为国赛做好准备。
2017年的国赛是晚上8点开始的,拿到题目后,首先还是题目分析。不过我们组很简单了,收到第三套题目的影响,B题是一道数据处理类型的题目,所以1个多小时就pass了(反观隔壁组大约花了3-4个小时选题),就做起了A题“CT图像复原”。
过程:
一点小感悟:
结果:
不甘心的我,在一学期之后又继续组队参加了美赛,不过结果还是不好,我也就不废话了。下面就综合我个人的感受给大家一些建议吧:
先给队里的程序员:别去优化你的程序,不要想着去抽象、简化代码,这样没有任何意义,反而浪费了很多时间。
再给所有队员们:只要不是特别过分的错误,任何时候都别去责怪你的队员,题目困难,大家都是一样的,所以撸起袖子加油干吧!!!
在平常训练的时候,不要只做擅长的类型,既然是训练就应该涉猎广一点。
团队的配合真的很重要,一个人的实力再强也没什么用,因为你的精力和时间都是有限的,合理的对全队分工才是真正重要的。一个团队应该选择一个有决定权力的队长来管理分工团队。
放宽心态:别因为一时的错误,失败,贬低就没了自信,很多时候有自信才能做好这个工作,看我们团队和学长的团队这就是很大的区别(学长文章)。
适当加入一些网上的讨论群(虽然比赛大纲里说了不允许交流,但是私下交流其实蛮重要的,毕竟我们团队就是太过封闭,完全自己动手解决也是蛮痛苦的),但是一定不要依赖这个,而是在你们一筹莫展的时候有时候能找到一些突破点。
适当地进行放松,合理地时间规划:这个得根据你们平时训练时的节点进行安排,我觉得没有固定的时间节点,因为每个团队都是不一样的,每个人的精力也都是不一样的。但是尽量让团队中的三个人一起工作一起休息,这样能够更好的发挥效率,另外结合我的经历,我不鼓励体力战术,因为实在是太累了,效率也相当低下。
如果不是特别擅长精确类型的题目,尽量选择模糊类型题目,这样更容易获得好成绩(美赛经验,当然国赛也适合)。
差不多就这些,虽然大部分是鸡汤,但是其实这些所谓的鸡汤也真的很重要。最后,就来分享一大堆干货吧。
搜索引擎的正确使用姿势:
第一,也是非常重要的前提,请一定要能。
如果你还不能,要么去买VPN,要么也可以使用chrome的插件(chrome内核系的浏览器都可以用)--谷歌访问助手:
链接:https://pan.baidu.com/s/1zsSkUgL-m7pqwXdmeb2ovA 密码:cqj5
现在我假设你已经能了,个人推荐使用搜索引擎的顺序:
Google>360搜索>百度 (微软的bing我不知道怎么样)
接下来就是非常重要的三条搜索指令:
上述三条搜索指令请一定一定要掌握,所有的指令都是command:content形式。如filetype:xls,以天气数据为例,可以得到下图
天气数据.png
相信你已经懂了这个指令的意义了,对于天气数据关键字,只搜索xls类型文件。这对于搜索论文(pdf类型文件),数据(xls,csv,txt等),非常有用。基本上是我用得最多的指令之一了。
在如intitle指令,这个指令的意思是,在我所搜索的条目中,标题一定要包含:后面的内容,如:
weather.png
可以看到,所有条目全部包含"weather"关键字。其实还有个指令-""(英文的双引号),把所要搜索的内容用""包含起来,所得到的结果是,所搜索的内容必须包含这个关键字,不限于内容还是标题。如下图:
RavenXr.png
可以看到,从搜索结果来看,只要内容包含“Raven XR”就会显示。
最后在介绍很重要的指令site。这条指令的意思是,所要搜索的内容只在site:后的网站中进行搜索。
如,只在CSDN中搜索数据结构:
site指令.png
所有的指令可以交叉使用,这就留给你自己去探讨了,如果你想学习其他有用的指令,也可去查一下哦,我认为最常用的3个就是上面这3个了。
综合的搜索引擎:http://search.chongbuluo.com/
文献管理工具
就我个人来说,还是推荐综合使用Zotero和EndNote两款文献管理工具:
Zotero的优点在于提供chrome插件,便于保存资料,也提供汉化版本,提供在线笔记,团队文献资料共享。Zotero的具体使用可参考:https://www.yangzhiping.com/tech/zotero1.html
EndNote的优点在于支持各种格式导出,内置文献标记,排序,文献重要程度排行标记等等。但是不支持汉化,而且略微卡顿。
如果你使用Word排版的话,两款工具都提供文献插入标号和自动更新,不过好像Zotero才支持国标吧,这点你可以自己去查实咯。
团队协作
如果你不想所有数据全丢在QQ群然后各种重命名的话,推荐坚果云,把相关资料共享,然后建立一个以自己名字为名的文件夹,然后大家都共享咯。
到底使用Word还是Latex排版?
虽然我个人超爱Latex的文字排版,但是我还是建议参加国赛的同学,在不熟练使用Latex的情况下,除了书写公式以外,还是老老实实用Word吧。
对于要使用Latex的同学,这里给个模板:
http://www.latexstudio.net/archives/10834.html
https://github.com/latexstudio/CUMCMThesis
参加美赛的同学,就更推荐Latex一点了,因为Latex对英文的支持是相当好的,排版出来的感觉也是很美的,只管写内容不关心排版不是很爽吗(反观没学习Latex之前,在论文写作完成后,排版总是会花费很长的时间,所以参加美赛的同学学习一下Latex还是不错的),美赛模板如下:
http://www.latexstudio.net/archives/9333.html
如果使用Latex排版,我想制表应该是所有使用Latex的人一个诟病,所以这里提供一个解决方案:
http://www.tablesgenerator.com/
如果你使用Word排版,那么书写公式一定让你头疼,那么我劝你还是花费一天去学下Latex公式书写(其他的什么都别学)然后使用pandoc转成word公式(不要害怕,安装pandoc很简单,转化也只需要一条命令行),当然也可以使用MathType。
代码搜索
Github当然是首推的:https://github.com/
联合开发网:http://www.pudn.com
codeproject:https://www.codeproject.com/
oh,还有个我自己整理的代码(不算搜索,但是常用的代码还是有的):https://github.com/zzbb1199/Mathematical-Modeling
一些数学建模的网站
http://nveyun.com/
http://www.mcm.dept.ccut.edu.cn/
http://www.mcm.edu.cn/
http://www.madio.net/forum.php
论文搜索
一个综合的网站:http://scholar.chongbuluo.com/
Google学术:https://scholar.google.co.jp/schhp?hl=zh-CN
知网:http://kns.cnki.net/kns/brief/default_result.aspx
维普:http://qikan.cqvip.com/
万方:http://www.wanfangdata.com.cn/index.html
有很多英文的站点,但是做数模嘛,其实好好用好上面的几个网站就够了。
数据搜索网站
国家统计局:http://www.stats.gov.cn/tjsj/ndsj/
国际数据:http://data.stats.gov.cn/index.htm
统计年鉴:http://www.yearbookchina.com/
数析网(很推荐):http://www.tjsql.com/index.aspx
搜数:http://www.soshoo.com/index.do
谷歌数据集:https://toolbox.google.com/datasetsearch
中国统计信息网:http://www.tjcn.org/
优易数据:https://www.youedata.com/
别的博主整理的:https://blog.csdn.net/juanjuan1314/article/details/50895793
查重
PaperFree:https://www.paperfree.cn/
大雅:http://dsa.dayainfo.com/
知网:http://www.cnki.cn/free.html
PaperYY:https://www.paperyy.com/
翻译
翻译狗:https://www.fanyigou.net/
谷歌:https://translate.google.cn/
百度:https://fanyi.baidu.com/?aldtype=16047#auto/zh
有道:http://fanyi.youdao.com/
虽然很多人喜欢谷歌,但是个人更喜欢百度。
对了,有道的客户端也是支持pdf翻译的,如图:
有道翻译.png
MATLAB工具箱
gatbx工具箱(遗传算法工具箱):https://download.csdn.net/download/qq_35109096/10554786
yalmip工具箱(优化求解器):https://download.csdn.net/download/qq_35109096/10554783 (记住一定要配置gurobi)
lpsolve工具箱(优化求解器):https://download.csdn.net/download/qq_35109096/10554779
libsvm工具箱(更好的SVM工具箱):https://download.csdn.net/download/qq_35109096/10554782
一些软件分享
MATLAB2014:链接:https://pan.baidu.com/s/1v--5kvgXWEg34MWjVEWFcg 密码:z722
SPSS:链接:https://pan.baidu.com/s/1Y8lztXXo5zGcPvCWfkJNKw 密码:xabq
一些视频教程
VISIO:链接:https://pan.baidu.com/s/1qm4TwNMxR2yW2UTolb5leA 密码:u8yt
VISSIM:链接:https://pan.baidu.com/s/1D7EbPFRWCoFYUKd_NlRjOg 密码:d70j
关于数据可视化
有些同学很想把图做得精美一点,ok,我理解,毕竟我也是这样过来的,但是我不推荐把过多的时间放在这上面。但是如果有时间,可以试试以下方式:
呼,或许有点多了,不过我觉得重要的还是加粗了。有需要的同学可以看看吧。那,,,就这样了呗。
最后,预祝所有学弟学妹们建模都能取得好成绩。