数学建模比赛需要三个人一起完成。我们三个是研究生同学。我们参加了研究生数学建模比赛。最后我们拿到了一等奖。这篇内容说说我们做的事情。我们的论文写了什么。我们怎么做的。我们遇到了什么困难。我们怎么解决的。
我们三个人专业不一样。一个学计算机。一个学数学。一个学机械。我们觉得这样组合很好。数学建模需要多种知识。计算机的同学会编程。数学的同学懂理论。机械的同学了解实际问题。我们很早就决定组队。我们提前一个月开始准备。
我们找了很多以前的题目看。我们读了一些优秀论文。我们发现好的论文有几个特点。问题分析要清楚。模型要合理。求解方法要有效。结果要明白。表达要整洁。我们分工练习。计算机的同学练习编程算法。数学的同学练习模型推导。机械的同学练习问题理解和写作。我们每周讨论一次。我们模拟比赛过程。我们用一个旧题目做练习。我们在三天内完成一篇论文。我们发现合作不容易。我们经常有不同意见。我们学会互相听取。我们学会妥协。我们学会把想法说清楚。
比赛题目公布那天是上午。我们下载了题目。一共有六个题目可以选。我们花了两个小时读题。我们讨论每个题目。第一个题目关于交通流。第二个题目关于医疗器械优化。第三个题目关于环境监测。第四个题目关于供应链。第五个题目关于图像识别。第六个题目关于能源分配。我们考虑自己的知识。我们考虑题目的难度。我们考虑数据的情况。我们选了第二个题目。题目是关于医院呼吸机配置的。新冠疫情让呼吸机很重要。题目要求设计呼吸机的分配方案。要考虑不同地区的人口。要考虑不同地区的疫情。要考虑呼吸机的生产和运输。要考虑公平和效率。我们觉得这个问题有意义。我们觉得我们能做。
我们开始工作。第一步是理解问题。我们把问题读了好几遍。我们把问题的要求列出来。问题有三个部分。第一部分是建立模型。模型要确定呼吸机的分配数量。第二部分是模拟不同疫情场景。第三部分是给出政策建议。我们明确了目标。我们需要一个数学模型。这个模型要能计算每个地区需要多少呼吸机。我们需要考虑很多因素。感染人数、住院人数、重症人数。医院床位数量、医生数量。呼吸机的类型、使用时间。运输距离、成本限制。公平性原则、效率原则。
我们开始建立模型。数学的同学提出基础框架。我们决定用需求预测模型开始。我们使用传染病模型预测感染人数。我们参考了SEIR模型。这个模型把人口分成几类。易感者、暴露者、感染者、康复者。我们修改了模型。我们增加了住院者和重症者。模型需要参数。传染率、潜伏期、住院率、重症率。我们查找了很多文献。我们找到了相关数据。我们确定了参数范围。
预测了感染人数和重症人数。我们就能计算呼吸机需求。呼吸机需求不等于重症人数。有些病人不需要呼吸机。有些病人需要长时间使用。我们引入了呼吸机使用率。呼吸机使用率是一个百分比。这个百分比来自医疗数据。我们考虑了呼吸机的工作周期。一台呼吸机每天可以给几个病人用。这取决于平均使用时间。
我们得到了初步的需求公式。但这还不够。现实中有很多限制。呼吸机的供应是有限的。工厂生产能力有限。国际采购有限制。运输需要时间。我们增加了供应约束。我们建立了一个优化模型。模型的目标是最小化死亡人数。死亡人数和呼吸机短缺有关。呼吸机短缺越多,死亡人数可能越多。模型要决定如何分配有限的呼吸机。要分给哪些地区。分多少。什么时候分。
这是一个复杂的优化问题。变量很多。约束很多。计算机的同学说可以用线性规划。但我们的问题有些部分不是线性的。数学的同学说可以分段线性化。我们尝试了。我们把问题分解。我们把时间分成几个阶段。每周为一个阶段。这样问题变得更大。但结构更清晰。我们写下了数学式子。目标函数。约束条件。决策变量。
下一步是求解模型。计算机的同学负责编程。我们选择了Python语言。我们使用了Pyomo优化库。我们使用了Gurobi求解器。数据是个问题。题目给了一些数据。但不够完整。我们需要更多数据。我们搜索了中国和美国的数据。我们找到了人口数据。我们找到了疫情历史数据。我们找到了呼吸机生产数据。我们小心地处理数据。我们填补了缺失值。我们做了合理的假设。我们记录了所有假设。
程序第一次运行失败了。模型太大。求解器内存不够。我们必须简化模型。我们减少了时间阶段数。我们从十二周减少到八周。我们合并了一些地区。我们把相似的城市合并。我们调整了模型参数。我们再次运行程序。这次程序运行了。但结果很奇怪。有些地区分配到的呼吸机是零。这不符合公平原则。我们检查模型。我们发现目标函数只追求总死亡人数最少。这可能导致牺牲某些地区。我们修改了目标函数。我们增加了公平性项。我们惩罚分配极端不均的情况。我们再次运行。结果好了很多。所有地区都得到了一些呼吸机。数量有差异。疫情严重的地区多分一些。
我们做了模拟。我们设置了三种疫情场景。轻度、中度、重度。每种场景参数不同。传染率不同。医疗资源压力不同。我们运行模型三次。我们得到了三组分配方案。我们比较这些方案。我们发现了规律。疫情越严重,呼吸机需求越大。运输距离越远,分配优先级可能降低。我们做了灵敏度分析。我们改变关键参数。我们看结果如何变化。传染率变化百分之十,需求变化百分之二十。生产效率提高百分之十,短缺减少百分之十五。这些分析很有用。
我们开始写论文。写作的同学负责主要部分。我们按照标准结构写。摘要、问题重述、模型假设、符号说明、模型建立、模型求解、结果分析、模型评价、参考文献、附录。摘要最重要。评委先看摘要。摘要必须清晰简洁。我们写了好几遍摘要。第一版太长。第二版重点不突出。第三版我们改好了。我们说明问题、方法、结果、结论。我们控制在一页以内。
模型假设必须合理。我们列出了十条假设。呼吸机类型统一。运输时间固定。数据可靠性可接受。我们解释了为什么这样假设。符号说明用表格。我们列出了所有变量和参数。模型建立部分详细解释。我们一步一步推导。我们配上示意图。我们解释每个公式的含义。
结果分析部分我们用图表。我们画了需求预测曲线。我们画了呼吸机分配柱状图。我们画了短缺程度地图。我们写了观察结果。疫情高峰在第五周。呼吸机短缺在高峰期最严重。东部地区需求大。西部地区运输困难。我们提出政策建议。建议一:建立呼吸机国家储备库。建议二:提前部署到可能的热点地区。建议三:提高生产线柔性生产能力。建议四:建立区域协调分配机制。
我们检查论文。我们检查格式。我们检查错别字。我们检查公式编号。我们检查图表清晰度。我们反复修改。最后一天晚上我们没睡觉。我们一直在改。早晨八点提交截止。我们在七点五十分提交了论文。
提交后我们很累。我们不知道结果。过了一个月,成绩公布了。我们看到一等奖名单里有我们的队号。我们很高兴。我们的努力有回报。
我们总结成功的原因。第一,团队合作好。我们互相补充。没有争吵。只有讨论。第二,准备充分。我们提前练习。我们知道流程。第三,问题选择合适。我们选了有把握的题目。第四,模型有创新。我们结合了预测和优化。我们考虑了公平。第五,论文表达清楚。图表多。文字简单。逻辑顺。
数学建模比赛考验综合能力。它不仅仅是数学。它需要编程。它需要写作。它需要查找资料。它需要团队协作。我们学到了很多。我们学会了把实际问题变成数学问题。我们学会了用计算机求解。我们学会了把结果说得明白。这对我们做研究很有帮助。我们以后工作也会用到这些经验。