没有重复我一直在试图解决这个问题的一个变种2D:Box stacking problem2D箱与堆垛高度限制
美中不足的是,不像同一个盒子原来,多个实例是不允许的。当然,您仍然可以旋转2D矩形。
还有一个高度限制,所以塔必须小于或等于这个限制。
箱子的底部必须大于或等于(不能大于)它。
我一直在尝试应用LIS算法和其他限制似乎处理,但我想不出如何解决无重复规则。
所以,我的主要问题是,如果您试图最大化堆栈的高度并将其保持在极限以下,您将如何解释无重复规则? 感谢
编辑:
我意识到,如果你创建一个像你这样的3-d变种做每一个项目的两个可能的旋转,这个问题就变得非常相似的背包问题。由于必须使用该排序列表的子集以的顺序构建最佳塔,那么我们必须选择要采取哪一个。但是,我仍然不知道如何确保没有重复。任何帮助解决这个问题? 感谢
编辑2:
我发现这个链接:http://courses.csail.mit.edu/6.006/fall10/handouts/recitation11-19.pdf 这页4描述了如何解决单一实例3D最大高度版本,但我认为这不会对限高工作因为它返回每个呼叫的最大高度。也许这可以修改以适应高度限制?
它不清楚目标是什么。在单个堆栈中的最低限度以下的盒子?正常的问题表明,目标是可能的最高堆栈,但由于我们在这里有一个“限制”,所以目标必须不同。 – 2013-02-14 22:06:13
是的,目标仍然是高度限制以下的最高堆叠。 – 2013-02-14 22:40:16
@TylerDurden,是的。 – 2013-02-15 02:49:53