The Contiguous Art Gallery Problem is Solvable in Polynomial Time

Magnus Christian Ring Merrild,Casper Moldrup Rysgaard,Jens Kristian Refsgaard Schou,Rolf Svenning
2024-12-18
Abstract:In this paper, we study the Contiguous Art Gallery Problem, introduced by Thomas C. Shermer at the 2024 Canadian Conference on Computational Geometry, a variant of the classical art gallery problem from 1973 by Victor Klee. In the contiguous variant, the input is a simple polygon $P$, and the goal is to partition the boundary into a minimum number of polygonal chains such that each chain is visible to a guard. We present a polynomial-time real RAM algorithm, which solves the contiguous art gallery problem. Our algorithm is simple and practical, and we make a C++ implementation available. In contrast, many variations of the art gallery problem are at least NP-hard, making the contiguous variant stand out. These include the edge-covering problem, proven NP-hard by Laurentini [The Visual Computer 1999], and the classical art gallery problem, recently shown $\exists\mathbb{R}$-complete by Abrahamsen, Adamaszek, and Miltzow [J. ACM 2022]. Our algorithm is a greedy algorithm that repeatedly traverses the polygon's boundary. To find an optimal solution, we show that it is sufficient to traverse the polygon polynomially many times, resulting in a runtime of $\mathcal{O}\!\left( n^7 \log n \right)$. Additionally, we provide algorithms for the restricted settings, where either the endpoints of the polygonal chains or the guards must coincide with the vertices of the polygon.
Computational Geometry
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the **Contiguous Art Gallery Problem**, which is a variant problem in the field of computational geometry. Specifically, given a simple polygon \(P\), the goal is to divide the boundary of the polygon into the minimum number of polygon chains (i.e., visible intervals) such that each chain can be seen by a guard inside the polygon. ### Problem Background The classic art gallery problem was proposed by Victor Klee in 1973. The goal was to find the minimum number of guard points inside the polygon such that these guards could see every point inside the polygon. Many variant problems have been proven to be NP - hard or more complex problems. For example, recently Abrahamsen et al. proved that the classic art gallery problem is ∃R - complete. ### Characteristics of the Continuous Art Gallery Problem In the continuous art gallery problem, it is required to divide the boundary of the polygon into several continuous polygon chains, and each chain must be fully visible to a guard. Different from the classic problem, the guards and the endpoints of the chains here are not restricted to the vertices of the polygon. Guards can be placed at any position in the polygon, and the endpoints of the chains can also be located on any boundary of the polygon. ### Main Contributions of the Paper The authors proposed a polynomial - time algorithm to solve this problem. Specifically: - **Algorithm Model**: Use the real RAM model, in which arithmetic operations on real numbers are regarded as unit - time operations. - **Algorithm Complexity**: For a simple polygon with \(n\) vertices, the time complexity of the algorithm is \(O(k^*n^6\log n)\), where \(k^*\) is the size of the optimal solution. - **Algorithm Implementation**: This algorithm is a greedy algorithm. It finds the optimal solution by repeatedly traversing the boundary of the polygon. Each traversal is called a "revolution", and finally, the optimal solution can be obtained after a polynomial number of revolutions. ### Conclusion The important conclusion of this paper is that, compared with many other variants of the art gallery problem, the continuous art gallery problem can be solved by a simple and efficient polynomial - time algorithm. This result is very positive and surprising because many other variant problems are NP - hard or more complex problems. In addition, the author also provides a C++ implementation and makes the code public. ### Formula Summary - Time complexity formula: \(O(k^*n^6\log n)\) - Number of polygon vertices: \(n\) - Size of the optimal solution: \(k^*\) The success of this algorithm lies in its ability to find the optimal solution within polynomial time without strict restrictions on the guard positions or the endpoints of the chains.