Lecture 3: Art Gallery Problems and Polygon Triangulation
|
|
- Vivian Cobb
- 6 years ago
- Views:
Transcription
1 EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified by a simple polygon) using triangulation. 1 We break down the problem of how to guard a simple polygon into the following pieces: 1. How to triangulate a simple polygon. (a) How to break a simple polygon into monotone pieces. (b) How to triangulate a monotone polygon. 2. How to guard a triangulated, simple polygon. We present algorithms for the problems in Items 1a, 1b, and 2 separately. Combining them to get a full algorithm for guarding is simple. Item 1, the question of how to triangulate a polygon, is also interesting in its own right. 1 Art Gallery Problems In Lecture 0, we introduced the following problem. Suppose that you are put in charge of security at an art gallery. Your goal is to place cameras which put together can see the entire gallery, while placing as few cameras as possible. (The cameras can rotate 360 but can t move.) Of course, the number of cameras necessary and their placement depend on the shape of the gallery. If the gallery is a rectangle (or in fact any convex shape) a single camera suffices. On the other hand, it is not hard to design complicated galleries which require arbitrarily many cameras to guard. In this lecture, we study the problem of placing cameras to guard an art gallery which is specified as a simple polygon. This is an important case of the general class of problems called art gallery problems. A simple polygon P R 2 is one which is enclosed by a single polygonal chain that does not intersect itself. In particular, a simple polygon does not contain any holes. We treat cameras as points p P, and define the visibility region of p as the set of points q P such that the line segment pq is contained in P. We now formalize the (simple, polygonal) art gallery problem as follows. We are given as input a simple polygon with n vertices specified by a doubly-connected edge list (as defined in [dbcvko08, Chapter 2.2]). The goal is to find a set of points p 1,..., p m of minimal size such that the union of the visibility regions of the points p i covers all of P. A diagonal of a polygon is a line segment which lies in its interior and connects two of its vertices. A triangulation of a polygon is a maximal set of diagonals which partitions the polygon into interior-disjoint triangles. The requirement that the set of diagonals is maximal ensures that no triangle has a diagonal lying interior to an edge. (See Figure 1.) Every simple polygon has a triangulation (as we will show shortly), but generally such a triangulation is not unique. Sometimes it is useful to focus on triangulations which have nice properties such as having short diagonals, not having any sharp angles, or having low stabbing number (See [dbcvko08, Exercise 3.13]. However for the purposes of this lecture any triangulation will suffice. To see how triangulations are useful for guarding, note that because triangles are convex we can guard the entire gallery by placing a camera in each triangle. In fact, we can do even better and guard several triangles at once by placing cameras at vertices. Our main algorithm for guarding a gallery will be a simple scheme for placing cameras at the vertices of a triangulated polygon while using relatively few cameras. We first show that every simple polygon has a triangulation. 1 This lecture is based on [dbcvko08, Chapter 3]. 1
2 2 Lecture 3: Art Gallery Problems and Polygon Triangulation Figure 1: A simple, triangulated polygon together with its dual graph (left), and a 3-coloring of the vertices of the polygon (right). On the left, the simple polygon appears in black, its triangulation appears in gray, and the dual graph of its triangulation appears in red. On the right, the vertices of the polygon are colored white, gray, and black in such a way that no two adjacent vertices have the same color. Theorem 1.1. Every simple polygon P with n 3 vertices has a triangulation, and every triangulation of P consists of n 2 triangles. Proof. We argue by induction. For the base case, note that the claim clearly holds if P is itself a triangle. For the inductive case where n 4, the key is to find a diagonal in P. We do this as follows. Start with the leftmost vertex v of P, and look at its two neighbors, u and w. (If there are multiple leftmost vertices, let v be the bottom one.) If the line segment uw lies inside P, then it s a diagonal of P and we re done. Otherwise, consider the leftmost vertex v of P lying inside the triangle formed by u, v, and w. The line segment vv cannot intersect any edge of P since if it did one of the endpoints of the edge would be to the left of v. Therefore, vv is a diagonal of P. We have shown that a diagonal exists, and now need to prove that triangulation exists. Any diagonal splits P into two sub-polygons P 1 and P 2 which share the diagonal as an edge, and have m 1 and m 2 vertices, respectively. Both m 1 and m 2 are smaller than n, so by induction P 1 and P 2 can be triangulated. Taking the triangulations of P 1 and P 2 together with their shared diagonal gives a triangulation of P. Finally, we show that any triangulation partitions P into n 2 triangles. Consider an arbitrary diagonal in an arbitrary triangulation of P. This diagonal again partitions P into two sub-polygons P 1 and P 2 which share the diagonal as an edge, and have m 1 and m 2 vertices, respectively. Because m 1 and m 2 are smaller than n, we again have by induction that any triangulations of P 1 and P 2 partition them into m 1 2 and m 2 2 triangles, respectively. Every vertex of P occurs in exactly one of P 1 and P 2, except for the two vertices occurring in their shared diagonal, so n = m 1 + m 2 2. Therefore, the triangulation partitions P into (m 1 2) + (m 2 2) = n 2 triangles. We have shown that every polygon has a triangulation. In fact, our proof was constructive: we showed not only that a diagonal always exists in a simple polygon with more than four vertices, but how to find one. However, our algorithm needs to iterate through all of the polygon s vertices in order to find a diagonal (first to check whether uw lies in P, and then to find the leftmost vertex between u and w if not). This takes O(n)-time. Furthermore, it may be the case that P 1 is a triangle at each step, in which case we have to recurse on P 2 which has n 1 vertices. The overall time needed to find a triangulation using the implicit algorithm in our proof is therefore O(n 2 ). In Section 2 we show a faster but more complicated algorithm for triangulation. However, before presenting it we show how to use the added information given by a triangulation to guard a gallery.
3 Lecture 3: Art Gallery Problems and Polygon Triangulation Guarding a Triangulated, Simple Polygon Our strategy for guarding a gallery will be to place cameras at vertices of P. The algorithm is as follows. Color the vertices of P black, white, and gray so that the vertices of each triangle are different colors (i.e., so that every triangle has a vertex of each color). There will then be either n/3 or n/3 vertices of each color. Pick a color appearing at n/3 vertices, and place a camera at each vertex of that color. Each triangle has a vertex of each color, and therefore the visibility regions of these cameras cover all of P. In our description of our coloring algorithm above, we assumed that every triangulated simple polygon has a 3-coloring, and that we could find it efficiently. We next show how to do this by looking at the dual graph G(T P ) of a triangulation T P of P. Let t(v) denote the triangle in T P corresponding to a node v in G(T P ). The dual graph of T P has a vertex for every triangle in T P, and an edge between every pair of vertices u and v whose corresponding triangles t(u) and t(v) share a diagonal in T P (see Figure 1). Removing any diagonal in T P splits P into two sub-polygons. Corresondingly, removing any edge in G(T P ) splits G(T P ) into two sub-graphs. In other words, G(T P ) is a tree. Our algorithm for 3-coloring the vertices of P is then as follows. Fix an arbitrary vertex v in G(T P ) as the root of G(T P ), and color the vertices of t(v) each with a different color (among black, gray, and white). Then, do a depth-first search of G(T P ). For every non-root vertex w encountered in the search, the triangle t(w) will share a diagonal with the triangle t(u), where u is the parent of w in G(T P ). The two vertices on the shared diagonal will already be colored. Color the third, uncolored vertex of t(w) with the remaining color. Because G(T P ) is a tree, there is a unique path from v to w. Therefore the only neighbor of w that will have been processed is its parent u, and therefore the third vertex of t(w) is always uncolored when the search first reaches w. We have shown that every simple polygon can be guarded using n/3 guards. Although this number of guards is clearly excessive sometimes (for example, when P is convex), Chvátal [Chv75] proved that sometimes it is necessary. Chvátal s example showing this is a comb-shaped gallery where each of the comb s teeth needs to be guarded by a separate camera. Overall, we have shown the following. Theorem 1.2 (Art Gallery Theorem, [Chv75]). Using n/3 cameras is always sufficient and sometimes necessary to guard a simple polygon with n vertices. Moreover, our proof of Theorem 1.1 was constructive, and showed how to find a triangulation in O(n 2 )- time. Once we had the coloring, we showed how to 3-color the vertices of P (and thus place cameras) in O(n)-time. So, overall we have an O(n 2 )-time algorithm for guarding a gallery. We next give a faster algorithm for triangulation, which in turn improves the overall runtime. 2 Faster Polygon Triangulation Our faster triangulation algorithm will work in two parts: breaking a simple polygon P into monotone pieces, and then triangulating each monotone piece. 2.1 Breaking a Polygon into Monotone Pieces A polygon P is called y-monotone if for every horizontal line l (i.e. for every line perpendicular to the y-axis) P l is connected. Note that y-monotonicity is a weaker property than convexity: every convex polygon is y-monotone, but not every y-monotone polygon is convex. See Figure 2. For points p, q, we define the ordering p < q if p y < q y or if p y = q y and p x > q x. If p < q then we say that p is below q, and if q < p then we say that p is above q. Consider a walk around the vertices of a polygon in either clockwise or counter-clockwise order. A vertex at which the direction of the walk goes from up to down or vice-versa is called a turn vertex. The key to partitioning a polygon P into monotone pieces will be to remove certain bad turn vertices by adding diagonals to P. Specifically, these bad vertices are ones where the interior of the polygon locally lies above
4 4 Lecture 3: Art Gallery Problems and Polygon Triangulation P 1 l P 2 P 3 l Figure 2: A non-convex, y-monotone polygon P 1 (left), a non-y-monotone polygon P 2 (center), and a non-ymonotone polygon with turn vertices shown in red and green (see Table 1 for an explanation of turn vertices and the color scheme), and non-turn vertices shown in black. Neighbors below Neighbors above < 180 interior angle Start vertex End vertex > 180 interior angle Split vertex Merge vertex Table 1: A comparison of the four types of turn vertices. The colors correspond to the scheme for turn vertices in Figure 2. Split vertices and merge vertices are the source of non-y-monotonicity in a polygon (see Lemma 2.1). it and whose neighbors lie below it, called split vertices, and ones where the interior of the polygon locally lies below it and whose neighbors lie above it, called merge vertices. We can classify split vertices and merge vertices together as those that have an interior angle of greater than 180. There are also harmless turn vertices called start vertices and end vertices that have interior angles of less than 180. See Figure 2. If we add a diagonal from a split vertex v to a vertex above it, then the diagonal splits P into two sub-polygons P 1 and P 2, with v appearing in both. However, v is not a split vertex (or merge vertex) in either P 1 or P 2 : the added diagonal goes up from v in both P 1 and P 2, and one neighbor of v in each of P 1 and P 2 still lies below v. Similarly, we can remove a merge vertex in P by adding a diagonal to a vertex below it. Split and merge vertices are clearly a source of local non-y-monotonicity. The next lemma shows that they are also the only sources of global non-y-monotonicity. Lemma 2.1. A polygon is y-monotone if and only if it has no split or merge vertices. Proof. Let P be a polygon. For the only if part, consider a horizontal line l slightly below a split vertex so that it cuts through both edges attached to the vertex. Similarly, consider a horizontal line slightly above a merge vertex so that it cuts through both edges attached to v. In either case, l P is not connected. We next show the if part by assuming that P is non-y-monotone, and proving that it has either a split or merge vertex. Since P is not monotone, there is a line l for which P l has (at least) two components. Moreover, we can pick such an l such that the left component is a line segment rather than a single point. Let p and q be the left and right endpoints of the leftmost segment in P l, and let r be the next leftmost intersection point of P and l. Refer to Figure 3. In the first case, by walking counter clockwise from q we encounter a split vertex between q and r. In the second case, by walking clockwise from q we encounter a merge vertex between r and r. Because P is simple one of the two cases in Figure 3 must hold. The algorithm for partitioning a simple polygon P with n vertices into monotone sub-polygons leverages Lemma 2.1. The basic idea is to use a line-sweep algorithm like we saw in Lecture 2. Again, we use a priority
5 Lecture 3: Art Gallery Problems and Polygon Triangulation 5 Figure 3: A non-y-monotone polygon must have either a split vertex (left) or a merge vertex (right). queue Q and a balanced binary search tree T. The event points, which are stored in Q, are the n vertices of P ; a point p has higher priority than a point q if p > q. (Actually, since we know all of the event points ahead of time, we can just sort them by priority at the beginning and don t need to use a priority queue.) I.e., our line sweep algorithm again works from top to bottom. The tree T stores the edges of P which intersect with the sweep line in order from left to right. The main idea is to attach new diagonals to split and merge vertices when we encounter them in the sweep. For split vertices, this is relatively straightforward: we can attach it to the lowest polygon vertex above the sweep line, or to the upper endpoint of one of the line segments adjacent to the split vertex on the sweep line (which we can determine from T ). For merge vertices the situation is more complicated, since we need to attach the merge vertex to a vertex below the sweep line (which we haven t processed yet). We omit the details of the algorithm which include substantial case analysis for handling each of the five types of polygon vertices (four types of turn vertices plus non-turn vertices), and appear in [dbcvko08, Chapter 3.2]. The proof of correctness for the algorithm primarily involves arguing that the introduced diagonals do not intersect the edges of P or each other. As in our plane sweep algorithm for computing line segment intersections, handling each event point requires performing a constant number of operations on Q and T, and therefore takes O(log n)-time. Overall, our algorithm therefore takes O(n log n)-time. This leads to the following theorem. Theorem 2.2. There exists an algorithm which partitions a simple polygon with n vertices into monotones pieces, and which runs in O(n log n)-time. 2.2 Triangulating a Monotone Polygon As the last piece of our algorithm, we show how to triangluate a monotone polygon P. We will process the vertices in P from top to bottom, where the leftmost of two points with the same y-coordinate is considered to be above the rightmost as in Section 2.1. (In fact, for simplicity in our description, we will assume that P is strictly y-monotone, i.e., that it does not have any vertices with the same y-coordinates.) The idea will be to greedily add diagonals between vertices in the left boundary chain and vertices in the right boundary chain of P. (The left and right boundary chains are defined as the sequence of vertices encountered when walking from the top to bottom vertex of P in counter clockwise order, and the sequence encountered when walking in clockwise order, respectively.) Our algorithm will use a stack S as its main data structure. To process a vertex v, we first add diagonals to as many of the vertices on top of S as possible. When we add a diagonal to such a vertex w from a lower vertex v, we remove w from S, which corresponds to removing a triangle from P. We then push v (and possibly its predecessor) onto S. Because we push vertices onto S as we encounter them, lower vertices of P appear higher in S. In particular, the top vertex in S is the most recently encountered vertex of P. After processing any given vertex, the vertices in S all lie on either the left or right boundary chain. Moreover, these vertices are all reflex vertices, meaning that their interior angle in P is greater than 180.
6 6 Lecture 3: Art Gallery Problems and Polygon Triangulation v i v i v j v j Figure 4: The state of the algorithm after processing a vertex v i that lies on the opposite chain from those in S (left), and after processing a vertex v j that lies on the same chain as those in S (right). The triangles removed from P appear shaded in gray. So, the part of P that lies above the last processed vertex and has not been removed has a funnel shape consisting of a chain of reflex vertices on one side, and part of a single edge of P on the other. Using this observation, we determine how to handle a newly encountered vertex. Consider a new vertex v i that lies on the opposite chain as the vertices in S. Then it is the endpoint of the edge in the funnel. We can then add diagonals between v i and all of the vertices in S except the last one (see Figure 4, left). Next, consider a new vertex v j that lies on the same chain as the vertices in S. In this case we may not be able to add diagonals to any new vertices. However, the vertices to which we can add diagonals still lie on top of S. Specifically, we add a diagonal between v j and a vertex w in S if the line segment wv j lies in P (see Figure 4, right). We can check this by determining whether w, the previously popped vertex, and v j form a right turn. We now present the algorithm more formally. Algorithm 1: TriangulateMonotonePolygon(P ) Input: A strictly y-monotone polygon P with n vertices, represented by a doubly-connected edge list. Output: A triangulation of P. Sort the vertices of P from top to bottom to obtain the sequence v 1 > > v n. Initialize a stack S, and push v 1 and then v 2 onto S. for i = 3 to n 1 do if v i and the top vertex of S lie on different chains then Pop all vertices from S. Add a diagonal from v i to all popped vertices except the last one. Push v i 1 and then v i onto S. else Pop a vertex from S. while The diagonal from v i to w lies in P, where w is the top vertex of S do Pop w from S. Add a diagonal from v i to w. end Push the last vertex popped back onto S, and then push v i onto S. end end Add diagonals from v n to all vertices in S except the first and last ones. We next analyze the time complexity of Algorithm 1. Theorem 2.3. Algorithm 1 triangulates a strictly y-monotone polygon P with n vertices in O(n)-time.
7 Lecture 3: Art Gallery Problems and Polygon Triangulation 7 Proof. Because P is represented in the input by a doubly-connected edge list, we can sort the vertices in P according to their y-coordinate in linear time by iterating through the vertices in the left and right boundary chains of P starting at the topmost vertex. Initializing S takes constant time. We next analyze the time required by the for loop. Although we may pop many vertices from S in a given iteration, the key observation is that we only push at most two vertices onto S at each iteration. Accounting for the two vertices initially pushed onto S and each iteration through the for loop we therefore push at most 2n 4 vertices onto S. This clearly also upper bounds the number of vertices popped from S, and handling each popped vertex takes constant time. Therefore, Algorithm 1 runs in O(n)-time. 3 Summary To review, let s look again at the pieces of our algorithm for guarding a simple polygon together with their runtimes: 1. Triangulating a simple polygon, described in Section 2. Runtime: O(n log n). (a) Breaking a simple polygon into monotone pieces, described in Section 2.1. Runtime: O(n log n). (b) Triangulating each monotone polygon, described in Section 2.2. Runtime: O(n). 2. Guarding a triangulated, simple polygon, described in Section 1.1. Runtime: O(n). Overall we get the following theorem. Theorem 3.1. For every simple polygon P with n vertices, there exists a set of n/3 camera placements which guard all of P. Furthermore, there exists an algorithm which computes such a set of placements and which runs in O(n log n)-time. The runtime bottleneck for our algorithm is in computing a triangulation in Step 1, and not in using the triangulation to place cameras in Step 2. Therefore a natural question is whether it s possible to triangulate a polygon more quickly. Chazelle [Cha91] showed that it is, and gave an O(n)-time algorithm for triangulating a simple polygon. (The algorithm is very complicated compared to the one presented in this lecture.) As a consequence, the runtime in Theorem 3.1 can be improved to O(n), which is optimal. References [Cha91] [Chv75] Bernard Chazelle. Triangulating a simple polygon in linear time. Discrete & Computational Geometry, 6: , V. Chvátal. A combinatorial theorem in plane geometry. Journal of Combinatorial Theory, Series B, 18(1):39 41, [dbcvko08] Mark de Berg, Otfried Cheong, Marc J. van Kreveld, and Mark H. Overmars. Computational geometry: algorithms and applications, 3rd Edition. Springer, 2008.
CS6100: Topics in Design and Analysis of Algorithms
CS6100: Topics in Design and Analysis of Algorithms Guarding and Triangulating Polygons John Augustine CS6100 (Even 2012): Guarding and Triangulating Polygons The Art Gallery Problem A simple polygon is
More informationComputational Geometry
Motivation Motivation Polygons and visibility Visibility in polygons Triangulation Proof of the Art gallery theorem Two points in a simple polygon can see each other if their connecting line segment is
More informationPolygon Triangulation. (slides partially by Daniel Vlasic )
Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals
More informationPolygon decomposition. Motivation: Art gallery problem
CG Lecture 3 Polygon decomposition 1. Polygon triangulation Triangulation theory Monotone polygon triangulation 2. Polygon decomposition into monotone pieces 3. Trapezoidal decomposition 4. Convex decomposition
More information2 A Plane Sweep Algorithm for Line Segment Intersection
EECS 396/496: Computational Geometry Fall 2017 Lecturer: Huck Bennett Lecture 2: Line Segment Intersection In this lecture, we will study the problem of computing all intersections of a set of line segmentn
More informationPolygon Partitioning. Lecture03
1 Polygon Partitioning Lecture03 2 History of Triangulation Algorithms 3 Outline Monotone polygon Triangulation of monotone polygon Trapezoidal decomposition Decomposition in monotone mountain Convex decomposition
More informationPolygon Triangulation. (slides partially by Daniel Vlasic )
Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals
More informationCS 532: 3D Computer Vision 14 th Set of Notes
1 CS 532: 3D Computer Vision 14 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Triangulating
More informationLecture 4: Trees and Art Galleries
Math 7H: Honors Seminar Professor: Padraic Bartlett Lecture 4: Trees and Art Galleries Week 2 UCSB 2014 1 Prelude: Graph Theory In this talk, we re going to refer frequently to things called graphs and
More informationComputational Geometry [csci 3250]
Computational Geometry [csci 3250] Laura Toma Bowdoin College Polygon Triangulation Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon
More informationProfessor: Padraic Bartlett. Lecture 9: Trees and Art Galleries. Week 10 UCSB 2015
Math 7H Professor: Padraic Bartlett Lecture 9: Trees and Art Galleries Week 10 UCSB 2015 1 Prelude: Graph Theory This talk uses the mathematical concepts of graphs from our previous class. In particular,
More informationSolutions to problem set 1
Massachusetts Institute of Technology Handout 5 6.838: Geometric Computation October 4, 2001 Professors Piotr Indyk and Seth Teller Solutions to problem set 1 (mostly taken from the solution set of Jan
More informationMotivation: Art gallery problem. Polygon decomposition. Art gallery problem: upper bound. Art gallery problem: lower bound
CG Lecture 3 Polygon decomposition 1. Polygon triangulation Triangulation theory Monotone polygon triangulation 2. Polygon decomposition into monotone pieces 3. Trapezoidal decomposition 4. Conex decomposition
More informationPolygon Triangulation
Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon into triangles). Computational Geometry [csci 3250] Polygon Triangulation Laura Toma
More informationCS 532: 3D Computer Vision 11 th Set of Notes
1 CS 532: 3D Computer Vision 11 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Line Intersection
More informationOrthogonal art galleries with holes: a coloring proof of Aggarwal s Theorem
Orthogonal art galleries with holes: a coloring proof of Aggarwal s Theorem Pawe l Żyliński Institute of Mathematics University of Gdańsk, 8095 Gdańsk, Poland pz@math.univ.gda.pl Submitted: Sep 9, 005;
More informationMISCELLANEOUS SHAPES
MISCELLANEOUS SHAPES 4.1. INTRODUCTION Five generic shapes of polygons have been usefully distinguished in the literature: convex, orthogonal, star, spiral, and monotone. 1 Convex polygons obviously do
More informationProjects & Polygon Triangulation
Computational Geometry Lecture Projects & INSTITUTE FOR THEORETICAL INFORMATICS FACULTY OF INFORMATICS Tamara Mchedlidze Darren Strash 02.11.2015 1 Projects 2 Project Specifications Groups: 2 or 3 students,
More informationVisibility: Finding the Staircase Kernel in Orthogonal Polygons
Visibility: Finding the Staircase Kernel in Orthogonal Polygons 8 Visibility: Finding the Staircase Kernel in Orthogonal Polygons Tzvetalin S. Vassilev, Nipissing University, Canada Stefan Pape, Nipissing
More informationLine segment intersection. Family of intersection problems
CG Lecture 2 Line segment intersection Intersecting two line segments Line sweep algorithm Convex polygon intersection Boolean operations on polygons Subdivision overlay algorithm 1 Family of intersection
More informationVisibility Analysis for Video Surveillance
Volume-6, Issue-4, July-August 2016 International Journal of Engineering and Management Research Page Number: 225-229 Visibility Analysis for Video Surveillance K. Sumalatha 1, Mr. M. Sreenath Reddy, M.E
More informationConnected Components of Underlying Graphs of Halving Lines
arxiv:1304.5658v1 [math.co] 20 Apr 2013 Connected Components of Underlying Graphs of Halving Lines Tanya Khovanova MIT November 5, 2018 Abstract Dai Yang MIT In this paper we discuss the connected components
More informationArt Gallery, Triangulation, and Voronoi Regions
Art Gallery, Triangulation, and Voronoi Regions CS535 Fall 2016 Daniel G. Aliaga Department of Computer Science Purdue University [some slides based on Profs. Shmuel Wimer and Andy Mirzaian Topics Triangulation
More informationComputational Geometry
Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess
More informationWeek 2 Polygon Triangulation
Week 2 Polygon Triangulation What is a polygon? Last week A polygonal chain is a connected series of line segments A closed polygonal chain is a polygonal chain, such that there is also a line segment
More informationThe Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards
The Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards Nicole Chesnokov May 16, 2018 Contents 1 Introduction 2 2 The Art Gallery Problem 3 2.1 Proof..................................
More informationMa/CS 6b Class 26: Art Galleries and Politicians
Ma/CS 6b Class 26: Art Galleries and Politicians By Adam Sheffer The Art Gallery Problem Problem. We wish to place security cameras at a gallery, such that they cover it completely. Every camera can cover
More informationVisibilty: Finding the Staircase Kernel in Orthogonal Polygons
American Journal of Computational and Applied Mathematics 2012, 2(2): 17-24 DOI: 10.5923/j.ajcam.20120202.04 Visibilty: Finding the Staircase Kernel in Orthogonal Polygons Stefan A. Pape, Tzvetalin S.
More informationAMS 345/CSE 355 Computational Geometry
AMS 345/CSE 355 Computational Geometry Lecture: Polygons, Guarding Joe Mitchell Do You Like Puzzles? Come to the new Stony Brook Puzzle Society Meets: Friday 1:05-2:30 pm at CSE 2120 Organizer: Pramod
More informationComputing intersections in a set of line segments: the Bentley-Ottmann algorithm
Computing intersections in a set of line segments: the Bentley-Ottmann algorithm Michiel Smid October 14, 2003 1 Introduction In these notes, we introduce a powerful technique for solving geometric problems.
More informationGEOMETRIC SEARCHING PART 1: POINT LOCATION
GEOMETRIC SEARCHING PART 1: POINT LOCATION PETR FELKEL FEL CTU PRAGUE felkel@fel.cvut.cz https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg] and [Mount] Version from 3.10.2014 Geometric
More informationJanuary 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms
Geometric data structures Sudebkumar Prasant Pal Department of Computer Science and Engineering IIT Kharagpur, 721302. email: spp@cse.iitkgp.ernet.in January 10-12, 2012 - NIT Surathkal Introduction to
More informationOn Merging Straight Skeletons
On Merging Straight Skeletons Franz Aurenhammer 1 and Michael Steinkogler 2 1 Institute for Theoretical Computer Science, University of Technology, Graz, Austria auren@igi.tugraz.at 2 Institute for Theoretical
More informationLine Arrangements. Applications
Computational Geometry Chapter 9 Line Arrangements 1 Line Arrangements Applications On the Agenda 2 1 Complexity of a Line Arrangement Given a set L of n lines in the plane, their arrangement A(L) is the
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More informationDiscrete Mathematics I So Practice Sheet Solutions 1
Discrete Mathematics I So 2016 Tibor Szabó Shagnik Das Practice Sheet Solutions 1 Provided below are possible solutions to the questions from the practice sheet issued towards the end of the course. Exercise
More informationThe Geometry of Carpentry and Joinery
The Geometry of Carpentry and Joinery Pat Morin and Jason Morrison School of Computer Science, Carleton University, 115 Colonel By Drive Ottawa, Ontario, CANADA K1S 5B6 Abstract In this paper we propose
More informationPartitioning Orthogonal Polygons by Extension of All Edges Incident to Reflex Vertices: lower and upper bounds on the number of pieces
Partitioning Orthogonal Polygons by Extension of All Edges Incident to Reflex Vertices: lower and upper bounds on the number of pieces António Leslie Bajuelos 1, Ana Paula Tomás and Fábio Marques 3 1 Dept.
More informationThe SUMO Speaker Series for Undergraduates. The Art Gallery Problem
The SUMO Speaker Series for Undergraduates (food from Pizza Chicago) Wednesday, April 21 4:40-5:30, room 380C The Art Gallery Problem Amy Pang Abstract: Imagine you are the curator of an art gallery with
More information[Ba] Bykat, A., Convex hull of a finite set of points in two dimensions, Info. Proc. Lett. 7 (1978),
[Ba] Bykat, A., Convex hull of a finite set of points in two dimensions, Info. Proc. Lett. 7 (1978), 296-298. [Ch] [CI] [EET] [ET] [FM] [GJPT] [Gr] [HM] [KKT] Chazelle, B., A theorem on polygon cutting
More informationThe Art Gallery Problem
The Art Gallery Problem Connor Bohlken Nebraska Wesleyan University cbohlken@nebrwesleyan.edu May 11, 2016 Abstract Given a polygonal art gallery of n vertices, how many security guards are necessary to
More informationComputational Geometry
Lecture 12: Lecture 12: Motivation: Terrains by interpolation To build a model of the terrain surface, we can start with a number of sample points where we know the height. Lecture 12: Motivation: Terrains
More informationPolygon Triangulation
Polygon Triangulation Definition Simple Polygons 1. A polygon is the region of a plane bounded by a finite collection of line segments forming a simple closed curve. 2. Simple closed curve means a certain
More informationLecture 16: Voronoi Diagrams and Fortune s Algorithm
contains q changes as a result of the ith insertion. Let P i denote this probability (where the probability is taken over random insertion orders, irrespective of the choice of q). Since q could fall through
More information1. Meshes. D7013E Lecture 14
D7013E Lecture 14 Quadtrees Mesh Generation 1. Meshes Input: Components in the form of disjoint polygonal objects Integer coordinates, 0, 45, 90, or 135 angles Output: A triangular mesh Conforming: A triangle
More informationAn Implementation of a Near-Linear Polygon Triangulation Algorithm for General Polygons
An Implementation of a Near-Linear Polygon Triangulation Algorithm for General Polygons Abstract In 1991 Seidel found a practical algorithm for triangulating simple polygons with an expected running time
More informationTriangulation by Ear Clipping
Triangulation by Ear Clipping David Eberly, Geometric Tools, Redmond WA 98052 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International License. To
More information1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls
1/60 Geometric Algorithms Lecture 1: Introduction Convex Hulls Geometric algorithms scope 2/60 Geometry algorithms (practice): Study of geometric problems that arise in various applications and how algorithms
More informationLecture 3 February 9, 2010
6.851: Advanced Data Structures Spring 2010 Dr. André Schulz Lecture 3 February 9, 2010 Scribe: Jacob Steinhardt and Greg Brockman 1 Overview In the last lecture we continued to study binary search trees
More informationHow Do Computers Solve Geometric Problems? Sorelle Friedler, University of Maryland - College Park
How Do Computers Solve Geometric Problems? Sorelle Friedler, University of Maryland - College Park http://www.cs.umd.edu/~sorelle Outline Introduction Algorithms Computational Geometry Art Museum Problem
More informationLecture 7: Computational Geometry
Lecture 7: Computational Geometry CS 491 CAP Uttam Thakore Friday, October 7 th, 2016 Credit for many of the slides on solving geometry problems goes to the Stanford CS 97SI course lecture on computational
More informationLine Arrangement. Chapter 6
Line Arrangement Chapter 6 Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision. Line Arrangements Problem: Given a set L of n lines
More informationCS S Lecture February 13, 2017
CS 6301.008.18S Lecture February 13, 2017 Main topics are #Voronoi-diagrams, #Fortune. Quick Note about Planar Point Location Last week, I started giving a difficult analysis of the planar point location
More informationGeometric Streaming Algorithms with a Sorting Primitive (TR CS )
Geometric Streaming Algorithms with a Sorting Primitive (TR CS-2007-17) Eric Y. Chen School of Computer Science University of Waterloo Waterloo, ON N2L 3G1, Canada, y28chen@cs.uwaterloo.ca Abstract. We
More informationThe following is a summary, hand-waving certain things which actually should be proven.
1 Basics of Planar Graphs The following is a summary, hand-waving certain things which actually should be proven. 1.1 Plane Graphs A plane graph is a graph embedded in the plane such that no pair of lines
More informationCOMPUTING CONSTRAINED DELAUNAY
COMPUTING CONSTRAINED DELAUNAY TRIANGULATIONS IN THE PLANE By Samuel Peterson, University of Minnesota Undergraduate The Goal The Problem The Algorithms The Implementation Applications Acknowledgments
More informationVesa Halava Tero Harju. Walks on Borders of Polygons
Vesa Halava Tero Harju Walks on Borders of Polygons TUCS Technical Report No 698, June 2005 Walks on Borders of Polygons Vesa Halava Tero Harju Department of Mathematics and TUCS - Turku Centre for Computer
More informationCombinatorial Gems. Po-Shen Loh. June 2009
Combinatorial Gems Po-Shen Loh June 2009 Although this lecture does not contain many offical Olympiad problems, the arguments which are used are all common elements of Olympiad problem solving. Some of
More informationComputational Geometry
Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess
More informationCutting out polygons with a circular saw
Cutting out polygons with a circular saw Adrian Dumitrescu Masud Hasan April 0, 202 Abstract Given a simple (cuttable) polygon Q drawn on a piece of planar material R, we cut Q out of R by a (small) circular
More informationMatching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.
18.433 Combinatorial Optimization Matching Algorithms September 9,14,16 Lecturer: Santosh Vempala Given a graph G = (V, E), a matching M is a set of edges with the property that no two of the edges have
More informationLecture 3 February 23, 2012
6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 3 February 23, 2012 1 Overview In the last lecture we saw the concepts of persistence and retroactivity as well as several data structures
More informationStabbers of line segments in the plane
Stabbers of line segments in the plane M. Claverol D. Garijo C. I. Grima A. Márquez C. Seara August 3, 2010 Abstract The problem of computing a representation of the stabbing lines of a set S of segments
More informationNotes in Computational Geometry Voronoi Diagrams
Notes in Computational Geometry Voronoi Diagrams Prof. Sandeep Sen and Prof. Amit Kumar Indian Institute of Technology, Delhi Voronoi Diagrams In this lecture, we study Voronoi Diagrams, also known as
More informationCrossing Families. Abstract
Crossing Families Boris Aronov 1, Paul Erdős 2, Wayne Goddard 3, Daniel J. Kleitman 3, Michael Klugerman 3, János Pach 2,4, Leonard J. Schulman 3 Abstract Given a set of points in the plane, a crossing
More informationComputational Geometry Algorithmische Geometrie
Algorithmische Geometrie Panos Giannopoulos Wolfgang Mulzer Lena Schlipf AG TI SS 2013 !! Register in Campus Management!! Outline What you need to know (before taking this course) What is the course about?
More informationComputing the Fréchet Distance Between Simple Polygons
Computing the Fréchet Distance Between Simple Polygons Kevin Buchin a,1, Maike Buchin a,1 and Carola Wenk b,2 a Institute of Computer Science, Freie Universität Berlin, Takustraße 9, D-14195 Berlin, Germany
More informationRange Tree Applications in Computational Geometry
Range Tree Applications in Computational Geometry ANTONIO-GABRIEL STURZU, COSTIN-ANTON BOIANGIU Computer Science Department Politehnica University of Bucharest Splaiul Independentei 313, Sector 6, Bucharest,
More informationPebble Sets in Convex Polygons
2 1 Pebble Sets in Convex Polygons Kevin Iga, Randall Maddox June 15, 2005 Abstract Lukács and András posed the problem of showing the existence of a set of n 2 points in the interior of a convex n-gon
More informationRubber bands. Chapter Rubber band representation
Chapter 1 Rubber bands In the previous chapter, we already used the idea of looking at the graph geometrically, by placing its nodes on the line and replacing the edges by rubber bands. Since, however,
More informationChapter 6. Planar Orientations. 6.1 Numberings of Digraphs
Chapter 6 Planar Orientations In this chapter we will focus on algorithms and techniques used for drawing planar graphs. The algorithms we will use are based on numbering the vertices and orienting the
More informationComputational Geometry. Lecture 17
Computational Geometry Lecture 17 Computational geometry Algorithms for solving geometric problems in 2D and higher. Fundamental objects: Basic structures: point line segment line point set polygon L17.2
More informationThe Art Gallery Problem
The Art Gallery Problem Imagine an art gallery whose floor plan is a simple polygon, and a guard (a point) inside the gallery. Computational Geometry [csci 3250] The Art Gallery Problem Laura Toma Bowdoin
More informationComputational Geometry [csci 3250]
Computational Geometry [csci 3250] Laura Toma Bowdoin College The Art Gallery Problem The Art Gallery Problem Imagine an art gallery whose floor plan is a simple polygon, and a guard (a point) inside the
More informationCoverage and Search Algorithms. Chapter 10
Coverage and Search Algorithms Chapter 10 Objectives To investigate some simple algorithms for covering the area in an environment To understand how to break down an environment into simple convex pieces
More informationBicriteria approach to the optimal location of surveillance cameras *
Bicriteria approach to the optimal location of surveillance cameras * Aleksandra Groß and Horst W. Hamacher TU Kaiserslautern, Fachbereich Mathematik, Paul-Ehrlich-Straße 14, 67663 Kaiserslautern Emails:
More informationCSE 546, Fall, 2016 Homework 1
CSE 546, Fall, 2016 Homework 1 Due at the beginning of class Thursday, Sept. 15 at 2:30pm. Accepted without penalty until Friday, noon, in my mailbox in the Dept. office, third floor of Jolley. Notes about
More informationDetecting intersections between convex polyhedra
Detecting intersections between convex polyhedra Luis Barba Stefan Langerman Abstract For a polyhedron P in R d, denote by P its combinatorial complexity, i.e., the number of faces, edges and vertices
More informationG 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)
Discrete Comput Geom 12:29-34 (1994) G 6i try 9 1994 Springer-Verlag New York Inc. On the Number of Minimal 1-Steiner Trees* B. Aronov, 1 M. Bern, 2 and D. Eppstein 3 Computer Science Department, Polytechnic
More informationComplexity of Octagonal and Rectangular Cartograms
Complexity of Octagonal and Rectangular Cartograms T. Biedl and B. Genc December 1, 2005 Abstract In this paper, we study the complexity of rectangular cartograms, i.e., maps where every region is a rectangle,
More informationarxiv: v1 [cs.cg] 8 Jan 2018
Voronoi Diagrams for a Moderate-Sized Point-Set in a Simple Polygon Eunjin Oh Hee-Kap Ahn arxiv:1801.02292v1 [cs.cg] 8 Jan 2018 Abstract Given a set of sites in a simple polygon, a geodesic Voronoi diagram
More informationThe Graphs of Triangulations of Polygons
The Graphs of Triangulations of Polygons Matthew O Meara Research Experience for Undergraduates Summer 006 Basic Considerations Let Γ(n) be the graph with vertices being the labeled planar triangulation
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17
01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are
More informationComputational Geometry: Lecture 5
Computational Geometry: Lecture 5 Don Sheehy January 29, 2010 1 Degeneracy In many of the algorithms that we have discussed so far, we have run into problems when that input is somehow troublesome. For
More informationEdge Guards for Polyhedra in Three-Space
Edge Guards for Polyhedra in Three-Space Javier Cano Csaba D. Tóth Jorge Urrutia Abstract It is shown that every polyhedron in R with m edges can be guarded with at most 27 2m The bound improves to 5 6
More informationK-structure, Separating Chain, Gap Tree, and Layered DAG
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush Overview Improvement on Gap Tree and K-structure Faster point location Encompasses Separating Chain Better storage Designed
More informationComputational Geometry
Lecture 1: Introduction and convex hulls Geometry: points, lines,... Geometric objects Geometric relations Combinatorial complexity Computational geometry Plane (two-dimensional), R 2 Space (three-dimensional),
More information6.854J / J Advanced Algorithms Fall 2008
MIT OpenCourseWare http://ocw.mit.edu 6.854J / 18.415J Advanced Algorithms Fall 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 18.415/6.854 Advanced
More informationimplementing the breadth-first search algorithm implementing the depth-first search algorithm
Graph Traversals 1 Graph Traversals representing graphs adjacency matrices and adjacency lists 2 Implementing the Breadth-First and Depth-First Search Algorithms implementing the breadth-first search algorithm
More informationAN OUTPUT-SENSITIVE ALGORITHM FOR COMPUTING VISIBILITY GRAPHS*
SIAM J. COMPUT. Vol. 20, No. 5, pp. 888-910, October 1991 (C) 1991 Society for Industrial and Applied Mathematics OO6 AN OUTPUT-SENSITIVE ALGORITHM FOR COMPUTING VISIBILITY GRAPHS* SUBIR KUMAR GHOSH? AND
More informationNotes and Answers to Homework Exam 1, Geometric Algorithms, 2017
Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017 Below are some notes and sketches of correct answers for the first homework exam. We have also included the most common mistakes that were
More informationAdvanced Algorithm Homework 4 Results and Solutions
Advanced Algorithm Homework 4 Results and Solutions ID 1 2 3 4 5 Av Ex 2554 6288 9919 10 6 10 10 9.5 8.9 10-1 4208 10 10 9 8.5 10 9.5 9 0996 10 10 10 10 10 10 10 8239 10 10 10 10 10 10 10 7388 8 8.5 9
More informationSolutions to Problem Set 1
CSCI-GA.3520-001 Honors Analysis of Algorithms Solutions to Problem Set 1 Problem 1 An O(n) algorithm that finds the kth integer in an array a = (a 1,..., a n ) of n distinct integers. Basic Idea Using
More informationColoring Variations of the Art Gallery Problem
Coloring Variations of the Art Gallery Problem Master s Thesis Andreas Bärtschi August 2011 Advisors: Prof. Dr. S. Suri (UCSB), Prof. Dr. E. Welzl (ETHZ) Department of Mathematics, ETH Zürich Abstract
More informationChapter 8. Voronoi Diagrams. 8.1 Post Oce Problem
Chapter 8 Voronoi Diagrams 8.1 Post Oce Problem Suppose there are n post oces p 1,... p n in a city. Someone who is located at a position q within the city would like to know which post oce is closest
More informationDischarging and reducible configurations
Discharging and reducible configurations Zdeněk Dvořák March 24, 2018 Suppose we want to show that graphs from some hereditary class G are k- colorable. Clearly, we can restrict our attention to graphs
More informationDecomposition of the figure-8 knot
CHAPTER 1 Decomposition of the figure-8 knot This book is an introduction to knots, links, and their geometry. Before we begin, we need to define carefully exactly what we mean by knots and links, and
More informationTriangulation: basic graphics algorithms
CHAPTER 15 Triangulation: basic graphics algorithms We now know how to draw parametrized surfaces in a reasonably realistic manner. We do not yet, however, knowexactlyhowtodrawevensimpleregionsonsurfaces,suchassphericaltriangles,ifwewanttotakeinto
More information(Refer Slide Time: 00:02:00)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts
More information