数模美赛2018流水账及反思总结

组队

  去年十月初的一个阳光明媚的下午,笔者突然收到天王发来的一同参加美赛的邀(you)请(pian)。我想,一来高中时就学过数学建模的拓展课程,虽然学得不深但还是有着一些兴趣,二来大学生活如此悠闲,也想给自己找点事情做(结果后面这句被日后的自己实力打脸),于是两人一拍即合,在初步了解了美赛的大致参赛时间与背景之后,我便当即同意加入了天王的队伍。随后天王又拉了一位理院同学来,我们的队伍也就此正式组建完成。

  我们伊卡斯特皇家建不出模型队(此为非官方队名)有三名成员:天王、吃瓜陈和买饭陈(即笔者)。我来自计算机专业,先前有点编程基础;天王与吃瓜陈则都是数学专业的,理论水平相当强劲。我和天王的英语水平差不多,而吃瓜陈在这方面稍胜我们一筹。因为都是大一萌新,所以我们团队并没有严格的划分出程序员、建模员与写手这三个职位。基本上,由我来负责买饭……

散漫学习期

  组队完成以后,就开始比较自由地学习了。在十月份到十一月份期间,我主要学习并掌握了MATLAB的语法、语言特性等等内容,以及一些简单的规划模型。然而期中考之后我莫名其妙地蜜汁跑去研究LINUX操作系统源代码然后就把数模扔到了一边……嗯……直到期末考试之前就再也没动过。

寒假前的宣讲会与大扫荡

  寒假正式放假之前(18.01.25),在MITA学长学姐的带领下,我们队全员和其他几个萌新一起去吃了韩式自助烤肉火锅。然而笔者依旧没能摆脱“一吃烤肉就会拉肚子”的神秘诅咒……听着学长大致解释完数学建模的意义以及如何备战后,笔者又和天王跑去了图书馆。在充满学习气息的优雅氛围中宣泄了一番自我后,我们扫荡了一波图书馆,借走了几本英语、MATLAB应用以及数据分析相关的书。其中的一本《数据挖掘与分析:概念与算法》的印刷、装订质量都非常好,内容难度较大但应用性强,特此马克,希望日后能有机会仔细研读。

全力备战阶段

  随着寒假的开始,距离美赛的到来只剩下了十数天左右,我们都进入了全力备战状态。我先试着粗略刷了一遍蓝书,感觉跨越性确实太大而且前置知识完全不够,一轮下来基本全程懵逼脸。随后笔者回头重温了一遍MATLAB,可感觉在完全不了解对矩阵的相关操作的意义下去学实在是太吃力,于是赌了一把,找了本评价非常好的线性代数教材(《线性代数及其应用》)先开始啃了起来。事实证明,这一选择带来了非常好的效果:对MATLAB的直觉性使用的正确率大大提升,并且对理解其他教材上与矩阵、向量有关的公式带来了极大地便利。随后试着精读了一遍黄书,然而能真正理解的只有前数章……接着去找了本概论与统计的教材,精读了几篇O将论文,又和小伙伴约了几次饭(其实是约学习),然后就迎来了美赛。

选题

  DAY1的一早准时从床上跳起来把外文论文的下载的页面先全准备好,然后点开题目发布页静静地狂按F5。在正式比赛开始之前的十分钟左右,有一个镜像站点不负众望地提前公布了题目,于是立刻下载并随手转发到周围的几个群里。队友此时也以及上线了,稍微分工了一下阅读内容,然后开始读题。我读的是AB题,A题物理性太强,跳。B题数据太烦,跳。遂询问队友情况。C题,跳。D题,跳。E题,跳。F题……我屮艸芔茻F题是来压轴的嘛怎么这么难(黑线脸)果断跳。嗯,然后发现没题目了……

  现把各个题目大意罗列于此:

  A题:分析电波在海面的反射传播

  B题:分析主流语言使用人口的变化

  C题:分析各州能源发展概况

  D题:优化充电桩的分布策略

  E题:分析地区稳定性受气候变化的影响

  F题:量化私人信息的价值

  和队友交流了一番之后,感觉D题可能会更适合我们,遂开始全员查找D题文献。

换题

  你想啥呢,不存在的……

找数据

  研究了一下特斯拉的官网,发现他们给的充电站地图用的是GoogleMAP的API做出来的,然后看了一下源代码发现……他丫的居然把整个地球上的所有充电桩的位置当做常量放在了发送来客户端的脚本代码里(第二次黑线脸)……不过也好方便我处理数据。随后发现,除了原始数据以外还有一些需要一个个访问查询的附加数据(地址、所属国家、具体的充电器数量及功率、提供的充电站类型以及服务类型等等……)。于是直接把我之前准备的某吧某图板爬虫程序拿出来魔改了一番,测试了几个数据后开始跑。但是,蛋疼的来了,他特斯拉返回的数据里的”supercharger”字段玩出了三种错误!我读文献读到一半切回爬虫发现爬虫崩溃了……遂查错,修改代码,再跑,然后读文献。过十分钟切回来发现爬虫又崩溃了……于是重复上述操作然后再等……

  终于把令人智熄的数据整理上传之后,又上wiki去查了其他可能用得到的相关数据,也访问了几个大型的数据库,下载下来一个两百多兆的高速公路的拓扑结构数据,然后解压下来1.5G,遂尝试用MATLAB读取。结果MATLAB卡死……然后换了台I7_7700K+GTX1060+16G内存的台式机读取,依旧卡死……内心有些崩溃,随手把数据上传,队友试了几下也都表示放弃。

胡乱建模

  第一天主要是找文献和处理数据,第二天才开始认真地读起文献来。仔细阅读了几篇文献后发现有个叫巴斯扩散模型的东西,遂wiki之,发现居然可以直接那来解决电动车市场份额问题,窃喜。随后试着导出抄代码用MATLAB画出了图,发现是个S曲线,天王看后马上敏锐地联想到了逻辑回归模型的图形,随后也搞出了个方程式,至此一个问题基本解决。然后看天王那边已经开始试着用图论解决问题了,他首先提出了“宏观”与“微观”的概念,分别指人口密集的居住区之内与之外(或者可以理解为研究城市之间的高速公路上的分布情况与研究城市内的分布情况的两种不同的方法)。天王上来先用一套图论组合拳(Floyed最短路加上线性规划解网络流)解决了宏观也即高速公路上的问题,然后微观模型他没想到什么可行的方法。随后我读了几篇论文,略加思索,连抄带蒙闭眼糊出来了一套自以为可以解决微观尺度上的问题的模型,发群里,队友读后表示还算可行(可实际上我忘记考虑农村、城市、城镇之间的差异了Orz还存在着其他各种明的暗的问题……)。然后又去抄了一篇论文的方法,借了冈珀茨模型来预测车辆市场的增长情况。至此,建模阶段基本完成。最后确定下来的微观模型是在我原先设想的基础上进行了修改的一个基于条件限制的优化模型。

巴斯扩散模型演示图表

写程序

  简直丢人。我一个计算机专业的学生,瞪着那几个应该是已经被我完全理解了的破方程,硬是没能把程序给倒腾出来。天王还算争气,把那个图论程序写了出来,还找到了爱尔兰的数据,然后把程序跑了一遍,得到了非常满意的结果。

闭眼编数据

  写不出程序,情况就相当尴尬了……无奈之下我只好去编结论……首先是大致猜测了一个可能作为答案的数值,然后用了某种不太离谱的随机数生成算法在美利坚合众国的国土上随意建站。当然,对爱尔兰共和国也是如此操作了一番。在论文中,我美其名曰“在使用模拟退火算法计算出合理的分配量后使用计算机模拟程序利用随机化方法生成的可能的分布方案之一”

美术建模

  上传了生成好的坐标数据和结果示意图后,天王看了一下,略加思索:不行,你看这个站它被你建到海里了。我:!(第三次黑线脸)我气冲丹田,刚欲打开源代码修改一番参数时,天王说道,“没关系,小问题,我拿QQ截图处理一下就行。实在不行开一下Photoshop也肯定能解决。”我一惊,顿然感觉似乎领悟到了“美术建模”的真谛……

最终可选分布方案预览

最后的润色

  最后一天的下午六点左右,各项工作趋于完成,然后天王试着审核了一下草稿,结果……“这里什么逻辑啊!我要报警啦!”天王卖萌的声音不绝于耳,同时也暗示着我们一整晚艰苦卓绝的重写工作即将拉开项目。究其原因,是初期队友间的沟通不够以及一开始选择的论文框架有着很大的问题。在我和天王找数据、建模、编程、话题期间,吃瓜陈一直在跟随者我们的进度做翻译工作,但是很多时候我们并没有能够清晰表达自己的思想,也没有在其翻译完成后对内容立刻进行审核,导致不少译文逻辑不通或缺少了后来增加的意义重大的修改。具体的重写过程太过纷繁芜杂,此处不加赘述。总之我们一直改到了第二天四点,期间论文框架经过一次大变动,超过60%内容被重写,而摘要更是被反复重写了多次,而且改完内容之后还要通读全文查找语法错误和拼写错误……于是最终在天王的带领下,我们逐一完成了对最终成品论文的审核。

提交论文

  天王那边刷新几次都进不了官网,我挂了VPN等了会儿就成了,然后进去迅速打钩。随后我去洗了个澡,期间天王他们成功发出了邮件,再之后大家互道“新年快乐”、“晚安”就结束了这次紧张刺激的美赛。现在已确认邮件被官方接收并录入成功。

☆和小姐姐一起去看展☆

  嗯第二天睡了大半天后第三天和女票喜马拉雅美术馆参观了「奇迹:贝利尼家族与文艺复兴」特展。展品超多,也很有意思。什么?照片?别想了不会给你们看的。

经验反思与总结

  我啥都不会,也没想到什么经验……建议工科专业同学大一参赛前先学一下线性代数?还有,模型写出来即使解不出来也可以编个结论吹水一番(还是别学我了……)。

关于编程

  用Java写爬虫真的会比较痛苦……有空还是得学一下Python……Matlab是万金油但是用来写出了矩阵操作以外的内容都会感觉浑身难受。另外,用Matlab自带的工具箱对数据进行拟合比一次次改原码求结论再画图要高效多了(感谢天王指出)。

关于英语

  英语弱鸡表示无话可说。感觉吹水部分你直接照着写作文的方式用华丽的词语堆上去把……

其他

  如果可以,还是让所有成员聚在一起比赛比较好。这次线上合作让我感觉到了身边没有同学刺激一波的自己是多么的懒散……嗯博主和天王以及决定参加今年九月份的国赛了,不出意外的话各位到时候再见!

UPD:后来拿了谢谢参与奖……所幸之后国赛拿了一次上海市一等,这几年建模的时间还算没有白费。

UPD2:后来分手了。