Handouts: HW1
2/2/09: More on polygons, visibility, and art galleries
Statement of art gallery theorem (G(n)=floor(n/3) guards are
sufficient to guard an n-gon and sometimes necessary) and proof by
Fisk: (1) triangulate, (2) 3-color the triangulation graph, (3) place
guards at the smallest color class of vertices (which must be of size
at most floor(n/3), and these vertices see all of P, since every
triangle has a corner of each of the 3 colors.). Recall: Chvatal's
comb example to show necessity.
Do examples (e.g., convex polygon, with a "bad" choice of
triangulation, versus "good" choice of triangulation) showing that
Fisk's proof gives a method yielding at most floor(n/3) guards, BUT
this is not necessarily the optimal number of guards (even if
"redundant" guards are deleted, so that we convert a set of guards
into a "minimal" set of guards)
Mention distinction of ordinary (usual) visibility versus clear
visibility (see homework).
We recall the fact that computing g(P) exactly is known to be "hard"
(it is NP-hard to decide if g(P) is at most k; it is NP-complete to
decide if g_V(P) is at most k).
Discussion of the (trivial) convex polygon case (one guard is needed),
star-shaped polygons, and the "twisted hexagon" ("Godfried's favorite
polygon") polygon, for which we need 2 guards, but there is no pair of
independent witness points (a slightly more involved argument is
needed in order to claim that 2 guards are needed -- I give this
argument).
Detailed example of how to compute the point guard number, g(P), and
the vertex guard number, g_v(P), for a given polygon P. The art
gallery theorem gives an upper bound of floor(n/3). Note that the
method of Fisk's proof MAY yield a set of guards that is even less
than floor(n/3) (and, if we are very lucky, may even give us the
OPTIMAL number of guards).
However, usually the method of Fisk's proof is wasteful and gives many
more guards than are needed. Some of the guards that result from
Fisk's proof may be deleted: this results in a MINIMAL guard set, if
we keep deleting until we cannot delte (while maintaining coverage).
(Note that the ORDER of deletion is important -- different orders will
give different results, in general.) Note too that a MINIMAL set of
guards need not be MINIMUM!
Depending which triangulation you start with, a convex n-gon shows
that Fisk's proof method may give many more guards than needed (just 1
for a convex polygon, of course). Even if you delete guards that are
redundant you may be left with many more guards than the minimum,
g(P).
We showed how to find (by inspection) a set of "witness points", w1,
w2,...,wk in order to PROVE that we need at LEAST k guards (if the
visibility polygons of the k witness points are all pairwise disjoint,
implying that each region must have its OWN guard). By inspection, we
did examples to compute g(P) in several examples.
We also did an example of computing the VERTEX guard number, g_V(P),
of a polygon P. Here, we again look for witness points to prove that
we need at least a certain number of vertex guards, but instead of the
visibility polygon of each witness point, we look at the set of
visible vertices from each witness point. A set {w_1,w_2,...,w_k} of
points of P is said to be independent with respect to vertex guards if
there is no overlap in the set of VERTICES seen by w_i and w_j, for
distinct i and j.
Note that there is a brute force method of computing the vertex
guard number, g_V(P), of any polygon P, by enumerating for k=1,2,3,...
all O(n^k) k-element subsets, and testing each
to see if it covers all of P.(It turns out that you can test
coverage in time O(kn), but you must do this for an enormous number of
possible subsets -- there are 2^n subsets!)
Open challenge: Can you devise an efficient heuristic method
for finding a "small" (not necessarily optimal) set of guards
that cover P? A Java applet would be ideal!