1. 课程导入
在制造企业中,生产排程(Production Scheduling)是把“订单需求”转化为“车间可执行作业指令”的关键环节。它回答的核心问题是:在有限产能、有限物料、有限人员与有限时间的约束下,哪一台设备、在什么时间、加工哪一道工序、加工多少数量、按什么顺序执行。排程做得好,交期更稳、在制品更少、换型更省、设备利用率更高;排程做得差,现场频繁插单、加班救火、库存堆积、客户投诉,最终把利润消耗在等待与切换之中。
本课程围绕“算法 + 求解器工程”展开,不是只讲概念,也不是只讲某个软件按钮,而是把排程问题抽象成可计算的模型,再用合适的算法与求解器落地。学习路线可以概括为:业务建模 → 数学建模 → 算法选择 → 求解器实现 → 工程调优 → 场景验证。下面从定义、重要性、典型场景与学习路线四个层面展开。
1.1 生产排程的定义与边界
生产排程通常位于ERP/MES与车间执行之间。ERP给出订单交期与物料需求,MES采集现场进度与设备状态,排程系统则输出工序级作业计划。它与“生产计划”不同:计划更偏向月度/周度总量与资源粗分配,排程更偏向日/班次/小时级的工序排序与资源指派。排程的输入通常包括:订单(交期、优先级、数量)、工艺路线(工序顺序、可选设备、标准工时)、资源(设备、模具、人员、班次日历)、约束(换型时间、批量约束、物料齐套、工序间等待上限)以及优化目标(最小化最大完工时间、总延期、换型次数、在制品等)。
一句话理解:排程 = 在约束网络中为每道工序找到“时间窗 + 资源位”,并让整体目标函数尽可能优。
1.2 为什么排程重要:从交期到利润的传导链
排程的重要性体现在一条清晰的传导链上:排程质量 → 现场执行稳定性 → 交期达成率 → 客户满意度 → 资金周转与利润。具体来看:
- 交期与响应:合理的工序排序能减少关键设备上的排队等待,缩短制造周期,提高准时交付率。
- 成本与效率:减少换型次数、平衡设备负荷、降低加班与急单插单带来的额外成本。
- 库存与资金:降低在制品与成品库存,释放现金流,减少呆滞与过期风险。
- 现场与人员:计划稳定可执行,减少“救火式”调度,提升员工体验与设备寿命。
很多企业误以为“排程就是排个顺序”,但真正的难点在于:约束多、目标冲突、数据不准、现场扰动频繁。排程不是一次性计算,而是一个滚动优化 + 反馈修正的闭环。
1.3 典型场景:不同生产形态的排程差异
不同生产形态对排程的要求差异很大。离散制造关注工序顺序与设备切换;流程制造关注连续性与批次衔接;项目型制造关注关键路径与资源冲突。下表给出常见场景与排程重点:
| 场景类型 | 典型行业 | 排程重点 | 常见目标 |
|---|---|---|---|
| 单件小批/项目型 | 模具、非标设备 | 关键路径、资源冲突、外协协同 | 最短工期、按期交付 |
| 多品种小批量 | 电子组装、机加 | 换型优化、设备负荷平衡 | 最小换型、最小延期 |
| 大批量流水 | 家电、汽车零部件 | 节拍平衡、缓冲区控制 | 最大产出、最小在制品 |
| 流程/批次 | 化工、食品、制药 | 批次衔接、清洗切换、保质期 | 最小切换损失、合规 |
| 混合/柔性 | 半导体、PCB | 多资源耦合、重入、瓶颈控制 | 吞吐量、周期时间 |
以“多品种小批量机加车间”为例:同一台CNC可能加工多种零件,换型时间从几分钟到几小时不等。若排程只按交期先后,可能导致频繁换型,设备看似忙碌但有效产出低。此时需要把换型时间矩阵纳入模型,用序列相关准备时间来优化排序。
1.4 核心原理:排程问题的三要素
任何排程问题都可以拆成三要素:资源、任务、约束与目标。资源是设备、人员、模具、托盘等;任务是订单分解后的工序;约束包括工艺顺序、资源能力、日历、物料齐套、换型、批量等;目标是交期、成本、效率、库存等多目标的权衡。数学上,经典作业车间调度可表示为:给定n个工件、m台机器,每个工件有固定工序顺序,每道工序在指定机器上加工,求最小化最大完工时间Cmax。其简化模型如下:
目标:min Cmax
约束:
1) 每道工序必须在其前序工序完成后开始
2) 同一台机器同一时刻只能加工一道工序
3) 工序加工时间、设备可用日历已知
4) 换型时间依赖前后工序顺序
决策变量:
x[i][j][k] = 工序(i,j)是否在机器k上第t个位置加工
s[i][j] = 工序(i,j)开始时间
现实问题往往比上述模型更复杂:机器可能并行、工序可选设备、存在批处理与物料等待上限。因此,课程后续会逐步引入约束规划(CP)、混合整数规划(MIP)、启发式与元启发式、以及求解器工程。
1.5 方法流程:从业务到可执行计划
一个可落地的排程系统通常遵循以下流程:
- 数据接入:从ERP/MES/APS获取订单、工艺、资源、日历、库存与现场进度。
- 问题建模:定义决策变量、约束、目标函数,明确时间粒度与滚动窗口。
- 算法选择:小规模精确求解,大规模启发式/元启发式,动态场景滚动优化。
- 求解与校验:调用求解器,检查可行性、约束违反与目标值。
- 发布与执行:下发到MES/工单,现场按序执行并反馈实际进度。
- 滚动重排:根据扰动(设备故障、急单、缺料)触发重排,保持计划稳定。
工程提示:排程系统的价值不仅在于“算得优”,更在于“算得稳、算得快、可解释”。现场需要知道为什么这样排,才能信任并执行。
1.6 学习路线图:30章如何展开
本课程共30章,整体分为五个阶段:基础认知 → 建模方法 → 算法与求解器 → 工程实现 → 场景实战。第1章建立全局认知;第2-6章讲解排程建模与约束表达;第7-14章深入算法(规则、启发式、元启发式、CP、MIP);第15-22章聚焦求解器工程(建模语言、求解器接口、性能调优、并行与热启动);第23-30章通过机加、电子、流程、半导体等场景进行综合实战与复盘。
下图给出本课程的学习路线与知识依赖关系,帮助你在后续章节中定位每个知识点所处的位置。
1.7 常见误区与复盘要点
初学者常陷入以下误区:
- 只追求“最优解”而忽略可执行性:现场数据不准、约束遗漏,导致计划无法执行。应先保证可行与稳定,再逐步优化。
- 把排程当成一次性计算:没有滚动重排与反馈机制,计划很快失效。
- 目标单一化:只看交期或只看设备利用率,容易造成库存或换型成本上升。需要多目标权衡与权重设计。
- 忽视换型与批量:序列相关准备时间往往是排程优化的最大收益点之一。
- 跳过建模直接调参:模型不对,算法再强也无用。建模是排程工程的地基。
复盘建议:每做完一个排程项目,回看三件事——约束是否完整、目标是否符合业务、滚动机制是否闭环。这三件事决定排程系统能否长期产生价值。