背景
在过往与不少合作伙伴们,就生产计划项目方案的讨论中,经常提及这样的一种情况:“我们在编制生产计划时,有些数量较大的订单,需要拆分成多个子订单,这样才能利用多个资源并行加工,以缩短生产周期,提高资源利用率” - 我们称为【工单拆分】
或
“一些较零碎、且工艺相同或相近的订单,我们需要合并成一个大工单来生产,以减少机台换型,降低生产管理过程的复杂度” - 这种情况我们称为【工单合并】
从业务场景上看,先将较大的工单拆分(或将较零碎的工单合并成一个大工单)再进行排产,属于正常的生产计划工作流程,甚至在某些场景中,此项工作占用了生产计划编制的大量工作时间。但针对这种需求,易排平台在之前的版本中,尚未提供专门的功能应对。综合过去一年多以来各个项目及客户业务场景的分析结果,在拆分/合并的工作中,通常存在较大的可优化空间,与其它规划优化问题一样,若将拆分/合并工作建立优化模型, 过求解器进行求解运算,同样会获得如下若干方面的价值:-
提高拆分/合并工单的效率,借助软件系统快速精确地执行拆分/合并规则,减少人工分析、判断工作量;
-
尽可能避免人工拆分/合并过程中的工作失误;
-
针对一些无法列出明确方法、但能定义拆分/合并的要求,可通过运筹规划技术尽可能求得最优方案,尽可能将拆分/合并工单做到合理化、精益化;
-
将拆分/合并工单的业务规则与以往积累的经验固化成企业的数据与智力资产。
易排平台针对拆分与合并需求的不足
事实上,上述工单(或任务)拆分与合并这两种,对于目前的易排平台都有对应的灵活手段实现,但都是较为取巧的方法。例如通过将多个资源组合成资源组,实现多个资源并行对一个大工单进行并行加工(与拆分工单等效)。通过优化细小工单之间的时间与空间,来实现大工单并行与小工单集中处理的要求,主要通过聚集加工与降低切换成本两个优化目标实现(与合并工单等效)。但当出现一些特殊情况,将会存在一定程度的局限性,分别是:-
拆合单工作本身可以在排产前进行预处理实现,易排上述的折冲办法是在排产过程中实现,将会造成规划运算逻辑过度复杂、搜索空间过大,从而影响真正的排产结果
-
为了实现拆分工单,需要明确指定资源组,在某些场景下无法实现(或人工较难找到最佳的资源组合)
-
存在一些特殊情况,上述折冲方法均无法实现与拆分/合并工单完全相同的效果。
事实上,对于规划问题而言,排程场景就是一个Project Job Scheduling问题(或其衍生问题),我们在建立规划模型时,都有一个专门的模型来描述这种“任务+资源+时间”的关系,这样才能将模型提供给求解器运算寻找最优方案。而“将大工单拆分成子工单以便并行生产,以提高资源利用率、缩短交期”这个需求明显并不属于Project Job Scheduling这一问题的任何一个衍生模型。但是,相对于生产计划工作过程而言,拆分任务(一个大工单拆分成小工单)与合并任务(多个小工单合并成一个大工单),却是生产计划编排工作中极为常见且重要的工作,也可以视作在排产前对任务进行的预处理。
针对拆分/合并工单问题的常见办法
很明显目前市面上成熟的APS产品,也不会将拆分/合并功能纳入产品的规划模型内,也许确实存在这种工单拆分/合并的软件,但往往是独立于APS功能范围以外。而在运筹规划领域,工单的拆分/合并可以使用背包问题(或其衍生问题)的模型来实现。易排平台下一版本将推出专业的拆分/合并模块
针对工单拆分/合并场景需求,易排平台增加了工单拆分/合并模块(后续将命名为任务整合模块),实现了以下场景功能:-
对大单进行拆分:根据资源状况,工单并行处理要求将数量大的工单拆分成多个小工单,从而实现同一工单使用多个资源并行加工生产。
-
合并多个小工单成为一个大工单:针对一些存在工艺相容的较小工单,根据要求合并成一个大工单,以便对这些工单进行时间与空间上的聚集加工。
一个IT老农,先尽力担好当儿子、丈夫和父亲的责任,然后做点有趣的事。