1. 课程导入与排产问题界定
在制造现场,排产并不是“把订单排个先后顺序”这么简单。只要车间里存在多台设备、每件产品要经过多道工序、不同工序又可能争用同一台机器,排产就变成了一个带约束的组合优化问题。本课程讨论的多设备多工序约束排产,指的是:在给定订单、工艺路线、设备能力、人员班次、物料齐套等条件下,为每道工序确定在哪台设备上加工、从什么时刻开始加工,并满足工序先后、设备互斥、交期等约束,使交期达成率、设备利用率、在制品等目标尽可能好。
先看一个典型场景。某机加工车间有 5 台设备:数控车床 CL-01、加工中心 MC-01 与 MC-02、钻床 DR-01、清洗机 WS-01。订单 A 的工艺路线是“车→铣→钻→清洗”,订单 B 是“铣→钻→清洗”。其中铣工序在 MC-01、MC-02 上都能做,但 MC-02 精度更高、加工时间更长。此时排产要回答三个问题:每道工序选哪台设备?每台设备上多道工序按什么顺序排?各工序的开工、完工时刻是多少?这三个问题互相耦合——设备选择会改变设备上的排队顺序,排队顺序又反过来影响后续工序的开工时刻。
从业务目标看,排产通常不是单一目标,而是多目标的权衡。常见目标包括:交期达成率(按期完工订单占比)、平均流程时间(订单从投料到完工的平均时长)、设备利用率(有效加工时间占可用时间比例)、在制品水平(车间同时滞留的工件数量)、换型次数(同设备上不同产品切换的次数)。这些目标往往互相冲突:一味追求设备利用率会堆积在制品,一味压缩流程时间可能增加换型。因此排产的第一步不是“算”,而是明确本车间当前最看重什么,把它写成可量化的目标函数或评价指标。
约束是排产问题的骨架。按来源可分为四类:工艺约束,即工序先后顺序,如“车必须在铣之前”;资源约束,即同一时刻一台设备只能加工一道工序,同一名操作工不能同时看两台机;时间约束,包括订单交期、班次可用时间、设备预防性维护窗口;物料与工装约束,如某工序所需刀具只有一把、毛坯未到货则不能开工。约束还可分为“硬约束”和“软约束”:硬约束必须满足,违反即方案不可行;软约束允许违反但要在目标中惩罚,例如“尽量不安排加班”。区分二者,是后续建模和求解的前提。
为了把上述概念串起来,下图给出多设备多工序排产的约束关系与决策结构。图中左侧是订单与工艺路线,中间是设备资源池,右侧是排产输出;箭头表示工序先后与设备占用关系,虚线框表示需要同时满足的约束集合。
有了这张关系图,就能理解为什么排产不能靠“拍脑袋”。以示例数据估算:订单 A 的铣工序若选 MC-01,20 件 × 12 min = 240 min;若选 MC-02,20 件 × 18 min = 360 min。MC-01 更快,但订单 B 也要用铣,若两单都挤 MC-01,MC-01 负荷为 240 + 15×12 = 420 min,而 MC-02 空闲。把订单 B 的铣放到 MC-02,MC-01 负荷降为 240 min,MC-02 为 270 min,两机更均衡,整体完工时间可能更早。这说明设备选择与排序必须联合决策,单独看一道工序的最短加工时间,未必得到全局最优。
本课程的整体路线图按“界定—建模—求解—落地—复盘”推进。第一阶段界定问题:识别订单、工艺、设备、约束与目标,建立排产问题的标准描述。第二阶段建模:把工序、设备、时间写成变量与约束,理解析取图、数学规划、约束满足等表达方式。第三阶段求解:从规则调度(如 SPT、EDD、关键比)到元启发式(遗传算法、禁忌搜索),再到约束规划与混合方法,理解各自适用边界。第四阶段落地:处理数据接口、异常插单、设备故障、班次与维护,把算法嵌入日常排产流程。第五阶段复盘:用交期达成率、利用率、在制品等指标评估排产效果,持续调整目标权重与规则参数。