一组线段的最小面积几何覆盖

时间:2016-11-22 17:47:05

标签: algorithm computational-geometry

我想解决的问题是:

在平面上可以居中的一组M点和一组需要被圆圈覆盖的N个线段,找到线段的最小面积圆覆盖。也就是说,找到圆的半径和中心(从M点中选择),以便覆盖所有N个线段,并使圆的总面积最小化。

请注意,如果线段的任何部分都不在一个圆圈内,则会覆盖线段。

任何指向论文或代码或近似算法的指针都会很棒。

2 个答案:

答案 0 :(得分:1)

编辑:刚刚意识到原始方法(移到最后)可能不会涵盖线段最好被多个圆圈覆盖的情况。所以我认为最好迭代点而不是线段,在圆边界处切割线段:

  1. 找到“最差”点,即需要最大圆圈中心选项的最佳圆圈中心选项,其中相应的线段至少部分在圆圈中。构造/扩展相应的圆圈。
  2. 从集合中移除完全覆盖的线段,并在圆形边界处切割部分覆盖的线段。
  3. 迭代直到不再有线段。
  4. 主要思想是在任何情况下继续做必要的事情。如何计算重叠的圆圈?这些区域是合计还是合并?当在以后的迭代中回到第一步时,某种成本启发式可能会改善结果......

    最初的建议是:

    1. 找出“最差”线段,即任何圆心选项需要最大圆圈的线段,并构建相应的圆圈。
    2. 从集合中删除包含的线段。
    3. 迭代直到不再有线段。

答案 1 :(得分:-1)

我刚刚在此处发布了一些代码以实现建议的算法:

https://github.com/usnistgov/esc-antenna-cover