【2026年五一数学建模竞赛B题-多工序协同作业问题】完整思路+论文+可运行代码
本人8年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我
本体是典型的运筹学最优化赛题,设计优化模型和求解算法选取
完整资源:https://mbd.pub/o/bread/mbd-YZWcmptwZA==
output/2026年五一赛B/
├── 阶段1_赛题解析.md ← 赛题结构化分析
├── 阶段2_思路分析.md ← 建模方案论证
├── code/ ← Python求解代码(7个文件)
│ ├── data_config.py ← 数据配置(工序/设备/距离参数)
│ ├── scheduler_cpsat.py ← CP-SAT约束规划求解器
│ ├── problem1_solve.py ← 问题1:单班组单车间
│ ├── problem2_solve.py ← 问题2:单班组多车间
│ ├── problem3_solve.py ← 问题3:双班组多车间
│ ├── problem4_solve.py ← 问题4:预算约束优化
│ └── generate_figures.py ← 高质量图表生成
├── figures/ ← 可视化图表(13张)
│ ├── fig1_工序流程图.png ← 五车间工序流程
│ ├── fig2_工序耗时对比.png ← 各工序时长柱状图
│ ├── fig3_设备工作量分析.png ← 设备负载分析
│ ├── fig4_问题1甘特图.png ← 问题1调度甘特图
│ ├── fig5_距离热力图.png ← 车间距离矩阵热力图
│ ├── fig6_运输时间矩阵.png ← 运输时间可视化
│ ├── fig7_关键路径对比.png ← 各问题关键路径对比
│ ├── fig8_makespan对比.png ← 四个问题完工时间对比
│ ├── fig9_设备购置分析.png ← 问题4设备购置方案
│ ├── fig10_瓶颈设备时间线.png ← 瓶颈设备占用时间线
│ ├── fig11_空间布局图.png ← 车间空间布局
│ ├── fig12_灵敏度分析.png ← 参数灵敏度
│ └── fig13_设备利用率雷达图.png ← 设备利用率雷达图
└── paper/ ← 论文
└── B题论文.pdf ← PDF(25页)
赛题解析 — 2026年五一数学建模竞赛 B题
赛题信息
- 竞赛:2026年第二十三届五一数学建模竞赛
- 题目:B题 多工序协同作业问题
- 赛题文件夹:
2026年五一赛B - 附件:
B-附件.xlsx(含工序流程表、班组配置表、车间距离表)
赛题背景
某工业制造系统需对 A、B、C、D、E 五个车间开展集中整修任务。每个车间的整修任务由若干工序组成,不同工序需占用相应类型设备完成。部分工序需要两类设备共同参与。设备在不同车间之间转运存在运输时间成本。
关键假设
- 各车间内工序顺序固定,必须严格按给定顺序依次执行
- 若某工序需两类设备共同完成,两类设备都需完成该工序对应的工程量,两类设备都完成后该工序才算完成(不考虑先后顺序和等待时间)
- 各班组内设备数量固定,设备可重复使用,但同一时刻每台设备只能服务于一道工序
- 同一台设备在同一车间不同工序间转移时间忽略;跨车间转移时间不可忽略
- 起始时间从 00:00:00 开始,持续工作时间精确到秒且向上取整
数据来源
工序流程表
| 车间 | 工序 | 设备及效率 | 工程量 | 备注 |
|---|---|---|---|---|
| A | A1.缺陷填补 | 精密灌装机200m³/h + 自动化输送臂250m³/h | 300m³ | |
| A | A2.表面整平 | 高速抛光机100m³/h + 工业清洗机250m³/h | 500m³ | |
| A | A3.强度检测 | 自动传感多功能机100m³/h | 500m³ | |
| B | B1.表面清理 | 工业清洗机100m³/h | 120m³ | |
| B | B2.垫层构筑 | 精密灌装机200m³/h + 自动化输送臂300m³/h | 1500m³ | |
| B | B3.表面密封 | 精密灌装机350m³/h | 360m³ | |
| B | B4.表面整平 | 高速抛光机120m³/h + 自动传感多功能机100m³/h | 360m³ | |
| C | C1.旧涂层剥离 | 工业清洗机250m³/h + 自动化输送臂250m³/h | 720m³ | |
| C | C2.基底填充 | 精密灌装机350m³/h | 720m³ | |
| C | C3.密封覆盖 | 精密灌装机200m³/h + 自动化输送臂250m³/h | 360m³ | C3-C5重复3遍 |
| C | C4.表面研磨 | 高速抛光机120m³/h + 工业清洗机100m³/h | 400m³ | C3-C5重复3遍 |
| C | C5.质量检测 | 自动传感多功能机100m³/h | 400m³ | C3-C5重复3遍 |
| D | D1.碎屑清理 | 工业清洗机250m³/h | 600m³ | |
| D | D2.基底固化 | 精密灌装机200m³/h + 自动化输送臂300m³/h | 800m³ | |
| D | D3.表面密封 | 精密灌装机350m³/h | 450m³ | |
| D | D4.表面整平 | 高速抛光机120m³/h + 自动传感多功能机300m³/h | 1500m³ | |
| D | D5.承载检测 | 自动传感多功能机300m³/h | 1500m³ | |
| D | D6.边缘修整 | 高速抛光机100m³/h | 700m³ | |
| E | E1.基础处理 | 工业清洗机250m³/h | 1000m³ | |
| E | E2.表面密封 | 精密灌装机350m³/h | 600m³ | |
| E | E3.稳定性检测 | 自动传感多功能机300m³/h + 工业清洗机100m³/h | 600m³ |
班组配置表
| 设备名称 | 班组1数量 | 班组2数量 | 移动速度 | 设备单价 |
|---|---|---|---|---|
| 自动化输送臂 | 4台 | 4台 | 2 m/s | 50000元 |
| 工业清洗机 | 5台 | 5台 | 2 m/s | 40000元 |
| 精密灌装机 | 5台 | 5台 | 2 m/s | 35000元 |
| 自动传感多功能机 | 1台 | 1台 | 2 m/s | 80000元 |
| 高速抛光机 | 1台 | 1台 | 2 m/s | 75000元 |
车间距离表
| 起点 | 终点 | 距离 |
|---|---|---|
| 班组1 | A | 400m |
| 班组1 | B | 620m |
| 班组1 | C | 460m |
| 班组1 | D | 710m |
| 班组1 | E | 400m |
| 班组2 | A | 500m |
| 班组2 | B | 460m |
| 班组2 | C | 620m |
| 班组2 | D | 680m |
| 班组2 | E | 550m |
| A | B | 1020m |
| A | C | 1050m |
| A | D | 900m |
| A | E | 1400m |
| B | C | 1100m |
| B | D | 1630m |
| B | E | 720m |
| C | D | 520m |
| C | E | 850m |
| D | E | 1030m |
子问题结构化列表
问题1:单班组单车间调度(基础问题)
- 条件:班组1独立完成A车间全部整修任务
- 目标:最短完成时长
- 输出:表1(设备编号、起始时间、结束时间、持续工作时间、工序编号)
- 特点:仅涉及A车间3道工序,无跨车间运输,是后续问题的基础
问题2:单班组多车间调度(扩展问题)
- 条件:仅使用班组1设备,完成A/B/C/D/E五个车间
- 目标:最短完成时长
- 输出:表2(同表1格式)
- 特点:引入跨车间运输时间,需要优化车间作业顺序和设备分配
问题3:双班组多车间调度(协同问题)
- 条件:使用班组1和班组2的全部设备,完成五个车间
- 目标:最短完成时长
- 输出:表3(增加所属班组列)
- 特点:两个班组协同,设备资源翻倍,需要合理分配车间给班组
问题4:预算约束下的设备购置与调度优化(综合问题)
- 条件:追加500000元预算购置设备 + 双班组
- 目标:在预算约束下使完成时间最短
- 输出:表4(调度方案)+ 表5(设备购买情况)
- 特点:设备购置决策 + 调度优化的联合优化问题
问题间逻辑关系
问题1(单班组单车间)→ 问题2(单班组多车间)→ 问题3(双班组多车间)→ 问题4(预算优化+双班组)
基础模型 引入运输时间 引入协同调度 引入资源优化
问题逐步递进,每一步在前一步基础上增加约束或决策维度。
完整解题思路分析
一、问题本质与整体建模思路
1.1 问题本质
本题是一个带资源约束的多项目调度问题 (Resource-Constrained Multi-Project Scheduling Problem, RCMPSP),属于经典的作业车间调度问题(JSSP)的扩展变体。
核心特征:
- 5个车间(项目),每个车间有3~6道工序(作业)
- 工序间有严格先后依赖(同车间内顺序固定)
- 5类设备是可复用的共享资源,同一时刻每台设备只能服务一道工序
- 部分工序需要两类设备协同完成(取两类设备完成时间的max)
- 多台同类设备可并行加速同一工序(总效率 = 单台效率 × 投入台数)
- 跨车间有运输时间(距离 ÷ 速度),同车间内无运输时间
- 目标:最小化 makespan(所有任务完成的最晚时间)
1.2 整体技术路线
问题1(解析计算)→ 问题2(CP-SAT精确求解)→ 问题3(CP-SAT扩展)→ 问题4(枚举+CP-SAT)
- 论文建模:使用 MILP 数学公式严格表达
- 实际求解:使用 Google OR-Tools CP-SAT 约束规划求解器
- 结果展示:甘特图 + 调度表
二、数据预处理与关键参数
2.1 工序耗时计算公式
单台设备完成工序的时间(秒):
t = ceil(工程量 / 效率 × 3600)
若投入 k 台同类设备并行:
t = ceil(工程量 / (效率 × k) × 3600)
若工序需要两类设备协同:
t_工序 = max(t_设备类型1, t_设备类型2)
2.2 运输时间计算
运输时间(s) = 距离(m) / 速度(m/s) = 距离 / 2
关键运输时间表:
| 路径 | 距离 | 运输时间(s) |
|---|---|---|
| 班组1→A | 400m | 200s |
| 班组1→B | 620m | 310s |
| 班组1→C | 460m | 230s |
| 班组1→D | 710m | 355s |
| 班组1→E | 400m | 200s |
| A→B | 1020m | 510s |
| A→C | 1050m | 525s |
| A→D | 900m | 450s |
| A→E | 1400m | 700s |
| B→C | 1100m | 550s |
| B→D | 1630m | 815s |
| B→E | 720m | 360s |
| C→D | 520m | 260s |
| C→E | 850m | 425s |
| D→E | 1030m | 515s |
2.3 各工序单台设备耗时(秒)
| 工序 | 设备1 | 耗时1(s) | 设备2 | 耗时2(s) | 工序耗时(s) |
|---|---|---|---|---|---|
| A1 | 精密灌装机(200) | 5400 | 自动化输送臂(250) | 4320 | 5400 |
| A2 | 高速抛光机(100) | 18000 | 工业清洗机(250) | 7200 | 18000 |
| A3 | 自动传感多功能机(100) | 18000 | - | - | 18000 |
| B1 | 工业清洗机(100) | 4320 | - | - | 4320 |
| B2 | 精密灌装机(200) | 27000 | 自动化输送臂(300) | 18000 | 27000 |
| B3 | 精密灌装机(350) | 3703 | - | - | 3703 |
| B4 | 高速抛光机(120) | 10800 | 自动传感多功能机(100) | 12960 | 12960 |
| C1 | 工业清洗机(250) | 10368 | 自动化输送臂(250) | 10368 | 10368 |
| C2 | 精密灌装机(350) | 7406 | - | - | 7406 |
| C3 | 精密灌装机(200) | 6480 | 自动化输送臂(250) | 5184 | 6480 |
| C4 | 高速抛光机(120) | 12000 | 工业清洗机(100) | 14400 | 14400 |
| C5 | 自动传感多功能机(100) | 14400 | - | - | 14400 |
| D1 | 工业清洗机(250) | 8640 | - | - | 8640 |
| D2 | 精密灌装机(200) | 14400 | 自动化输送臂(300) | 9600 | 14400 |
| D3 | 精密灌装机(350) | 4629 | - | - | 4629 |
| D4 | 高速抛光机(120) | 45000 | 自动传感多功能机(300) | 18000 | 45000 |
| D5 | 自动传感多功能机(300) | 18000 | - | - | 18000 |
| D6 | 高速抛光机(100) | 25200 | - | - | 25200 |
| E1 | 工业清洗机(250) | 14400 | - | - | 14400 |
| E2 | 精密灌装机(350) | 6172 | - | - | 6172 |
| E3 | 自动传感多功能机(300) | 7200 | 工业清洗机(100) | 21600 | 21600 |
注:C3-C5需重复3遍,实际C车间工序为 C1→C2→C3→C4→C5→C3→C4→C5→C3→C4→C5
2.4 设备资源汇总
| 设备类型 | 班组1 | 班组2 | 单价(元) | 瓶颈程度 |
|---|---|---|---|---|
| 自动化输送臂 | 4台 | 4台 | 50000 | 中 |
| 工业清洗机 | 5台 | 5台 | 40000 | 低 |
| 精密灌装机 | 5台 | 5台 | 35000 | 低 |
| 自动传感多功能机 | 1台 | 1台 | 80000 | 极高 |
| 高速抛光机 | 1台 | 1台 | 75000 | 极高 |
2.5 瓶颈分析
高速抛光机使用工序:A2(18000s), B4(10800s), C4×3(12000s×3), D4(45000s), D6(25200s)
- 单台总工作量:18000+10800+36000+45000+25200 = 135000s = 37.5h
自动传感多功能机使用工序:A3(18000s), B4(12960s), C5×3(14400s×3), D4(18000s), D5(18000s), E3(7200s)
- 单台总工作量:18000+12960+43200+18000+18000+7200 = 117360s = 32.6h
这两类设备是绝对瓶颈,决定了整体 makespan 的下界。
三、各问题详细建模方案
3.1 问题1:班组1完成A车间
建模思路
A车间工序 A1→A2→A3 严格顺序执行,且三道工序使用的设备类型完全不重叠:
- A1: 精密灌装机 + 自动化输送臂
- A2: 高速抛光机 + 工业清洗机
- A3: 自动传感多功能机
因此不存在设备冲突,问题简化为:对每道工序分配最优数量的设备,使各工序耗时最短。
求解策略
- 所有设备从班组1出发到A车间,运输时间 = 200s
- 对每道工序投入最大数量的可用设备
- 总时间 = 运输时间 + sum(各工序耗时)
关键计算
- A1: 用5台精密灌装机 → ceil(5400/5)=1080s; 用4台自动化输送臂 → ceil(4320/4)=1080s → A1=1080s
- A2: 用1台高速抛光机 → 18000s; 用5台工业清洗机 → ceil(7200/5)=1440s → A2=18000s
- A3: 用1台自动传感多功能机 → 18000s → A3=18000s
- 总时间 = 200 + 1080 + 18000 + 18000 = 37280s
3.2 问题2:班组1完成五个车间
建模思路(MILP数学模型)
决策变量:
- xi,j,kx_{i,j,k}xi,j,k ∈ {0,1}:设备k是否被分配给工序(i,j)(车间i的第j道工序)
- si,js_{i,j}si,j ≥ 0:工序(i,j)的开始时间
- CmaxC_{max}Cmax:makespan(最大完成时间)
目标函数:
minCmax\min C_{max}minCmax
约束条件:
-
工序顺序约束(同车间内):
si,j+1≥si,j+pi,j∀i,∀js_{i,j+1} \geq s_{i,j} + p_{i,j} \quad \forall i, \forall jsi,j+1≥si,j+pi,j∀i,∀j -
工序耗时计算:
pi,j=maxt∈Ti,j⌈Qi,jri,j,t⋅∑k∈Ktxi,j,k×3600⌉p_{i,j} = \max_{t \in T_{i,j}} \left\lceil \frac{Q_{i,j}}{r_{i,j,t} \cdot \sum_{k \in K_t} x_{i,j,k}} \times 3600 \right\rceilpi,j=t∈Ti,jmax⌈ri,j,t⋅∑k∈Ktxi,j,kQi,j×3600⌉ -
设备不重叠约束(同一台设备不能同时服务两道工序):
si1,j1+pi1,j1+travel(i1,i2)≤si2,j2或si2,j2+pi2,j2+travel(i2,i1)≤si1,j1s_{i_1,j_1} + p_{i_1,j_1} + \text{travel}(i_1, i_2) \leq s_{i_2,j_2} \quad \text{或} \quad s_{i_2,j_2} + p_{i_2,j_2} + \text{travel}(i_2, i_1) \leq s_{i_1,j_1}si1,j1+pi1,j1+travel(i1,i2)≤si2,j2或si2,j2+pi2,j2+travel(i2,i1)≤si1,j1
(当设备k同时分配给工序(i₁,j₁)和(i₂,j₂)时) -
运输时间约束:
travel(i1,i2)=d(i1,i2)v(i1≠i2)\text{travel}(i_1, i_2) = \frac{d(i_1, i_2)}{v} \quad (i_1 \neq i_2)travel(i1,i2)=vd(i1,i2)(i1=i2) -
设备初始运输约束:
si,j≥d(班组1,i)v(设备首次使用时)s_{i,j} \geq \frac{d(\text{班组1}, i)}{v} \quad \text{(设备首次使用时)}si,j≥vd(班组1,i)(设备首次使用时) -
makespan约束:
Cmax≥si,j+pi,j∀i,∀jC_{max} \geq s_{i,j} + p_{i,j} \quad \forall i, \forall jCmax≥si,j+pi,j∀i,∀j
求解策略(CP-SAT实现)
使用 OR-Tools CP-SAT 求解器,建模要素:
- 为每台设备创建 interval 变量序列
- 使用 AddNoOverlap 约束确保设备不冲突
- 使用 optional interval 处理设备分配决策
- 运输时间作为设备连续任务间的最小间隔
关键优化策略:
- 由于瓶颈设备(高速抛光机、自动传感多功能机)各仅1台,优先安排这些设备的工序顺序
- 非瓶颈设备(精密灌装机5台、工业清洗机5台)有充足冗余,分配相对灵活
- 车间作业顺序对瓶颈设备的利用率影响最大
3.3 问题3:双班组完成五个车间
建模思路
在问题2模型基础上扩展:
- 设备集合从班组1的16台扩展为班组1+2的32台
- 不同班组设备的初始位置不同(运输时间不同)
- 允许同一车间由两个班组的设备协同完成
关键差异
- 班组2的自动传感多功能机和高速抛光机各1台,瓶颈设备翻倍
- 理论 makespan 下界约为单班组的一半
- 需要合理分配车间给两个班组以平衡负载
求解策略
- 统一建模,32台设备自由分配
- CP-SAT 自动寻找最优分配方案
- 可先用启发式(按工作量均分车间)获得初始解加速求解
3.4 问题4:预算约束下设备购置+调度
建模思路
两阶段优化:
- 第一阶段(设备购置决策):确定各类设备的购买数量
- 第二阶段(调度优化):基于新设备配置求解最优调度
预算约束
∑tnt⋅ct≤500000\sum_{t} n_t \cdot c_t \leq 500000t∑nt⋅ct≤500000
其中 ntn_tnt 为购买设备t的数量,ctc_tct 为单价。
求解策略:枚举+CP-SAT
瓶颈分析驱动的购置策略:
- 高速抛光机(75000元):总工作量135000s,增加1台可显著降低makespan
- 自动传感多功能机(80000元):总工作量117360s,增加1台效果显著
- 其他设备已有4~5台,增加边际效益低
枚举空间估算:
- 高速抛光机:06台(0450000元)
- 自动传感多功能机:06台(0480000元)
- 其他设备:0~若干台
- 约束:总费用≤500000
实际有效组合约几十种,对每种组合运行CP-SAT求解,取makespan最小的方案。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)