我有一个离线排程问题,目的是找到在截止日期前完成所有客户订单的计划,如果无法执行则报告错误。
情况是制造商有某种产品。他们有一台机器来生产他们的产品,每种产品最多只能生产Mi项目,并且有完工时间(Mi和Ti取决于每种产品)。
有一些客户,每个客户将在时间t订购一组产品。此订单的截止日期取决于其订单类型。快速订单的截止日期为t + Df,而慢速订单的截止日期为t + Ds。 Ds和Df是不变的。
产品A可生产5件5分钟
产品B可生产2件1分钟
Ds = 7分钟,Df = 6分钟
有两个客户订单
在t = 2的快速服务{A,A,B}(然后该订单的截止日期是8)
在t = 7时的慢速服务{A,A,A,B}(然后该命令的截止时间为14)
然后解决方案是:
在t = 2时开始生产2项A(我们无法在收到订单前开始生产)
在t = 7时,A的2个项目已经完成,我们可以开始为订单1和2生成2个B项(因为在t = 7,我们收到第二个订单,我们可以开始生产第二个订单)
在t = 8时,B的2个项目完成(第一个订单在t = 8完成,这是在截止日期之前并完成此客户订单),我们可以开始为订单2生成3个项目的A
在t = 13时,A的3个项目完成(第二个订单在t = 13完成,也在截止日期之前完成并履行此客户订单)。
可能的时间表将是:
在t = 2时,为订单1产生2 A.
在t = 7时,对于1阶和2阶产生2 B.
在t = 8时,为订单2产生3 A.
我怎样才能找到时间表,以便在截止日期前完成所有客户订单?