We revisit a standard polygon containment problem: given a convex $k$-gon $P$ and a convex $n$-gon $Q$ in the plane, find a placement of $P$ inside $Q$ under translation and rotation (if it exists), or more generally, find the largest copy of $P$ inside $Q$ under translation, rotation, and scaling. Previous algorithms by Chazelle (1983), Sharir and Toledo (1994), and Agarwal, Amenta, and Sharir (1998) all required $\Omega(n^2)$ time, even in the simplest $k=3$ case. We present a significantly faster new algorithm for $k=3$ achieving $O(n$polylog $n)$ running time. Moreover, we extend the result for general $k$, achieving $O(k^{O(1/\varepsilon)}n^{1+\varepsilon})$ running time for any $\varepsilon>0$. Along the way, we also prove a new $O(k^{O(1)}n$polylog $n)$ bound on the number of similar copies of $P$ inside $Q$ that have 4 vertices of $P$ in contact with the boundary of $Q$ (assuming general position input), disproving a conjecture by Agarwal, Amenta, and Sharir (1998).
翻译:我们重新审视一个标准的多边形包含问题:给定平面上的凸 $k$ 边形 $P$ 和凸 $n$ 边形 $Q$,在允许平移和旋转的条件下,找到 $P$ 在 $Q$ 内的放置(若存在),或更一般地,在允许平移、旋转和缩放条件下,找到 $P$ 在 $Q$ 内的最大副本。先前的算法(Chazelle, 1983;Sharir 和 Toledo, 1994;Agarwal, Amenta 和 Sharir, 1998)即使在最简单的 $k=3$ 情形下也需 $\Omega(n^2)$ 时间。针对 $k=3$ 情形,我们提出了一种显著更快的新算法,其运行时间达到 $O(n \text{polylog } n)$。此外,我们将结果推广至一般 $k$,对于任意 $\varepsilon>0$ 实现了 $O(k^{O(1/\varepsilon)} n^{1+\varepsilon})$ 的运行时间。在此过程中,我们还证明了 $P$ 在 $Q$ 内且具有 $P$ 的 4 个顶点与 $Q$ 边界接触的相似副本数量的新上界为 $O(k^{O(1)} n \text{polylog } n)$(假设输入处于一般位置),反驳了 Agarwal, Amenta 和 Sharir (1998) 的一个猜想。