【发布时间】:2013-03-29 06:11:22
【问题描述】:
我有一些不同尺寸的矩形盒子和一个更大的矩形盒子。我需要在更大的盒子中放入尽可能多的不同类别的盒子。在任何情况下,每个类别都需要容纳一定的最小数量的盒子。基本上,我需要解决约束优化问题。我该如何处理?
【问题讨论】:
-
同一个类别的所有盒子都一样大小吗?
-
如果您决定使用暴力递归方法,尝试在每个可用位置放置下一个框,那么在不丢失任何最佳解决方案的情况下缩小解决方案空间的一种方法是约束新的盒子放置,以便它们必须始终接触左侧和底部的现有盒子(或包含盒子的墙壁)。这是可行的,因为任何解决方案都可以通过反复向左和向下移动框来转换为每个框都遵守此约束的解决方案,直到不再可能进行此类移动。
-
矩形框是 2D 还是 3D?
-
@j_random_hacker,在 5x5 框中的 {2x2, 2x2, 1x6} 的情况下,左下方法失败。还可以考虑将 {1x4, 1x4, 4x1, 4x1} 放在一个 5x5 的盒子中,不允许旋转。
-
对于{2x2, 2x2, 1x6}的情况,三个矩形的对角位置可以是(0,0),(2,2); (3,3),(5,5);和 (0,4.243),(5, 0.757)。对于 {1x4, 1x4, 4x1, 4x1} 的情况,左上角的位置是 (0,5); (4,4); (0,1); (1,5)
标签: algorithm math optimization