1 Introduction
The Art Gallery Problem is a classical problem in computational geometry, posed by Victor Klee in 1973: Place a minimum number of points (representing guards) in a given simple polygon (representing an art gallery), so that every point in is seen by at least one of the points. We say that a point sees (or guards) a point if the line segment is contained in . We say that a subset guards , if every point in is seen by at least one point in .
There are numerous variants of the art gallery problem, which are also referred to as the art gallery problem. These variants differ from one another in (i) the underlying domain, e.g., simple polygon, polygon with holes, orthogonal polygon, or terrain, (ii) which parts of the domain must be guarded, e.g., only its vertices, only its boundary, or the entire domain, (iii) the type of guards, e.g., static, mobile, or with various restrictions on their coverage area such as limited range, (iv) the restrictions on the location of the guards, e.g., only at vertices (vertexguards), only on the boundary (boundaryguards), or anywhere (pointguards), and (v) the underlying notion of visibility, e.g., line of sight, rectangle visibility, or staircase visibility. It is impossible to survey here the vast literature on the art gallery problem, ranging from combinatorial and optimization results to hardness of computation results, so we only mention the book by O’rourke [25] and a small sample of recent papers [1, 7].
In this paper, we deal with the version of the art gallery problem, where the guards are confined to the boundary of the underlying polygon, and in particular to its vertices. Such guards are referred to as boundary guards or vertex guards, respectively. The first to present results for this version was Ghosh [13, 14], who gave a polynomialtime approximation algorithm for guarding either a simple polygon or a polygon with holes using vertex (or edge) guards. In the related work paragraph below we survey many of the subsequent results for this version.
In this paper, we consider a special family of simple polygons, namely, the family of weakly visible polygons. A simple polygon is weakly visible if it has an edge , such that every point in is visible from some point on , or, in other words, a guard patrolling along can see the entire polygon. We also consider polygons that are weakly visible from a chord, rather than an edge, where a chord in a polygon is a line segment whose endpoints are on the boundary of and whose interior is contained in the interior of .
The problem of guarding a weakly visible polygon (WVpolygon) by vertex guards was studied by Bhattacharya et al. [6]. They first present a 4approximation algorithm for vertex guarding only the vertices of . Next, they claim that this algorithm places the guards at vertices in such a way that each of the remaining unguarded regions of has a boundary edge which is contained in an edge of . Based on this claim, they devise a 6approximation algorithm for vertex guarding ’s boundary, and present it as a 6approximation algorithm for guarding (boundary plus interior). Unfortunately, this claim is false; counterexamples were constructed and approved by the authors (who are now attempting to fix their algorithm, so as to obtain an algorithm for vertex guarding entirely) [5]. Thus, the challenge of obtaining a constantfactor approximation algorithm for guarding a WVpolygon with vertex guards or boundary guards is still on.
The main result of this paper is such an algorithm. Specifically, denote by OPT the size of a minimumcardinality subset of the vertices of that guards . We present a polynomialtime algorithm that finds a subset of the vertices of , such that guards and , for any constant .
Already in 1987, Ghosh conjectured that there exists a constantfactor approximation algorithm for vertex guarding a simple polygon. Recently, Bhattacharya et al. [4] managed to devise such an algorithm for vertex guarding the vertices of a simple polygon , by first partitioning into a hierarchy of weakly visible polygons according to the link distance from a starting vertex. They also present such an algorithm for vertex guarding (boundary plus interior), however, this algorithm is erroneous, since it relies on the false statement mentioned above. Thus, our result is a significant step towards resolving Ghosh’s conjecture, and may also provide the missing ingredient for Bhattacharya et al. to fully resolve the conjecture.
Prior to our result, the only (nontrivial) family of polygons for which a constantfactor approximation algorithm for guarding a member of the family was known, is the family of monotone algorithms. Specifically, Krohn and Nilsson [21] showed that vertex guarding a monotone polygon is NPhard, and presented a constantfactor approximation algorithm for point guarding such a polygon (as well as an approximation algorithm for point guarding a rectilinear polygon).
Related work.
Several improvements to Ghosh’s approximation algorithm were obtained over the years. In 2006, Efrat and HarPeled [10] described a randomized polynomialtime
approximation algorithm for vertex guarding a simple polygon, where the approximation factor is correct with high probability. Moreover, they considered the version in which the guards are restricted to the points of an arbitrarily dense grid, and presented a randomized algorithm which returns an
approximation with high probability, where OPT is the size of an optimal solution to the modified problem and the running time depends on the ratio between the diameter of the polygon and the grid size. In 2007, Deshpande et al. [9] presented a deterministic approximation algorithm for (arbitrary) point guards, with running time polynomial in and the spread of the vertices^{1}^{1}1The spread of a set of points is the ratio between the longest and shortest pairwise distances.. Combining ideas from the latter two algorithms, Bonnet and Miltzow [7] presented a randomized polynomialtime approximation algorithm for point guards, assuming integer coordinates and a general position assumption on the vertices of the underlying simple polygon.In 2011, King and Kirkpatrick [20] observed that by applying methods that were developed for the Set Cover problem after the publication of Ghosh’s algorithm, one can obtain an approximation factor for vertex guarding a simple polygon (and an factor for vertex guarding a polygon with holes). Moreover, they improved the approximation factor to for guarding a simple polygon either with vertex guards or boundary guards, where in the former case the running time is polynomial in and in the latter case it is polynomial in and the spread of the vertices.
Most of the variants of the Art Gallery Problem are NPhard. O’Rourke and Supowit [26] proved this for polygons with holes and point guards, Lee and Lin [22] proved this for simple polygons and vertex guards, and Aggarwal [2] generalized the latter proof to simple polygons and point guards. Eidenbenz et al. [11] presented a collection of hardness results. In particular, they proved that it is unlikely that a PTAS exists for vertex guarding or point guarding a simple polygon. Recently, Abrahamsen et al. [1] proved that the Art Gallery Problem is complete, for simple polygons and point guards.
Weakly Visible polygons were defined and studied in the context of mobile guards [25]. An edge guard is a guard that moves along an edge of the polygon. Thus, a simple polygon is weakly visible if and only if it can be guarded by a single edge guard, and the problem of vertex guarding a WVpolygon is equivalent to the problem of replacing the single edge guard by as few (static) vertex guards as possible. Avis and Toussaint [3] presented a lineartime algorithm for detecting whether a polygon is weakly visible from a given edge. Subsequently, Sack and Suri [27] and Das et al. [8] devised lineartime algorithms which output all the edges (if any) from which the polygon is weakly visible. Algorithms for finding either an edge or a chord from which the polygon is weakly visible were given by Ke [19] and by Ghosh et al. [15]. Finally, Bhattacharya et al [6] proved that the problem of point guarding a WVpolygon is NPhard, and that there does not exist a polynomialtime algorithm for vertex guarding a WVpolygon with holes with approximation factor better than , unless P NP.
Our algorithm for vertex guarding a WVpolygon uses a solution to the problem of guarding the boundary of a WVpolygon using vertex guards. This problem admits a localsearchbased PTAS (see [18]), which is similar to the localsearchbased PTAS of Gibson et al. [16] for vertex guarding the vertices of a 1.5Dterrain. The proof of both these PTASs is based on the proof scheme of Mustafa and Ray [24].
Results.
Our algorithm for vertex guarding a WVpolygon (presented in Section 3) consists of two main parts. In the first part, it computes a subset of the vertices of that guards ’s boundary. This is done by applying a known algorithm for this task. In the second part, it computes a subset of the vertices of of size at most that of , such that guards . Thus, if we apply the algorithm of [18] for computing , then the approximation ratio of our algorithm is , since the algorithm of Ashur et al. guarantees that , where is the size of a minimumcardinality subset of the vertices of that guards ’s boundary, and clearly .
Let be a vertex in and let be the visibility polygon of (i.e., is the set of all points of that are visible from ), then is a set of connected regions, which we refer to as pockets. Moreover, a connected subset of is a hole in w.r.t. if (i) there is no point in that is visible from , and (ii) is maximal in the sense that any connected subset of that strictly contains has a point that is visible from . The second part of our algorithm (and its proof) are based on a deep structural analysis and characterization of the pockets and holes in (presented in Section 2).
The requirement that is a subset of the vertices of is actually not necessary; the second part of our algorithm only needs a set of boundary points that guards ’s boundary. This observation enables us to use a smaller number of guards, assuming that boundary guards are allowed.
Finally, in Section 4, we consider the more general family of polygons, those that are weakly visible from a chord. Notice that a chord in slices into two (sub)polygons, such that each of them is weakly visible w.r.t. the edge . After updating two of the geometric claims presented in Section 2, we show how to apply our algorithm to a polygon that is weakly visible from a chord. The approximation ratio in this case is (rather than ). However, the best known algorithm for computing in this case is that of Bachattarya et al. [4], which computes a approximation, for some constant . Therefore, the approximation ratio of our algorithm in this case is .
2 Structural analysis
For two points , we denote by the line segment whose endpoints are and , and by the line through and . We denote by the horizontal line through .
Let be a polygon whose set of vertices is , and which is weakly visible from its edge . We denote the boundary of by . The edges of are the segments and . We assume w.l.o.g. that is contained in the xaxis, and is to the left of . Furthermore, we assume that is contained in the (closed) halfplane above the xaxis; in particular, the angles at and are convex. This assumption can be easily removed, as we show towards the end of Section 3.
2.1 Visibility polygons
For a point , let be the visibility polygon of . In other words, is the set of all points of that are visible from . Notice that is a starshaped polygon, and thus clearly also a simple polygon, contained in (see Figure 1).
Any vertex of that belongs to is also considered a vertex of . Consider the set of edges of . Some of these edges are fully contained in . The edges that are not contained in are constructed edges: these are edges whose endpoints are on and whose interior is contained in the interior of (these are the gray dotted edges in Figure 1).
Claim 1.
For any , there exists a single edge of that is contained in .
Proof.
Since is visible from , . Let (resp. ) be the leftmost (resp. rightmost) point on that belongs to . Assume by contradiction that there exists a point on that is not visible from . Then, there exists a point of in the interior of the segment (see Figure 2). The triangle does not contain any points from in its interior, because cannot cross the segments and . But , and thus is in the interior of the triangle — a contradiction. ∎
2.2 Pockets
Consider (see Figure 1). This is a set of connected regions, which we refer to as pockets. Since is a simple polygon, each pocket is adjacent to a single constructed edge, and therefore the intersection of and is connected. We refer to as the boundary of the pocket , and denote it by . (Thus the constructed edge itself is not part of .)
Let be a constructed edge such that is below (w.r.t. the axis), and denote by the pocket adjacent to . We say that lies above (resp. below) , if for any point in the interior of , all the points that sees (points of ) that lie above (resp. below) , belong to (see Figure 3). Notice that since divides into two parts, and , ‘stepping off’ to one side, places us in the interior of (and ‘stepping off’ to the other side places us in the interior of ).
Note that if lies above (resp. below) , it does not necessarily mean that all the points of lie above (resp. below) . Indeed, when , may have points on both sides of (see Figure 4).
We say that is an upper edge (resp. lower edge), if lies below (resp. above) . Notice that by creftypecap 1, has at most two constructed edges with an endpoint in . Moreover, at most one of these edges is an upper edge.
Claim 2.
Let and be two constructed edges (which belong to two different visibility polygons), such that crosses , and is on the same side of as . Then, (see Figure 5).
Proof.
Let be the crossing point of and . Then, is a point in the interior of that sees , and is on the same side of as , so . Since is a constructed edge, and thus . ∎
Claim 3.
Let be a constructed edge of such that is below , then lies above (in the weak sense), i.e., every point in is either above or on . Moreover, if , then lies strictly above , i.e., every point in is above .
Proof.
If , then since is above , we get that is above .
Observe that if , then . Otherwise, it follows that , and since the entire pocket is not visible from , we get that is not visible from , which contradicts the fact that is a WVpolygon.
If , then is above (see Figure 3). By the observation above, (and thus of course ). Let be any point in . Since is a WVpolygon, there exists a point on such that . The segment has to cross , because and . Since is below , this crossing point is above , which in turn is above , so we get that is above . We conclude that lies strictly above . ∎
2.3 Holes
Let be a set of points that guards . A connected subset of is a hole in w.r.t. if (i) there is no point in that is visible from , and (ii) is maximal in the sense that any connected subset of that strictly contains has a point that is visible from .
Let be a hole in w.r.t. , then clearly is a simple polygon. Each edge of lies on some constructed edge , and we say that (and this edge of ) lean on the edge . Notice that is fully contained in the pocket adjacent to . Moreover, since , we can view as an intersection of halfplanes (defined by the lines containing the constructed edges on which the edges of lean), and thus obtain the following observation.
Observation 4.
Any hole in w.r.t. is a convex polygon.
Another immediate but useful observation is the following.
Observation 5.
Any hole in w.r.t. leans on at least one upper edge and at least one lower edge.
Next, we show that any hole can be guarded by a single vertex, and that such a vertex can be found in polynomial time. In the following lemma we prove a slightly more general claim.
Lemma 6.
Let be a simple convex polygonal region contained in . Then, there exists a vertex of , such that is visible from , i.e., every point in is visible from . Moreover, can be found in polynomial time.
Proof.
If and share a vertex, then we are done. Otherwise, let be a point on that is closest to , where the distance between a point and is , and let be a point in closest to . We first prove that is visible from . If is also on , then clearly sees , so assume that is not on and that there exists a point that is not visible from . Then, there exists a point on that lies in the interior of the segment . Let be a point in closest to , and let be the line through and perpendicular to . Assume w.l.o.g. that is horizontal and that is contained in the bottom halfplane defined by (see Figure 6, left). Then is above and its projection onto is . Now, it is impossible that is not above (in terms of coordinate), since this would imply that is above . So must be above , but then and we have reached a contradiction.
Now, if is a vertex of , then we are done. Otherwise, we slide along , in any one of the directions, until meets a vertex of (see Figure 6, right). The vertex is either an endpoint of the edge of on which we slide , or it is another vertex of that lies on one of the tangents to through . In both cases, clearly sees . ∎
3 The Algorithm
We show that given a set of vertices that guards , one can find a set of vertices of size at most such that guards (boundary plus interior). Let be the set of the constructed edges of the visibility polygons of the vertices in .
Now our goal is to show that for any hole in w.r.t. there exists a vertex in that guards it. More precisely, we show that is contained in one of the triangles considered by the algorithm.
Let be a hole with vertices . Using the following lemma, we first show that leans on an upper edge with an endpoint in . By creftypecap 5, leans on at least one upper edge.
Lemma 7.
Assume that leans on an upper edge , such that is below , , and is below . Then also leans on an upper edge and is below .
Proof.
Since is an upper edge, lies below , and by creftypecap 3, lies strictly above (see Figure 7).
Let be the constructed edge on which is leaning, and assume that is on the same side of as . ( is the crossing point of and , so and are on different sides of .) Since is a vertex of the hole , both and are on the same side of as . Moreover, by creftypecap 2 we get that , and therefore is strictly above .
Next we show that is below , by showing that is below . Indeed, if is above , then since is a vertex of the hole , both and are on the same side of as . Again by creftypecap 2 we get that , and therefore is strictly above , a contradiction.
Finally, is clearly an upper edge, since (which is in ) is below . ∎
This implies that every hole leans on an upper edge with an endpoint in : has at least one edge that leans on an upper edge , and is below . If or are on then we are done. Otherwise, by Lemma 7, the edge also leans on an upper edge , and is below . Again, if one of is on then we are done, otherwise by Lemma 7 leans on an upper edge and is below . The process must end before it reaches , since, if leans on an upper edge such that none of is on , then by applying Lemma 7 once again we get that is below , which is impossible (see Figure 8). But the only way for the process to end is when it reaches an upper edge such that or are on .
Claim 8.
Assume that leans on an upper edge such that is below and , and that is below . Then leans on a constructed edge (where is below ) such that ,
Proof.
Let be the constructed edge on which is leaning such that is below . The constructed edges and cross each other at the point , so by creftypecap 2 we get that , because and are on the same side of . Now, by creftypecap 3, lies (weakly) above , but , so . ∎
We are now ready to prove the correctness of our algorithm.
Claim 9.
Any hole in w.r.t. is contained in one of the triangles considered by Algorithm 1.
Proof.
By the argument immediately following Lemma 7, has an edge which leans on an upper edge with an endpoint on . Let , where is below , be such an edge of of minimum (absolute) slope, and let , where , be the upper edge on which is leaning. By creftypecap 8, the edge leans on a constructed edge such that .
Assume first that the algorithm found a point on . If is not below , then the triangle corresponding to contains and we are done. If is below (or ), then is not on the same side of as (because otherwise, would be a point not below ). But, if so, then the (absolute) slope of is smaller than that of , a contradiction. Now, if the algorithm did not find such a point on , then as before this means that is not on the same side of as and we reach a contradiction.
∎
Running time.
The running time of the algorithm of [18] for finding a set of vertices of size that guards is , for any . The set of constructed edges can be computed in time [17, 23]. Notice that Algorithm 1 only uses a subset of the constructed edges, namely, those with an endpoint in , and by creftypecap 1 we have that . Therefore, the total number of intersection points (Step 1 of Algorithm 1) is . Moreover, a vertex that guards the triangle (Step 2 of Algorithm 1) can be found in linear time by the following simple algorithm. (We could use the algorithm described in the proof of Lemma 6, but in this special case it is not necessary.) Assume, w.l.o.g., that is to the left of . Then, for each vertex of such that is below , compute the crossing point (if it exists) between and the ray emanating from and passing through . Now, among the vertices whose corresponding crossing point is between and , pick the closest one to (see Figure 9). Thus, the total running time of Algorithm 1 (given the set ) is . Note that for any , the total running time is dominated by .
Removing the convexity assumption.
Up to now, we have assumed that the angles at and at are convex. As in [18], this assumption can be easily removed. Assume, e.g., that the angle at is concave, and let be the first point on ’s boundary (moving clockwise from ) that lies on the axis (see Figure 10). Then, every point in the open portion of the boundary between and is visible from and is not visible from any other point on . Moreover, for any vertex in this portion of ’s boundary, if sees some point in above the axis, then so does . Indeed, since is weaklyvisible from , there exists a point that sees . In other words, is contained in , as well as and . Thus, the quadrilateral does not contain points of in its interior, and since is contained in it, we conclude that sees . Therefore, we may assume that an optimal guarding set does not include a vertex from this portion. Moreover, we may assume that the size of an optimal guarding set is greater than some appropriate constant, since otherwise we can find such a set in polynomial time. Now, let be the first vertex following . We place a guard at and replace the portion of ’s boundary between and by the edge . Notice that every point in the removed region is visible from . Similarly, if the angle at is concave, we define the point and the vertex (by moving counterclockwise from ), place a guard at , and replace the portion of ’s boundary between and by the edge . Finally, we apply the algorithm of [18] to the resulting polygon, after adjusting its parameters so that together with and we still get a approximation of an optimal guarding set for .
Theorem 10.
Given a WVpolygon with vertices and , one can find in time a subset of the vertices of , such that guards (boundary plus interior) and is of size at most , where OPT is the size of a minimumcardinality such set.
Boundary guards.
Let be the size of a minimumcardinality set of points on ’s boundary (except the interior of the edge ) that guards (boundary plus interior), and let be the size of a minimumcardinality such set that guards ’s boundary; clearly, . A PTAS for finding a set of points on that guards is described in [18], that is, , for any . Its running time is , and it is similar to the corresponding PTAS of Friedrichs et al. [12] for the case of 1.5Dterrains. Given the set as input, we can apply our algorithm as is and obtain a set of boundary points of size at most such that guards . Thus, we have .
Corollary 11.
Given a WVpolygon (w.r.t to edge ) with vertices and , one can find in time a set of points on , such that guards (boundary plus interior) and is of size at most , where is the size of a minimumcardinality such set.
4 Polygons weakly visible from a chord
A chord in a simple polygon is a line segment whose endpoints are on the boundary of and whose interior is contained in the interior of . In particular, any diagonal of is a chord in .
In this section, we show that our method can be extended to the case where is weakly visible from a chord (in ), i.e., every point in is visible from some point on . More precisely, we show that given a set of vertices that guards the boundary of such a polygon , one can find a set of size at most such that guards (boundary plus interior). Thus, given a approximation algorithm for guarding the boundary of a polygon weakly visible from a chord, we provide a approximation algorithm for guarding .
The chord slices into two (sub)polygons, where each of them is a WVpolygon w.r.t. the edge (see Figure 11). Thus, we would like to apply Algorithm 1 to each of these polygons separately.
The definitions of visibility polygons, pockets, and holes, apply with no change to polygons weakly visible from a chord. However, in order for the rest of our claims to be correct, we have to update creftypecap 1 and creftypecap 3. First, we replace creftypecap 1 by the following claim; the proof remains unchanged.
Claim 12.
For any point , is connected.
Notice that by creftypecap 12, has at most two constructed edges that cross , and again at most one of these edges is an upper edge. Next, we replace creftypecap 3 by the following two claims.
Claim 13.
Let be a constructed edge of , such that is below and is strictly above , then lies strictly above , i.e., every point in is above .
Proof.
First, observe that , otherwise, it follows that , and since the entire pocket is not visible from , we get that is not visible from , which contradicts the fact that is a WVpolygon.
Let be any point in . Since is a WVpolygon, there exists a point on such that . The segment has to cross , because and . Since is below , this crossing point is above , which in turn is above , so we get that is above . We conclude that lies strictly above . ∎
Claim 14.
Let be a constructed edge of , such that is below and crosses at a point , then intersects at a single point which is either or .
Proof.
intersects at a single point which is either or , since and is a chord. Now, if intersects at a point different than , then this point is not visible from . ∎
Denote by the polygon above and by the polygon below . As in the previous section, let be the set of the constructed edges of the visibility polygons of the vertices in . We run Algorithm 1 on and separately, to find a set of vertices (of ) such that guards (boundary plus interior), and set of vertices (of ) such that guards . Both and are of size at most , and thus is a set of vertices of size at most that guards .
When running the algorithm on , we ignore the existence of . That is, if an edge crosses , then we only consider its part that is contained in (and the part of its associated pocket that is contained in ). Similarly, if a hole lies on both sides of , we only consider its part that is contained in . (Notice that the role of an edge that crosses switches from an upper edge in to a lower edge in , or vice versa. So, each such edge is an upper edge in either or .) Moreover, in this case we get a hole in that has an edge which is not a constructed edge of a visibility polygon. But this does not cause a problem, since such holes must also have upper edges, and furthermore, due to creftypecap 13 we get that each of these upper edges has an endpoint on . Finally, notice that after computing , we do not use the set in our algorithm and proofs; it only reappears as one of the three sets whose union is the final guarding set.
Theorem 15.
Given a polygon with vertices that is weakly visible from a chord, and a set of vertices of (or a set of points on ) that guards , one can find in polynomial time a set of size at most such that guards (boundary plus interior). If is a approximation for guarding , then is a approximation for guarding the entire polygon .
References

[1]
Mikkel Abrahamsen, Anna Adamaszek, and Tillmann Miltzow.
The art gallery problem is complete.
In
Proceedings of the 50th Annual ACM SIGACT Symposium on Theory of Computing, STOC 2018, Los Angeles, CA, USA, June 2529, 2018
, pages 65–73, 2018. URL: https://doi.org/10.1145/3188745.3188868, doi:10.1145/3188745.3188868.  [2] Alok Aggarwal. The art gallery theorem: its variations, applications and algorithmic aspects. 1984.
 [3] David Avis and Godfried T. Toussaint. An optimal algorithm for determining the visibility of a polygon from an edge. IEEE Trans. Computers, 30(12):910–914, 1981. URL: https://doi.org/10.1109/TC.1981.1675729, doi:10.1109/TC.1981.1675729.
 [4] Pritam Bhattacharya, Subir Kumar Ghosh, and Sudebkumar Pal. Constant approximation algorithms for guarding simple polygons using vertex guards. arXiv:1712.05492, 2017.
 [5] Pritam Bhattacharya, Subir Kumar Ghosh, Sudebkumar Pal, and Bodhayan Roy. Personal communication, 2018.
 [6] Pritam Bhattacharya, Subir Kumar Ghosh, and Bodhayan Roy. Approximability of guarding weak visibility polygons. Discrete Applied Mathematics, 228:109–129, 2017. URL: https://doi.org/10.1016/j.dam.2016.12.015, doi:10.1016/j.dam.2016.12.015.
 [7] Édouard Bonnet and Tillmann Miltzow. An approximation algorithm for the art gallery problem. In 33rd International Symposium on Computational Geometry, SoCG 2017, July 47, 2017, Brisbane, Australia, pages 20:1–20:15, 2017. URL: https://doi.org/10.4230/LIPIcs.SoCG.2017.20, doi:10.4230/LIPIcs.SoCG.2017.20.
 [8] Gautam Das, Paul J. Heffernan, and Giri Narasimhan. Finding all weaklyvisible chords of a polygon in linear time. Nord. J. Comput., 1(4):433–457, 1994.
 [9] Ajay Deshpande, Taejung Kim, Erik D. Demaine, and Sanjay E. Sarma. A pseudopolynomial time approximation algorithm for art gallery problems. In Algorithms and Data Structures, 10th International Workshop, WADS 2007, Halifax, Canada, August 1517, 2007, Proceedings, pages 163–174, 2007. URL: https://doi.org/10.1007/9783540739517_15, doi:10.1007/9783540739517_15.
 [10] Alon Efrat and Sariel HarPeled. Guarding galleries and terrains. Inf. Process. Lett., 100(6):238–245, 2006. URL: https://doi.org/10.1016/j.ipl.2006.05.014, doi:10.1016/j.ipl.2006.05.014.
 [11] Stephan Eidenbenz, Christoph Stamm, and Peter Widmayer. Inapproximability results for guarding polygons and terrains. Algorithmica, 31(1):79–113, 2001. URL: https://doi.org/10.1007/s0045300100408, doi:10.1007/s0045300100408.
 [12] Stephan Friedrichs, Michael Hemmer, James King, and Christiane Schmidt. The continuous 1.5D terrain guarding problem: Discretization, optimal solutions, and PTAS. JoCG, 7(1):256–284, 2016. URL: https://doi.org/10.20382/jocg.v7i1a13, doi:10.20382/jocg.v7i1a13.
 [13] Subir Kumar Ghosh. Approximation algorithms for art gallery problems. pages 429–434, 1997.
 [14] Subir Kumar Ghosh. Approximation algorithms for art gallery problems in polygons. Discrete Applied Mathematics, 158(6):718–722, 2010. URL: https://doi.org/10.1016/j.dam.2009.12.004, doi:10.1016/j.dam.2009.12.004.
 [15] Subir Kumar Ghosh, Anil Maheshwari, Sudebkumar Prasant Pal, Sanjeev Saluja, and C. E. Veni Madhavan. Characterizing and recognizing weak visibility polygons. Comput. Geom., 3:213–233, 1993. URL: https://doi.org/10.1016/09257721(93)900104, doi:10.1016/09257721(93)900104.
 [16] Matt Gibson, Gaurav Kanade, Erik Krohn, and Kasturi Varadarajan. Guarding terrains via local search. Journal of Computational Geometry, 5(1):168–178, 2014.
 [17] B. Joe and R. B. Simpson. Corrections to Lee’s visibility polygon algorithm. BIT, 27(4):458–473, 1987.
 [18] Matthew J. Katz. A PTAS for vertex guarding weaklyvisible polygons — an extended abstract. CoRR, abs/1803.02160, 2018. URL: http://arxiv.org/abs/1803.02160, arXiv:1803.02160.
 [19] Yan Ke. Detecting the weak visibility of a simple polygon and related problems. In Technical report. Johns Hopkins University, 1987.
 [20] James King and David G. Kirkpatrick. Improved approximation for guarding simple galleries from the perimeter. Discrete & Computational Geometry, 46(2):252–269, 2011. URL: https://doi.org/10.1007/s004540119352x, doi:10.1007/s004540119352x.
 [21] Erik Krohn and Bengt Nilsson. Approximate guarding of monotone and rectilinear polygons. Algorithmica, 66:564–594, 07 2013. doi:10.1007/s0045301296533.
 [22] D Lee and Arthur K. Lin. Computational complexity of art gallery problems. IEEE Transactions on Information Theory, 32:276–282, 03 1986. doi:10.1109/TIT.1986.1057165.
 [23] D. T. Lee. Visibility of a simple polygon. Computer Vision, Graphics, and Image Processing, 22(2):207–221, 1983. URL: https://doi.org/10.1016/0734189X(83)900658, doi:10.1016/0734189X(83)900658.
 [24] Nabil Hassan Mustafa and Saurabh Ray. PTAS for geometric hitting set problems via local search. In Proceedings of the 25th Annual Symposium on Computational Geometry, pages 17–22. ACM, 2009.
 [25] Joseph O’rourke. Art gallery theorems and algorithms, volume 57. Oxford University Press Oxford, 1987.
 [26] Joseph O’Rourke and Kenneth J. Supowit. Some NPhard polygon decomposition problems. IEEE Trans. Information Theory, 29(2):181–189, 1983. URL: https://doi.org/10.1109/TIT.1983.1056648, doi:10.1109/TIT.1983.1056648.
 [27] JörgRüdiger Sack and Subhash Suri. An optimal algorithm for detecting weak visibility of a polygon (preliminary version). In STACS 88, 5th Annual Symposium on Theoretical Aspects of Computer Science, Bordeaux, France, February 1113, 1988, Proceedings, pages 312–321, 1988. URL: https://doi.org/10.1007/BFb0035855, doi:10.1007/BFb0035855.