公司动态
从美赛实战看数学建模:元胞自动机与微分方程解决物种入侵预测
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小时的高强度工作是对身心和意志的锤炼。学会了在压力下保持冷静在混乱中理清优先级。当然也有很多不足模型比较初级很多地方简化过度数据来源单一且未做深入清洗策略优化模型比较简单没能用到更高级的算法如遗传算法、强化学习。但这些不足恰恰指明了后续学习的方向。那次“临时起意”的美赛就像一次突然的野外拉练。我们装备简陋地图模糊过程跌跌撞撞但最终走完了全程。它没有让我们立刻成为建模高手却实实在在地在我们心里埋下了一颗种子面对复杂问题不再畏惧而是习惯性地想去分析、拆解、用工具去构建解决方案。这颗种子在之后的学习和工作中慢慢地生根发芽。所以如果你也在犹豫是否要参加一次这样的竞赛我的建议是不要过多考虑结果组好队勇敢地跳进去。那段全力以赴、与队友并肩作战、将知识付诸实践的经历本身就是最大的奖励。