Given a set $P$ of $n$ weighted points and a set $S$ of $m$ disks in the plane, the hitting set problem is to compute a subset $P'$ of points of $P$ such that each disk contains at least one point of $P'$ and the total weight of all points of $P'$ is minimized. The problem is known to be NP-hard. In this paper, we consider a line-constrained version of the problem in which all disks are centered on a line $\ell$. We present an $O((m+n)\log(m+n)+\kappa \log m)$ time algorithm for the problem, where $\kappa$ is the number of pairs of disks that intersect. For the unit-disk case where all disks have the same radius, the running time can be reduced to $O((n + m)\log(m + n))$. In addition, we solve the problem in $O((m + n)\log(m + n))$ time in the $L_{\infty}$ and $L_1$ metrics, in which a disk is a square and a diamond, respectively. Our techniques can also be used to solve other geometric hitting set problems. For example, given in the plane a set $P$ of $n$ weighted points and a set $S$ of $n$ half-planes, we solve in $O(n^4\log n)$ time the problem of finding a minimum weight hitting set of $P$ for $S$. This improves the previous best algorithm of $O(n^6)$ time by nearly a quadratic factor.
翻译:给定平面上$n$个带权点集$P$和$m$个圆盘集$S$,命中集问题要求计算$P$的子集$P'$,使得每个圆盘至少包含$P'$中的一个点,且$P'$中所有点的总权重最小化。该问题已知为NP难问题。本文考虑该问题的直线约束版本,其中所有圆盘的中心位于一条直线$\ell$上。我们提出一个时间复杂度为$O((m+n)\log(m+n)+\kappa \log m)$的算法,其中$\kappa$为相交圆盘对的数量。对于所有圆盘半径相同的单位圆盘情形,运行时间可降至$O((n+m)\log(m+n))$。此外,在$L_{\infty}$和$L_1$度量下(此时圆盘分别对应正方形和菱形),我们能在$O((m+n)\log(m+n))$时间内求解该问题。我们的技术还可用于求解其他几何命中集问题。例如,给定平面上$n$个带权点集$P$和$n$个半平面集$S$,我们能在$O(n^4\log n)$时间内求解$P$关于$S$的最小权重命中集,相较之前最优的$O(n^6)$算法实现了近二次因子的改进。