【发布时间】:2016-06-16 09:05:18
【问题描述】:
假设我们有几个相同大小的正方形。我们要绘制n 矩形(此处为红色和黄色矩形)来包含这些正方形。
目标是尽可能减少浪费的空间。
在下面的示例中,首选n = 2 和右侧的解决方案,因为它只会浪费一个空间。
是否有任何已知的算法可以解决这类问题?
更新: 正方形的排列是任意的,它们总是在 X 轴上方!
更新 2: 为了使问题更简单,让我们假设所谓的容器矩形彼此重叠! (此处为红色和黄色矩形)
稍微复杂一点的情况: 让我们假设这个也使用了两个矩形。可以看出,第 3 种解决方案的空间浪费最少。
【问题讨论】:
-
第一个:你可以蛮力解决这个问题,第二个:使用贪心算法,第三个:构建一棵树并切割有太多浪费空间的子树
-
红色/黄色框重叠是怎么回事?允许还是不允许?
-
@Thomas Brute force 似乎很慢。因为这是最简单形式的问题,所以我可能有很多矩形。
-
这些框是否总是从 y = 0 位置开始?或者他们能站在空中吗?
-
@Thomas 红色和黄色矩形用于包含尽可能多的矩形。
标签: optimization mathematical-optimization rectangles knapsack-problem packing