2019 美赛体验

与阿片类药物抗争的四天

Posted by Nino Lau on January 31, 2019

2019.1.25~1.29,我参加了美国大学生数学建模大赛,也就是文明遐(zhong)迩(guo)的“美赛”。此文主要是记录一下参赛过程和感想。

赛前准备

其实,我对这个比赛做的准备谈不上完善。因为比赛正好连着期末考试,而且我也是比赛前一个月才决定参加这次比赛的,所以我比赛前仅仅是调好了模板,仔细地分析了几篇往年的O奖论文而已。我觉得这种比赛的成功主要是来自于平时的积淀,不是一朝一夕就可以达到较高的完成度的:美赛的特点决定了它其实是一个十分有利于计算机学院的学生的,因为建模往往会用到机器学习、统计学习方法、数据分析基础等学科,这些学科都是我们学的专业课;模型的好多代码都是现成的,比如我们这次用到的K-means就是我队友课程的作业,可以直接拿来用;除此之外,写report的时候,latex的熟练使用也离不开平时的使用,现场学肯定是来不及的。所以说,高熟练度和精准度的完成离不开平时的积累,比赛前的一周我们只是用来适应这个比赛的模式,看看往年论文的“套路”。一个有趣的事情是:我的专业是SE,而我的两个队友学的是CS,但最后是我负责写的论文,他们来负责打代码。

建模过程

2.25 6:00 公布的题目,我们一上午确定了选择C题——美国阿片类药物危机。这个题目主要是让我们分析药物泛滥的原因并针对此制定策略。这里说一个题外话:我队友Zang本来倾向于选择波多黎各的空投救援——B题,但是我已经想出了C题的一个可行方案了(虽然后来证明并不可行),所以他只好跟着我们的节奏走了。我们一开始想用拟合或者回归的思路完成,但是结果出人意料地不好,基本上都是波动变化毫无规律的数据,没有什么拟合和回归的价值,看起来真实世界的数据挖掘确实不那么有规可循。当时我们感觉很绝望、谁都不知道怎么办了,准备考虑换题。大家都很郁闷,第一天就这样过去了。

好在Zang和Robin第二天想出了办法,主线采用了他们去年用到的Cellular Automaton元胞自动机(貌似是他们专业课学的、或者是他的研究领域)模拟演化,并把地理位置的相关性纳入考虑范围。接下来就是队友疯狂carry时刻:用下图,一系列的techniques搭建好了模型,并用了一天打好了task I代码。这段时间我主要是了解这些tech的核心思路和优势,用来后期吹水,并写好了introduction。经过一些小小的tricks,基本上搭建好了模型的雏形。

第三天,我负责完成task I的report,他们继续完成task II的模型搭建和代码实现。

我们的进度进行的不紧不慢,殊不知这是暴风雨前的宁静。到了晚上,我们基本上已经完成了模型的最终版,也就是说可以进行随意的数据提取了,也初步绘制了一些漂亮的结果:

虽然模型在前三天搭建好了,但是这还是远远不够的:我们仅仅完成了task I、task II的模型概述,其他部分一概没写。

在第四天的晚上,Robin调好了可视化结果之后,我和Zang便在Overleaf上协同工作了一把:他负责写实验和分析,我负责在后面润色。在大概第五天早晨 5:00 ,我们除了summary和memo都基本上写完了。

最终,在千钧一发之际,我们赶完了report,长舒一口气。才发现,低头抬头便是一宿。

感想

比赛结束了,之后几天我回到家补觉补了好久,才缓过来自美赛抑或生活的疲惫。我在之后几天又回读了几遍报告,发现了一些当时出现的低级的笔误,懊悔不已,为自己,也为我的队友们。

虽然这次比赛,最后不一定会拿到心仪的奖项,但是这次比赛对我的能力是一种提升:加强了对teamwork的理解、提升了写paper的熟练度、以及对学海无涯、浩瀚无垠的知识的敬畏。离出成绩还有一段时间,我在此许下一个愿望:希望可以我们可以如愿拿奖,为我大学生涯的第一次也可能是最后一次建模画上圆满的句号!