bin包装与重叠的对象

时间:2012-07-25 11:49:14

标签: combinatorics np-complete approximation bin-packing

我有一些具有不同容量的容器和一些具有指定大小的对象。目标是将这些对象打包在箱子中。到目前为止,它类似于装箱问题。但扭曲的是每个物体与另一个物体有部分重叠。因此,虽然对象1和2的大小为s1和s2,但当我将它们放在同一个bin中时,填充的空间小于s1 + s2。假设我知道每对对象的这个重叠值,是否有任何近似算法,就像这个问题的原始bin-packing那样?

2 个答案:

答案 0 :(得分:2)

答案是使用一种树来捕捉物体的相似性,假设物体可以被破坏。然后运行一个贪心算法根据树填充垃圾箱。该算法具有3-x近似界限。但是,也应该有更好的答案。

此方法显示在Michael Sindelar, Ramesh K. Sitaraman, Prashant J. Shenoy: Sharing-aware algorithms for virtual machine colocation. SPAA 2011: 367-378中。

我从this thread得到了这个答案,但只是想通过给出答案来结束这个问题。

答案 1 :(得分:0)

我认为唯一可行的算法是修剪不适合垃圾箱并使用其他垃圾箱的物品。我并不是指第一种拟合算法,而是等待一段时间,然后使用新的箱子作为物品。实际上你可以只使用另一个垃圾桶?这是一种实用的方法。我的意思是你可以像这个例子一样向左或向右增长bin:http://codeincomplete.com/posts/2011/5/7/bin_packing/