如何在给定区域中拟合矩形?

时间:2014-02-04 14:50:47

标签: algorithm vba rectangles packing

我有一个给定的区域(例如圆圈,但它同样可以是一个三角形)。我需要找到Xi和Yi的最佳值,以便这些矩形覆盖尽可能多的这个区域。我有一个增加易的步骤。

我必须在VBA(Excel)这样做,我不是那么有经验。使用for循环进行所有可能的组合根本不高效,可能需要数小时。

我需要一些关于如何优化此问题的建议。

我见过类似的包装问题,但在大多数情况下,矩形的大小已经知道了。

enter image description here

1 个答案:

答案 0 :(得分:0)

拥有Yi的已知增量意味着知道Y1您可以找到所有其他Yi,随后所有Xi(来自圈子等式(Sum Xi)^2 + Yi^2/4 = R^2 })。从这些,覆盖区域。

这确定了Y1和目标函数之间的关系。首先绘制它,看看最大值是如何(分段平滑但不连续)。然后......再次给团队打电话。

为了便于在Excel中工作,您可以继续使用固定数量的矩形,并为那些离开圆圈的人设置零Xi