0

我有一个听起来像是典型的装箱问题:x个不同尺寸的产品需要装进y个不同容量的容器中,从而最大限度地减少使用的容器数量,同时最大限度地减少浪费的空间。

我可以简化问题,因为产品尺寸和容器容量可以减少到标准的一维单位。即这个产品是 1 个单位大,而那个是 3 个单位,这个盒子有 6 个单位,那个 12 个。想想鸡蛋和纸箱,或啤酒箱。

但是还有一个额外的限制:每个容器都有一个特定的属性(我们称之为color),每个产品都有一组与之兼容的颜色。颜色和产品/容器尺寸之间没有相关性;一种产品可能与整个调色板颜色兼容,另一种产品可能仅与红色容器兼容。

这个问题变体是否已经在文献中描述过?如果有,它的名字是什么?

4

2 回答 2

0

我认为这个变体没有特殊的名称。尽管着色约束首先给人的印象是它与图形着色相关,但事实并非如此。这只是对变量值的限制。

在典型的求解器实现中,每个产品(= 项目)都会有一个变量分配给它的容器。颜色约束只是缩小了特定变量的值范围。因此,与其指定所有变量都使用相同的值范围,不如让它特定于变量。(例如,在 OptaPlanner 中,这是解决方案一般提供的值范围或实体具体提供的值范围之间的差异。)因此着色约束甚至不需要是约束:它可以是大多数求解器中模型的一部分.

任何可以处理装箱的求解器都应该能够处理这种变体。您的问题实际上是Roadef 2012 Machine Reassignment 问题的放松,这是关于将进程分配给计算机。只需删除所有约束,除了 1 资源使用约束和将某些进程排除在某些机器上的约束。该用例在许多求解器中实现。(尽管在实践中,从基本的装箱示例开始可能更容易,例如Cloud Balancing。)

于 2014-06-13T08:01:37.497 回答
0

最有可能的二维装箱或经典背包问题。

于 2014-06-12T19:39:08.940 回答