把排产当算法题做的误区
学生刚在选修课上学了遗传算法、粒子群优化,上来就奔着全局最优去了。把能想到的约束全往模型里堆——刀具损耗系数、换产准备时间、物料配送延迟概率,甚至连工人午休换岗的时间都往里加。说实话,越算越乱。跑八个小时出来的结果,还不如车间干了十年的调度随手画的排产表能用。
有个组为了凑够“智能”的完成度,硬融了三种算法,最后出来的方案,机器每二十分钟就要换一次工序,光换刀一天就耗掉四个小时产能。纯纯瞎忙活。
那时候我才反应过来,之前讲课只讲了智能排产能实现什么,漏了最核心的一点:机械生产场景里的排产,核心是解决约束冲突,不是找理论上的最优解。

砍掉八成要求后的惊喜
当天晚上我就改了实训要求,第二天上课直接说:不要全局最优,先满足核心约束,再谈优化。什么是核心约束?就我们实验室这条小型线来说,只有两个:瓶颈工序不能停,给定零件交期不能错。剩下的约束,全是可选项,能加就加,加不动就放。
大半学生一开始不服,觉得这不够“智能”,糊弄事。结果呢?放开要求之后,半天时间就有八组出了能用的排产逻辑。我才想明白,之前我们都被“智能”两个字绑住了。好像不搞大模型、不堆几十上百个参数,就不配叫智能排产。其实不对。机械设计里的排产,大多是有限产能下的动态调度,拿着无限产能的模型算,怎么可能得到可用的结果。

不过话说回来,也不是说算法就没用。有个组改完要求后,先手动把瓶颈工序的排程定了,再用算法调非瓶颈工序的顺序,最后出来的结果,比他们一开始做的全局优化,产能利用率提了一成多,换产时间降了快三成。结果出来的时候,那组的组长跑过来找我,眼睛都亮了,说原来智能不是拼参数多,是能解决真问题。这句话我直接记进教案里了。
留在教案里的几个问题

这次实训结束之后,我翻了几本现用的教材,发现大部分讲智能排产,要么把它当成工业工程的一个知识点,要么当成算法课的案例,很少从机械设计的角度讲清楚:排产从生产线设计阶段就要考虑。你设计生产线的时候,缓冲位留几个,瓶颈工序怎么布局,工装夹具怎么换,本身就决定了排产的难度。很多学生做设计,先把设备布局画完,结构定死,最后才补排产模块,那不卡才怪。
还有个问题,我现在还没想透。现在不管是企业还是教材,都在说全自动化无人排产,好像留个人工干预的口子就是落后。真的是这样吗?我之前跟本地一个机加工老板聊天,他说去年上了一套大几十万的排产系统,到现在每天还是得让干了二十年的老调度来调两个小时。毛坯不合格、机床突然跳闸、客户临时插单,这些突发情况,你就算把所有概率都算进模型,也不可能全覆盖。那我们教智能排产,到底要不要教学生给人工调度留接口?
我觉得要。必须要。现在我每次备课,都会在最后加一行字:智能排产是解决问题的工具,不是最终答案。机械设计本来就是平衡的艺术,平衡成本和性能,平衡效率和弹性,排产也一样。
太多学生毕业找工作,一开口就是我会大模型排产,我会深度学习调度,一问他瓶颈工序怎么找,换产时间怎么计入约束,全答不上来。我们做一线教学的,还是得把根扎在真实的工程问题上,不能追着风口跑。毕竟,做出来的排产方案得能用,对吧。