Given a set $P$ of $n$ points and a set $S$ of $n$ weighted disks in the plane, the disk coverage problem is to compute a subset of disks of smallest total weight such that the union of the disks in the subset covers all points of $P$. The problem is NP-hard. In this paper, we consider a line-separable unit-disk version of the problem where all disks have the same radius and their centers are separated from the points of $P$ by a line $\ell$. We present an $O(n^{3/2}\log^2 n)$ time algorithm for the problem. This improves the previously best work of $O(n^2\log n)$ time. Our result leads to an algorithm of $O(n^{{7}/{2}}\log^2 n)$ time for the halfplane coverage problem (i.e., using $n$ weighted halfplanes to cover $n$ points), an improvement over the previous $O(n^4\log n)$ time solution. If all halfplanes are lower ones, our algorithm runs in $O(n^{{3}/{2}}\log^2 n)$ time, while the previous best algorithm takes $O(n^2\log n)$ time. Using duality, the hitting set problems under the same settings can be solved with similar time complexities.
翻译:给定平面上一个包含 $n$ 个点的点集 $P$ 和一个包含 $n$ 个加权圆盘的集合 $S$,圆盘覆盖问题旨在计算一个圆盘子集,使得该子集中所有圆盘的并集覆盖 $P$ 的所有点,且子集的权重总和最小。该问题是 NP 难的。本文研究该问题的直线可分离单位圆盘版本,其中所有圆盘半径相同,且其圆心与点集 $P$ 被一条直线 $\ell$ 分隔。我们提出了一种时间复杂度为 $O(n^{3/2}\log^2 n)$ 的算法,改进了此前最佳的 $O(n^2\log n)$ 时间复杂度结果。我们的结论进一步导出了半平面覆盖问题(即使用 $n$ 个加权半平面覆盖 $n$ 个点)的 $O(n^{{7}/{2}}\log^2 n)$ 时间算法,较先前的 $O(n^4\log n)$ 时间解有所提升。若所有半平面均为下半平面,我们的算法可在 $O(n^{{3}/{2}}\log^2 n)$ 时间内运行,而此前最佳算法需要 $O(n^2\log n)$ 时间。通过对偶性,相同设置下的命中集问题也可在类似的时间复杂度内求解。