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!