我们有以下情况。有一家加工厂接收客户的订单。这些订单可能需要花费不同的时间来处理,并且始终会获得最多的天数,以将订单交付给客户。为了处理每个订单,工厂必须有数量有限的工人/处理器(它不能更改)。我们被要求开发一种调度系统,以优化处理器的使用情况,使他们可以参加最大数量的客户而不会错过交付期限。订单在任何给定时间到达,因此他们期望在需要时重新安排队列。他们还希望该系统能够在工厂不能再接订单之前通知他们,而不会开始错过最后期限。
我们得到的最好的摘要是:
主要限制是不要错过最后期限,而优化目标是使处理器的中间时间最小化。
查看了this问题后,我们发现与Knapsack problem和Bin packing problem有相似之处,但主要与Job shop scheduling有相似之处。与最后一个的主要区别是我们不知道如何为截止日期建模。
我们看到的第一个解决方案是根据每个任务的截止日期为其分配优先级,然后检查解决方案是否遗漏了其中任何一个。
问题可能是: