Conference PaperPDF Available

Vertex Guarding in Weak Visibility Polygons

Authors:

Abstract and Figures

The art gallery problem enquires about the least number of guards that are sufficient to ensure that an art gallery, represented by a polygon $P$, is fully guarded. In 1998, the problems of finding the minimum number of point guards, vertex guards, and edge guards required to guard $P$ were shown to be APX-hard by Eidenbenz, Widmayer and Stamm. In 1987, Ghosh presented approximation algorithms for vertex guards and edge guards that achieved a ratio of $\mathcal{O}(\log n)$, which was improved up to $\mathcal{O}(\log\log OPT)$ by King and Kirkpatrick in 2011. It has been conjectured that constant-factor approximation algorithms exist for these problems. We settle the conjecture for the special class of polygons that are weakly visible from an edge and contain no holes by presenting a 6-approximation algorithm for finding the minimum number of vertex guards that runs in $\mathcal{O}(n^2)$ time. On the other hand, when holes are allowed, we show that the problem of vertex guarding a weak visibility polygon is APX-hard by constructing a reduction from the Set Cover problem.
Content may be subject to copyright.
Vertex Guarding in Weak Visibility Polygons
Pritam Bhattacharya, Subir Kumar Ghosh*, Bodhayan Roy
School of Technology and Computer Science
Tata Institute of Fundamental Research
Mumbai 400005, India
Abstract
The art gallery problem enquires about the least number of guards that are sufficient
to ensure that an art gallery, represented by a polygon P, is fully guarded. In 1998, the
problems of finding the minimum number of point guards, vertex guards, and edge guards
required to guard Pwere shown to be APX-hard by Eidenbenz, Widmayer and Stamm.
In 1987, Ghosh presented approximation algorithms for vertex guards and edge guards
that achieved a ratio of O(log n), which was improved upto O(log log OP T ) by King and
Kirkpatrick in 2011. It has been conjectured that constant-factor approximation algorithms
exist for these problems. We settle the conjecture for the special class of polygons that are
weakly visible from an edge and contain no holes by presenting a 6-approximation algorithm
for finding the minimum number of vertex guards that runs in O(n2) time. On the other
hand, when holes are allowed, we show that the problem of vertex guarding a weak visibility
polygon is APX-hard by constructing a reduction from the Set Cover problem.
1 Introduction
1.1 The art gallery problem and its variants
The art gallery problem enquires about the least number of guards that are sufficient to ensure
that an art gallery (represented by a polygon P) is fully guarded, assuming that a guard’s field
of view covers 360as well as an unbounded distance. This problem was first posed by Victor
Klee in a conference in 1973, and in the course of time, it has turned into one of the most
investigated problems in computational geometry.
Apolygon Pis defined to be a closed region in the plane bounded by a finite set of line segments,
called edges of P, such that, between any two points of P, there exists a path which does not
intersect any edge of P. If the boundary of a polygon Pconsists of two or more cycles, then
Pis called a polygon with holes (see Figure 1(a)). Otherwise, Pis called a simple polygon or a
polygon without holes (see Figure 1(b)).
An art gallery can be viewed as an n-sided polygon P(with or without holes) and guards as
points inside P. Any point zPis said to be visible from a guard gif the line segment zg
does not intersect the exterior of P(see Figure 1). In general, guards may be placed anywhere
inside P. If the guards are allowed to be placed only on vertices of P, they are called vertex
guards. If there is no such restriction, guards are called point guards. Point and vertex guards
together are also referred to as stationary guards. If guards are allowed to patrol along a line
segment inside P, they are called mobile guards. If they are allowed to patrol only along the
edges of P, they are called edge guards. [10, 20]
Email Addresses: pritamb@tcs.tifr.res.in, *ghosh@tifr.res.in, bodhayan@tcs.tifr.res.in
1
Figure 1: (a) Polygon with Holes; (b) Polygon without Holes
In 1975, Chv´atal [3] showed that bn
3cstationary guards are sufficient and sometimes necessary
(refer to Figure 2(a)) for guarding a simple polygon. In 1978, Fisk [8] presented a simpler
and more elegant proof of this result. For a simple orthogonal polygon, whose edges are either
horizontal or vertical, Kahn et al. [15] and also O’Rourke [19] showed that bn
4cstationary
guards are sufficient and sometimes necessary (refer to Figure 2(b)).
Figure 2: (a) A polygon where bn
3cstationary guards are necessary. (b) A polygon where bn
4c
stationary guards are necessary.
1.2 Related hardness and approximation results
In the decision version of the art gallery problem is to determine, given a polygon Pand a
number kas input, whether the polygon Pcan be guarded with kor fewer guards. The prob-
lem was first proved to be NP-complete for polygons with holes by O’Rourke and Supowit [21].
For guarding simple polygons, it was proved to be NP-complete for vertex guards by Lee and
Lin [18], and their proof was generalized to work for point guards by Aggarwal [1]. The prob-
lem is NP-hard even for simple orthogonal polygons as shown by Katz and Roisman [16] and
Schuchardt and Hecker [22]. Each one of these hardness results hold irrespective of whether we
are dealing with vertex guards, edge guards, or point guards.
In 1987, Ghosh [9, 11] provided an O(log n)-approximation algorithm for the case of vertex and
edge guards by discretizing the input polygon and treating it as an instance of the Set Cover
problem. In fact, applying methods for the Set Cover problem developed after Ghosh’s algo-
rithm, it is easy to obtain an approximation factor of O(log OP T ) for vertex guarding simple
polygons or O(log hlog OP T ) for vertex guarding a polygon with hholes. Deshpande et al.
[4] obtained an approximation factor of O(log OP T ) for point guards or perimeter guards by
2
developing a sophisticated discretization method that runs in pseudopolynomial time. Efrat
and Har-Peled [5] provided a randomized algorithm with the same approximation ratio that
runs in fully polynomial expected time. For guarding simple polygons using vertex guards and
perimeter guards, King and Kirkpatrick [17] obtained an approximation ratio of O(log log OP T )
in 2011.
In 1998, Eidenbenz, Stamm and Widmayer [6] proved that the problem is APX-complete,
implying that an approximation ratio better than a fixed constant cannot be achieved unless
P=NP. They also proved that if the input polygon is allowed to contain holes, then there
cannot exist a polynomial time algorithm for the problem with an approximation ratio better
than ((1 )/12) ln nfor any  > 0, unless NP TIME(nO(log log n)). Contrastingly, in the case
of simple polygons without holes, the existence of a constant-factor approximation algorithm for
vertex guards and edge guards has been conjectured by Ghosh [9, 12] since 1987. However, this
conjecture has not yet been settled even for special classes of polygons such as weak visibility
polygons, monotone polygons, orthogonal polygons etc.
1.3 Our contributions
A polygon Pis said to be a weak visibility polygon if every point in Pis visible from some point
of an edge [10]. In Section 1.3, we present a 6-approximation algorithm, which has running time
O(n2), for vertex guarding polygons that are weakly visible from an edge and contain no holes.
This result can be viewed as a step forward towards solving Ghosh’s conjecture for a special
class of polygons. Then, in Section 3, we show that, for the special class of polygons containing
holes that are weakly visible from an edge, the problem of finding the minimum number of
vertex guards is APX-hard by constructing a reduction from the Set Cover problem.
2 Placement of vertex guards in weak visibility polygons
Let Pbe a simple polygon. If there exists an edge uv in P(where uis the next clockwise
vertex of v) such that Pis weakly visible from uv, then it can be located in O(n2) time [2, 13].
Henceforth, we assume that such an edge uv has been located. Let bdc(p, q) (or, bdcc(p, q))
denote the clockwise (respectively, counterclockwise) boundary of Pfrom a vertex pto another
vertex q. Note that, by definition, bdc(p, q) = bdcc(q, p). The visibility polygon of Pfrom a
point z, denoted by V P (z), is defined to be the set of all points in Pthat are visible from z.
In other words, V P (z) = {qP:qis visible from z}.
The shortest path tree of Prooted at a vertex rof P, denoted by SP T (r), is the union of
Euclidean shortest paths from rto all the vertices of P. This union of paths is a planar tree,
rooted at r, which has nnodes, namely the vertices of P. For every vertex xof P, let pu(x) and
pv(x) denote the parents of xin SP T (u) and S P T (v) respectively. In the same way, for every
interior point yof P, let pu(y) and pv(y) denote the vertex of Pnext to yin the Euclidean
shortest path to yfrom uand vrespectively.
2.1 Guarding all vertices of a polygon
Suppose a guard is placed on each non-leaf vertex of SP T (u) and S P T (v). It is obvious that
these guards see all points of P. However, the number of guards required may be very large
compared to the size of an optimal guarding set. In order to reduce the number of guards,
placing guards on every non-leaf vertex should be avoided. Let Abe a subset of vertices of
P. Let SAdenote the set which consists of the parents pu(z) and pv(z) of every vertex zA.
Then, Ashould be chosen such that all vertices of Pare visible from guards placed at vertices
of SA. We present a method for choosing Aand SAas follows:-
3
Algorithm 2.1 An O(n2)-algorithm for computing a guard set SAfor all vertices of P
Compute SP T (u) and S P T (v)
Initialize all the vertices of Pas unmarked
Initialize A← ∅,SA← ∅ and zu
while z6=vdo
zthe vertex next to zin clockwise order on bdc(u, v)
if zis unmarked then
AA∪ {z}and SASA∪ {pu(z), pv(z)}
Place guards on pu(z) and pv(z)
Mark all vertices of Pthat become visible from pu(z) or pv(z)
end if
end while
return the guard set SA
Now, assume a special condition such that for every vertex zA, all vertices of bdc(pu(z), pv(z))
are visible from pu(z) or pv(z). We prove that, in such a situation, |SA| ≤ 2.|Sopt|, where Sopt
denotes an optimal vertex guard set.
Lemma 1. Any guard gSopt that sees vertex zof Pmust lie on bdc(pu(z), pv(z)).
Proof. Since pu(z) is the parent of zin S P T (u), zcannot be visible from any vertex of
bdc(u, pu(z)). Similarly, since pv(z) is the parent of zin S P T (v), zcannot be visible from any
vertex of bdcc(v, pv(z)). Hence, any guard gSopt that sees zmust lie on bdc(pu(z), pv(z)).
Lemma 2. Let zbe a vertex of Psuch that all vertices of bdc(pu(z), pv(z)) are visible from
pu(z)or pv(z). For every vertex xlying on bdc(pu(z), pv(z)), if xsees a vertex qof P, then q
must also be visible from pu(z)or pv(z).
Proof. If qlies on bdc(pu(z), pv(z)), then it is visible from from pu(z) or pv(z) by assumption.
So, consider the case where qlies on bdcc(pu(z), pv(z)). Now, either qlies on bdc(u, pu(z)) or q
lies on bdcc(v, pv(z)). In the former case, if bdcc (q, pv(z)) intersects the segment qpv(z), then qor
pv(z) is not weakly visible from uv (see Figure 3). Moreover, no other portion of the boundary
can intersect qpv(z) since qx and zpv(z) are internal segments. Hence, qmust be visible from
pv(z). Analogously, if qlies on bdcc (v, pv(z)), qmust be visible from pu(z).
Lemma 3. Assume that every vertex zAis such that every vertex of bdc(pu(z), pv(z)) is
visible from pu(z)or pv(z). Then, |A|≤|Sopt|.
Proof. Assume on the contrary that |A|>|Sopt|. This implies that Algorithm 2.1 includes two
distinct vertices z1and z2belonging to Awhich are both visible from a single guard gSopt.
Moreover, it follows from Lemma 1 that gmust lie on bdc(pu(z1), pv(z1)). Without loss of
generality, let us assume that vertex z1is added to Abefore z2by Algorithm 2.1. In that case,
Algorithm 2.1 places guards at pu(z1) and pv(z1). Now, as vertex z2is visible from g, it follows
from Lemma 2 that z2is also visible from pu(z1) or pv(z1). Therefore, z2is already marked,
and hence, Algorithm 2.1 does not include z2in A, which is a contradiction.
Lemma 4. |SA|= 2|A|.
Proof. For every zA, since Algorithm 2.1 includes both the parents pu(z) and pv(z) of zin
SA, it is clear that |SA| ≤ 2|A|. If both the parents of every zAare distinct, then |SA|= 2|A|.
Otherwise, there exists two distinct vertices z1and z2in Athat share a common parent, say p.
Without loss of generality, let us assume that vertex z1is added to Abefore z2by Algorithm
2.1. In that case, Algorithm 2.1 places a guard at p, which results in z2getting marked. Thus,
Algorithm 2.1 cannot include z2in A, which is a contradiction. Hence, it must be the case that
|SA|= 2|A|.
4
Theorem 5. If every vertex zAis such that see all vertices of bdc(pu(z), pv(z)) are visible
from pu(z)or pv(z), then |SA| ≤ 2|Sopt|.
Proof. By Lemma 4, |SA|= 2|A|. By Lemma 3, |A| ≤ |Sopt |. So, |SA|= 2|A| ≤ 2|Sopt|.
z
pu(z)
pv(z)
uv
x
q
Figure 3: Case in Lemma 2 where
the segment qpv(z) is intersected
by bdc(u, pu(z)).
z1
z2
z3
zk
g
uv
pu2pu3
pvk
pv3
pv2
pv1
puk
Figure 4: An instance where the guard set SAcomputed by
Algorithm 2.1 is arbitrarily large compared to an optimal
guard set Sopt.
The above bound does not hold if there exists zAsuch that every vertex of bdc(pu(z), pv(z))
is not visible from pu(z) or pv(z). Consider Figure 4. For each i∈ {1,2, . . . , k 1},zi+1 is
not visible from pu(zi) or pv(zi), which forces Algorithm 2.1 to place guards at pu(zi+1) and
pv(zi+1). Therefore, Algorithm 2.1 includes z1, z2, z3, . . . , zkin Aand places a total of 2kguards
at vertices u, pv1, pu2, pv2, . . . , puk, pvk . However, all vertices of Pare visible from just two guards
placed at uand g. Hence, |SA|= 2kwhereas |Sopt|= 2. Since the construction in Figure 4 can
be extended for any arbitrary integer k,|SA|can be arbitrarily large compared to |Sopt|. So,
Algorithm 2.1 is now modified to get a 4-approximation algorithm.
While scanning bdc(u, v), Algorithm 2.1 chooses the next unmarked vertex zand adds it to A.
Instead, the modified algorithm locates the next unmarked vertex zsuch that pu(z) and pv(z)
together see all vertices of bdc(pu(z), pv(z)). Accordingly, zis added to A, and pu(z) and pv(z)
are added to SA. The modified procedure is described in pseudocode as follows.
Algorithm 2.2 An O(n2)-algorithm for computing a guard set SAfor some vertices of P
Compute SP T (u) and S P T (v)
Initialize all the vertices of Pas unmarked
Initialize A← ∅,SA← ∅ and zu
while z6=vdo
zthe vertex next to zin clockwise order on bdc(u, v)
if zis unmarked then
if every unmarked vertex of bdc(pu(z), pv(z)) is visible from pu(z) or pv(z)then
AA∪ {z}and SASA∪ {pu(z), pv(z)}
Mark all vertices of Pthat become visible from pu(z) or pv(z)
end if
end if
end while
return the guard set SA
5
z
uv
pv(z)
pu(z)
g2
g1
Figure 5: All vertices lying on bdc(z, pv(z)) are
already marked due to guards at g1and g2.
uv
z
pv(z)
pu(z)
g2
g1
y
Figure 6: The only unmarked vertex yof
bdc(z, pv(z)) is visible from pv(z).
z
z0
uv
pv(z)
pv(z0)
pu(z0)
pu(z)
y
Figure 7: Guards at pu(z0) and pv(z0) do not
see the unmarked vertex yof bdc(pu(z0), z0).
z
z0
uv
pv(z)
pv(z0)
pu(z0)
pu(z)
Figure 8: Guards at pu(z0) and pv(z0) see all
unmarked vertices of bdc(pu(z0), z0).
Observe that, in contrast to Algorithm 2.1, the guards in SAplaced by Algorithm 2.2 are not
guaranteed to see all vertices of P. Therefore, additional guards are required. In order to
choose additional guards, bdc(u, v) is again scanned to identify a set of yet unmarked vertices,
denoted as B, such that all points of Pthat are unseen by guards in SAare visible from guards
in SB={pu(z)|zB}∪{pv(z)|zB}. During the scan, let zdenote the current unmarked
vertex under consideration, where for every unmarked vertex yof bdc(u, z) (excluding z), pu(y)
and pv(y) see all unmarked vertices of bdc(pu(y), y). Such a vertex zmust satisfy one of the
following properties.
(A) All vertices of bdc(z, pv(z)) are already marked (see Figure 5).
(B) Every unmarked vertex of bdc(z, pv(z)) is visible from pu(z) or pv(z) (see Figure 6).
(C) Let z0(henceforth referred to as the next candidate vertex of z) be the first unmarked
vertex of bdc(z, pv(z)) from zin clockwise order. All unmarked vertices of bdc(pu(z0), z0)
are not visible from pu(z0) or pv(z0) (see Figure 7),
(D) Every unmarked vertex of bdc(pu(z0), z0) is visible from pu(z0) or pv(z0) (see Figure 8),
where z0is the next candidate vertex of z.
6
If zsatisfies property (A) or (B), then zis included in Band the first unmarked vertex of
bdc(pv(z), v) in clockwise order from pv(z) becomes the new z. If zsatisfies property (C), then
zis included in Band z0becomes the new z. If zsatisfies property (D), then z0becomes the
new z. Whenever zis included in B,pu(z) and pv(z) are included in SBand all unmarked
vertices that become visible from pu(z) or pv(z) are marked. After doing so, if there remain
unmarked vertices on bdcc(z, u), then bdcc (z, u) is scanned from zin counterclockwise order and
more guards are included in SBaccording to the following strategy.
(i)ypu(z)
(ii) Scan bdcc (y, u) from yin counterclockwise till an unmarked vertex xis located.
(iii) Add xto B. Add pu(x) and pv(x) to SB.
(iv) Mark every vertex visible from pu(x) or pv(x).
(v)ypu(x)
(vi) Repeat steps (ii)-(v) until all vertices of bdcc(z, u) are marked.
Initially, zis chosen to be the first unmarked vertex of bdc(u, v) in clockwise order from u. Then,
for each zunder consideration along the clockwise scan of bdc(u, v), the appropriate action is
performed corresponding to the property of z. Then, zis updated and the process is repeated
till vis reached. The set of vertices S=SASBis chosen by the algorithm as a guard set. Let
B={b1, b2, . . . , bt}. when the algorithm terminates.
Suppose SBis computed without computing SAfirst. It can be seen that guards in SBstill see
all vertices of P. Hence, it is enough to compute the guard set S=SBonly. The entire process
is described in pseudocode as Algorithm 2.3.
Algorithm 2.3 An O(n2)-algorithm for computing a guard set Sfor all vertices of P
Compute SP T (u) and S P T (v)
Initialize all the vertices of Pas unmarked
Initialize B← ∅,SB← ∅ and zu
while there exists an unmarked vertex in Pdo
zthe first unmarked vertex on bdc(u, v) in clockwise order from z
if every unmarked vertex of bdc(z , pv(z)) is visible from pu(z) or pv(z)then
BB∪ {z}and SBSB∪ {pu(z), pv(z)}
Mark all vertices of Pthat become visible from pu(z) or pv(z)
zpv(z)
else
z0the first unmarked vertex on bdc(z, v) in clockwise order
while every unmarked vertex of bdc(pu(z0), z 0) is visible from pu(z0) or pv(z0)do
zz0and z0the first unmarked vertex on bdc(z0, v) in clockwise order
end while
wz
while there exists an unmarked vertex on bdc(u, z)do
BB∪ {w}and SBSB∪ {pu(w), pv(w)}
Mark all vertices of Pthat become visible from pu(w) or pv(w)
wthe first unmarked vertex on bdcc(w, u) in counterclockwise order
end while
end if
end while
return the guard set S=SB
For showing an upper bound on S, a bipartite graph G= (BSopt, E ) is constructed such that
the degree of each vertex in Bis exactly 1 and the degree of each vertex in Sopt is at most 2.
7
The graph Gis constructed as follows. For every vertex biB, there exists a gSopt such
that gsees bi. By Lemma 1, gmust lie on bdc(pu(bi), pv(bi)). If glies on bdc(pu(bi), bi), then the
edge gbiis added to E. Observe that any vertex qlying on bdcc(pu(bi), bi) that is visible from
gis also visible from pu(bi) or pv(bi) (see the proof of Lemma 2). So, qis marked on inclusion
of biin B, and therefore qcannot be included in B. Hence, for k > i, no vertex bkBexists
that can add an edge gbk.
If glies on bdc(bi, b0
i) and sees another bjB, then the edges gbiand gbjare added to G. Similar
arguments as above show that, for k > j, no vertex bkBexists that can add an edge gbk.
If glies on bdc(b0
i, pv(b0
i) (see Figure 9), there exists a vertex xion bdc(pu(bi), bi) such that xi
is visible from pu(bi) or pv(bi), but not from pu(b0
i) or pv(b0
i). So, in order to see xi, there must
exist another guard g0Sopt lying on bdc(pv(b0
i), pv(xi)). The edge g0biis added to G. Let Vg0
denote the set of vertices of Plying on bdc(pv(b0
i), pv(xi)) that are visible from g0. If Vg0does
not contain any vertex of B, then the degree of g0is 1 in G. Otherwise, the first vertex bjB
of Vg0in clockwise order from pv(b0
i) is located and the edge g0bjis added to G. Now, every
vertex belonging to Vg0must be visible from pu(bj) or pv(bj), which means that no other vertex
of Vg0can be included in B. Hence, for k > j, no vertex bkBexists which can have an edge
g0bkincident on g0, ensuring that the degree of g0is at most 2 in G.
Figure 9: The guard gSopt is located on
bdc(b0
i, pv(b0
i).
g
b0
i
bi
xi
pu(bi)
g0
pv(b0
i)
pv(bi)pu(bj)
bj
pv(xi)
pv(bj)
uv
Figure 10: The guard gSopt is located on
bdc(pv(b0
i), pv(bi)).
If glies on bdc(pv(b0
i), pv(bi) (see Figure 10), then add the edge gbito G. Observe that no vertex
lying on bdc(b0
i, pv(b0
i)) can be visible from g. Moreover, at most one other vertex bjBlying
on bdc(pv(b0
i), pv(bi)) is visible from g, as explained earlier for the case of g0Sopt seeing xi.
If bjexists, then the edge gbjis added to G, ensuring the degree of gis at most 2 in G. As a
direct consequence of the above construction, we have the following results. //
Lemma 6. In the bipartite graph G, the degree of each vertex in Bis exactly 1 and degree of
each vertex in Sopt is at most 2.
Corollary 7. |B| ≤ 2|Sopt |.
Theorem 8. |S| ≤ 4|Sopt|.
Proof. By Corollary 7, |S|=|SB|= 2|B| ≤ 4|Sopt |.
8
2.2 Guarding all interior points of a polygon
In the previous subsection, we presented an algorithm (see Algorithm 2.3) which returns a
guard set Ssuch that all vertices of Pare visible from guards in S. However, it may not
always be true that all interior points of Pare also visible from guards in S. Consider the
polygon shown in Figure 11. While scanning bdc(u, v), our algorithm places guards at pu(z)
and pv(z) as all vertices of bdc(pu(z), pv(z)) become visible from pu(z) or pv(z). Observe that
in fact all vertices of Pbecome visible from these two guards. However, the triangular region
P\(V P (pu(z))V P (pv(z))), bounded by the segments x1x2,x2x3and x3x1, is not visible from
pu(z) or pv(z). Henceforth, each such region is referred to as an invisible triangle. Observe that
one of the sides of each invisible triangle is always a part of a polygonal edge due to the choice
of guards and weak visibility restrictions. For example, in Figure 11, one of the sides x1x2of
the invisible triangle x1x2x3is a part of the polygonal edge a1a2. Henceforth, each such edge
is referred to as a partially invisible edge. One additional guard is required in order to see each
invisible triangle entirely. For example, in Figure 11, an extra guard is required at a vertex
of bdc(z, w), since none of the vertices outside this boundary can see all points of the invisible
triangle x1x2x3.
The boundary of the visibility polygon V P (s) of any vertex sconsists of polygonal edges and
constructed edges. A constructed edge yx is an edge formed by extending the segment sy (which
could be either an edge of Por an internal segment), where yis some other vertex of P, till
it touches the boundary of Pat a point x. If ylies on bdc(s, x), the region of Pbounded by
bdc(y, x) and xy is referred to as the left pocket of V P (z). Similarly, if ylies on bdcc (s, x), then
the region of Pbounded by bdcc(y, x) and xy is referred to as the right pocket of V P (z). In
both these cases, we refer to the vertex yas the lid vertex and the point xas the lid point of
the corresponding left or right pocket.
Observe that invisible triangles are actually the intersection regions of a left pocket and a right
pocket. For example, in Figure 11, the invisible triangle x1x2x3is the intersection region of the
left pocket of V P (pu(z)) and the right pocket of V P (pv(z)). Also, zis the lid vertex and x2
is the lid point of the left pocket of V P (pu(z)). Similarly, wis the lid vertex and x1is the lid
point of the right pocket of V P (pv(z)).
pv(z)
a1a2
pu(z)
uv
z
x1x2
x3
w
Figure 11: All vertices are visible from pu(z)
or pv(z), but the triangle x1x2x3is invisible.
pv(z)
a1a2
pu(z)
uv
z
x1x2
x3
w
q
Figure 12: The left pocket of V P (pu(z)) can
contain only one invisible triangle.
Suppose bdc(z, x2) contains reflex vertices (see Figure 12). In that case, in addition to the
invisible triangle x1x2x3, the left pocket of V P (pu(z)) may contain several regions that are not
visible from pv(z). However, in each such region there exists a vertex, say q, that is not visible
from pv(z), which contradicts the fact that all vertices of bdc(pu(z), pv(z)) are visible from pu(z)
or pv(z). So, the left pocket of V P (pu(z)) can contain only one invisible triangle. Analogously,
the right pocket of V P (pv(z)) can contain only one invisible triangle.
9
Now consider the situation (as shown in Figure 13) where V P (pu(z)) has several left pockets
and V P (pv(z)) has several right pockets which intersect pairwise to create multiple invisible
triangles. In order to guard these invisible triangles, additional guards are placed as follows.
Let c1be the lid point of the left pocket containing the first invisible triangle in clockwise order.
Then, guards are placed at pu(c1) and pv(c1). Now, for every invisible triangle T, the portions
of Tare removed that are visible from pu(c1) or pv(c1). Note that some of these triangles may
turn out to be totally visible and hence may be eliminated altogether. This process is repeated
till all invisible triangles become totally visible.
pv(z)
a1
a2
a3
d1
d2
d3
pu(z)
uv
z
c1
c2
c3
c0
1
c0
2c0
3
Figure 13: Multiple invisible triangles exist within the polygon that are not visible from the
guards placed at pu(z) and pv(z).
In general, we may have a situation where multiple invisible triangles are created by the inter-
section of the left and right pockets of arbitrary pairs of guards belonging to S(see Figure 14).
In this scenario, all invisible triangles are guarded by introducing a set of additional guards
S0as follows. Initially, both Cand S0are empty. Scan bdc(u, v) from uin clockwise order to
locate the first edge aidithat is not totally visible from guards in SS0, where diis the next
clockwise vertex of ai. Let c0
icibe the portion of aidithat is not visible from guards in SS0,
where c0
ibdc(ai, ci) and cibdc(c0
i, di). In other words, c0
iciis the polygonal side of the first
invisible triangle. Add pu(ci) and pv(ci) to S0. Also, add cito C. Repeat this process till all
the edges of Pare totally visible from guards in SS0. At its termination, let us assume that
C={c1, c2, . . . , ck}. The entire procedure is described in pseudocode as follows.
Algorithm 2.4 An O(n2)-algorithm for computing a guard set SS0for guarding Pentirely
Compute SP T (u) and S P T (v)
Compute the set of guards Susing Algorithm 2.3.
Initialize C← ∅,S0← ∅ and zu
while there exists an edge in Pthat is partially visible from guards in SS0do
z0the vertex next to zin clockwise order on on bdc(u, v)
if if the edge zz0is partially visible from guards in SS0then
cithe lid point of the left pocket on zz0
CC∪ {ci}and S0S0∪ {pu(ci), pv(ci)}
end if
zz0
end while
return the guard set SS0
Lemma 9. The running time of Algorithm 2.4 is O(n2).
Proof. S P T (u) and SP T (v) can be computed in O(n) time [14]. Then, the computation of
each of the guard set Stakes O(n2) time, since it involves scanning the boundary of Pand
10
identifying vertices to be marked whenever new guards are placed. The number of lid points on
an edge can be at most O(n). Therefore, each time a new vertex is added to S0, the invisible
portion of the first partially visible edge in clockwise order can be determined in O(n) time.
Hence, the overall running time of Algorithm 2.4 is O(n2).
g0S
a1
a2a3
d1
d2d3
S3g
uv
pu(c1) = l1
c1
c2c3
r1l2l3
r2r3
S03pu(c2)
S03pu(c3)
c0
1
c0
2c0
3
Figure 14: Placement of guards to in order to see all invisible triangles.
We have the following theorem connecting S0with Sopt.
Theorem 10. 2|C|=|S0| ≤ 2|Sopt|.
Proof. For every ciC, there exists an invisible triangle Ti. For every such invisible triangle
Ti, let liand rirespectively denote the lid vertices of the left and right pockets intersecting to
form Ti(see Figure 14). Let gSbe the guard such that liis the lid vertex of a left pocket
of V P (g). Similarly, g0Sbe the guard such that riis the lid vertex of a right pocket of
V P (g0). Observe that any guard in Sopt that sees all points of Timust lie either on bdc(li, ri)
or on bdc(pu(ci), g), with the latter case being possible only when pu(ci) lies on bdc(u, g).
If, for every i, there exists a distinct vertex belonging to Sopt that sees all points of Ti, then
obviously 2|C|=|S0| ≤ 2|Sopt|. Consider the special situation where li+1 =rifor some i, and
both Tiand Ti+1 are totally visible from ri. Since all points of Tiare visible from ri, it must be
the case that pv(ci) = ri. Moreover, rican be a vertex of Sopt. Therefore, no additional guards
are chosen for Ti+1 because all points of Ti+1 become visible from the guard already placed at ri.
If no vertex of bdc(li, ri) belongs to Sopt, then there must be a vertex of Sopt lying on bdc(pu(ci), g)
and pu(ci) must belong to bdc(u, g). If pu(ci1) also belongs to bdc(u, g), then Sopt must have a
vertex on the boundary bdc(pu(ci), pv(ci1)) in order to see Ti1because li1is the lid vertex
of a left pocket of V P (pu(ci1)). Hence, 2|C|=|S0| ≤ 2|Sopt|.
Theorem 11. |SS0| ≤ 6|Sopt|.
Proof. By Theorem 8 and Theorem 10, |SS0|≤|S|+|S0| ≤ 4|Sopt|+ 2|Sopt | ≤ 6|Sopt|.
11
3 Inapproximability of vertex guard problem in weak visibility
polygons
Given a weak visibility polygon Pwith holes, having nvertices, the aim of the Vertex Guard
problem is to find a smallest subset Sof the set of vertices of Psuch that every point in the
interior of the polygon Pcan be seen from at least one vertex in S. The vertices in Sare
called vertex guards. In this section, we show an inapproximability result for the Vertex Guard
problem in a weak visibility polygon with holes by showing how to construct an instance of
Vertex Guard for every instance of Set Cover. In Section 3.1, we describe an existing reduction
for general polygons with holes given by Eidenbenz, Stamm and Widmayer [6]. Then, in Section
3.2, we modify this reduction so that it works even for weak visibility polygons with holes.
3.1 Existing reduction for general polygons with holes
An instance of Set Cover consists of a finite universe E={e1.e2, . . . , en}of elements ejand a
collection S={s1, s2, . . . , sm}of subsets siwhere each siE. The problem is to find S0S
of minimum cardinality such that every element ei, for 1 in, belongs to at least one subset
in S0. For the ease of discussion, the elements in Eand the subsets in Sare assumed to have
an arbitrary, but fixed order.
As shown in Figure 15, a polygon is constructed in the xyplane. For every set si(1 im),
a point ((i1)d0, a) is placed on the horizontal line y=awith a constant distance d0between
any two consecutive points. For simplicity, the ith such point from the left is also referred to
as si. Corresponding to every element ejE, two points (Dj,0) and (D0
j,0) are placed on the
horizontal line y= 0, where D10 and D0
j=Dj+dfor a positive constant d. The points are
arranged from left to right, and for each j= 1, . . . , n, they are referred to as Djand D0
j. For
each j= 1, . . . , n, the distance dj=Dj+1 D0
jis defined later.
Let skand slbe respectively the first and last sets of which ejis a member. Without loss of
generality, assume that skand slare distinct. A line gis drawn through skand Dj. Also, a
line g0is drawn through sland D0
j. Naming the intersection point of gand g0as Ij, the triangle
DjIjD0
jis called a spike. Since it plays a crucial role in the construction, the point Ijof each
spike is called the distinguished point of the spike.
For any pair (i, j), if the set sicontains the element ej, then two lines are drawn connecting si
with Djand D0
j, and the area between these two lines is called a cone. Observe that, among all
the lines mentioned so far, only the line segments of the horizontal line y= 0 that are between
adjacent spikes and the spikes themselves contribute edges to the polygonal boundary whereas
all other lines just help in the construction.
The correspondence between an instance of Vertex Guard and an instance of Set Cover is
established by ensuring that an optimal set of vertex guards includes only those points siwhich
belong to an optimal solution of Set Cover. So, in our construction, a guard at vertex simust
see the spike of only those elements ejthat are members of the set si. This is realized by
introducing a barrier line at y=bsuch that only line segments on the horizontal line y=b
lying outside the cones are part of the polygonal boundary (see Figure 15). Another barrier
line at y=b+b0is introduced at a distance of b0from the first barrier. Holes of the polygon
are defined by connecting each pair of points that is created by the intersection of the same
cone-defining line with the barrier lines. The area between the two lines at y=band y=b+b0
is called the barrier. Note that the barrier includes all the holes and it also contains a small
part of every cone.
12
s1s2sisi+1 sm
y=b+b0
y=b
e1ejej+1 en
dj
d0
y= 0
x= 0 .... ....
DjD0
j
d
Ij+1
PV
.... .... spike
cone
Q
U
YX
d00
y=a
Figure 15: The existing reduction for general polygons with holes
For every pair (i, j), let us denote the point at y=bon the line siDjas wij , and similarly, the
point at y=bon the line siD0
jas w0
ij . Now, the thickness b0of the barrier is to be determined
in such a way that, for every hole, all segments of its boundary excluding those on the line
y=b+b0is visible from two guards at P= (d00,0) and V= (D0
n+L, 0). To achieve this, the
thickness b0is determined by intersecting, for each pair (i, j), a line from Pthrough wij and a
line from Vthrough w0
ij . Then, b0is assigned a value such that the barrier line y=b+b0goes
through the lowest of all these intersection points.
To complete the construction, a vertical line segment P U at x=d00 is drawn from y= 0 to
y=y0, where d00 is a positive constant. Except for the portion of it between the two barrier
lines, this line segment forms a part of the polygonal boundary. Also, a horizontal line segment
is drawn from D0
nto the point Vat (D0
n+L, 0). Finally, a point Qis located at (D0
n+L, a)
and the external boundary of the polygon is completed by drawing the line segments UQ and
QV , except for the portion of QV lying between the barrier lines. The points on the segments
P U and QV that lie on the barrier line y=b+b0are referred to as Xand Yrespectively,
Let d0and abe arbitrary positive constants. The rest of the parameters are set in terms of d0
and aas follows: d=d0
4,b=5
12 a,b0=
35
144 a
4l1ml1+2 Pl1
i=0 4imi+2 d00
d19
12
, and Dl=4l1ml1d
d+ 2dPl1
i=0 4imifor l= 1, . . . , n. As a consequence of these parameter settings, the following
properties hold for this reduction.
No three cones connecting different sets with different elements can overlap.
The barrier is such that:
(a) All the intersections of cones from the same element ejare below y=b.
(b) All intersections of cones from different elements are above y=b+b0.
(c) All of the barrier is visible from at least one of the two guards at Pand V, except
for the line segments at y=b+b0.
The spikes of no two elements intersect.
13
3.2 Modified reduction for weak visibility polygons with holes
To incorporate weak visibility from an edge, the existing construction is modified as follows.
Let Rbe the set of all rays
Djsiand
D0
jsisuch that the spike corresponding to ejis visible
from si. For every pair (i, j), the point of intersection of the ray
Djsiwith the barrier line
y=b+b0is denoted as yi,j (see Figure 16). Let R0be the set of all rays
Ijyi,j such that the
spike corresponding to ejis visible from si. Let αbe the largest among all the angles made by
rays belonging to RR0with the positive X-axis at y= 0. A line l0is constructed such that l0
passes through smand makes an angle θ=α+180α
2with the positive X-axis at y= 0. The
line l0is translated to obtain another line lin such a way that all holes contained within the
barrier lie below l. The point of intersection of lwith the line y= 0 is called V, whereas the
point of intersection of the segment P U with the barrier line y=b+b0is called X. Also, the
top right vertex of the rightmost hole contained within the barrier is referred to as Y.
Let βbe the maximum among all the angles made by the rays
Y siwith the positive X-axis
at y=a. Among all points of intersection of lwith various rays belonging to RR0, let U0
be the leftmost point. Then, a point U= (xu, yu) is located along the ray V U 0such that, for
every i, the angle made by the ray
Usiwith the positive X-axis at y=ais greater than β(not
represented accurately in Figure 16 due to space constraints). Then, the external boundary of
the polygon is completed by drawing the segments P U,P V and U V , except for the portion
of P U lying between the barrier lines. The modified construction ensures that all spikes are
totally visible from the edge UV . However, no distinguished point is visible from the point U
itself (see Figure 16).
Let SUand SVdenote the set of all rays of the form
siUand
Y sirespectively. Corresponding
to every set si, let Sibe the set of all rays
Djsiand
D0
jsisuch that the spike corresponding to
ejis visible from si. Now, let S=S1S2∪ · ·· ∪ Sm. Also, let Zbe the set of all points of
intersection between any two rays belonging to the set SSUSYthat lie above the horizontal
line y=apassing through every si. Now, a horizontal line y=a+a0is chosen such that it lies
below all the points belonging to Z. For every si, a clockwise angular scan is performed around
sistarting from the angle defined by
siUtill an angular region is located that is contained
in no cone. Two rays
riand
r0
iare drawn within this region such that they intersect the
line y=a+a0at ziand z0
irespectively. Then, corresponding to each si, a triangular hole is
created by joining the segments sizi,siz0
iand ziz0
i(see Figure 16). Note that the entire region
of the constructed polygon lying above the line y=b+b0is weakly visible from the edge UV .
Moreover, this entire region is also visible from two guards placed at Uand Y.
Lemma 12. The constructed polygon is weakly visible from the edge UV .
3.3 The reduction is polynomial
Given an instance of Set Cover, the optimal set of vertex guards in the corresponding instance
of Vertex Guard consists of the points P,V,U,Y, and every sisuch that the set siis part of
the optimal solution for the Set Cover instance. Therefore, an optimal solution of size kfor the
Set Cover instance induces a solution of size k+4 for the Vertex Guard instance and vice versa.
Observe that L,θ,d,d0,d00,a,bare all constants in our reduction. The values for a0,b0,xu,
yuand every Djfor j= 1, . . . , n are computable in polynomial time and can be expressed with
O(nlog m) bits. Moreover, the computation of all angles and intersection points required for the
construction can be done in polynomial time. So, the construction of the weak visibility polygon
produces a polynomial number of points each of which can be computed in polynomial time
14
and take at most O(nlog m) bits to be expressed. Therefore, it can be done in time polynomial
in the size of the input Set Cover instance. The transformation of an optimal solution of an
instance of one problem to an optimal solution of an instance of the other problem also takes
polynomial time.
s1s2sisi+1 sm
y=b+b0
y=b
e1ejej+1 en
dj
d0
x= 0
.... ....
DjD0
j
d
Ij+1
.... spike
cone
U= (xu, yu)
V
Y
P
X
y=a+a0
y=a
d00
z1z0
1z2z0
2ziz0
izi+1 z0
i+1 zmz0
m
sisi+1
y
U
rir0
i
y=a
y=a+a0
β
α
DjD0
j
sm
l
l0
θ
ziz0
i
P
yi,j
u0
y=b+b0
y=b
Figure 16: The modified reduction for weak visibility polygons with holes with inlay showing
details for the construction of triangular holes corresponding to each si.
3.4 An inapproximability result
As mentioned in Section 1.2, Eidenbenz, Stamm and Widmayer [7] proved that, for polygons
with holes, there cannot exist a polynomial time algorithm for the art gallery problem with an
approximation ratio better than ((1)/12) ln nfor any  > 0, unless NP TIME(nO(log log n)).
Using the same technique, our modified reduction leads to the following theorem.
Theorem 13. For weak visibility polygons with holes, there cannot exist a polynomial time
algorithm for the Vertex Guard problem with an approximation ratio better than ((1 )/12) ln n
for any  > 0, unless NP TIME(nO(log log n)).
15
References
[1] Alok Aggarwal. The art gallery theorem: its variations, applications and algorithmic as-
pects. PhD thesis, The Johns Hopkins University, Baltimore, MD, 1984.
[2] David Avis and Godfried Toussaint. An optimal algorithm for determining the visibility
of a polygon from an edge. IEEE Transactions on Computers, 30:910–914, 1981.
[3] aclav Chatal. A combinatorial theorem in plane geometry. Journal of Combinatorial
Theory, Series B, 18(1):39–41, 1975.
[4] Ajay Deshpande, Taejung Kim, Erik D. Demaine, and Sanjay E. Sarma. A pseudopolyno-
mial time o(log n)-approximation algorithm for art gallery problems. In WADS, pages
163–174, 2007.
[5] Alon Efrat and Sariel Har-Peled. Guarding galleries and terrains. Information Processing
Letters, 100(6):238–245, 2006.
[6] Stephan Eidenbenz, Christoph Stamm, and Peter Widmayer. Inapproximability of some
art gallery problems. Canadian Conference on Computational Geometry, pages 1–11, 1998.
[7] Stephan Eidenbenz, Christoph Stamm, and Peter Widmayer. Inapproximability results for
guarding polygons and terrains. Algorithmica, 31(1):79–113, 2001.
[8] Steve Fisk. A short proof of Chv´atal’s watchman theorem. Journal of Combinatorial
Theory, Series B, 24(3):374, 1978.
[9] Subir Kumar Ghosh. Approximation algorithms for art gallery problems. In Proceedings of
Canadian Information Processing Society Congress, page 429–434. Canadian Information
Processing Society, 1987.
[10] Subir Kumar Ghosh. Visibility Algorithms in the Plane. Cambridge University Press, 2007.
[11] Subir Kumar Ghosh. Approximation algorithms for art gallery problems in polygons.
Discrete Applied Mathematics, 158(6):718–722, 2010.
[12] Subir Kumar Ghosh. Approximation algorithms for art gallery problems in polygons and
terrains. WALCOM: Algorithms and Computation, pages 21–34, 2010.
[13] Subir Kumar Ghosh, Anil Maheshwari, Sudebkumar Pal, Sanjeev Saluja, and C.E. Veni
Madhavan. Characterizing and recognizing weak visibility polygons. Computational Ge-
ometry, 3(4):213–233, 1993.
[14] Leonidas J. Guibas, John Hershberger, Daniel Leven, Micha Sharir, and Robert Endre
Tarjan. Linear-time algorithms for visibility and shortest path problems inside triangulated
simple polygons. Algorithmica, 2:209–233, 1987.
[15] J. Kahn, M. Klawe, and D. Kleitman. Traditional galleries require fewer watchmen. SIAM
Journal of Algebraic and Discrete Methods, 4(2):194–206, 1983.
[16] Matthew J. Katz and Gabriel S. Roisman. On guarding the vertices of rectilinear domains.
Computational Geometry, 39(3):219–228, 2008.
[17] James King and David G. Kirkpatrick. Improved approximation for guarding simple gal-
leries from the perimeter. Discrete & Computational Geometry, 46(2):252–269, 2011.
[18] D.T. Lee and A. Lin. Computational complexity of art gallery problems. IEEE Transactions
on Information Theory, 32(2):276–282, 1986.
16
[19] Joseph O’Rourke. An alternative proof of the rectilinear art gallery theorem. Journal of
Geometry, 211:118–130, 1983.
[20] Joseph O’Rourke. Art gallery theorems and algorithms. Oxford University Press, London,
1987.
[21] Joseph O’Rourke and Kenneth J. Supowit. Some np-hard polygon decomposition problems.
IEEE Transactions on Information Theory, 29(2):181–189, 1983.
[22] D. Schuchardt and H.D. Hecker. Two NP-Hard Art-Gallery Problems for Ortho-Polygons.
Mathematical Logic Quarterly, 41:261–267, 1995.
17
... In this section, we give an algorithm to obtain a set of guards to guard a given weak-visibility polygon. The algorithm is described by Bhattacharya, Ghosh, and Roy in [BGR15]. Note that the mentioned algorithm is not a novel contribution introduced by this thesis, but we describe it nevertheless for the sake of completeness. ...
... We start by describing the algorithm (Algorithm 2.1 in [BGR15]) to obtain a guard set for vertex-to-vertex guarding of W. The idea of this algorithm is to find a subset A of vertices, such that the guards set of A sees every vertex in W. Thus, instead of processing the whole polygon, the algorithm works only on a subset. The following algorithm describes how A and the guard set of A is chosen. ...
... In the light of the algorithm given above, the authors describe Algorithm 3.5 (Algorithm 2.2 in [BGR15]) which returns a set of guards that guard every vertex in a given weak-visibility polygon. ...
Preprint
Full-text available
This thesis focuses on two concepts which are widely studied in the field of computational geometry. Namely, visibility and unit disk graphs. In the field of visibility, we have studied the conflict-free chromatic guarding of polygons, for which we have described a polynomial-time algorithm that uses $O(n \log^2 n)$ colors to guard a polygon in a conflict-free setting, and proper coloring of polygon visibility graphs, for which we have described an algorithm that returns a proper 4-coloring for a simple polygon. Besides, we have shown that the 5-colorability problem is NP-complete on visibility graphs of simple polygons, and 4-colorability is NP-complete on visibility graphs of polygons with holes. Then, we move further with the notion of visibility, and define a graph class which considers the real-world limitations for the applications of visibility graphs. That is, no physical object has infinite range, and two objects might not be mutually visible from a certain distance although there are no obstacles in-between. To model this property, we introduce unit disk visibility graphs, and show that the 3-colorability problem is NP-complete for unit disk visibility graphs of a set of line segments, and a polygon with holes. After bridging the gap between the visibility and the unit disk graphs, we then present our results on the recognition of unit disk graphs in a restricted setting -- axes-parallel unit disk graphs. We show that the recognition of unit disk graphs is NP-complete when the disks are centered on pre-given parallel lines. If, on the other hand, the lines are not parallel to one another, the recognition problem is NP-hard even though the pre-given lines are axes-parallel (i.e. any pair is either parallel or perpendicular).
... Additional Polygon Structure. Due to the inherent difficulty in fully understanding the art gallery problem for simple polygons, much work has been done guarding polygons with additional structure, see [3,5,11,15]. In this paper we consider monotone polygons. ...
Preprint
Full-text available
We consider a variant of the art gallery problem where all guards are limited to seeing to the right inside a monotone polygon. We call such guards: half-guards. We provide a polynomial-time approximation for point guarding the entire monotone polygon. We improve the best known approximation of 40 from [11], to 8. We also provide an NP-hardness reduction for point guarding a monotone polygon with half-guards.
... The major part of this work[5]was done when all the authors were in the School of Technology and Computer Science, Tata Institute of Fundamental Research, Mumbai-400005. Pritam Bhattacharya acknowledges the support provided to him by the TCS Research Scholar Program (under Cycle 11) since July 2015. ...
Article
The art gallery problem enquires about the least number of guards that are sufficient to ensure that an art gallery, represented by a polygon , is fully guarded. In 1998, the problems of finding the minimum number of point guards, vertex guards, and edge guards required to guard were shown to be APX-hard by Eidenbenz, Widmayer and Stamm. In 1987, Ghosh presented approximation algorithms for vertex guards and edge guards that achieved a ratio of , which was improved up to by King and Kirkpatrick (2011). It has been conjectured that constant-factor approximation algorithms exist for these problems. We settle the conjecture for the special class of polygons that are weakly visible from an edge and contain no holes by presenting a 6-approximation algorithm for finding the minimum number of vertex guards that runs in time. On the other hand, for weak visibility polygons with holes, we present a reduction from the Set Cover problem to show that there cannot exist a polynomial time algorithm for the vertex guard problem with an approximation ratio better than for any , unless . We also show that, for the special class of polygons without holes that are orthogonal as well as weakly visible from an edge, the approximation ratio can be improved to 3. Finally, we consider the point guard problem and show that it is NP-hard in the case of polygons weakly visible from an edge.
Chapter
We consider a variant of the art gallery problem where all guards are limited to seeing to the right inside a monotone polygon. We call such guards: half-guards. We provide a polynomial-time approximation for point guarding the entire monotone polygon. We improve the best known approximation of 40 to 8. We also provide an NP-hardness reduction for point guarding a monotone polygon with half-guards.
Article
The art gallery problem is a classical sensor placement problem that asks for the minimum number of guards required to see every point in an environment. The standard formulation does not take into account self-occlusions caused by a person or an object within the environment. Obtaining good views of an object from all orientations despite self-occlusions is an important requirement for surveillance and visual inspection applications. We study the art gallery problem under a constraint, termed △-guarding, that ensures that all sides of any convex object are always visible in spite of self-occlusion. Our contributions in this paper are three-fold: We first prove that Ω(n) guards are always necessary for △-guarding the interior of a simple polygon having n vertices. Second, we present a O(log⁡copt) factor approximation algorithm for △-guarding polygons with or without holes, when the guards are restricted to vertices of the polygon. Here, copt is the optimal number of guards. Third, we study the problem of △-guarding a set of line segments connecting points on the boundary of the polygon. This is motivated by applications where an object or person of interest can only move along certain paths in the polygon. We present a constant factor approximation algorithm for this problem – one of the few such results for art gallery problems.
Conference Paper
Full-text available
In this paper, we give a O(logc opt )-approximation algorithm for the point guard problem where c opt is the optimal number of guards. Our algorithm runs in time polynomial in n, the number of walls of the art gallery and the spread Δ, which is defined as the ratio between the longest and shortest pairwise distances. Our algorithm is pseudopolynomial in the sense that it is polynomial in the spread Δ as opposed to polylogarithmic in the spread Δ, which could be exponential in the number of bits required to represent the vertex positions. The special subdivision procedure in our algorithm finds a finite set of potential guard-locations such that the optimal solution to the art gallery problem where guards are restricted to this set is at most 3c opt . We use a set cover cum VC-dimension based algorithm to solve this restricted problem approximately.
Article
A human observer can effortlessly identify visible portions of geometric objects present in the environment. However, computations of visible portions of objects from a viewpoint involving thousands of objects is a time consuming task even for high speed computers. To solve such visibility problems, efficient algorithms have been designed. This book presents some of these visibility algorithms in two dimensions. Specifically, basic algorithms for point visibility, weak visibility, shortest paths, visibility graphs, link paths and visibility queries are all discussed. Several geometric properties are also established through lemmas and theorems. With over 300 figures and hundreds of exercises, this book is ideal for graduate students and researchers in the field of computational geometry. It will also be useful as a reference for researchers working in algorithms, robotics, computer graphics and geometric graph theory, and some algorithms from the book can be used in a first course in computational geometry.
Article
A polygon is said to be a weak visibility polygon if every point of the polygon is visible from some point of an internal segment. In this paper we derive properties of shortest paths in weak visibility polygons and present a characterization of weak visibility polygons in terms of shortest paths between vertices. These properties lead to the following efficient algorithms: (i) an O(E) time algorithm for determining whether a simple polygon P is a weak visibility polygon and for computing a visibility chord if it exist, where E is the size of the visibility graph of P and (ii) an O(n2) time algorithm for computing the maximum hidden vertex set in an n-sided polygon weakly visible from a convex edge.
Article
Chvatal’s watchman theorem shows if the walls of an art gallery form an n-sided polygon then at most $[ n /3 ]$ watchmen are needed to guard it, and that this number is best possible. In this paper it is shown that if every pair of adjacent sides of the polygon form a right angle then at most $[ n / 4 ]$ guards are needed, and again this result is best possible. Our proof depends on showing that any finite region bounded by a finite number of edges, each of which lies parallel to one of a fixed pair of perpendicular axes, has a partition into convex quadrilaterals.
Article
We prove that guarding the vertices of a rectilinear polygon P, whether by guards lying at vertices of P, or by guards lying on the boundary of P, or by guards lying anywhere in P, is NP-hard. For the first two proofs (i.e., vertex guards and boundary guards), we construct a reduction from minimum piercing of 2-intervals. The third proof is somewhat simpler; it is obtained by adapting a known reduction from minimum line cover.We also consider the problem of guarding the vertices of a 1.5D rectilinear terrain. We establish an interesting connection between this problem and the problem of computing a minimum clique cover in chordal graphs. This connection yields a 2-approximation algorithm for the guarding problem.