我目前正在尝试为我的研讨会论文解决一个实际问题,并且不知道如何将其正确实现到Cplex中。这是我必须使用的Excel工作表的屏幕截图。可以看到未来两年的订单。这些订单必须放在一台机器上。机器就像一个生产桶,有四个相等的夸脱。这些宿舍对于不同的成立小组具有不同的能力。例如,第2行的此设置组的四分之一容量为15,这意味着如果需要17,则可以看到第一象限为15/15,第二象限02/15,第三和第四象限为空。现在的任务是查找同一设置组中的其他订单,以将它们分批处理,以提高本机的利用率。
还有一个特别的事情是,可以将具有相同设置组和相同容量消耗的订单合计为四分之一。如果设置组相同但容量消耗不同(由于现实生活中的大小不同),则必须在新的季度中放置更大或更小的订单。
对我来说,这似乎是修改后的装箱问题。在Python中,我已经解决了它,因为使用自己的启发式方法更容易。我不知道如何将其转化为数学公式
答案 0 :(得分:0)
我建议看一下CPLEX附带的各种示例。它们包括调度和打包示例。
一种简单的方法是让二进制决策按订单和季度索引,并且仅当在该季度开始订单时才为1。然后添加一个约束,以使每个订单的起始位置恰好为四分之一,并添加约束,以禁止订单重叠,禁止两个不同类型的订单位于同一季度等。