1. 赛题核心与解题思路总览每年三四月份对于很多理工科尤其是数学、计算机、统计、经管等专业的学生来说都是一个既紧张又兴奋的时期。紧张的是各类数学建模竞赛接踵而至兴奋的是这可能是大学期间最能检验和提升自己综合能力的机会之一。MathorCup高校数学建模挑战赛作为国内颇具影响力的赛事之一其题目往往紧扣前沿热点兼具理论深度与实际应用价值。2023年的赛题延续了这一传统A、B、C、D四道题分别指向了不同的领域对参赛者的知识储备、建模能力和编程实践提出了全方位的挑战。很多同学拿到赛题后第一感觉是“题目都看懂了但不知道从哪里下手”。这很正常数学建模的魅力就在于将模糊的现实问题转化为清晰的数学语言和可计算的模型。解题思路的核心不在于你掌握了多少高深的算法而在于你是否能精准地定义问题、合理地简化假设、巧妙地建立模型、严谨地求解验证。下面我将结合2023年MathorCup的赛题以一名多次参与竞赛指导的“老手”视角拆解每道题的核心难点、可能的建模路径以及需要避开的“坑”。我的分享不会给你一个标准答案——建模本就没有唯一解而是希望能为你点亮一盏灯告诉你“路该怎么走”。2. A题量子计算机在信用评分卡组合优化中的应用这道题将当下最火的“量子计算”与金融风控中经典的“信用评分卡优化”问题结合了起来出题角度非常新颖。题目背景是银行在发放贷款时通常会使用多个信用评分卡可以理解为不同的风险评估规则集来审批客户。每个评分卡有不同的通过率和坏账率。银行的目标是从这些评分卡中选出一个子集并制定一个审批流程即客户依次通过哪些评分卡使得在总体通过率不低于某个阈值的前提下坏账率最低。2.1 问题本质与建模关键初看很复杂有“量子”有“组合优化”还有“流程”。但拨开迷雾其本质是一个带约束的组合优化排序问题。量子计算机在这里更像一个“噱头”或“未来场景”解题的核心依然是用经典的优化思想来建模。关键在于理解以下几点决策变量是什么有两个层面一是选择哪些评分卡0-1变量二是这些被选中的评分卡以什么顺序排列排列变量。目标函数是什么最小化总体坏账率。注意总体坏账率不是各评分卡坏账率的简单平均而是与审批流程相关的。一个客户从流程入口进入依次经过各个评分卡只有通过所有关卡才能最终获得贷款。因此总体坏账率是所有最终通过客户的坏账率的加权平均权重是客户流到最终节点的比例。约束条件是什么核心约束是总体通过率不能低于给定阈值。通过率也是流程相关的是所有从入口进入并最终到达“通过”节点的客户比例。注意这里最容易出错的地方是把评分卡当作独立并联或串联的系统。实际上题目描述的流程是一个串联系统客户必须依次通过所有被选中的评分卡。每个评分卡会“过滤”掉一部分客户不通过也会“污染”最终客户池通过但可能是坏账。建模时需要仔细计算客户流在每一步的分布变化。2.2 经典建模思路与求解策略虽然题目提到了量子计算机但比赛中几乎不可能使用真实的量子计算资源。因此我们需要用经典算法来求解这个NP-Hard问题。一个务实且清晰的建模求解路径如下图论建模将审批流程抽象为一个有向图。源点Source代表所有申请客户。每个评分卡视为一个节点节点有“通过”和“拒绝”两个出边。“通过”边指向下一个评分卡节点或最终通过节点“拒绝”边指向一个吸收态拒绝池。最终所有客户流要么进入“最终通过”节点要么进入“拒绝”吸收态。这样总体通过率和坏账率就可以通过计算从源点到“最终通过”节点的流量比例和坏账加权来得到。建立混合整数规划模型这是最直接的方法。变量定义二进制变量 (x_i) 表示是否选择评分卡i定义排序变量如置换矩阵或使用位置变量来定义顺序。目标最小化总坏账率用客户流和评分卡坏账率表达。约束总体通过率约束、流程顺序约束如前一个评分卡的通过边必须连接后一个评分卡、每个评分卡只能使用一次等。求解策略直接求解完整的MIP模型对于规模稍大的问题可能非常耗时。可以采用启发式或元启发式算法例如贪心算法每次选择能最大程度降低坏账率或最大程度提升“性价比”如通过率/坏账率的评分卡加入流程并尝试不同顺序。模拟退火或遗传算法将评分卡的选择和顺序编码为一个染色体序列序列中出现的评分卡即为被选中的其顺序即为审批顺序。适应度函数即为总坏账率同时惩罚不满足通过率约束的解。这种方法非常灵活易于实现是应对此类组合优化问题的利器。2.3 实操心得与加分点简化计算在计算流程的总通过率和坏账率时可以假设客户池是均匀的且各评分卡的决策是独立的。那么一个客户通过整个流程的概率就是其通过每个选中评分卡的概率的乘积。总坏账率则需要更仔细的计算最终通过客户中的坏账比例不等于各评分卡坏账率的平均而是与各评分卡的“鉴别能力”在流程中的位置有关。一个简单的近似是将流程视为一个整体其坏账率近似等于各评分卡坏账率的加权平均权重与其通过率相关。但更精确的做法是进行条件概率的递推计算。可视化在论文中画出审批流程的决策图或状态转移图能极大帮助评委理解你的模型。用流程图清晰展示客户如何从入口经过一系列评分卡筛选最终到达通过或拒绝状态。对比实验不要只给出一个最终方案。可以设计对比实验例如全部评分卡都用上可能通过率太高坏账率也高只用单个最优评分卡用你们算法找到的组合。通过对比突出你们模型优化效果。提及量子计算虽然不实际使用但可以在模型分析或未来展望部分简要讨论如果将评分卡的选择和排序问题映射为QUBO模型那么其天然适合在量子退火机如D-Wave上求解。这体现了你对题目背景的深入思考是一个很好的加分项。3. B题城市轨道交通列车时刻表优化问题这是一个经典的运筹学问题属于列车运行图编制范畴在交通工程领域有深厚的研究背景。题目通常会给出地铁线路结构、车站间的运行时间、客流需求OD矩阵即从哪个站到哪个站的人数、列车容量、运营成本等数据要求我们编制一个列车时刻表优化某些目标如最小化乘客总等待时间、最小化企业运营成本或最大化服务水平等。3.1 问题拆解与核心矛盾这道题看起来更“接地气”但优化变量多约束复杂。核心矛盾在于乘客需求与企业效率之间的平衡。乘客角度希望发车间隔小等待时间短车上不拥挤。企业角度希望节省车辆和司机资源降低能耗避免空载。建模的关键在于如何量化这些目标并将其统一到一个优化框架中。通常这是一个多目标优化问题但比赛中往往会指定一个主目标如乘客总等待时间将其他目标作为约束如运营成本不超过预算满载率不超过上限。3.2 分步建模与求解框架面对这种复杂问题切忌想一步到位。建议采用分层或分步建模的思路确定发车频率这是时刻表的基石。可以根据客流需求的时间分布如早高峰、平峰、晚高峰将一天划分为几个时段。在每个时段内基于该时段的最大断面客流量线路中最拥挤区间的客流量和列车定员计算满足客流需求所需的最小发车频率。公式可简化为发车频率 最大断面客流量 / (列车定员 * 期望满载率)。这里“期望满载率”是一个可以调节的参数平衡拥挤度和成本。生成初始时刻表在确定各时段发车频率后可以假设在时段内列车均匀发车生成一个初始的、周期性的时刻表。例如早高峰频率为20对/小时则发车间隔为3分钟。精细化优化均匀时刻表未必最优。接下来可以建立优化模型进行微调。决策变量是每趟列车的到达每个车站的时间。目标函数最小化乘客总等待时间。这需要结合OD客流数据来计算。乘客的等待时间取决于其到达车站的随机时间与列车时刻表的匹配程度。一个常用且合理的简化是假设乘客随机到达则其平均等待时间约为发车间隔的一半。但更精确的模型需要考虑换乘等待、客流不对称性等。约束条件运行时间约束同一列车在两个相邻车站的到站时间差必须大于等于区间运行时间加上停站时间。安全间隔约束同一方向上前后两列车的追踪间隔必须大于最小安全间隔。车站能力约束在折返站、终点站列车需要有足够的清客、折返时间。资源约束使用的列车总数不能超过车队规模。求解算法这是一个大规模的、带有复杂非线性目标如果精确计算等待时间的规划问题。常用方法包括线性/整数规划如果将时间离散化例如以1分钟为单位可以将列车到发时间转化为0-1变量把问题转化为一个大规模的整数规划问题但求解难度大。启发式算法遗传算法同样适用。将每趟列车的发车时间编码为基因通过交叉、变异来优化时刻表。适应度函数就是总等待时间需高效计算。模拟仿真优化可以编写一个离散事件仿真程序模拟乘客按照OD矩阵和某种到达规律如泊松分布进入系统在给定的时刻表下乘车。通过仿真来评估时刻表的性能等待时间、拥挤度。然后将仿真程序作为“黑箱”函数外接一个优化器如粒子群算法、模式搜索来调整发车时间寻找更优解。这种方法非常强大贴近实际但计算量较大。3.3 注意事项与模型亮点数据预处理至关重要仔细分析给出的OD矩阵。找出最大断面客流、主要客流方向上行/下行不对称、关键换乘站。这些信息是决定发车频率和时刻表调整重点的依据。考虑客流动态性题目给出的OD可能是某个高峰小时的静态数据。但在模型中可以考虑客流的动态变化比如用一个简单的函数描述客流在高峰时段内的变化如钟形曲线从而让时刻表的疏密变化与之匹配。换乘协调如果线路涉及换乘题目可能是单条线但若有那么优化不同线路列车在换乘站的到发时间衔接能显著减少乘客换乘等待时间这是一个重要的优化维度。结果可视化绘制优化前后的列车运行图时间-距离图用不同颜色或宽度表示客流密度直观展示优化效果。绘制乘客等待时间分布直方图。灵敏度分析分析当客流需求增加10%、列车容量变化、最小安全间隔调整时你的时刻表方案性能如何变化。这能体现模型的鲁棒性。4. C题电商物流网络包裹需求与车辆路径规划这道题是典型的物流网络优化与车辆路径问题的结合体具有很强的商业应用背景。题目通常会给出一段时间内如“双十一”期间各个物流节点仓库、分拨中心、末端网点的包裹预测数据、节点间的运输成本/时间、车辆的载重和数量限制等要求设计运输方案包括1包裹的流量分配从哪个仓库发往哪个分拨中心2运输车辆的路径规划。4.1 问题分层与模型架构这是一个两层决策问题适合用分层规划或集成优化的思路来解决。上层网络流量分配决定每个包裹或包裹流从起点到终点所经过的节点路径。这类似于一个多商品网络流问题。目标是最小化总运输成本或时间约束是每个节点的处理能力吞吐量。下层车辆路径规划在确定了节点间的货物流量后需要安排具体的车辆来完成节点之间的运输任务。这就是经典的带容量约束的车辆路径问题。每个车辆从车场出发服务一系列节点运送货物最后返回车场目标是总行驶距离或成本最短。这两个层次相互耦合流量分配决定了节点间需要运输的货量而VRP的可行性和成本又反过来影响流量分配的决策。完全集成求解非常复杂。比赛中一个实用且清晰的策略是迭代求解或基于聚类分解。4.2 实用求解策略聚类-分配-路径数据聚合与聚类首先将未端网点的包裹需求按照地理就近原则聚类到若干个“配送区域”。这可以大大减少问题的规模。可以使用K-means或层次聚类算法以网点经纬度为特征进行聚类。流量分配模型将聚类后的“区域”视为新的需求点。建立线性规划模型决定从各个仓库到各个区域以及仓库与分拨中心、分拨中心与区域之间的货物流量。目标函数为最小化运输成本单位成本×流量约束包括仓库供应能力、分拨中心处理能力、区域需求必须满足。这一步可以得到一个最优的、分数化的流量方案。运输任务生成将第二步得到的节点间流量根据车辆的载重能力拆分成一个个具体的“运输任务”。例如从仓库A到分拨中心B需要运输15吨货物而车辆载重为5吨那么这就生成3个从A到B的运输任务。车辆路径规划现在我们有了许多运输任务有起点、终点、货量。问题转化为如何用有限的车队将这些任务组合成一条条车辆行驶路线使总成本最低。这就是一个复杂的VRP变体。可以采用以下方法节约算法一种经典的启发式算法思路直观易于实现能快速得到一个较好的解。大规模邻域搜索从一个初始解如每条任务单独一辆车开始不断进行“破坏”和“修复”操作来优化。破坏操作随机移除一些路线中的任务修复操作则用更优的方式将这些任务重新插入到现有路线中。LNS在VRP问题上表现非常出色。使用开源求解器对于规模适中的问题可以尝试将VRP建模为混合整数规划调用Gurobi、OR-Tools等求解器求解。虽然可能无法在比赛时间内求得最优解但求得的可行解质量通常很高。4.3 核心难点与处理技巧时间窗约束题目可能要求包裹必须在某个时间点前到达下一节点。这会给VRP部分增加带时间窗的车辆路径问题的约束难度陡增。在建模时需要在流量分配阶段就考虑时间成本或者在VRP阶段严格处理。不确定性处理“预测”的包裹量必然有误差。一个出色的模型应该考虑这种不确定性。可以采用鲁棒优化或随机规划的思想。例如设定几个可能的客流场景乐观、悲观、正常要求你的运输方案在所有场景下都可行鲁棒或者最小化期望总成本随机。空载成本车辆完成一个运输任务后空车返回车场或前往下一个任务起点这部分成本也应计入。在VRP建模中这通常自动包含在行驶距离中。模型验证一定要设计小规模算例比如只有3个节点2辆车进行验证。手动计算最优解看你的模型和算法能否得出相同或相近的结果。这是检验模型正确性的关键一步。结果呈现用地图可视化你的物流网络和车辆路径。用不同颜色的线条表示不同的车辆路线用节点大小表示货物吞吐量。一张清晰的可视化图胜过千言万语。5. D题航空安全风险分析和飞行技术评估问题这道题偏向于数据分析与统计建模可能涉及时间序列分析、异常检测、统计推断和综合评价方法。题目通常会提供大量的飞行数据记录如QAR数据包含飞机在飞行过程中数百个参数高度、速度、姿态、发动机参数等的时间序列。要求分析影响飞行安全的风险因素并对飞行员的操控技术进行评估。5.1 数据分析流程框架处理这类数据驱动的题目一个系统性的流程至关重要数据探索与预处理理解每个参数首先弄清楚给出的每个数据字段代表的物理意义例如pitch_angle是俯仰角vertical_speed是垂直速度。这是所有分析的基础。处理缺失值与异常值QAR数据可能存在记录缺失或明显错误的野值。需要采用合适的方法处理如向前/向后填充或基于前后数据插值。数据对齐与切片一次飞行数据可能长达数小时需要根据关键阶段如起飞、爬升、巡航、下降、进近、着陆进行切片。通常起飞和着陆阶段是风险高发期需要重点关注。特征工程这是模型成败的关键。直接从原始时间序列建模效果往往不好需要从中提取有意义的特征。统计特征每个参数在每个飞行阶段的基本统计量均值、标准差、最大值、最小值、极差等。例如着陆阶段的下降率标准差可以反映操作的平稳性。领域特征基于航空知识构造的特征。例如能量管理计算飞机在进近阶段的能量高度E h V^2/(2g)分析其变化率是否平稳。操作超限统计各参数超出正常范围如坡度角大于30度的次数和持续时间。事件检测利用规则检测可能的不安全事件如重着陆下沉率过大、擦机尾俯仰角过大且无线电高度低。时序特征可以计算一些参数的导数变化率如俯仰角变化率、空速变化率这些能反映操作的剧烈程度。风险因素分析相关性分析计算各特征与安全标签如果有的话如“事故征候”标识或与专家打分之间的相关性找出强相关因素。回归模型如果安全程度可以量化可以建立回归模型如线性回归、梯度提升树分析哪些特征对安全得分的影响权重最大。聚类分析对飞行片段进行无监督聚类看看是否能自然聚成“操作平稳”、“操作粗糙”、“存在风险”等几类然后分析不同类别的特征差异。飞行技术评估构建评估指标体系基于特征工程的结果选取一组能全面反映飞行技术的关键指标如着陆平稳定、航迹保持能力、标准程序遵守度等。指标标准化与赋权不同指标量纲不同需要标准化。权重的确定可以用客观方法如熵权法、CRITIC法也可以结合主观的层次分析法。综合评价使用TOPSIS法、灰色关联分析、或简单加权求和计算每个飞行员或每次飞行的综合技术得分并进行排序。5.2 高级方法与模型亮点基于机器学习的异常检测对于无标签数据可以使用无监督学习算法来发现异常飞行。例如孤立森林非常适合高维数据能快速找出与其他样本行为差异大的飞行片段。自动编码器训练一个神经网络来学习正常飞行数据的模式。重构误差大的片段即被认为是异常或技术不佳的飞行。时序模式挖掘使用动态时间规整DTW算法可以将一次飞行的某个参数序列与“标准完美”的序列进行对比计算其扭曲距离作为技术评估的度量。DTW对于比较不同长度、有局部拉伸压缩的序列非常有效。因果推断初探如果数据充足可以尝试分析某些操作因与后续飞机状态果之间的关系。例如分析在低高度时一个过大的拉杆动作是否显著增大了后续出现大下降率的概率。这需要更严谨的统计模型。可视化分析绘制关键参数的时序曲线将多次飞行或不同飞行员的曲线叠加在一起对比。用箱线图展示不同飞行员在某项指标上的分布差异。可视化是呈现分析结果最有力的工具。5.3 实操心得与报告撰写领域知识很重要即使你不是航空专业也要花时间快速了解一些基本概念如五边进近、V速度、能量管理。这能帮助你构造出更合理的特征避免提出违背物理规律的荒唐结论。注重可解释性安全分析容不得黑箱模型。即使你用了复杂的机器学习模型如XGBoost也要通过特征重要性排序、SHAP值等工具来解释模型决策的依据。分阶段讨论不要在报告中笼统地说“整个飞行”。一定要分阶段起飞、爬升、巡航、进近、着陆进行分析。不同阶段的风险因素和技术要求截然不同。给出 actionable 的建议你的分析最终要落地。结论不应只是“飞行员A的技术得分较低”而应是“飞行员A在着陆阶段的下降率控制不稳定建议加强在模拟器上针对稳定进近的训练”。