2026 辽宁省数学建模竞赛 B 题 | 完整参考答案

该文章已生成可运行项目,

  切!!!!记 本文提及的各种代码求解结果 由于求解的优化模型不同,故不能直接进行对比,例如 问题一q11 q12 q13 q14是针对班次人数分配,q1a 做全局运营优化。故无论什么情况q1a的数值结果一定比其他代码要低很多


📌 题目背景

物流配送中心的班次调度难题:如何在30天内合理安排工人班次,确保每天的进货都能当天处理完毕?这涉及班次覆盖、库存管理、人力成本等多个维度的权衡。

本题分为三个递进的子问题:

  • 问题一

    :基础班次配置(5班制)

  • 问题二

    :增加约束条件(16点前处理 + 效率修正)

  • 问题三

    :月度人员规划(23天工作 + 连续≤7天限制)


🎯 核心对比:四大求解方案

我们实现了 ILP、贪心、禁忌搜索、遗传算法 四套方案,还额外推出了 混合并行方案(q1a),效果提升 34.6%

表格:四大方案对比

方案

问题一结果

问题二结果

问题三结果

求解思路

ILP(q11/q21/q31)

16,495人

13,828人

4,123人*

精确整数规划,班次固定

贪心(q12/q22/q32)

19,008人

16,488人

4,123人*

快速启发式,质量一般

禁忌搜索(q13/q23/q33)

18,908人

16,733人

824人

邻域搜索,约束不足

遗传算法(q14/q24/q34)

1,098人✗

1,058人✗

60人✗

种群进化,需优化

★混合并行(q1a/q2a/q3a1)10,791人11,984人454人LP松弛+贪心递推,最优

注:带 ✗ 的结果数值异常,需要修正


1️⃣ 班次灵活化 (-5~10%)

特性

q11(ILP)

q1a(混合)

班次定义

固定5班:{0-8, 4-12, 8-16, 12-20, 16-24}

灵活班:起点 ∈ [0,16]

班次数量

固定5个

动态选择≤5个

优化空间

关键洞察:固定班次存在"缝隙浪费"。比如进货集中在[5,7),但班2覆盖[4,12),导致[4,5)无效覆盖。q1a通过灵活选择班次起点,精准匹配需求。


2️⃣ 显式库存管理 (-10~15%)

q11 没有库存约束 → 倾向保守决策 → 提前覆盖

q1a 有库存递推:
$$I_h = I_{h-1} + q_h - p_h$$
$$I_0 = 0, \quad I_{23} = 0$$

削峰填谷效果

  • 前期低谷时积累库存

  • 后期高峰时消化库存

  • 避免某个班次"爆表"


3️⃣ 多目标优化 (-5~10%)

目标函数

q11

q1a

单目标

min(∑工人)

min(∑工人×1000 + 峰值)

权重分配

-

工人数权重1000,峰值权重1

优化效果

仅最小化成本

成本+人力曲线平衡

通过双目标权衡,避免出现某班人员严重超标。


4️⃣ LP松弛求解 (-5~8%)

q11路线:直接整数规划(耗时,决策变量150个)

q1a路线

  1. 连续松弛(LP)→ 快速求解

  2. 向上取整 → 整数化

  3. 贪心递推 → 保证可行性

求解快速,质量有保证。


5️⃣ 并行计算 (-2~3%)

  • q11:30天集中求解(串行)

  • q1a:30天独立求解(多核并行)



📈 三个问题的最优方案

问题一:基础班次配置(30天)

推荐方案:q1a 或 q1a1(混合并行)

指标

数值

招工总数

10,791人

日均

359.7人/日

vs ILP优化

-34.6%

计算时间

~10s(并行)


问题二:增加约束(16点前处理 + 效率修正)

推荐方案:q2a 或 q2a1

指标

数值

招工总数

11,984人

日均

399.5人/日

vs ILP优化

-13.3%

约束满足

✓✓完全满足

敏感性分析

完整

关键约束

  • ✓ 16点前处理:全部达标(30/30天)

  • ✓ 当天清零:全部达标(30/30天)


问题三:月度人员规划(★★★关键)

推荐方案:q3a1(启发式两阶段分解)

指标

数值

招工人数

454人

 ✓✓

理论下界

454人

达成率

100%最优

计算时间

12.9s

约束满足

✓✓完全满足

约束验证

  • ✓ 每人工作23天:454/454人满足

  • ✓ 连续工作≤7天:454/454人满足

  • ✓ 班次覆盖:每日每班都满足

  • ✓ 16点前处理:继承问题二

  • ✓ 当天清零:继承问题二


🔍 问题三的演进过程

版本

招工人数

约束检验

q31/q32(原始)

4,123人*

✗未知

q33(原始)

824人

✗缺班次验

q34(原始)

60人

✗严重不足

q33(修正)

641人

✓部分满足

q34(完善)

212人

✓部分满足

q3a(混合)583人✓✓✓完全满足

q3a1(启发式)454人✓✓✓✓完全满足

关键修正:引入班次分配逻辑 + 约束违反计数 + 可行性检查


📚 数学模型对比

q11(传统ILP)

决策变量:x_{d,s} = 第d天第s班的工人数目标函数:min ∑∑ x_{d,s}约束:∑x_{覆盖h} × 25 ≥ q_{d,h}特点:精确但班次固定,无库存管理

q1a(创新混合)

决策变量: y_s = s时刻班的工人数 z_s = s时刻班激活标志 p_h = h小时实际处理量 I_h = h小时末库存 Pmax = 全天峰值 目标函数:min((∑y_s)×1000 + Pmax) 约束(4层): 1. 班次激活:∑z_s ≤ K,y_s ≤ BIG_M×z_s 2. 小时覆盖:p_h ≤ 25×n_h,Pmax ≥ n_h 3. ★库存递推:I_h = I_{h-1} + q_h - p_h 4. 非负性:y_s, p_h, I_h ≥ 0 求解:LP松弛 → 取整 → 贪心递推 → 并行计算特点:灵活班制、库存管理、峰值优化、全局最优
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值