Given a set $P$ of $n$ points and a set $S$ of $m$ disks in the plane, the disk coverage problem asks for a smallest subset of disks that together cover 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 $m^{2/3}n^{2/3}2^{O(\log^*(m+n))} + O((n+m)\log (n+m))$ time algorithm for the problem. This improves the previously best result of $O(nm+ n\log n)$ time. Our techniques also solve the line-constrained version of the problem, where centers of all disks of $S$ are located on a line $\ell$ while points of $P$ can be anywhere in the plane. Our algorithm runs in $O(m\sqrt{n} + (n+m)\log(n+m))$ time, which improves the previously best result of $O(nm\log(m+n))$ time. In addition, our results lead to an algorithm of $n^{10/3}2^{O(\log^*n)}$ time for a half-plane coverage problem (given $n$ half-planes and $n$ points, find a smallest subset of half-planes covering all points); this improves the previously best algorithm of $O(n^4\log n)$ time. Further, if all half-planes are lower ones, our algorithm runs in $n^{4/3}2^{O(\log^*n)}$ time while the previously best algorithm takes $O(n^2\log n)$ time.
翻译:给定平面上点集$P$($n$个点)和圆盘集$S$($m$个圆盘),圆盘覆盖问题要求找到能够覆盖$P$中所有点的最小子集。该问题是NP难的。本文考虑该问题的线可分离单位圆盘版本,其中所有圆盘半径相同,且其圆心通过一条直线$\ell$与$P$中的点分离。我们提出一个时间复杂度为$m^{2/3}n^{2/3}2^{O(\log^*(m+n))} + O((n+m)\log (n+m))$的算法来解决该问题,这改进了此前最优的$O(nm+ n\log n)$时间结果。我们的技术还解决了该问题的线约束版本,其中$S$中所有圆盘的圆心位于直线$\ell$上,而$P$中的点可位于平面任意位置。该算法运行时间为$O(m\sqrt{n} + (n+m)\log(n+m))$,优于此前最优的$O(nm\log(m+n))$时间结果。此外,我们的成果导出一个用于半平面覆盖问题(给定$n$个半平面和$n$个点,求覆盖所有点的最小子集)的$n^{10/3}2^{O(\log^*n)}$时间算法,改进了此前最优的$O(n^4\log n)$算法。进一步,若所有半平面均为下半平面,我们的算法运行时间为$n^{4/3}2^{O(\log^*n)}$,而此前最优算法需要$O(n^2\log n)$时间。