本文将为大家带来2026年东北三省数学建模联赛B题的详细解题思路,由于该竞赛比赛时间过长、题目简单,会导致所有参赛选手的论文质量都会很高。所以本文将详细的为大家介绍题目的解题思路以及可以实现的创新点。
B题:大型展销会临时工招聘与排班优化问题
问题总览
该问题聚焦大型展销会的临时工排班优化,目标是在满足各小组每日各时段临时工需求的同时,最小化招聘人数,并考虑工作连续性、休息要求及灵活分配策略。问题有三个层次的约束复杂度:固定小组、跨天小组、跨天及跨时段小组。这是一道经典的人员排班(Workforce Scheduling) 运筹优化题。核心目标是在满足所有小组每小时用工需求的前提下,最小化招聘临时工总人数。三个问题的约束条件逐步放宽(灵活性递增),建模复杂度依次提升。
首先需要理解题目的题设,本文每名工人每天工作8小时,每天的工作时间窗口是11小时,而必须存在两段连续的4小时工作时间,因此可以简单的绘图或者自行计算排列组合一共10种方案具体如下图所示

而针对天的工作持续状态,一共10天,其中必须有两天的休息时间。排列组合的话,应该是10×9,共90种方案,具体的可参考下图

问题1:每人只服务同一小组(10天绑定)
问题描述: 每名工人全程只属于一个小组,需在10天内工作8天(休息2天),每天工作连续8小时(两个连续4小时段)。
求解思路:
对每个小组独立建立整数线性规划(ILP),决策变量为:每种"工作日组合×每天工作时段组合"的工人人数,目标为最小化该小组的工人总数。10个小组独立求解后汇总即为总人数。
可用模型:
·整数线性规划(ILP):最直接,用 CPLEX / Gurobi / Python PuLP 求解
·列生成法(Column Generation):当班次变量爆炸时,动态生成可行排班列
关键约束: 每天每小时实际在岗人数≥ 需求量;每人工作天数 = 8;每天工作时段为连续8小时(即连续两个4小时块)。
创新点:
·建立灵敏度分析:找出哪些小时段是"瓶颈时段"(需求最难满足),指导运营管理重点关注




问题2:跨天可换小组(日内绑定)
问题描述: 同一天内一个工人只能服务一个小组,但不同天可服务不同小组,灵活性增加。
求解思路:
建立统一的全局ILP,引入工人-天-小组的三维分配变量,利用跨小组调配减少总招聘人数。
可用模型:
·混合整数线性规划(MILP):全局统一建模,变量规模较大但结构规则
·网络流模型:将工人的工作-休息安排抽象为有向图上的流量问题,可利用网络流的多项式算法高效求解
创新点:
·利用问题结构(需求矩阵的稀疏性)进行预处理剪枝,大幅缩减搜索空间
·对比问题1的最优解,量化"跨组调配"带来的节省工人数量,体现灵活排班的价值




问题3:同天可跨2组 + 休息2小时约束
问题描述: 一天内可服务至多2个小组,各工作4小时,两段之间至少有2小时休息(即工作时段不相邻,至少隔2格)。
求解思路:
首先枚举所有合法的"单日班次"(满足4+休息2+4约束),然后在全局MILP中以合法班次为决策单元,最优化分配。
可用模型:
·集合覆盖/划分模型(Set Covering):以合法班次为列,以每小时需求满足为行约束,是这类排班问题的标准范式
·启发式算法(遗传算法/模拟退火):当精确求解因规模过大而超时,可用元启发式算法求近优解
·列生成 + 分支定价(Branch & Price):求解大规模集合覆盖的标准工业方法
创新点:
·引入鲁棒优化框架:考虑实际场景中工人可能临时缺勤,设计有一定冗余的鲁棒排班方案
·建立多目标优化:同时最小化招聘人数和最小化工人负荷方差(公平性),用Pareto前沿展示二者的权衡关系
