1. 项目缘起:一次“临时起意”的建模竞赛之旅
那是在2021年初,寒假刚过一半,我正享受着难得的清闲。一个平常的下午,手机突然在宿舍群里炸开了锅。消息来自我的室友老张,一个平时话不多但行动力极强的家伙。他转发了一条通知,标题是“2021年美国大学生数学建模竞赛(MCM/ICM)报名启动”,后面跟着一句:“兄弟们,搞不搞?还有一个月,来得及。”
说实话,当时我的第一反应是“疯了”。美赛,全称美国大学生数学建模竞赛,在理工科学生圈子里,它的名号如雷贯耳。四天时间,三人一队,全英文完成一篇解决实际问题的建模论文。对于当时大二、只上过基础数学和编程课的我来说,这听起来更像是一个“不可能完成的任务”。我们既没有系统的建模训练,也没有论文写作经验,更别提用英语撰写一篇学术报告了。但老张的下一句话戳中了我们:“就当是一次极限学习挑战,输了不亏,赢了血赚。以后简历上也能多写一笔。”
就是这种“不亏”的心态,加上年轻人特有的“莽劲”,我们三个——我(负责编程和数据分析)、老张(数学功底扎实,负责模型构建)、还有另一位室友小王(文笔好,英语六级高分,负责论文写作和翻译)——就这样仓促组队,踏上了2021年美赛的征程。我们的目标很朴素:完整地走完流程,提交一份不算丢人的作品。现在回想起来,那四天高强度的头脑风暴、争论、调试代码和熬夜写作,其价值远远超过了最后那个“Successful Participant”(成功参赛奖)的证书。它更像是一次浓缩的科研预演,让我对如何将一个模糊的现实问题,通过数学工具转化为可分析、可求解的模型,有了第一次真切而深刻的体会。
2. 赛题拆解:我们面对的“可持续性”谜题
2021年的美赛在2月初举行,我们拿到的是MCM(数学建模竞赛)的C题。当年的题目是关于“黄蜂的传播与蜂蜜生产”。问题背景大致是:亚洲大黄蜂(Vespa mandarinia,俗称“杀人蜂”)在北美部分地区被发现,这种入侵物种对本地蜜蜂种群构成严重威胁,进而可能影响依赖蜜蜂授粉的农业(尤其是蜂蜜生产)。题目要求参赛队建立一个模型,预测大黄蜂在美国的传播时空动态,评估其对蜂蜜生产的影响,并提出应对策略。
刚看到题目时,我们仨是懵的。生物学、生态学、地理传播、农业经济……这些领域我们几乎一无所知。但美赛的精髓就在于,它不要求你是该领域的专家,而是考察你如何运用数学建模的思维,快速学习并简化一个复杂系统。我们的第一步,就是抛开对“黄蜂”本身的恐惧,将问题抽象成几个核心模块:
- 传播模型:大黄蜂如何扩散?这本质上是一个物种入侵的空间传播问题。我们可以借鉴经典的传染病模型(如SIR模型)的思想,但主体不是人,而是地理网格。需要考虑的因素包括:繁殖率、自然扩散能力(飞行距离)、人类活动(如通过货运无意间携带)导致的跳跃式传播,以及环境适宜度(温度、湿度、植被)。
- 影响模型:大黄蜂如何影响蜂蜜生产?这里需要建立“大黄蜂数量”与“蜜蜂种群数量”之间的关系,再通过“蜜蜂种群数量”与“蜂蜜产量”之间的关系进行传导。可能是一个捕食-竞争模型,大黄蜂会捕食蜜蜂、争夺食物资源。
- 干预模型:采取什么措施可以减缓或阻止传播?这包括监测、物理清除、生物防治、公众教育等。我们需要量化不同措施的成本(人力、物力)和效果(降低传播速率、减少最终影响范围)。
通过这样的拆解,一个看似庞杂的生物学问题,被转化成了我们相对熟悉的微分方程、网络模型、优化决策等数学和编程问题。这让我们悬着的心放下了一半。接下来要做的,就是为这些抽象的模块寻找具体的数据和数学表达式。
3. 模型构建:从“元胞自动机”到“成本效益分析”
在确定了核心模块后,我们进入了最关键的模型构建阶段。这个过程充满了试错和争论,也是我收获最多的地方。
3.1 传播模型:当黄蜂在网格上“奔跑”
对于空间传播,我们放弃了复杂的流体力学模型,选择了一个更直观、也更容易实现的工具——元胞自动机。我们将美国地图(我们主要关注华盛顿州及周边初始发现区域)离散化为一个个网格(Cell)。每个网格有几种状态:未被入侵(S)、已被入侵且存在活跃种群(I)、已被入侵但已被清除(R)——看,这其实就是SIR模型的时空变体。
每个时间步长(比如一周),规则如下:
- 邻近扩散:一个“I”状态的网格,可以以一定概率P_spread感染其上下左右四个相邻的“S”网格。这个概率基于大黄蜂的自然扩散距离和当地环境适宜度指数(我们从一个公开的气候数据网站爬取了温湿度数据,做了简单的归一化处理)。
- 跳跃扩散:为了模拟人类运输导致的远距离传播,我们设置了一个很小的全局概率P_jump。在每个时间步,所有“S”网格都有极小的概率直接变为“I”,模拟黄蜂随货物到达新地点。
- 清除机制:如果某个网格实施了干预措施(如报告后清除),则其状态可以从“I”变为“R”。“R”状态的网格不会被再次感染(视为已建立监测体系)。
我们用Python的numpy和matplotlib实现了这个模型。调试参数P_spread和P_jump是最头疼的,因为没有真实的历史传播数据来精确校准。我们只能根据文献中查到的大黄蜂年扩散距离(约几十公里),反向估算每周的大致概率,并进行了大量的敏感性分析,观察参数微小变动对最终传播范围的影响。
注意:在缺乏数据时,进行参数敏感性分析至关重要。在论文中,我们坦诚地说明了参数的不确定性,并通过多组模拟展示了不同参数下的可能情景,这比硬着头皮给出一个“精确”的虚假预测要严谨得多。
3.2 影响模型:建立简单的“伤害链”
影响模型我们做得相对简单。我们假设一个区域内大黄蜂的数量(与“I”网格的数量和密度相关)会对蜜蜂种群增长率产生一个负面的抑制效应。我们建立了一个简化的微分方程:
dH/dt = r * H * (1 - H/K) - β * V * H
其中,H是蜜蜂数量,V是大黄蜂数量(由传播模型输出),r是蜜蜂内禀增长率,K是环境承载量,β是捕食/竞争系数。蜂蜜产量则假设与蜜蜂数量H成正比。
这个模型非常粗糙,它忽略了蜜蜂的防御行为、其他环境影响等。但我们的理由是:在四天有限时间内,建立一个指出关键负相关关系的简单模型,比构建一个复杂但漏洞百出的模型更可取。我们通过调整β值,模拟了“无黄蜂”、“黄蜂入侵”两种情景下的蜜蜂种群和蜂蜜产量变化。
3.3 干预策略模型:一个多目标优化问题
题目要求提出成本效益最优的策略。我们将问题定义为一个多目标优化问题。
- 目标1(效益):最小化最终被入侵的网格总数(或最大化未被入侵的面积)。
- 目标2(成本):最小化总干预成本。我们定义了不同措施:网格监测(低成本)、发现后清除(高成本)、建立隔离带(中等成本)。成本与实施的网格数、措施类型相关。
- 约束:干预资源(如人力、预算)有限。
我们设计了一个简单的启发式策略模拟器:在传播模型的每个时间步,根据当前“I”网格的分布,优先对传播前沿的“S”网格进行监测,一旦发现转为“I”,立即实施清除。我们尝试了不同的预算水平,绘制了“成本-效果”曲线(帕累托前沿),并讨论了几种典型预算下的推荐策略。
4. 论文写作:将“代码”和“公式”转化为“故事”
模型跑出结果,只是完成了工作的一半。如何将四天的思考、争论和计算结果,组织成一篇逻辑清晰、表达专业的英文论文,是更大的挑战。这部分主要由小王主导,但我们都深度参与。
4.1 结构就是逻辑
美赛论文有相对固定的结构,我们严格遵守:
- 摘要:重中之重!评委最先看、也可能只看这部分。我们花了整整一个下午打磨摘要。它必须独立成篇,用一页纸的篇幅,清晰陈述问题、方法、主要模型、关键结论和建议。我们采用了“问题重述—建模思路—主要模型—数值模拟—结论建议”的流水线,确保每个环节都点到。
- 引言:介绍问题背景、重要性,并简要综述我们的整体思路。
- 假设与合理性:明确列出所有主要假设(如“忽略其他蜜蜂天敌”、“人类活动导致的跳跃传播概率恒定”),并逐一解释其合理性。这是体现我们思考严谨性的关键部分。
- 模型建立与求解:对应我们之前的三个模块,分节阐述。每一节都遵循“问题分析—模型设计—公式/算法描述—求解过程”的逻辑。我们将核心的微分方程和元胞自动机规则用LaTeX排版得清清楚楚,并插入了关键的模拟结果图(如黄蜂传播的动态GIF图、蜜蜂数量随时间变化对比图)。
- 灵敏度分析:专门一节讨论关键参数(P_spread, P_jump, β)变动对结果的影响,证明我们的结论不是建立在脆弱的假设之上。
- 模型评估与推广:客观分析我们模型的优点(直观、灵活、可扩展)和缺点(数据依赖性强、部分关系过于简化),并提出未来改进方向(如集成机器学习预测环境适宜度)。
- 结论:再次总结全文发现。
- 参考文献与附录:规范引用我们参考的少量文献和网站。附录里放了核心代码的片段(如元胞自动机的主循环)。
4.2 可视化:一图胜千言
我们的论文能最终看起来像模像样,可视化帮了大忙。除了基本的曲线图,我们做了几件效果很好的事:
- 传播动态图:用
matplotlib.animation将元胞自动机模拟的传播过程做成了一个GIF动图,放在论文里,直观展示了黄蜂随时间“蔓延”的趋势。 - 地图叠加:将模拟结果(“I”网格)叠加到美国地图的轮廓上,使空间分布一目了然。
- 多情景对比:将“无干预”、“中等预算干预”、“高预算干预”三种情景下的最终入侵范围画在一张对比图上,并用不同颜色区分,策略效果高下立判。
这些图都不是花架子,它们直接服务于讲述模型的故事。
4.3 英语写作:清晰高于华丽
我们的英语水平有限,所以小王定下的原则是:语法正确、用词准确、句子简短、逻辑连贯。避免使用复杂的长难句和生僻词汇。我们大量使用了“First,... Then,... Furthermore,... Therefore,...”这样的连接词来引导逻辑。完成初稿后,我们三人轮流朗读,检查拗口的地方,并使用Grammarly检查了基本的语法和拼写错误。
5. 四天实战:高压下的协作与时间管理
回顾那四天(准确说是96小时),时间管理是除技术外最大的挑战。我们制定了一个粗略的时间表,并在过程中动态调整:
- 第一天(Day 1):上午:下载题目,各自阅读、搜索背景资料。下午:集体讨论,确定选题(C题),完成问题拆解和初步建模思路。晚上:分工,我开始搜集环境数据、搭建元胞自动机的基本框架;老张推导影响模型的微分方程;小王开始撰写引言和问题重述部分。
- 第二天(Day 2):全天模型攻坚。我调试传播模型参数,生成初步模拟结果。老张将我的输出作为输入,编写影响模型的仿真代码。两人不断交流,调整接口。小王根据我们的进展,撰写模型假设和传播模型部分。晚上,我们进行了第一次模型整合,发现数据传递有问题,调试到凌晨。
- 第三天(Day 3):上午:完成所有模型的数值模拟,得到基础结果。下午:开始灵敏度分析和策略模拟。小王同步撰写模型求解和结果分析部分。晚上:集体讨论所有图表,确定最终要展示的图表清单。我负责赶制图表,小王继续完善文字。
- 第四天(Day 4):最后冲刺。上午:我完成所有图表最终版。小王整合所有部分,撰写摘要、结论、评估。老张检查所有数学公式和推导。下午:三人共同进行最终通读,修改语病,调整格式。在截止时间前4小时完成初稿。最后几小时,进行细节打磨、参考文献排版、生成PDF并反复检查。在截止前30分钟,成功提交。
心得:1)第一天定好方向至关重要,切忌犹豫不决。2)并行工作:写作与建模同步进行,不要等模型全部做完再写。3)定期同步:我们每半天开一次短会,同步进度和问题。4)保存版本:代码和论文用Git(或简单点,每天复制备份)管理,避免灾难性丢失。5)最后留足时间给摘要和格式,这是门面。
6. 收获与反思:远不止于奖项
最终,我们队获得了“Successful Participant”。对于第一次参赛、准备仓促的我们来说,这个结果完全可以接受。但这次经历带给我的,远比一个奖项名称丰富:
- 快速学习与问题拆解能力:如何在完全陌生的领域,快速抓住核心矛盾,并将其转化为可解决的数学问题,这是美赛教给我的最重要技能。这种能力在后续的科研和项目中无数次用到。
- 编程与建模的结合:以前编程序多是完成作业。这次是为了解决一个具体问题,代码是模型的载体,也是验证想法的工具。我深刻体会到,建模思想决定“做什么”,编程能力决定“能不能做出来”。
- 团队协作的真谛:合理的分工基于对彼此能力的信任。激烈的争论是为了模型更完善,而不是为了输赢。在最疲惫的时候互相打气,共享一碗泡面,这些记忆比模型本身更珍贵。
- 学术写作的启蒙:第一次按照学术规范,完整地撰写一篇英文“论文”,从摘要到参考文献,让我对学术工作的产出形式有了最初步的、也是最直观的认识。
- 抗压与时间管理:96小时的高强度工作,是对身心和意志的锤炼。学会了在压力下保持冷静,在混乱中理清优先级。
当然,也有很多不足:模型比较初级,很多地方简化过度;数据来源单一,且未做深入清洗;策略优化模型比较简单,没能用到更高级的算法(如遗传算法、强化学习)。但这些不足,恰恰指明了后续学习的方向。
那次“临时起意”的美赛,就像一次突然的野外拉练。我们装备简陋,地图模糊,过程跌跌撞撞,但最终走完了全程。它没有让我们立刻成为建模高手,却实实在在地在我们心里埋下了一颗种子:面对复杂问题,不再畏惧,而是习惯性地想去分析、拆解、用工具去构建解决方案。这颗种子,在之后的学习和工作中,慢慢地生根发芽。所以,如果你也在犹豫是否要参加一次这样的竞赛,我的建议是:不要过多考虑结果,组好队,勇敢地跳进去。那段全力以赴、与队友并肩作战、将知识付诸实践的经历,本身就是最大的奖励。