【发布时间】:2019-11-24 07:16:44
【问题描述】:
是否有任何算法可以用 n 个不重叠的矩形来近似给定的多边形,从而提供最大的覆盖范围?通过最大覆盖率,我的意思是矩形区域的总和最大化。矩形不一定大小相等。
我正在处理的多边形是凸的。如果找到确切的解决方案很难/昂贵(我希望它是这样),那么也欢迎简单的、好的启发式方法。
编辑我一直想用多边形内的矩形来近似多边形,但矩形不完全在多边形内的解决方案也很好。如果是这样的话,面积的最大化变成了面积的最小化。
编辑 2 我忘了说这些矩形是正交矩形,即与轴对齐。
【问题讨论】:
-
您能否提供更多信息?我想知道,您想获得什么信息(矩形数量、总面积总和、浪费的“空间”百分比)。此外,您还必须指定一些内容:您是否希望以最少的矩形数量获得最大的区域覆盖?因为有很多 1mm^2 的矩形,你可以很好地近似该区域。如果是这样,这听起来像en.wikipedia.org/wiki/Multi-objective_optimization。也许您可以将您的问题投射到多个背包问题上。
-
@Slomo:我将给出多边形和矩形数量作为输入。够了吗?
-
好的,谢谢。基于此,Jens Schauder 的第一个想法似乎是合理的。由于您只有凸多边形,因此最大的矩形将位于中心。因此,您可以递归地找到剩余的下一个较小区域的最大矩形。当您点击第 n 个矩形(输入)时,您的递归将结束。
-
这里有一个有趣的regular多边形解决方案stackoverflow.com/questions/3296102/…
-
这里最大正交矩形的一个很好的方法cgm.cs.mcgill.ca/~athens/cs507/Projects/2003/DanielSud
标签: algorithm geometry computational-geometry