确定矩形(x,y)坐标的算法,以便周围矩形的面积最小?

时间:2010-12-25 23:12:43

标签: algorithm bin-packing

我希望我的标题有意义,但这是我试图做的事情:

我有n个矩形,每个矩形的宽度为W n ,H n 的高度我需要在二维上排列(x, y)平面他们都适合的矩形占据最小的面积。我还需要能够确定(x,y)对应于什么矩形。

我更喜欢psuedo-code中的某些内容,但可以使用多种语言。

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

这是一个要以最佳方式解决的难题,但是有一些解决方案并不太难实现,并且代表了许多用途(例如纹理)的良好近似。尝试谷歌搜索“矩形(角度)包装”...你会发现很多代码解决了这个问题。

答案 1 :(得分:1)

对我来说听起来很完整。有点像背包问题。这意味着没有真正的解决方案。只有很好的近似值。

答案 2 :(得分:1)

这是2D纸盒包装的变种。您的容器灵活,允许更多优化,使其更具挑战性(如困难)。 Drools Planner(开源java)可以处理这个问题。存在至少一个带有Drools Planner的实现(请参阅用户邮件列表)(非开源)。如果您需要一个开源示例,那么drools-planner-examples中的云平衡可能就是一个很好的例子。

有关您可以使用的算法的概述,请参阅my answer on a similar question

答案 3 :(得分:0)

您的问题被称为2D包装问题。即使是一维问题也是NP难题。有关一些方法的好文章以及示例C#代码,请参阅here

另外,请参阅以下问题: