具有约束的凸多边形中的直线长度的最大总和

时间:2018-05-12 22:46:58

标签: optimization mathematical-optimization computational-geometry linear-programming

这是我之前提出的问题的后续跟进。但这里有完整的问题:

考虑两个凸多边形A和B.多边形B完全位于多边形A内。有两条线具有不同的斜率(均为固定斜率),因此它们在B上或内部具有一个公共端点及其另一端点(会有所不同)躺在A的边界上。

如果您的目标是最大化这两条线的长度总和,您如何在多边形B内部或多边形B上找到这个公共终点?

1 个答案:

答案 0 :(得分:0)

显然,第一个终点应该在B的边界上。如果我们找到B的边界的每个点的A的最远点,我们将立即得到解。假设x位于A上或内部,y位于B的边界上,它们是最远的一对。目前,我们可以报告(x,x+epsilon,y)作为我们的解决方案。这意味着,如果你从“' y”开始然后进入' xy'方向,你可以从' y获得最远点。所以' x'也应该躺在边界上,当然也就是B的边界。这样,你的问题就缩小了,找到A的边界上的一个点和B上的另一个点的最远的一对。其余的,你可以做二元搜索A和B的每个边缘都能找到我们想要的东西。需要O(n ^ 2 log ^ 2 n)。当然,您可以为最后一步运行更好的算法,以获得更好的运行时间。