1. 课程导入与工程对象界定
在制造、能源、物流、软件交付等大量工程场景中,计划一旦下发,现实几乎立刻开始偏离它。设备故障、来料延迟、人员缺勤、订单插单、良率波动,都会让"计划曲线"与"实际曲线"之间产生缝隙。本课程要解决的核心问题不是"如何做一个完美的计划",而是:当计划与实际已经出现偏差时,如何识别偏差、量化偏差、判断偏差是否值得重排程,并生成一份可执行、可追溯、代价可控的新计划。
这里需要先界定两个关键概念。所谓计划实际偏差,指的是在某一时刻,原计划对某对象(工序、订单、设备、任务)的预期状态,与现场实际状态之间的差异。它既包括时间偏差(提前/滞后),也包括数量偏差(完成量、产出量)、资源偏差(可用产能、人员)和状态偏差(已开工/未开工/已取消)。所谓滚动重排程,指的是在滚动时间窗内,以当前实际状态为起点,对剩余任务重新分配时间与资源,并保持与已冻结部分一致性的过程。二者是"诊断"与"治疗"的关系:偏差是输入,重排程是响应。
为了把问题讲清楚,必须先明确工程对象的边界。本课程讨论的对象是可离散化、可排序、可分配资源的任务集合,典型如:车间工单与工序、设备维修任务、配送线路与车辆、软件迭代中的需求项与开发任务。它们共同具备三个特征:有明确的开始与结束时间、占用有限资源、存在前后置约束。相反,纯连续过程控制(如化工反应釜温度闭环)或完全无约束的创意工作,不在本课程的重排程讨论范围内。
下面这张图给出了本课程的整体对象关系与学习路径。它把"计划域""实际域""偏差域""重排程域"四个区域并列,并标出它们之间的数据流与判断关系,而不是简单罗列章节标题。
从图中可以看到,偏差域是整条链的枢纽。它向上承接计划基准与实际状态,向下决定是否触发重排程。因此本课程不会一上来就讲算法,而是先建立偏差的量化口径。例如,某工序计划开始时间为 08:00,实际开始时间为 09:30,则 Δt = +90 min,表示滞后 90 分钟;若计划产出 500 件,实际产出 420 件,则 Δq = −80 件,表示欠产 80 件。这两个数值本身并不直接决定是否重排,还需要结合后续任务的总浮动时间、客户交期、资源占用代价来综合判断。
接下来要明确技术边界。滚动重排程不是"随时推倒重来",它必须遵守三条工程约束:第一,冻结区不可动,已经开工或已锁定资源的任务保持原计划,避免现场混乱;第二,重排代价可控,新计划与原计划的差异(任务移动量、换型次数、加班时长)要作为目标函数的一部分,而不是只追求交期最短;第三,可追溯,每一次重排都要记录触发原因、输入快照、算法版本和输出结果,便于复盘与审计。
典型应用场景可以归纳为四类。第一类是离散制造车间,工单在设备间流转,设备故障或来料延迟导致工序滞后,需要滚动重排剩余工单。第二类是设备维修与巡检,突发故障插入后,原定预防性维护任务需要重新排序。第三类是物流配送,车辆延误或订单变更后,剩余线路与装载方案需要重算。第四类是软件迭代交付,需求变更或人员变动后,迭代内任务需要重新分配。这四类场景的共同点是:任务可排序、资源有限、偏差频繁、重排有代价。
关于整体学习路径,本课程按"识别—判断—重排—落地—复盘"推进。前几章聚焦偏差的采集与量化,包括计划基准的建立、实际状态的获取、偏差计算公式与分级标准;中间章节进入触发机制与滚动窗口设计,讨论冻结区长度、滚动周期、触发阈值如何设定;随后进入重排算法与代价控制,涵盖约束建模、目标函数、常用启发式与精确方法的适用边界;最后落到下发执行、异常处理与复盘改进。每一章都会给出可操作的参数示例与判断依据,而不是停留在概念层面。
需要特别说明的是,本课程中的参数、数据和算例,除明确标注为实测外,均为教学示例或合理假设,用于说明计算过程与判断逻辑,不代表任何特定企业的真实生产数据。读者在实际工程中应结合自身采集精度、业务约束和代价结构重新标定阈值与权重。