A Constant-Factor Approximation Algorithm for Vertex Guarding a WV-Polygon

07/02/2019 ∙ by Stav Ashur, et al. ∙ Ben-Gurion University of the Negev 0

The problem of vertex guarding a simple polygon was first studied by Subir K. Ghosh (1987), who presented a polynomial-time O(log n)-approximation algorithm for placing as few guards as possible at vertices of a simple n-gon P, such that every point in P is visible to at least one of the guards. Ghosh also conjectured that this problem admits a polynomial-time algorithm with constant approximation ratio. Due to the centrality of guarding problems in the field of computational geometry, much effort has been invested throughout the years in trying to resolve this conjecture. Despite some progress (surveyed below), the conjecture remains unresolved to date. In this paper, we confirm the conjecture for the important case of weakly visible polygons, by presenting a (2+ε)-approximation algorithm for guarding such a polygon using vertex guards. A simple polygon P is weakly visible if it has an edge e, such that every point in P is visible from some point on e. We also present a (2+ε)-approximation algorithm for guarding a weakly visible polygon P, where guards may be placed anywhere on P's boundary (except in the interior of the edge e). Finally, we present a 3c-approximation algorithm for vertex guarding a polygon P that is weakly visible from a chord, given a subset G of P's vertices that guards P's boundary whose size is bounded by c times the size of a minimum such subset. Our algorithms are based on an in-depth analysis of the geometric properties of the regions that remain unguarded after placing guards at the vertices to guard the polygon's boundary. It is plausible that our results will enable Bhattacharya et al. to complete their grand attempt to prove the original conjecture, as their approach is based on partitioning the underlying simple polygon into a hierarchy of weakly visible polygons.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

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 (vertex-guards), only on the boundary (boundary-guards), or anywhere (point-guards), 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 polynomial-time -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 (WV-polygon) by vertex guards was studied by Bhattacharya et al. [6]. They first present a 4-approximation 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 6-approximation algorithm for vertex guarding ’s boundary, and present it as a 6-approximation 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 constant-factor approximation algorithm for guarding a WV-polygon 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 minimum-cardinality subset of the vertices of that guards . We present a polynomial-time 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 constant-factor 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 (non-trivial) family of polygons for which a constant-factor 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 NP-hard, and presented a constant-factor 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 Har-Peled [10] described a randomized polynomial-time

-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 vertices111The 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 polynomial-time -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 NP-hard. 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 WV-polygon 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 linear-time algorithm for detecting whether a polygon is weakly visible from a given edge. Subsequently, Sack and Suri [27] and Das et al. [8] devised linear-time 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 WV-polygon is NP-hard, and that there does not exist a polynomial-time algorithm for vertex guarding a WV-polygon with holes with approximation factor better than , unless P NP.

Our algorithm for vertex guarding a WV-polygon uses a solution to the problem of guarding the boundary of a WV-polygon using vertex guards. This problem admits a local-search-based PTAS (see [18]), which is similar to the local-search-based PTAS of Gibson et al. [16] for vertex guarding the vertices of a 1.5D-terrain. The proof of both these PTASs is based on the proof scheme of Mustafa and Ray [24].

Results.

Our algorithm for vertex guarding a WV-polygon (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 minimum-cardinality 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 x-axis, and is to the left of . Furthermore, we assume that is contained in the (closed) halfplane above the x-axis; 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 star-shaped polygon, and thus clearly also a simple polygon, contained in (see Figure 1).

Figure 1: The visibility polygon of a point .

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. ∎

Figure 2: If sees both and , then sees the entire segment .

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 .)

Figure 3: is a constructed edge, and the gray area is the set of all points of that lie below/above . In (a) and (b) the pocket lies above , and thus is a lower edge. In (c) and (d) the pocket lies below , and is an upper edge. In (a) and (c) the slope of is positive, and in (b) and (d) it is negative.

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 ).

Figure 4: The gray area is . is an upper edge (i.e., lies below ) and is on , but some points of lie above .

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.

Figure 5: Two constructed edges that cross each other.
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 WV-polygon.

If , then is above (see Figure 3). By the observation above, (and thus of course ). Let be any point in . Since is a WV-polygon, 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.
Figure 6: Proof of Lemma 6.

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 .

For each upper edge in with :

  1. Find the topmost intersection point of with an edge in with such that is on the same side of as the pocket .

  2. If such a point exists (then the triangle is contained in ), find a vertex that guards (see description in the proof of Lemma 6) and add it to .

Algorithm 1 Guarding the interior of

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.

Figure 7: Two edges of the hole : and . The edge leans on an upper edge and is below , thus has to lean on an upper edge such that is below (and not as drawn in the figure).
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 . ∎

Figure 8: The edges of lean on a sequence of upper edges.

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.

Figure 9: Finding a vertex of that guards the triangle .

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 .

Figure 10: A polygon with a concave angle at .

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 weakly-visible 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 WV-polygon 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 minimum-cardinality such set.

Boundary guards.

Let be the size of a minimum-cardinality set of points on ’s boundary (except the interior of the edge ) that guards (boundary plus interior), and let be the size of a minimum-cardinality 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.5D-terrains. 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 WV-polygon (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 minimum-cardinality 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 WV-polygon w.r.t. the edge (see Figure 11). Thus, we would like to apply Algorithm 1 to each of these polygons separately.

Figure 11: The visibility polygon of a point .

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 WV-polygon.

Let be any point in . Since is a WV-polygon, 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