ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

短途运输货量预测与车辆调度:Mathorcup D题完整技术路线解析

2026/8/31 7:33:51 拓冰建站 浏览量
短途运输货量预测与车辆调度:Mathorcup D题完整技术路线解析 简介本资源专为2025年Mathorcup数学建模竞赛俗称“妈妈杯”D题参赛团队打造面向高校本科生、研究生及指导教师解决赛题建模难、代码实现杂、论文撰写耗时长等核心痛点。压缩包共468个文件总计642.1MB涵盖65份PDF论文与可转Word文档、55个Python脚本含数据预处理、模型训练与可视化、34个MATLAB对应实现、55个Excel结果表、72个音频样本AAC/MP3/WAV格式支撑声学特征分析类建模、67张PNG图表及18个CSV原始数据集结构清晰、模块解耦。已有837人学习下载所有内容经多轮验证可复现提供从解题逻辑推演、双语言代码实现、结果表格生成到论文排版交付的一站式方案特别适配冲刺省奖及以上奖项的高效备赛需求。 Mathorcup妈妈杯这个比赛我跟着带过好几届了这次2025年第十五届的D题《短途运输货量预测及车辆调度》看到题目的一瞬间我就知道这又是一道标准的“预测优化”两段式应用题。很多队伍拿到题先慌觉得又是货量预测又是车辆调度两个问题都得啃但本质上是命题组在考察你们“能不能把一个实际运营问题拆成数学问题再用代码落地”。这篇博文我就用自己的参赛辅导经验把这个D题的完整思路、代码实现路线、常见坑点全部拆开讲一遍目标是让你看完之后哪怕是从零开始也能拼出一条能跑、能出图、能写进论文的完整技术路线。这个题适合谁来参考所有正在备赛Mathorcup的队伍尤其是选了D题、对时序预测和运筹优化不太熟的同学。你需要的基础只有Python语法和一点pandas经验预测算法和调度算法我都讲得比较细保证你照着思路能搭出完整方案。1. 题目整体设计与思路拆解1.1 命题意图与三问结构先说一个很现实的经验Mathorcup这种比赛的D题命题风格就是“一个实际业务场景 两到三个递进问题”。短途运输货量预测及车辆调度这道题本质就是物流公司每天要安排车去各个点拉货但货量是波动的车派多了浪费派少了爆仓所以你需要两步走第一步预测未来每天的货量第二步根据预测结果安排车辆和线路。这种题目为什么好因为它把“数据挖掘”和“运筹优化”两个数学建模的核心方向都考了。预测部分考察时序数据处理和机器学习建模能力调度部分考察约束优化和算法设计能力。你如果只擅长其中一个方向也没关系最怕的是两个方向都只会套个模型就完事忽略了两个模块之间的闭环——预测出来的货量精度会直接影响调度结果的可用性这一点很多队伍都忽视了。通常这类题目的三问结构是这样的第一问是基础货量预测第二问是车辆调度方案第三问是在前两问的基础上加约束或扩展维度比如考虑不同车型、时效性要求、甚至是动态调整。2025年这次D题是三问也是按这个逻辑来的。所以你先别急着找现成的“包过”代码先把这三问的递进关系理清楚模型搭建才有方向。1.2 技术路线选型我的建议是走“数据清洗 → 特征工程 → 多模型预测对比 → 调度建模 → 结果可视化”这条主线。这条线看起来中规中矩但恰恰是评委最认可的结构逻辑——每一步都有明确目的每个输出都能喂给下一步。为什么要做多模型对比因为Mathorcup的评奖标准里“模型对比与选择”是非常加分的一项。你只跑一个LightGBM它到底好不好没有对比就没有说服力。我用历年比赛经验告诉你评委喜欢看到你试了ARIMA、随机森林、XGBoost最后用有效的评估指标选出一个最合适的而不是一上来就甩一个深度模型。为什么不推荐一开始就上Transformer这类复杂结构原因也很直接这类比赛的数据量通常不大短途运输场景的货量数据大部分是按天或按小时的周期数据几万行撑死了Transformer的优势发挥不出来反而容易过拟合。先把树模型和简单时序模型跑明白比盲目堆模型更能拿分。1.3 预测与调度的衔接逻辑这里要重点说一个思路调度不是你随便定个模型就能解的它的目标函数和约束条件要跟预测模块的输出口径一致。比如第一问预测的是“每个站点每天的货量”那调度模块的输入单位就应该是“站点 × 天 × 货量”如果预测的是“每小时货量”那调度就得细化到时段的车辆安排。口径不一致两个模块接不上程序直接崩。另外调度不是单纯求“最少车辆数”这么简单。实际的短途运输里每辆车有装载上限司机有工作时长站点有收货时间窗车辆跑的路线不能绕太远。这些约束都得写进模型里不然你算出来一个“理论最优解”现场根本没法用。理解这一点你就知道为什么调度问题要先定义清楚约束再选求解算法。2. 数据预处理与特征工程实操细节2.1 货量数据清洗三件套拿到数据之后第一件事不是建模而是把数据洗到能用的状态。短途运输数据里最常见的问题有三类缺失值、异常值、时间戳不规整。先说缺失值货量数据缺失通常出现在凌晨班次或者节假日我的处理习惯是先用时间序列的线性插值补齐如果连续缺失超过3天就对比上周同一天的数据做填充。千万别直接删行缺失往往意味着业务上那天本来就没货而不是数据出错了。再说异常值。短途物流的货量会出现“爆量”比如大促、节假日前一天这些不是脏数据是真实的业务波动。问题是模型如果不做处理会被这种尖峰拉偏。我的做法是先用箱线图或3σ原则识别异常点然后对“真异常”比如记录负数、站点编号错乱直接修正对“业务尖峰”做单独标记作为节假日特征喂给模型而不是粗暴地删掉。时间戳不规整是大家最容易踩的坑。很多队伍拿到数据就直接groupby日期结果发现有些天只有半天数据有些天有重复记录。你一定要先检查每天每个站点的记录条数是否一致再做重采样和汇总。这个步骤做好了后面特征工程才靠谱。2.2 货量预测特征工程核心操作特征工程是这类比赛拉开差距的地方。对于短途运输的日货量预测我的特征体系分三块时间特征星期几、是否周末、是否节假日、月份、第几周。短途运输的周周期性非常明显周一周五货量高周末明显下滑这个一定要让模型学到。历史序列特征滞后特征lag_1、lag_7、lag_14、滚动均值7天滚动、14天滚动、滚动标准差。这些特征能帮模型捕捉趋势和波动。交叉特征站点ID与星期几的组合、站点ID与节假日的组合。不同站点的业务模式差异很大有的站点日均单量几百有的几个做组合特征能让模型按站点差异化建模。代码上用pandas就能快速构造。核心思路是把数据按站点拆开再分别构造时间特征和滞后特征避免混合所有站点导致“信息污染”。这里我贴一段我常用的特征工程代码已经跑了多年可以直接复用import pandas as pd import numpy as np def build_features(df): df df.sort_values([site_id, date]).reset_index(dropTrue) df[date] pd.to_datetime(df[date]) df[weekday] df[date].dt.weekday df[is_weekend] (df[weekday] 5).astype(int) df[month] df[date].dt.month df[day_of_month] df[date].dt.day df df.groupby(site_id).apply(lambda x: add_lag_features(x)).reset_index(dropTrue) return df def add_lag_features(group): group group.sort_values(date) group[lag_1] group[volume].shift(1) group[lag_7] group[volume].shift(7) group[lag_14] group[volume].shift(14) group[rolling_mean_7] group[volume].shift(1).rolling(7, min_periods1).mean() group[rolling_std_7] group[volume].shift(1).rolling(7, min_periods1).std() return group注意这里的shift和rolling都要在groupby内完成不然会把不同站点的数据混在一起算滞后值那就泄露了。这个坑已经看到好多次了大家写代码时一定留个心眼。2.3 车辆与线路数据整理思路调度部分的数据整理跟预测部分不太一样。你需要构建三个数据集站点OD起终点距离矩阵、车辆属性表车型、载重上限、可用数量、站点需求表即前面预测出来的货量。距离矩阵在题目里如果给了坐标可以用经纬度算球面距离如果没给坐标就别自己瞎造用最短路径或欧氏距离做近似即可。车辆属性表要注意匹配车型。短途运输常见的是4.2米和7.6米厢式车载重上限分别是2吨和5吨左右。题目给的约束可能更细比如每辆车每天最多跑3趟、司机每天工作不超过8小时这些字段都要整理成结构化表格后面写约束条件直接用。实际调度场景里还有一个容易被忽略的点站点的时间窗。有的站点只能早上8点到10点收货有的站点下午才开门这些约束如果题目给了一定要写进模型如果没有给论文里也要写清楚你的假设不能无中生有。3. 货量预测模型构建与结果对比3.1 基线模型ARIMA和Holt-Winters预测部分我强烈建议先跑一个简单的基线模型作用是给后续的复杂模型定一个“及格线”。短途运输的货量数据有很强的周周期性和一定的趋势性Holt-Winters三次指数平滑这种模型本身就带趋势和季节分量特别适合做基线。ARIMA是另一个好的基线选择。需要注意的是用ARIMA前要做差分平稳性检验ADF检验然后通过ACF/PACF图定阶。其实这里有个更省事的做法直接用pmdarima库的auto_arima函数自动定参能省掉很多手动调参的时间。from pmdarima import auto_arima model auto_arima(train_volume, seasonalTrue, m7, traceFalse, error_actionignore, suppress_warningsTrue) pred model.predict(n_periodstest_len)m7是因为短途货量的周期是7天这里用周季节性。你拿这个预测结果去算指标通常MAPE在30%到50%之间这个值就是后面所有模型的“及格线”。如果树模型连这个基线都打不过说明特征工程或者超参数有问题先回头检查。3.2 树模型LightGBM和XGBoost实操树模型是我自己主力推荐的预测方案尤其是LightGBM训练速度快、对特征工程要求相对宽松、在中小表格数据上表现极其稳。实操上把前面构造好的特征矩阵喂进去标签就是当天的货量然后做时间序列交叉验证即可。这里要特别强调时间序列的验证方式不要用随机K折交叉验证因为时间序列是有顺序的随机打乱会造成数据泄露。正确的做法是“滑窗验证”或“前面训练、后面测试”的单次切分。我通常按时间排序后用最后20%做测试集前80%做训练集。如果数据量够大可以再做扩展窗口的多种切分取指标均值。LightGBM的超参数里我重点调三个n_estimators树的数量、learning_rate学习率、num_leaves叶子节点数。其他参数默认即可。我习惯用早停机制防止过拟合import lightgbm as lgb lgb_model lgb.LGBMRegressor( n_estimators1000, learning_rate0.05, num_leaves31, random_state42 ) lgb_model.fit( X_train, y_train, eval_set[(X_val, y_val)], callbacks[lgb.early_stopping(50), lgb.log_evaluation(100)] )跑完看特征重要性你会发现lag_7、rolling_mean_7、weekday这几个特征基本霸榜。这说明短途运输的货量核心驱动就是“上周同期 近期平均水平 星期几效应”跟业务直觉完全一致写论文的时候特别好解释。用测试集预测MAPE一般能压到20%到30%相比基线有明显提升。3.3 深度学习模型LSTM的适用性判断深度模型不是不能用而是要看数据量够不够。如果题目给的数据是几年的日粒度数据并且站点数量不多比如10个以内LSTM可以作为一个对比模型加入论文。但如果数据只有几百行就别硬上了跑出来的结果会比树模型差很多反而拉低整体评分。我自己的LSTM实操方案是按站点独立训练一个LSTM输入用过去14天的货量序列预测未来1天的货量。样本构造用滑动窗口法窗口长度14步长1。网络结构用两层LSTM每层32个隐藏单元加一个全连接输出层。训练时用MSE损失Adam优化器学习率0.001。整体代码量不大但好处是论文里能放一张训练过程的loss下降图和预测拟合图视觉效果好。这里还要提醒一个细节如果做多站点LSTM输入数据一定要按站点归一化或者用同一个scaler但不跨站点混合。因为不同站点的货量量纲差异太大大的站点日均5000件小的站点日均50件混合归一化会让小站点的信号完全被淹没。3.4 模型评估指标与结论呈现预测模型的评估指标我建议用两个RMSE均方根误差和MAPE平均绝对百分比误差。RMSE反映了误差的绝对水平MAPE反映相对误差两者结合才能全面评价。公式如下RMSE sqrt(mean((y_true - y_pred)^2))MAPE mean(abs((y_true - y_pred) / y_true)) × 100%在论文呈现上一定要用表格把基线模型、树模型、深度学习模型的指标列出来然后在下面配一段文字分析为什么树模型表现最好。我给你一个可套用的分析模板“ARIMA在趋势平稳时段表现稳定但在节假日前后的预测误差明显增大LightGBM得益于节假日特征和时间窗口特征对这些突变场景的适应能力更强整体MAPE从xx%下降到xx%。”这种“现象原因”的描述方式才是评委想看到的内容。4. 车辆调度优化建模与求解策略4.1 调度问题的约束与目标拆解车辆调度这块很多队伍直接套“车辆路径问题VRP”的模板这是对的但你要先明确这个题到底属于哪一类VRP变种。短途运输的特点是车辆从中心仓出发需要访问多个站点最后返回中心仓且每趟有最大行驶时间或距离限制。所以这更像带容量约束和时间窗的路径问题CVRPTW。核心约束拆解如下容量约束每辆车的装载量不能超过车载上限。时间窗约束每个站点有可收货的时间窗口车辆到达时间必须落在窗口内。车辆数量约束可用车辆数量有限或者每辆车每天可执行的最大趟数有限。续航/工时约束每辆车每天总行驶时间或总工作时长不能超过固定值。目标函数通常是“总行驶距离最小”或“总调度车辆数最少 总行驶距离最小”的多目标加权组合。我的经验是优先最小化车辆数再最小化总距离。因为实际物流里每多派一辆车固定成本司机工资、车辆折旧增加远远大于燃油成本。4.2 0-1整数规划数学模型数学建模论文里调度部分的模型公式一定要完整。我要给出一个标准的0-1整数规划表达大家可以直接套用。决策变量x_ijk 1车辆k从站点i行驶到站点j否则为0y_ik 1车辆k访问站点i否则为0目标函数min Z Σ_k Σ_i Σ_j d_ij × x_ijk M × Σ_k Σ_i y_ik其中d_ij是站点i到j的距离M是一个很大的惩罚系数用于最小化车辆数。约束条件每个站点只能被访问一次Σ_k y_ik 1对所有站点i中心仓除外流守恒约束Σ_j x_jik Σ_j x_ijk y_ik对每个站点i和车辆k容量约束Σ_i q_i × y_ik ≤ Q_k对每辆车kq_i是站点i的货量Q_k是车载上限时间窗约束a_i ≤ t_ik ≤ b_it_ik是车辆k到达站点i的时间[a_i, b_i]是时间窗子回路消除约束u_ik - u_jk n × x_ijk ≤ n - 1Miller-Tucker-Zemlin约束这套模型写进论文那这一部分的数学表达就非常完整了。关键是要解释每个约束的实际含义而不是干巴巴列公式。4.3 求解策略精确解与启发式算法结合模型写出来之后怎么解是另一个问题。数据量小的时候直接用OR-Tools或Python的MILP求解器跑精确解是可行的。数据量大、站点多的时候精确解跑不动就需要用遗传算法或模拟退火这类启发式算法。先说OR-Tools的用法。它是Google开源的路由求解库用起来非常方便内置了CP-SAT求解器能处理VRP和CVRP。把距离矩阵、需求列表、车辆容量传进去它能直接返回每条线路的访问顺序。这个库对初学者特别友好代码量不大却能得到不错的效果。from ortools.constraint_solver import routing_enums_pb2, pywrapcp def solve_vrp(distance_matrix, demands, vehicle_capacities): manager pywrapcp.RoutingIndexManager(len(distance_matrix), len(vehicle_capacities), 0) routing pywrapcp.RoutingModel(manager) def distance_callback(from_index, to_index): from_node manager.IndexToNode(from_index) to_node manager.IndexToNode(to_index) return distance_matrix[from_node][to_node] transit_callback_index routing.RegisterTransitCallback(distance_callback) routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index) def demand_callback(from_index): from_node manager.IndexToNode(from_index) return demands[from_node] demand_callback_index routing.RegisterUnaryTransitCallback(demand_callback) routing.AddDimensionWithVehicleCapacity( demand_callback_index, 0, vehicle_capacities, True, Capacity ) search_parameters pywrapcp.DefaultRoutingSearchParameters() search_parameters.first_solution_strategy ( routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC ) solution routing.SolveWithParameters(search_parameters) return solution, routing, manager跑完之后把每条线路输出成“车辆编号、访问站点顺序、总距离”的表格直接作为第二问的核心结果再配上车辆路径图这就很完整了。如果题目数据量大到OR-Tools都跑不出来我建议改用“先聚类再路径”的思路先按站点地理位置聚类把站点分成几个片区每个片区用一辆车或多辆车服务然后在片区内做路径优化。这个思路虽然不是全局最优但运算速度快而且论文里可以说这是“基于业务场景的分区调度策略”属于合理简化评委通常不会质疑。4.4 预测与调度联动的小技巧预测和调度不是两个孤立的模块。我推荐做一个联动表格把预测出的货量按站点汇总成表然后调度模块直接读取这个表作为需求输入。如果你技术能力强还可以做一个简单的所谓“鲁棒性分析”预测误差在±10%、±20%时调度方案的总里程和调车数量怎么变。这个分析在论文里非常出彩因为它体现了你对不确定性的思考是很多队伍完全没做的一步。实现起来也不难。拿预测结果做一个baseline调度然后把每个站点的货量乘以1.1或0.9再重新跑一遍OR-Tools对比总里程的变化。如果变化在可接受范围内那就说明调度方案的鲁棒性不错。这段内容写进灵敏度分析属于很扎实的加分项。5. 完整代码实现与常见问题排查5.1 代码结构建议一份完整的D题代码我建议按以下目录组织├── data/ │ ├── raw/ # 原始数据 │ └── processed/ # 清洗后的数据 ├── features/ │ └── build_features.py # 特征工程代码 ├── models/ │ ├── train_predict.py # 预测模型训练 │ └── predict.py # 预测推理脚本 ├── scheduling/ │ ├── vrp_solver.py # 调度求解代码 │ └── visualize.py # 路径可视化 ├── results/ # 输出结果和图表 └── main.py # 主流程入口这种结构的好处是每个模块职责清晰测起来方便跑完一个环节可以直接把结果保存到results目录后面写论文顺手就能引用。千万别把所有代码堆在一个Jupyter Notebook里几百行跑下来既难调试又不容易复用。5.2 高频报错与排查方案结合我几年的比赛指导经验这里把D题最常遇到的报错和解决办法整理成一张表大家对照排查就行。问题现象可能原因解决办法预测结果全是同一个值特征里混入了标签列或滞后特征使用了未来信息检查特征列表确保shift后的数据被dropna处理LightGBM训练集指标接近满分测试集很差随机切分导致数据泄露改用按时间切分训练集必须是测试集之前的数据OR-Tools求解无结果车辆容量或时间窗约束设置不合理无法满足所有站点增加虚拟车辆或放宽部分时间窗约束距离矩阵计算错误经纬度顺序写反或站点编号对齐错误用已知站点对验证距离确保单位统一预测模块输出的货量和调度模块需求量不一致数据口径不一致一个是吨位一个是件数统一单位建立单位换算关系LSTM训练不收敛未归一化或学习率过大用MinMaxScaler归一化学习率降到0.001以下还有一个隐蔽的坑经纬度转距离的时候如果没转换成弧度算出来的距离会偏大非常多。我在实战中吃过一次亏算出来的路径总里程翻了好几倍后来才发现是角度和弧度没转换。5.3 跑题的现实问题时间规划与分工比赛就三天时间规划真的很关键。我建议的分工方案是第一天上午把数据探索性分析和清洗做完下午到晚上做特征工程建模并输出第一版预测结果第二天上午做调度建模下午跑通OR-Tools并生成路径结果第三天集中写论文、画图表、调灵敏度分析。千万不要在模型调参上耗太多时间。比赛的成绩论文呈现占了一半很多队伍模型做得不错但论文写得像流水账最后成绩不理想。模型的分数差距也就是5%到10%的MAPE但论文如果结构清晰、图表精美、公式规范拿高分的概率大得多。另外两个人写代码的时候一个人负责预测一个人负责调度但数据接口一定要提前约定好。我见过太多队伍因为接口没对齐最后一天疯狂改代码折腾到交卷前两个小时。统一用CSV文件做数据交换每个模块的输入输出约定好列名和单位能省掉大量联调时间。5.4 时间序列预测的泄漏审查这是一个值得单独拎出来说的问题。特征工程的代码里稍不注意就会把未来信息带进训练集。审查方法很简单把特征矩阵按时间排序后检查每一行特征的值是否只用了该行时间点之前的数据。重点检查三处是否有直接用未来的货量做特征是否有全局标准化用了整个时间段的均值和方差来缩放训练集是否有跨站点的数据聚合后再回到原表如果发现泄露模型在训练集上的误差会异常低但测试集表现很容易崩盘。递交代码前一定要做一次这样的“信息流”自查。6. 论文写作与结果可视化技巧6.1 摘要和问题分析怎么写数学建模的论文摘要就是门面评委会先看摘要再看正文。D题这种“预测调度”型题目摘要一定要明确写出三个问题的解决方法、关键结果和指标提升幅度。比如“针对货量预测本文构建了基于多特征融合的LightGBM模型在测试集上MAPE达到xx%较ARIMA基线降低xx个百分点针对车辆调度本文建立了带容量约束和时间窗的混合整数规划模型并采用OR-Tools求解器进行求解得到总调车数为xx辆、总行驶里程为xx公里的调度方案。”这样一段下来评委对你的思路和结果一目了然。问题分析部分不要只是复述题目内容要对题目做“拆解定性”。比如把“短途运输货量预测”拆成“时间维度日/周/月”“空间维度不同站点”“业务维度节假日效应”三个层面然后逐层讨论难点和应对方法。这样做的好处是展示了你的业务理解能力而不是只会套模型。6.2 图表选择与制作要点图表是论文的颜值担当也是评委快速抓取信息的关键。我这里给出一个图表清单覆盖D题论文需要的核心可视化内容货量时序图用折线图展示各站点的日货量走势标出节假日、促销日等特殊时点用来支撑你“业务波动强”的描述。特征相关性热力图展示特征之间的相关性顺便能为特征筛选提供依据。预测结果对比图测试集上预测值 vs 真实值的折线图配合散点图展示预测精度。特征重要性条形图展示LightGBM等树模型的特征重要性排序支撑文字分析。调度路径图把OR-Tools输出的配送路径画在坐标图上不同车辆用不同颜色区分这个图放在论文里非常抓眼球。鲁棒性分析曲线横轴是货量扰动比例纵轴是总里程或调车数量画成折线图展示方案的稳定性。画图的时候注意配色统一不要花里胡哨。推荐用matplotlib的ggplot风格或者直接上seaborn。字体大小要适合论文排版一般13到15磅比较合适。6.3 灵敏度分析与模型评价第三问或附加的灵敏度分析往往能拉开队伍差距。D题的灵敏度分析可以从三个角度切入对预测模型改变训练集长度例如用6个月、8个月、10个月的数据分别训练看MAPE怎么变化得出“数据量是否足够”的结论。对调度模型改变车辆载重、车辆数量、站点时间窗宽度看总调度成本和路径变化评估约束的松紧对结果的影响。对预测误差的鲁棒性前面第4.4节提到的扰动分析属于预测与调度联动层面的灵敏度分析效果最好。每做一组灵敏度分析都要在论文里给出表格对比然后写一段一两百字的分析。举个例子可以这么写“当货量预测误差在±20%范围内波动时总调度车辆数维持在xx辆不变总行驶里程变化率不超过xx%说明本方案对预测误差具有较强的鲁棒性。”7. 最后想嘱咐你们的几句话这些东西在比赛现场非常常见我见过太多队伍栽在同一个地方预测做得特别漂亮调度却完全脱离实际代码跑通了一版就觉得自己“必过”结果论文写出来逻辑混乱图表让人看不懂。我自己经历过几届比赛最大的体会是——最后的成绩往往不取决于你用了多少高级模型而取决于你把自己做的东西讲得多清楚、每一环的逻辑扣得多扎实。所以如果你时间不够宁可只跑通一套简单的“ARIMA OR-Tools”完整流程把论文写顺、把图表做好也别堆一个没调通的双向LSTM加自定义遗传算法。完整的闭环永远是数学建模比赛的命根子。最后再分享一个小技巧比赛最后一天晚上把代码里的随机种子全部固定住整个流程从原始数据跑到最终结果完整复现一遍确认从数据到图表的每一条链路都能自动跑通然后再压缩或者转存好数据文件。这个习惯我每次比赛都会严格遵守不知道帮自己避免了多少次“模型突然跑不出结果”的尴尬局面。祝各位在2025年Mathorcup里拿到理想的成绩。本文还有配套的精品资源点击获取