Guarding Terrains with Guards on a Line
Byeonguk Kang, Hwi Kim, Hee-Kap Ahn
TL;DR
The paper studies guarding an $x$-monotone terrain $T$ with $n$ vertices using $k$ point guards placed on a horizontal line $L$ above $T$, aiming to minimize the height of $L$ while ensuring visibility of every terrain point. It formalizes two problems: Altitude Terrain Cover (ATC) and Bijective Altitude Terrain Cover (BATC), and develops algorithms that leverage monotone guard-placement functions, shortest-path trees, and Davenport-Schinzel sequence bounds to achieve near-optimal runtimes. For ATC, the authors obtain $O(k^2\boldsymbol{λ}_{k-1}(n)\log n)$ time for even $k\ge2$ and $O(k^2\boldsymbol{λ}_{k-2}(n)\log n)$ for odd $k\ge3$; for BATC, they guarantee $O(n)$ time to minimize the number of guards on a fixed $L$ and $O(kn)$ time to compute the lowest $L$ with $k$ guards. The work combines parametric search, quasiconvex programming, and rational-function envelopes to handle multiple guards, offering efficient exact solutions for terrain-guarding problems with practical implications in surveillance and monitoring contexts. Overall, the results advance the algorithmic understanding of altitude-based terrain guarding and provide scalable methods for both unrestricted and bijective partition variants.
Abstract
Given an $x$-monotone polygonal chain $T$ with $n$ vertices, and an integer $k$, we consider the problem of finding the lowest horizontal line $L$ lying above $T$ with $k$ point guards lying on $L$, so that every point on the chain is \emph{visible} from some guard. A natural optimization is to minimize the $y$-coordinate of $L$. We present an algorithm for finding the optimal placements of $L$ and $k$ point guards for $T$ in $O(k^2λ_{k-1}(n)\log n)$ time for even numbers $k\ge 2$, and in $O(k^2λ_{k-2}(n)\log n)$ time for odd numbers $k \ge 3$, where $λ_{s}(n)$ is the length of the longest $(n,s)$-Davenport-Schinzel sequence. We also study a variant with an additional requirement that $T$ is partitioned into $k$ subchains, each subchain is paired with exactly one guard, and every point on a subchain is visible from its paired guard. When $L$ is fixed, we can place the minimum number of guards in $O(n)$ time. When the number $k$ of guards is fixed, we can find an optimal placement of $L$ with $k$ point guards lying on $L$ in $O(kn)$ time.
