受限 1 - 中心问题的最优算法
1. 引言
在平面上给定一组 $n$ 个点 $P$,最小包围圆问题就是要找出能包含这组点的最小圆的圆心和半径。这个问题最初由 Sylvester 在 1857 年提出,有多种算法能在 $O(n \log n)$ 时间内解决该问题,而 Megiddo 则提出了一个 $\Theta(n)$ 时间的算法。
最小 $P$ - 圆问题也被称为 1 - 中心设施选址问题,也就是在给定一组客户位置(由 $P$ 表示)的情况下,计算一个设施的最优位置,使得客户与最近设施之间的最大距离最小。不过在实际情况中,设施的位置往往会受到地理和地形等外部因素的限制,因此研究受限的 1 - 中心问题具有重要意义。
Megiddo 提出了一个线性时间算法,用于寻找圆心受限在给定直线上的最小 $P$ - 圆。后续也有其他学者对该问题进行了拓展,比如 Hurtado 等人提出了 $\Theta(n + m)$ 时间的算法,用于寻找圆心受限在凸 $m$ - 边形内的最小 $P$ - 圆;Bose 和 Toussaint 则将圆心限制在简单 $m$ - 边形 $Q$ 内,并提出了 $O((n + m) \log(n + m) + k)$ 时间的算法,其中 $k$ 是 $Q$ 与 $P$ 的最远点 Voronoi 图的交点数量,后来该算法的运行时间中对 $k$ 的依赖被移除。
Bose 等人还研究了该问题的查询版本,对 $P$ 进行 $O(n \log n)$ 时间的预处理后,能在 $O(\log n)$ 时间内找到圆心在给定查询直线上的最小 $P$ - 圆,并展示了如何在 $O((n + m) \log n)$ 时间内计算圆心受限在一组 $m$ 条线段上的最小 $P
超级会员免费看
订阅专栏 解锁全文

931

被折叠的 条评论
为什么被折叠?



