FLEXSCHE

员工博客Staff Blog

管材类裁切优化

2022/09/28
written by Ran

Ran

大家好,我是APS高级生产排程系统FLEXSCHE公司的Ran。

圆钢、槽钢、管材、线材类加工行业经常会遇到多种规格的管材线材类的裁切及裁切优化问题。
FLEXSCHE可以通过自动在原材料或半成品订单和成品订单之间建立关联关系,自动决定如何进行裁切。 另外,建立对于如何建立关联可以设置条件,从而可以解决优化问题。

自动关联

例如有3种A管材长度分别是2米,8米,10米。订单代码分别为A2,A8,A10。
需要将A管材裁切加工成X成品。
有4个成品订单分别是3米,5米,6米,5米。订单代码分别为X3,X5,X6,X5_2。

2209_1.png

那么这些订单分别要用哪个管材进行裁切呢?
我们看看自动关联的结果。

2209_2.png

2209_3.png

X3 :A2的2米/2米,A10 1米/10米
X5 :A10 5米/9米
X6 :A10 4米/4米 ,A8 2米/8米
X5_2 :A8 5米/6米

这样A2和A10为0,A8剩下1米。

只能裁切,不可衔接

如果只是单纯的匹配供求关系,那么上面的结果也许没有什么问题。
但此次是管材,假设只能裁切,不可衔接。
也就是说只可以一个半成品关联多个成品,但不可以多个半成品关联1个成品。

添加条件再关联后的结果如下。

2209_5.png

2209_4.png

2209_6.png

X6 :A8 6米/8米
X3 :A10 3米/10米
X5 :A10 5米/7米
X5_2 :做不了

这样A8,A10分别剩下2米。
(没有2米的订单所以没有用到A2)

背包问题(Knapsack problem)

上述结果中,A10这个10米长的管材,为了X3和X5,裁切了3米和5米,剩了2米。
为什么不为了X3和X6裁切下3米和6米,剩下1米呢?
又为什么不为了X5和X5_2分别切下5米,不剩料呢?

也就是收我们此次要考虑如何选择才能使管材物尽其用,尽量不剩料。
这就与著名的背包问题(Knapsack problem)类似。

FLEXSCHE可以使用Knapsack函数,我们用这个函数改写条件,再关联。

2209_10.png

2209_7.png

2209_8.png

X3 :做不了
X6 :A8 6米/8米
X5 :A10 5米/10米
X5_2 :A10 5米/5米

这样A8剩下2米。

废料问题

最后再加大难度,考虑一下废料的问题。还是3种A管材长度分别是8米,10米,2米。订单代码分别为A8,A10,A2。 为了便于说明修改一下订单。这次来了3个订单分别是3米,5米,6米。订单代码分别为X3,X5,X6。

2209_9.png

使用Knapsack函数匹配结果如下。

2209_11.png

X5 :A8 5米/8米
X3 :A10 3米/10米
X6 :A10 6米/7米

这样A8剩下3米,A10剩下1米。

假如根本不可能有1米长管材的订单,余料长度小于1米则认为是废料,
如何才能尽量不产生废料呢?

2209_14.png

对使用了Knapsack函数的条件加上不产生废料的条件,关联后结果如下。

2209_12.png

X6 :A8 6米/8米
X3 :A10 3米/10米
X5 :A10 5米/7米

这样A8,A10各剩下2米。

2209_13.png

为了便于说明和理解,本文仅仅将注意力放在如何对管材裁切上,并未考虑时间问题。如果需要考虑一定周期内的综合余料结果的话,可以通过限定关联对象等方法实现。

相关课题欢迎垂询。

PAGETOP