我想解决的问题是:
在平面上可以居中的一组M点和一组需要被圆圈覆盖的N个线段,找到线段的最小面积圆覆盖。也就是说,找到圆的半径和中心(从M点中选择),以便覆盖所有N个线段,并使圆的总面积最小化。
请注意,如果线段的任何部分都不在一个圆圈内,则会覆盖线段。
任何指向论文或代码或近似算法的指针都会很棒。
答案 0 :(得分:1)
编辑:刚刚意识到原始方法(移到最后)可能不会涵盖线段最好被多个圆圈覆盖的情况。所以我认为最好迭代点而不是线段,在圆边界处切割线段:
主要思想是在任何情况下继续做必要的事情。如何计算重叠的圆圈?这些区域是合计还是合并?当在以后的迭代中回到第一步时,某种成本启发式可能会改善结果......
最初的建议是:
答案 1 :(得分:-1)
我刚刚在此处发布了一些代码以实现建议的算法: