给定一组轴对齐的矩形(可旋转90度)和一个直线多边形,我想确定矩形是否都可以打包到这个多边形中,如果可能的话,找一个任意的填料
这NP难吗?是否有任何假设可以解决这个问题? (例如,将多边形限制为正交凸起)任何类型的参考都会很好吗?
答案 0 :(得分:2)
是的,即使容器多边形本身是一个矩形,它也很难(参见Korf 2003)。
存在各种各样的近似算法,只是谷歌“矩形包装”。
给定bin打包的实例,我们可以生成相应的 矩形包装的实例如下。对于每一个 在bin-packing问题中,我们生成一个矩形 单位高度,其宽度是数字的值。从而 每个数字都会生成一个宽度和单位高度的条带。 我们还生成一个高度为的封闭矩形 箱的数量,其宽度是箱的容量。 因此,每个箱对应于封闭的水平条带 长方形。在生成的矩形包装问题中, 必须将每个条带分配给封闭的行(bin) 矩形,这样的宽度(数字)之和 分配给每一行(bin)的条带不超过宽度 封闭矩形的(容量)。请注意条带 是朝向的,不能旋转。因此,这个矩形包装 问题相当于原来的装箱 问题。如果我们可以解决任何矩形包装问题 多项式时间,那么我们可以解决任何bin-packing问题 在多项式时间。因此,矩形包装是NP难的, 因为它也在NP中,所以它是NP完全的。
答案 1 :(得分:0)
在usaco上有关于包装矩形的类似任务。 我只是通过回溯来解决它。 Here是对解决方案的解释