arxiv: v1 [cs.cg] 17 Sep 2013

Size: px
Start display at page:

Download "arxiv: v1 [cs.cg] 17 Sep 2013"

Transcription

1 Terrain Visibility with Multiple Viewpoints Ferran Hurtado Maarten Löffler Inês Matos Vera Sacristán Maria Saumell Rodrigo I. Silveira Frank Staals January 11, 2014 arxiv: v1 [cs.cg] 17 Sep 2013 Abstract We study the problem of visibility in polyhedral terrains in the presence of multiple viewpoints. We consider a triangulated terrain with m > 1 viewpoints (or guards) located on the terrain surface. A point on the terrain is considered visible if it has an unobstructed line of sight to at least one viewpoint. We study several natural and fundamental visibility structures: (1) the visibility map, which is a partition of the terrain into visible and invisible regions; (2) the colored visibility map, which is a partition of the terrain into regions whose points have exactly the same visible viewpoints; and (3) the Voronoi visibility map, which is a partition of the terrain into regions whose points have the same closest visible viewpoint. We study the complexity of each structure for both 1.5D and 2.5D terrains, and provide efficient algorithms to construct them. Our algorithm for the visibility map in 2.5D terrains improves on the only existing algorithm in this setting. To the best of our knowledge, the other structures have not been studied before. 1 Introduction Visibility is one of the most studied topics in computational geometry. Many different terms, like art-gallery problems, guarding, or visibility itself, have been used during the last three decades to refer to problems related to the question of whether two object are visible from each other, amidst a number of obstacles. In this paper we are interested in visibility on terrains. A 2.5D terrain is an xy-monotone polyhedral surface in R 3. We also study 1.5D terrains: x-monotone polygonal lines in R 2. The obstacles we consider are the terrain edges or triangles themselves. A fundamental aspect of visibility in terrains is the viewshed of a point (i.e. the viewpoint): the (maximal) regions of the terrain that the viewpoint can see (see Fig. 1). In a 1.5D terrain, the viewshed is almost equivalent to the visibility polygon of a viewpoint, since the terrain can be turned into a simple polygon by closing up the unbounded space above the terrain. Therefore well-known linear-time algorithms to construct visibility polygons can be applied (e.g. [18]). In 2.5D the viewshed is more complex. In an n-vertex terrain, the viewshed of a viewpoint can have Θ(n 2 ) complexity. The best algorithms known to compute it take O((n + k) log n log log n) time [24], and O((nα(n) + k) log n) time [19], where k is the size of the resulting viewshed, and α(n) is the extremely slowly growing inverse of the Ackermann Departament de Matemàtica Aplicada II, Universitat Politècnica de Catalunya, Barcelona, Spain, {ferran.hurtado,vera.sacristan,rodrigo.silveira}@upc.edu. Department of Information and Computing Sciences, Universiteit Utrecht, The Netherlands, {m.loffler,f.staals}@uu.nl. Dept. de Matemática & CIDMA, Universidade de Aveiro, Portugal, ipmatos@ua.pt. Département d Informatique, Université Libre de Bruxelles, Belgium, maria.saumell.m@gmail.com. Dept. de Matemática, Universidade de Aveiro, Portugal, rodrigo.silveira@ua.pt. 1

2 function. I/O-efficient versions of this problem for grid terrains have also been studied recently (e.g. [1, 14, 17]), as well as other terrain visibility structures like horizons and offsets [15]. While the computation of the viewshed from one viewpoint on a terrain has been thoroughly studied, it is surprising that a natural and important variant has been left open: What happens if instead of one single viewpoint, one has many, say m > 1, different viewpoints on the terrain? The common viewshed, or visibility map can then be defined as the regions of the terrain that can be seen from at least one viewpoint. Computing the viewshed from each single viewpoint and then taking the union of the m viewsheds is a straightforward solution, but it has a high running time that does not take the final size of the visibility map into account. Obtaining more efficient algorithms for this and other related problems is the main focus of this paper. To the best of our knowledge, there are no other studies in computational geometry on (the complexity of) the visibility map of multiple viewpoints. We are not aware of any work for 1.5D terrains, whereas for 2.5D terrains we can only mention the work by Coll et al. [12], who essentially overlay the m individual viewsheds without studying the complexity of the visibility map. This results in the very high running time of O(m 2 n 4 ). In addition, a few papers deal with the computation of viewsheds for multiple viewpoints for rasterized terrains [11, 12, 21]. We refer to the survey by De Floriani and Magillo [15] for an overview of terrain visibility from the Geographic Information Science perspective. We would like to highlight the fact that it is not due to its lack of interest that visibility from multiple viewpoints has been overlooked up to now. Visibility in 1.5D terrains has been thoroughly studied from related perspectives, and in particular the problem of placing a minimum number of viewpoints to cover a terrain has received a lot of attention (e.g. [4, 5, 9, 10, 16, 20, 23]). Their theoretical interest and the fact that 1.5D terrains already pose a difficult challenge are the main motivation behind our work in that dimension. Regarding 2.5D, the applications are too numerous to be detailed here, so we only present a few concrete examples. For instance, evaluating the effectiveness of a set of fire lookout towers [6], or identifying locations for placing wind turbines so they are not visible from sensitive sites like touristic points [22]. Finally, our results also apply to other contexts like sensor networks, in which wireless devices have to be placed on a terrain, and we have to measure the quality of the chosen device placement scheme [25]. Visibility Structures. We study three fundamental terrain visibility structures for multiple viewpoints, for 1.5D and 2.5D terrains. For all structures, we first study their complexity and then present algorithms to compute them. The structures studied are: (1) the visibility map (already mentioned); (2) the colored visibility map: a partition of the terrain into regions whose points have exactly the same visible viewpoints; (3) the Voronoi visibility map: a partition of the terrain into regions whose points have the same closest visible viewpoint. These structures are illustrated in Fig. 2. Next, we formalize these definitions. Problem Statement. A 2.5D terrain T consists of n vertices, O(n) edges, and O(n) faces. Let V (T ) denote the set of vertices, E(T ) the set of edges, and F (T ) the set of faces of T. A 1.5D terrain T consists of n vertices and n 1 edges. We again denote the vertices of T with V (T ) and the edges of T with E(T ). For any point p on the terrain T (either a 2.5D terrain or a 1.5D terrain), the viewshed of p on T, denoted by V T (p), is the maximal set of points on T that are visible from p. A point q is visible from p if and only if the line segment pq does not intersect any point strictly below the terrain surface (intuitively, this corresponds to placing the viewpoints some small ε > 0 above the terrain). Note that our definition of visibility is symmetric, and that viewpoints have unlimited sight (Section 4 discusses the situation of viewpoints with limited sight). The viewshed V T (P) of a set of viewpoints P is the set of points visible from at least one viewpoint in P, that 2

3 p 2 p 1 p 3 Figure 1: The viewsheds of three viewpoints on a 2.5D terrain. p 1 p 2 p 3 p 1 p 2 p 2 p 3 p 1 p 3 (a) (b) (c) Figure 2: The visibility map (a), the colored visibility map (b), and the Voronoi visibility map (c). is, V T (P) = p P V T (p). Given a set of viewpoints P, we define the Voronoi viewshed W T (p, P) of a viewpoint p P as the points in the viewshed of p that are closer to p than to any other viewpoint that can see them. More precisely, W T (p, P) = V T (p) {x x T closest T (x, P) = p}, where closest T (x, P) denotes the closest (in terms of the Euclidean distance) viewpoint in P that can see a point x on T. We can now formally define our visibility structures as follows. Definition 1. The visibility map Vis(T, P) is a subdivision of the terrain T into a visible region R V = V T (P) and an invisible region R I = T \ R V. Definition 2. The colored visibility map ColVis(T, P) is a subdivision of the terrain T into maximally connected regions R, each of which is covered by exactly the same subset of viewpoints P P. Each region R is a (maximally connected) subset of p P V T (p) and we have that R p P\P V T (p) =. Definition 3. The Voronoi visibility map VorVis(T, P) is a subdivision of the terrain T into maximally connected regions, each of which is a subset of the Voronoi viewshed W T (p, P) of a viewpoint p P. We denote the size, that is, the total complexity of all its regions, of Vis(T, P), ColVis(T, P), and VorVis(T, P), by k, k c, and k v, respectively. In the remainder of the paper we assume that P is a set of m viewpoints on the terrain surface. For simplicity, we assume that the viewpoints are placed on terrain vertices, thus m n. We consider this a reasonable assumption, since in the applications that motivate this work the number of terrain vertices is considerably larger than the number of viewpoints. Results. We present a comprehensive study of the visibility structures defined above. We analyze the complexity of all the structures and propose algorithms to compute them. Our results are summarized in Table 1. Regarding 1.5D terrains, all our algorithms avoid computing individual viewsheds. Vis(T, P) is computed in nearly optimal running time, while the algorithms for ColVis(T, P) and VorVis(T, P) are output-sensitive. Obtaining the latter algorithm, whose running time depends on k c and k v, was surprisingly challenging, and required using several subtle geometric properties of the problem. As for 2.5D terrains, we prove with a careful analysis interesting on its own that the maximum complexity of Vis(T, P) and ColVis(T, P) is much less than the overlay of the 3

4 1.5D Terrains 2.5D Terrains Structure Max. size Computation time Max. size Computation time Vis Θ(n) O(n log n) O(m 3 n 2 ) O(m(nα(n) + k c ) log n) ColVis Θ(mn) O(n + (m 2 + k c ) log n) O(m 3 n 2 ) O(m(nα(n) + k c ) log n) VorVis Θ(mn) O(n + (m 2 + k c ) log n + k v (m + log n log m)) O(m 4 n 2 ) O(m(nα(n) + k c ) log n) Table 1: Complexity and computation time of the three visibility structures. viewsheds, as implicitly assumed in previous work [12]. Using that, we show how a combination of well-known algorithms can be used to compute the visibility structures reasonably fast. Finally, in Section 4 we analyze how our results change when viewpoints have limited sight, which is a very common situation for practical purposes D Terrains A 1.5D terrain T is an x-monotone polygonal chain, specified by its sorted list of n vertices. In addition, we are given a set P of m viewpoints placed on some of the terrain vertices. We first study the complexity of the visibility, colored visibility, and Voronoi visibility maps. Then we present algorithms to compute them efficiently. Note that in 1.5D our visibility structures can be seen as subdivisions of the x-axis into intervals. 2.1 Complexity of the Visibility Structures We start by considering the complexity of the visibility and colored visibility maps. Theorem 1. The visibility map Vis(T, P), for a 1.5D terrain T, has complexity Θ(n). Proof. There are two types of points of T that contribute to the complexity of Vis(T, P): vertices of T, and points where the terrain changes between visible and invisible (notice that there could be points that are of both types). There are n points of the first type, and in the following paragraph we show that the points of the second type amount to O(n). Consequently, k is Θ(n). Consider an edge e E(T ) and a viewpoint p i to the left of e. If p i sees some interior point q of e, then p i also sees all the segment from q to the rightmost endpoint of e. A symmetric situation occurs if p i is to the right of e. Thus there are three possible situations: either e is fully visible or invisible, or it contains two connected portions including endpoints where one is visible and the other is not, or it contains one invisible connected portion between two visible ones. This last case is shown in Fig. 3(a). In any case, the interior of e contains at most two points in which the terrain changes from visible to invisible or vice versa. Theorem 2. The colored visibility map ColVis(T, P), for a 1.5D terrain T, has maximum complexity Θ(mn). Proof. As already mentioned, once a viewpoint sees a given point q on an edge e E(T ), it necessarily sees the whole segment from q to one of its endpoints. Hence, all m viewpoints may produce at most m + 1 different regions of ColVis(T, P) on e. Therefore the complexity of ColVis(T, P) is O(mn). The example in Fig. 3(b) shows that the bound is tight. Next we study the Voronoi visibility map. We first consider this map restricted to an edge e E(T ). We define P l (respectively, P r ) as the subset of P containing the viewpoints on the left (respectively, on the right) of e. If a viewpoint is placed at the leftmost (respectively, 4

5 e (a) (b) Figure 3: (a) Edge e contains one invisible connected portion between two visible ones. (b) Every other edge has four different regions of ColVis(T, P) and four different regions of VorVis(T, P). rightmost) endpoint of e, then we assign it to P l (respectively, P r ). We define m l = P l and m r = P r. Lemma 1. The Voronoi visibility map VorVis(T, P) restricted to an edge e E(T ) has at most 4m 2 regions. Proof. Without loss of generality, we assume that e has a positive slope. We first show that VorVis(T, P l ) restricted to e has at most 2m l regions. Suppose that we traverse e from bottom to top, and that at point q on e we exit W T (p i, P l ) and enter W T (p j, P l ). Then either p j becomes visible at q, or the bisector of p i and p j intersects e at q. We say that q is of type I in the first case, and of type II in the second case. Since the portion of e seen by any viewpoint is connected, there are at most m l points of type I on e. In order to bound the number of type II points, suppose that we traverse e from bottom to top, and at point q we exit W T (p i, P l ) and enter W T (p j, P l ) due to an event of type II. Notice that both p i and p j see the interval of e from q up to the topmost point of e. Furthermore, viewpoint p j is closer than p i to all the points on such interval, since the bisector of p i and p j intersects e only once at q. Hence no other component of W T (p i, P l ) will be found in e. In particular, there will be no other events produced by the intersection of e with the bisector of p i and some other viewpoint of P l. Thus there are at most m l 1 points of the second type, which means that in e there are at most 2m l 1 points where the regions of VorVis(T, P l ) change. Analogous arguments show that VorVis(T, P r ) restricted to e has at most 2m r 1 points where the regions change. In order to merge VorVis(T, P l ) and VorVis(T, P r ), consider all the 2m 2 points and traverse e stopping at each of these points. Take a portion of e between two consecutive points, and let p i be the viewpoint such that the interval belongs to W T (p i, P l ), and p j be the viewpoint such that the interval belongs to W T (p j, P r ). If the bisector of p i and p j does not intersect this portion of e, then the portion is a component of either W T (p i, P) or W T (p j, P). If the bisector of p i and p j intersects this portion of e, then the portion is divided into a component of W T (p i, P) and a component of W T (p j, P). The latter case shows that each of these 2m 1 intervals can hold two different components and consequently VorVis(T, P) restricted to e can have up to 4m 2 regions. Theorem 3. The Voronoi visibility map VorVis(T, P), for a 1.5D terrain T, has maximum complexity Θ(mn). Proof. The upper bound follows from Lemma 1. The lower bound can be achieved by a configuration of viewpoints on a particular terrain T that can be repeated so that that every other edge of T has as many Voronoi regions as viewpoints, for arbitrary n and m. An example is shown in Fig. 3(b). 5

6 The three maps have complexity Ω(n), since the vertices of T contribute to their complexity. Notice that if we are interested in the output as a subdivision of the domain, rather than the terrain, we do not necessarily require Ω(n) space, since it suffices to provide the endpoints of each region. Additionally, it holds that k min(k c, k v ), and the configuration of Fig. 3(b) shows that k can be Θ(n) while both k c and k v are Θ(mn). On the other hand, it is not difficult to produce examples showing that the complexity of VorVis(T, P) can be higher than, lower than, or equal to that of ColVis(T, P). 2.2 Algorithms to Construct the Visibility Structures Construction of the Visibility Map To construct the visibility map we first compute the left- and right-visibility maps, and then merge them. The left-visibility map partitions T into two regions: the visible and the invisible portions of the terrain, where visible means visible from a viewpoint to the left of that point of the terrain (thus in the left-visibility map, viewpoints only see portions of the terrain to their right). The right-visibility map is defined analogously. In the following we explain the construction of the left-visibility map (thus, visible stands for left-visible). The algorithm uses the following property of 1.5D terrains, which is a consequence of the so-called order claim (see Claim 2.1 in [4]): Observation 1. Let q T be a point visible from the left by viewpoints p i and p j, with p i to the left of p j. For any point r T to the right of q, if p i does not see r, then p j cannot see r either. The algorithm sweeps the terrain from left to right while maintaining the leftmost visible viewpoint (if any), which we call the active viewpoint. The algorithm also stores a priority queue of events that comprises the x-coordinates of the vertices (vertex events) and the points of the terrain where a viewpoint becomes visible (viewpoint events). Initially we add an event for each terrain vertex and viewpoint, the latter corresponding to the position of the viewpoint on the terrain. Additional viewpoint events might be added later during the execution of the algorithm. We begin at the leftmost vertex, processing the events sorted by their x-coordinate as explained below. When two events have the same x-coordinate, viewpoint events are processed first. Let p a be the active viewpoint (if no viewpoint is visible at the moment, we set p a = ): (i) Viewpoint event, for a viewpoint p i. If p a =, then a new visibility region starts. If p a = or p i is to the left of p a, then p i becomes the active viewpoint. (ii) Vertex event, for a vertex v. If the active viewpoint p a becomes invisible after v, we compute where p a becomes visible again by a ray-shooting query, and add a viewpoint event at that point of the terrain. If there was a viewpoint event at v as well, this viewpoint becomes the active viewpoint. Otherwise, the current visibility region ends at v. The correctness of the method follows from Observation 1, which guarantees that it is enough to keep track of only the leftmost visible viewpoint. We obtain the following theorem: Theorem 4. Given a 1.5D terrain T, the visibility map Vis(T, P ) can be constructed in O(n log n) time. Proof. It only remains to prove that the total running time is O(n log n). The terrain (seen as a simple polygon) can be preprocessed in O(n) time and space in order to answer ray-shooting queries in O(log n) time [7]. Therefore, processing one event takes at most O(log n) time, and there are in total O(n) events. To see the latter, note that each event of type (ii) is associated 6

7 to a distinct vertex of the terrain, and that the ray-shooting query that might be done at this event produces exactly one event of type (i). It follows that the total running time is O(n log n). The right-visibility map can be computed analogously. We finally merge the two maps in O(n) time and obtain the visibility map. Thus the result follows. Note the algorithm can also be modified to output a set of viewpoints that cover the visible parts of the terrain Construction of the Colored Visibility Map The computation of the colored visibility map is similar to that of Vis(T, P ), with the extra complication of having to maintain all visible viewpoints during the sweep. To that end we use a balanced binary tree with all currently visible viewpoints, sorted by x-coordinate; so all operations in the list will take O(log m) time. When two events have the same x-coordinate, vertex events are processed first. Viewpoint events are handled as for Vis(T, P ) (updating the list of viewpoints instead). In vertex events we compute all viewpoints that become invisible after the vertex, and identify where they reappear. Observation 1 implies that all the viewpoints in question are contiguous in the list of visible viewpoints (i.e. they have increasing x-coordinates), and include the rightmost viewpoint. So we can process all viewpoints that become invisible in O(log m + log n) = O(log n) time for each of them. In principle, we charge this to the output size k c, since each viewpoint is likely to generate a new region when it reappears. However, it can happen that several viewpoints reappear at exactly the same point, generating a single region in ColVis. By Observation 1, a pair of viewpoints cannot reappear simultaneously more than once. Thus the total number of these situations is O(m 2 ), leading to the following result. Theorem 5. Given a 1.5D terrain T, the colored visibility map ColVis(T, P ) can be constructed in O(n + (m 2 + k c ) log n) time. Notice that the algorithm can be modified to output ColVis(T, P) in the following way: for the first component of the map, the algorithm returns the set of viewpoints that see that component. For the subsequent components, the algorithm outputs all changes in the set of visible viewpoints with respect to the component right before. The running time remains the same and becomes worst-case optimal, up to a O(log n) factor Construction of the Voronoi Visibility Map Divide and Conquer Approach A simple way to construct the Voronoi visibility map VorVis(T, P) is using divide and conquer. First, divide set P into two sets P 1 and P 2, each with m 2 viewpoints. Each set is recursively divided into two until each subset has only one viewpoint. The Voronoi diagram of one viewpoint is its visibility polygon, which can be computed in O(n) time [18]. Each of these diagrams can be transformed into a list of intervals such that each interval defines a portion of the terrain that is assigned to a particular viewpoint (or none). Therefore, the merge of two smaller diagrams can be done by comparing both intervals where there are parts of the terrain visible from the two viewpoints, and choosing the closest one. In other words, that portion of the terrain will be intersected with the perpendicular bisector between both viewpoints. In general, the merge step of two diagrams computed recursively takes O(mn) time. Thus the whole procedure takes O(mn log m) time. An Output-Sensitive Algorithm Even though VorVis(T, P) can have Θ(mn) complexity, it seems unlikely that such high complexity arises often in practical applications. In the following we present an alternative algorithm that essentially extracts the Voronoi visibility map from the With a finer analysis this term can be reduced to m η, for η the number of points of T where more than one viewpoint become visible (η ( m 2 ) ). 7

8 colored visibility map. Its running time depends on the complexity of the two structures, and avoids the fixed O(mn) term of the previous method. The algorithm sweeps the terrain from left to right. During this sweep, we maintain three data structures: (i) a doubly-linked list with the vertices of ColVis(T, P), ordered from left to right, (ii) a list P with the currently visible viewpoints, and (iii) for each p i P, the starting point a i of the last region in which p i is visible encountered so far in the sweep. We will use T [a, c], for a, c on T and x(a) < x(c), to denote the closed portion of the terrain between a and c. The algorithm produces VorVis(T, P) as a list of interval, viewpoint pairs ([a, c], p i ), such that p i is the closest viewpoint to all points in T [a, c]. If T [a, c] is not visible from any viewpoint, p i is set to. Our algorithm uses the following two functions, whose implementation is described later. IsAlwaysCloser([a, c], p 1, p 2 ) determines whether p 1 is always closer than p 2 in T [a, c], assuming both viewpoints are visible throughout T [a, c]. FirstRegionChange([a, c], p 1, P ) assumes that p 1 is visible throughout T [a, c] and is the closest visible viewpoint at a; it returns the leftmost point in T [a, c] where p 1 stops being the closest visible viewpoint from P (or the end of the interval, if that never happens). We process T in a number of iterations. Each iteration starts at the leftmost point u of a new Voronoi region, with P containing the viewpoints that are visible from u. If P =, then the region starting at u and ending at the start point v of the next region in ColVis(T, P) is not visible from any viewpoint. We report the region [u, v] with, and move forward (towards the right) until v, where a new Voronoi region, and thus a new iteration, starts. If P, we compute the closest visible viewpoint in O(m) time; if there is more than one, we move infinitesimally to the right of u, and compute the closest visible viewpoint there. Without loss of generality, we assume that the closest visible viewpoint is p 1. For all viewpoints p i P, we set a i := u. We now start traversing the terrain, from u towards the right. At a point q, we might find several events from ColVis(T, P): 1. A viewpoint p j becomes visible. We update P, set a j := q, and continue the sweep. 2. A viewpoint p j p 1 becomes invisible. We update P and proceed depending on two subcases: (a) IsAlwaysCloser([a j, q], p 1, p j ) = True. Continue traversing the terrain. (b) IsAlwaysCloser([a j, q], p 1, p j ) = False. There is a point in T [a j, q] at which p j is closer than p 1, so at least one Voronoi region starts between u and q. We find the leftmost region change v by calling FirstRegionChange([u, q], p 1, P ), and report [u, v] as a Voronoi region with p 1 as closest point. We now backtrack our sweep, i.e. we traverse the terrain from right to left (updating P as we encounter events), until we reach v, and start a new Voronoi region, and thus a new iteration of our algorithm at v. 3. Viewpoint p 1 becomes invisible. We update P, and compute IsAlwaysCloser ([a i, q], p 1, p i ), for all p i P. If the answer is True for all viewpoints in P, we report the region [u, q] with p 1 as closest viewpoint, and start a new Voronoi region and a new iteration at q. Otherwise, there is at least one Voronoi region that starts between u and q. We handle this analogously to case 2(b). 4. Vertex q is the last (rightmost) vertex of T. We proceed as in case 3, except that no new Voronoi region starts after q. 8

9 After processing all events, we have successfully computed VorVis(T, P). Since we backtrack our sweep in step 2(b), it may be the case that we (unnecessarily) visit events from ColVis(T, P) multiple times. We can avoid this by augmenting this step as follows. Consider step 2(a). We notice that there cannot be a Voronoi region of p j between a j and q (since at least p 1 is closer and visible). So we can remove the events of p j becoming visible at a j and invisible at q from ColVis(T, P). We remove q in step 2(a) itself. Event a j is removed if we encounter it while backtracking in step 2(b): at each event of type 1, i.e. a viewpoint p j becoming visible, we check if p j is in P. If not, we must have removed its corresponding endpoint (i.e. q) from ColVis(T, P). Thus we can also remove a j. Next, we discuss the implementation of the auxiliary functions. IsAlwaysCloser([a j, q], p 1, p j ) can be implemented to run in O(log n) time by doing a ray-shooting query, where the ray is the bisector of p 1 and p j. However, it is possible to answer this question faster. Lemma 2. Consider two points r and t such that all of T [r, t] is visible from two viewpoints p 1 and p 2. We can decide whether there exists some point in T [r, t] that is closer to p 2 than to p 1 in O(1) time. Proof. In order to know whether some point in T [r, t] is closer to p 2 than to p 1, we just need to do a constant number of verifications. In particular, if neither r or t lies on the bisector of p 1 and p 2, the answer is affirmative if and only if one of the following cases hold: (i) r or t is closer to p 2 than to p 1 ; (ii) r and t are closer to p 1 than to p 2, and x(r) < x(p 2 ) < x(t). If r (respectively, t) lies on the bisector of p 1 and p 2, let r (respectively, t ) be a point of T [r, t] to the right of r (respectively, left of t) and very close to it. We apply the characterization above replacing r by r (respectively, t by t ). Let us now prove that this characterization is correct. We denote by b 1,2 the bisector of p 1 and p 2. Notice that it suffices to prove that the characterization is correct for the case where neither r or t lies on b 1,2. Clearly, if condition (i) is satisfied, there exists some point in T [r, t] closer to p 2 than to p 1. If condition (ii) is satisfied, then p 2 belongs to T [r, t], and obviously the point of T where p 2 lies is closer to p 2 than to p 1. It remains to prove that, if there exists some point in T [r, t] closer to p 2 than to p 1, then either (i) or (ii) holds. Assume, for the sake of contradiction, that this is not true. Then there exists some point q in T [r, t] closer to p 2 than to p 1, r and t are closer to p 1 than to p 2, and either x(p 2 ) x(r) or x(p 2 ) x(t). Since r and t are closer to p 1 than to p 2, we actually have that either x(p 2 ) < x(r) or x(p 2 ) > x(t). Furthermore, b 1,2 properly intersects T [r, t] an even number of times (at least two), so in particular b 1,2 is not vertical. Let us first suppose that p 2 is below b 1,2. Then r and t are above b 1,2. If x(p 2 ) < x(r), then we have the situation in Fig. 4 (left). Since q is visible from p 2, it lies above the line through p 2 and r. Since it is closer to p 2 than to p 1, it lies below b 1,2. But these two half-planes cannot intersect to the right of r. This yields a contradiction. If x(p 2 ) > x(t), we have a similar situation (see Fig. 4, right): Point q lies above the line through p 2 and t, and below b 1,2. But these two half-planes do not intersect to the left of t, and we reach a contradiction. By a proper intersection of b 1,2 and the terrain we mean an intersection such that right before the intersection point the terrain is closer to one of the viewpoints, and right after it is closer to the other viewpoint. 9

10 t r b 1,2 p 1 r t p 1 p 2 T [r, t] T [r, t] p 2 b 1,2 Figure 4: The two subcases in the proof of Lemma 2 when p 2 is below b 1,2. The shaded area indicates the region where T [r, t], and thus point q, must lie. p 2 q e b 1,2 p 1 r t T [r, t] Figure 5: Proof of Lemma 2 for the case in which p 2 is above b 1,2. The lighter shaded area indicates the region where p 1 must lie, while the darker shade denotes the region where T [r, t] must be. We next suppose that p 2 is above b 1,2. Then r and t are below b 1,2. Let e be the first edge encountered when traversing the terrain from r to t such that a portion of e of positive length is closer to p 2 than to p 1, and let q be its intersection point with b 1,2 (see Fig. 5). Since p 1 sees e, it lies above the line through e. On the other hand, p 1 lies below b 1,2. In particular, p 1 lies to the left of q, while t lies to its right. Therefore the segment p 1 t intersects the vertical ray with origin at q and going downwards, so t is not visible from p 1. This yields a contradiction. FirstRegionChange([u, q], p 1, P ) can be implemented to run in O(m log n) time as follows: For every p i P, using a ray-shooting query, compute the leftmost point (if any) on T [a i, q] that is closer to p i than to p 1. Then keep the leftmost point u among all the points encountered. Again, it is possible to do this faster: Lemma 3. Let [u, q] be an interval such that p 1 P is visible in all T [u, q] and is the closest visible viewpoint at u. Let P be a set of viewpoints such that for each p i P, T [a i, q] is visible from p i, for some a i such that x(u) x(a i ). Then in O(m + log n log m + n ) time we can find the leftmost point u T [u, q] such that at u there is a change of region in VorVis(T, P ), for n the number of vertices in T [u, u ]. Before proving the lemma, we need some auxiliary results. Recall that a change in the Voronoi region can take place due to two situations: a viewpoint closer than p 1 reappearing, or the terrain crossing the bisector between p 1 and another visible viewpoint. We proceed in two phases. In a first phase we filter the viewpoints in P in order to leave precisely the ones that can create a region change only because of a bisector crossing T [u, q]. 10

11 In a second phase we compute the leftmost point where a bisector between p 1 and one of the remaining viewpoints crosses T [u, q]. The computed point is, with a few exceptions detailed later, the point where the first region change occurs. Next we present these two phases in detail. For each p i P we define an interval I i = [a i, q]. We also define I 1 = [u, q] = [a 1, c 1 ]. We assume that no viewpoint in P has a vertical bisector with p 1 (this special, but simpler, case will be discussed later). Filtering phase In a first step, we remove from P all the viewpoints p i P, such that no point in T [I i ] is closer to p i than to p 1. Using Lemma 2, this can be done in O(m) time. In a second step, we check for every p i P whether a i is closer to p i than to p 1. From all the viewpoints such that the answer is affirmative, we only keep the viewpoint p k such that a k is leftmost; all the other viewpoints for which the answer is affirmative are removed from P. Viewpoint p k is also removed from P and placed in a new subset P. All viewpoints such that x(a i ) > x(a k ) are also removed from P. Note that, by definition of p k, the region of p 1 cannot extend further to the right than a k. However, it is possible that there is a region change before that due to one of the other viewpoints in P. Any remaining viewpoint p i P has the following properties: 1. p 1 is closer to a i than p i. 2. p i is closer to p 1 in at least one point in T [u, q]. 3. x(a i ) x(a k ). Property 1 implies that if there is a region change between u and a k, it must be due to the terrain crossing a bisector (i.e. it cannot be due to a viewpoint reappearing). Therefore to find the first region change it is enough to find the leftmost point where T [u, q] crosses a bisector between p 1 and a viewpoint in P. Computing the first terrain-bisector crossing We show next that the first terrain-bisector crossing can be computed efficiently by using a prune and search algorithm. Lemma 4. The leftmost point where T [u, q] crosses a bisector between p 1 and a viewpoint in P can be found in O(m + log n log m + n ) time, where m is the size of P, n is the size of T, and n is the number of vertices of T between u and the crossing point found. Proof. Recall that we assume no bisector is vertical. We divide the remaining viewpoints in P into two groups. We add to set P 1 all viewpoints p i P such that p 1 is below b 1,i. Then we add to set P 2 all viewpoints p i P such that p 1 is above b 1,i. We define u as the leftmost point (if any) in T [I 1 ] such that at u there is a change of region in the Voronoi visibility map, and the viewpoint responsible for the change is in P 1 P 2. While there is more than one viewpoint in P 1 or P 2, we repeat the following procedure. We take the viewpoints in P 1 and put them in pairs arbitrarily. We do the same with the viewpoints in P 2. We consider the intersection points of all pairs of viewpoints p i, p h P 1 or p i, p h P 2 such that the x-coordinate of the intersection point of b 1,i and b 1,h lies in the interval [x(a i,h ), x(c i,h )], where [a i,h, c i,h ] = I i I h. We compute in O(m) the median µ of the x-coordinates of these intersection points. In O(log n) time, we compute the point w of T whose x-coordinate is µ. Using Lemma 2, we decide in O(m) time whether x(u ) µ or x(u ) > µ: We have that x(u ) µ if and only if at least one of the viewpoints p i P 1 P 2 is such that there exists some point in I i [a 1, w] closer to p i than to p 1. Let us now suppose that x(u ) µ, and let p i, p h P 1 be a pair such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. Recall that, for all p j P 1, a j is closer to p 1 than to p j. By 11

12 the definition of P 1, this implies that a j is below b 1,j. We next show that we can remove p i or p h (or both) from P 1. If for one of the two viewpoints, say p i, it holds that no point in I i [a 1, w] is closer to p i than to p 1, then we remove that viewpoint from P 1. If this holds for both viewpoints, we remove both of them from P 1. Otherwise, we assume without loss of generality that x(a i ) x(a h ). There are basically three possible situations, illustrated in Fig. 6. In the first situation, depicted in Fig. 6 (left), b 1,h is below b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. We first check whether there exists some point in the portion of the terrain between a i and a h closer to p i than to p 1. In the affirmative, we can remove p h from P 1, since there is a change of Voronoi region before p h becomes visible. Otherwise, the portion of the terrain between a h and w crosses both b 1,i and b 1,h, but notice that it crosses b 1,h first. So we can remove p i from P 1. In the second situation, illustrated in Fig. 6 (center), b 1,h is above b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ], and a h is above b 1,i. In this case, the terrain crosses b 1,i before p h becomes visible, so we remove p h from P 1. In the third situation, depicted in in Fig. 6 (right), b 1,h is above b 1,i in the interval [x(a i,h ), x(c i,h )] [x(a 1 ), µ], and a h is below b 1,i. We also remove p h from P 1, since even if the terrain crosses b 1,h while p h is visible, it has crossed before b 1,i while p i is visible. x = µ x = µ x = µ b 1,i a i b 1,h a h a h b 1,h b 1,h b 1,i a i b 1,i a i a h Figure 6: Case x(u ) µ and p i, p h P 1. We do an analogous procedure with all pairs p i, p h P 2 such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [x(a 1 ), µ]. We remove from P 2 at least one of the viewpoints of such a pair. By the way in which we chose µ, we have removed at least one viewpoint from half of the pairs of viewpoints in P 1 P 2. If x(u ) > µ, we apply a similar strategy. Let p i, p h P 1 be a pair such that b 1,i and b 1,h do not intersect, or the x-coordinate of the intersection point of b 1,i and b 1,h does not lie in [x(a i,h ), x(c i,h )] [µ, x(c 1 )]. If for one of the two viewpoints, say p i, it holds that no point in I i [w, c 1 ] is closer to p i than to p 1, then we remove that viewpoint from P 1. If this holds for both viewpoints, we remove both of them from P 1. Otherwise, we consider essentially two cases. In the first case, x(a i ) µ and x(a h ) µ. We assume without loss of generality that b 1,i is below b 1,h in the interval [x(a i,h ), x(c i,h )] [µ, x(c 1 )]. Then we are in the situation illustrated in Fig. 7. The portion of the terrain between w and c 1 cross both b 1,i and b 1,h, but it crosses b 1,i first, so we remove p h from P 1. In the second case, x(a i) > µ or x(a h ) > µ. We assume without loss of generality that x(a i ) x(a h ). This case can be further subdivided into three cases, which essentially correspond to the three cases depicted in Fig. 6. These cases are handled as explained above, and thus either p i or p h are removed from P 1. By analogous arguments, we remove some viewpoints from P 2 as well. In total, we remove at least roughly one fourth of the viewpoints in P 1 P 2. 12

13 x = µ b 1,h a i a h q b 1,i Figure 7: Case x(u ) > µ and p i, p h P 1. We repeat this procedure until there is one (or zero) viewpoint in P 1, and one (or zero) viewpoint in P 2. The total running time T (n, m) of this part satisfies T (n, m) Cm + log n + T (n, 3m/4) (for some constant C), which is O(m + log n log m). We have now at most two viewpoints (one in P 1, and one in P 2 ) such that one of them is the viewpoint responsible for the leftmost change in the Voronoi visibility map. In order to find it, we start traversing the terrain from u until we find the point u where the Voronoi region starts. This takes time proportional to the size of the terrain that we traverse. Therefore the first region change, assuming there are no vertical bisectors, occurs either at a k or at the point returned by the prune and search algorithm. Vertical bisectors It remains to explain how to deal with viewpoints in P that have a vertical bisector with p 1. First note that if there are several such viewpoints, then only the leftmost one is relevant. This is because all viewpoints that have a vertical bisector with p 1 lie to the right of p 1 and have the same y-coordinate as p 1. Thus the leftmost of them has its bisector crossing T first and is the one that sees more of T [u, q]. Suppose now that there are viewpoints in P with vertical bisectors with p 1, and let p v be the leftmost one. Then the x-coordinate of the first region change will be the minimum between the one obtained by the previous algorithm and max{x(a v ), x(b 1,v )}, where x(b 1,v ) is such that the bisector b 1,v has equation x = x(b 1,v ). The total running time of the algorithm is analyzed in the next theorem. Theorem 6. Given a 1.5D terrain T, the Voronoi visibility map VorVis(T, P) can be constructed in O(n + (m 2 + k c ) log n + k v (m + log n log m)) time. Proof. The correctness of the algorithm is clear from its description. We next analyze its running time. First we analyze the total time spent with calls to FirstRegionChange. For each call we charge O(m + log n log m) time to the Voronoi region starting at u. All the terms of the shape O(n ), for all calls to the function, add up to a single O(n) term in the total cost of the algorithm. It remains to analyze the rest of the time needed to handle each type of event. Recall that q is the point that triggers the event. In case 1 we distinguish two cases: if this is the last time that p j becomes visible in this iteration, then it is charged to the Voronoi region starting at u. Otherwise, we charge it to the region of ColVis(T, P) starting at q. 13

14 In case 2(a) we charge the cost to the portion of ColVis(T, P) starting at q. Since afterwards the event is deleted, it cannot be charged twice. Regarding case 2(b) (and the subcase of case 3 handled analogously): When we traverse the terrain from q to u, the first time that a given viewpoint p i becomes visible (that is, it becomes visible if the terrain is traversed from left to right), we charge the update of P to the Voronoi region starting at u. This in total charges O(m) time to that Voronoi region. The following times that we encounter events indicating that p i becomes visible (when traversing the terrain from left to right) correspond to portions of the terrain (where p i is visible) that are not relevant in future iterations. Notice that we remove these events from the data structure describing the colored visibility map, so we charge the computations done at that point to the event of p i becoming visible in ColVis(T, P), which will not be visited again because it has been removed. Finally, for the first subcase of case 3 we charge the cost, O(m), to the Voronoi region starting at u. All in all, extracting VorVis(T, P) from ColVis(T, P) by the previous algorithm takes O(k c +k v (m+log n log m)+n) time. Since we can construct ColVis(T, P) in O(n+(m 2 +k c ) log n) time, we obtain the desired result. The algorithm assumes that no bisector of two viewpoints is collinear with an edge of T, but it can easily be adapted to handle this case as well. On the other hand, if during the algorithm a relevant bisector is only tangent to the terrain (i.e., right before and right after this intersection the terrain is closer to the same viewpoint, among the two viewpoints defining the bisector), we do not consider this as a change in the Voronoi region, even if at the tangency point the terrain has two closest viewpoints. We also note that in the (hopefully unlikely) case of k v Θ(mn), the simpler divide and conquer algorithm achieves a better running time than this algorithm D Terrains 3.1 Complexity of the Visibility Structures We start by showing that the visibility map of a 2.5D terrain may have Ω(m 2 n 2 ) complexity. Proposition 1. The visibility map Vis(T, P ), for a 2.5D terrain T, can have complexity Ω(m 2 n 2 ). Proof. We present a terrain that consists of a flat (horizontal) rectangle, the courtyard, surrounded by a thin wall. We make O(n) (almost) vertical incisions, or windows, in the northern and western wall. We place half our viewpoints behind windows in the northern wall, and the other half behind windows in the western wall. Each viewpoint is placed so that it can see through O(n) windows into the courtyard, see Fig. 8. It follows that the visibility map inside the courtyard forms an O(mn) O(mn) grid. A polyhedron is a closed surface of genus zero in R 3 consisting of triangles that properly connect at common vertices or edges. So a 2.5D terrain T is a specific type of polyhedron, namely one with one simply connected hole, and such that any vertical line intersects the polyhedron in at most one point. In order to establish an upper bound on the complexity of Vis(T, P), ColVis(T, P), and VorVis(T, P), we start with the most general case, in which T is actually an arbitrary polyhedron. Let M be a polyhedron, let v be a vertex of M, and let p P be a viewpoint. We define the ray of p and v, denoted v p, to be the half line that starts at v and has vector pv. Similarly, let p P be a point and e = uv be an edge of M. The vase of p and e, denoted e p, is the region in 14

15 Figure 8: The visibility map of T has complexity Ω(m 2 n 2 ). Viewpoints are shown as white circles and rays indicate which part of the terrain is visible from the viewpoint. p v u u p (u,v) p p p (a) (b) (c) Figure 9: (a) A ray and a vase. (b) The top-down view of a terrain T with a single viewpoint p. The domain is decomposed in the viewshed Vis(T, p) and a collection of vases. (c) a 3D view of T and the vases of p. R 3 bounded by e, u p, and v p (see Fig. 9(a)). The set of all vases originating from p is denoted (p) = { e p e E(M)}. Clearly, the complexity of Vis(M, P) is bounded by its number of vertices. Assuming general position, we now classify the vertices of Vis(T, P): Observation 2. Vis(M, P) can have three types of vertices: (1) vertices of M, (2) intersections between an edge of M and a vase, and (3) intersections between a triangle of M and two vases. Theorem 7. The visibility map Vis(M, P) of a polyhedron M has complexity O(m 2 n 3 ). Proof. Each vase comes from a viewpoint in P and an edge in E(M). Clearly, V (M), E(M), F (M) O(n). So, the number of vertices of type (1) is at most O(n); the number of vertices of type (2) is at most O(mn 2 ); and the number of vertices of type (3) is at most O(m 2 n 3 ). It is worth noting that there is a fourth possible type of vertex: an intersection of three vases. However, such a vertex does not lie on M, so only appears if we want to compute the visibility volume (the subset of R 3 that is visible by some point in P), not if we want the visibility map. Also, we need m 3 to be able to have three intersecting vases. 15

16 Next, we show that if M is a terrain, then the number of vertices of type (3) can only be O(m 3 n 2 ). Given any object B R 3, we denote by B the vertical projection of B to R 2. Furthermore, we define S 1 S 2 to be the overlay of subdivisions S 1 and S 2. Let e s and f t be two vases. The intersection of these two vases is a line segment (or half line), which we denote by e s f t. We call this a pyramid ray. Observation 3. Consider k planar subdivisions S 1, S 2,..., S k, and let S = k i=1 S i be their overlay. Any line l has at most O( k i=1 S i ) intersections with S, and the complexity of S is at most O(( k i=1 S i ) 2 ). Lemma 5. Let T be a 2.5D terrain, and P be a set of m viewpoints. Let R be the set of pyramid rays created by P on T. Every edge e E(T ) intersects at most O(m 3 n) rays from R. Proof. Let X i be the subdivision of R 2 that we obtain by vertically projecting the upper envelope of T and all vases in (p i ). Fig. 9(b) shows an example. Any pyramid ray r R is the intersection of one vase from (p i ) and one vase from (p j ), for some i j. This means that r is contained in a cell of X i X j. Let X = m i=1 X i. Then each cell in X is contained in at most m different projected vases, hence, it contains at most ( ) m 2 (pieces of) projected pyramid rays. There are O(n) vases in (p i ), so X i has O(n) vertices. From Observation 3 it follows that any line and therefore any edge e E(T ) intersects the edges of X at most O(mn) times. This means e intersects at most O(mn) cells, and therefore also at most O(m 3 n) pyramid rays in R. With Lemma 5 in place, we can now argue that for a 2.5D terrain T the number of vertices of type (3) is only quadratic in n. Lemma 6. The visibility map Vis(T, P), for a 2.5D terrain T, contains at most O(m 3 n 2 ) vertices of type (3). Proof. We split the vertices of Vis(T, P) of type (3) into two subtypes. Each vertex v (of type (3)) is associated with one pyramid ray r. Now, v is either of type (3)a, if it is the highest vertex on r, or of type (3)b otherwise. The number of vertices of type (3)a is at most O(m 2 n 2 ), since there is at most one per ray and there are only O(m 2 n 2 ) rays. We now show the number of vertices of type (3)b is at most O(m 3 n 2 ). Let v be a vertex of Vis(T, P) of type (3)b. It is the intersection of a ray r and a triangle t F (T ). Since v is not the highest vertex on r, there must be another vertex w on r. Clearly, w cannot lie on t, so w must lie outside t, while v lies inside t. Thus there must be an edge e E(P ) such that r crosses e. We charge v to this intersection between r and e. Clearly, any such intersection gets charged at most once. By Lemma 5, there are at most O(m 3 n 2 ) such intersections in total. Hence, the number of vertices of type (3)b is also at most O(m 3 n 2 ). Theorem 8. The visibility map Vis(T, P), for a 2.5D terrain T, has complexity O(m 3 n 2 ). The visibility map Vis(T, P) corresponds to the union over P of the viewsheds of the individual viewpoints. Similarly, the colored visibility map corresponds to the overlay of the viewsheds of the individual viewpoints in P. Therefore, Observation 2 also holds for the vertices of ColVis(T, P). This means we can use the same argument to bound the complexity of ColVis(T, P). We conclude: Theorem 9. The colored visibility map ColVis(T, P), for a 2.5D terrain T, has complexity O(m 3 n 2 ). 16

arxiv: v3 [cs.cg] 1 Dec 2014

arxiv: v3 [cs.cg] 1 Dec 2014 Terrain Visibility with Multiple Viewpoints Ferran Hurtado Maarten Löffler Inês Matos Vera Sacristán Maria Saumell Rodrigo I. Silveira Frank Staals December 2, 2014 arxiv:1309.4323v3 [cs.cg] 1 Dec 2014

More information

Lecture 3: Art Gallery Problems and Polygon Triangulation

Lecture 3: Art Gallery Problems and Polygon Triangulation 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

More information

Stabbers of line segments in the plane

Stabbers 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 information

CS6100: Topics in Design and Analysis of Algorithms

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 information

Computational Geometry

Computational 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 information

Lecture 16: Voronoi Diagrams and Fortune s Algorithm

Lecture 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 information

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

Chapter 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 information

Connected Components of Underlying Graphs of Halving Lines

Connected 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 information

Computational Geometry

Computational 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 information

Optimal detection of intersections between convex polyhedra

Optimal detection of intersections between convex polyhedra 1 2 Optimal detection of intersections between convex polyhedra Luis Barba Stefan Langerman 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Abstract For a polyhedron P in R d, denote by P its combinatorial complexity,

More information

Computing intersections in a set of line segments: the Bentley-Ottmann algorithm

Computing 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 information

CMSC 754 Computational Geometry 1

CMSC 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 information

Notes in Computational Geometry Voronoi Diagrams

Notes 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 information

CS S Lecture February 13, 2017

CS 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 information

Polygon Triangulation. (slides partially by Daniel Vlasic )

Polygon 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 information

Detecting intersections between convex polyhedra

Detecting 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 information

Theoretical Computer Science

Theoretical Computer Science Theoretical Computer Science 408 (2008) 129 142 Contents lists available at ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs Drawing colored graphs on colored points

More information

CS 532: 3D Computer Vision 14 th Set of Notes

CS 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 information

Polygon Triangulation. (slides partially by Daniel Vlasic )

Polygon 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 information

EXTREME POINTS AND AFFINE EQUIVALENCE

EXTREME POINTS AND AFFINE EQUIVALENCE EXTREME POINTS AND AFFINE EQUIVALENCE The purpose of this note is to use the notions of extreme points and affine transformations which are studied in the file affine-convex.pdf to prove that certain standard

More information

The Geometry of Carpentry and Joinery

The 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 information

Line Arrangement. Chapter 6

Line 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 information

Planar Point Location

Planar Point Location C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 04 Date: February 15, 1993 Scribe: John Bazik Planar Point Location 1 Introduction In range searching, a set of values,

More information

Computational Geometry

Computational 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 information

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville Flavor of Computational Geometry Voronoi Diagrams Shireen Y. Elhabian Aly A. Farag University of Louisville March 2010 Pepperoni Sparse Pizzas Olive Sparse Pizzas Just Two Pepperonis A person gets the

More information

1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls

1/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 information

Computational Geometry

Computational 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 information

6.854J / J Advanced Algorithms Fall 2008

6.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 information

Line segment intersection. Family of intersection problems

Line 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 information

Improved Bounds for Intersecting Triangles and Halving Planes

Improved Bounds for Intersecting Triangles and Halving Planes Improved Bounds for Intersecting Triangles and Halving Planes David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 Tech. Report 91-60 July 15, 1991 Abstract

More information

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings On the Relationships between Zero Forcing Numbers and Certain Graph Coverings Fatemeh Alinaghipour Taklimi, Shaun Fallat 1,, Karen Meagher 2 Department of Mathematics and Statistics, University of Regina,

More information

arxiv: v1 [cs.cg] 8 Jan 2018

arxiv: 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 information

Polygon decomposition. Motivation: Art gallery problem

Polygon 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 information

2 A Plane Sweep Algorithm for Line Segment Intersection

2 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 information

Average case analysis of dynamic geometric optimization

Average case analysis of dynamic geometric optimization Average case analysis of dynamic geometric optimization David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 May 19, 1995 Abstract We maintain the maximum

More information

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

Matching 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 information

Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017

Notes 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 information

Generalized kernels of polygons under rotation

Generalized kernels of polygons under rotation Generalized kernels of polygons under rotation David Orden 1, Leonidas Palios 2, Carlos Seara 3, and Paweł Żyliński 4 1 Departamento de Física y Matemáticas, Universidad de Alcalá, Spain david.orden@uah.es

More information

Edge Guards for Polyhedra in Three-Space

Edge 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 information

Faster parameterized algorithms for Minimum Fill-In

Faster parameterized algorithms for Minimum Fill-In Faster parameterized algorithms for Minimum Fill-In Hans L. Bodlaender Pinar Heggernes Yngve Villanger Abstract We present two parameterized algorithms for the Minimum Fill-In problem, also known as Chordal

More information

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality Planar Graphs In the first half of this book, we consider mostly planar graphs and their geometric representations, mostly in the plane. We start with a survey of basic results on planar graphs. This chapter

More information

Simultaneous Diagonal Flips in Plane Triangulations

Simultaneous Diagonal Flips in Plane Triangulations @ _ d j 5 6 5 6 Simultaneous Diagonal Flips in Plane Triangulations Prosenjit Bose Jurek Czyzowicz Zhicheng Gao Pat Morin David R. Wood Abstract Simultaneous diagonal flips in plane triangulations are

More information

10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann

10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann 10. Line Arrangements Lecture on Monday 2 nd November, 2009 by Michael Homann During the course of this lecture we encountered several situations where it was convenient to assume

More information

Visibility: Finding the Staircase Kernel in Orthogonal Polygons

Visibility: 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 information

Pebble Sets in Convex Polygons

Pebble 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 information

Faster parameterized algorithms for Minimum Fill-In

Faster parameterized algorithms for Minimum Fill-In Faster parameterized algorithms for Minimum Fill-In Hans L. Bodlaender Pinar Heggernes Yngve Villanger Technical Report UU-CS-2008-042 December 2008 Department of Information and Computing Sciences Utrecht

More information

Critical Area Computation for Missing Material Defects in VLSI Circuits

Critical Area Computation for Missing Material Defects in VLSI Circuits IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 20, NO. 5, MAY 2001 583 Critical Area Computation for Missing Material Defects in VLSI Circuits Evanthia Papadopoulou

More information

Compatible Trees. 1 Introduction. Alfredo García 1 Clemens Huemer 2 Ferran Hurtado 3 Javier Tejel 1

Compatible Trees. 1 Introduction. Alfredo García 1 Clemens Huemer 2 Ferran Hurtado 3 Javier Tejel 1 Compatible Trees Alfredo García 1 Clemens Huemer 2 Ferran Hurtado 3 Javier Tejel 1 Abstract Two plane geometric graphs are said to be compatible when their union is a plane geometric graph. Let S be a

More information

Packing Two Disks into a Polygonal Environment

Packing Two Disks into a Polygonal Environment Packing Two Disks into a Polygonal Environment Prosenjit Bose, School of Computer Science, Carleton University. E-mail: jit@cs.carleton.ca Pat Morin, School of Computer Science, Carleton University. E-mail:

More information

Motorcycle Graphs and Straight Skeletons

Motorcycle Graphs and Straight Skeletons Motorcycle Graphs and Straight Skeletons Siu-Wing Cheng Antoine Vigneron March 17, 2005 Abstract We present a new algorithm to compute motorcycle graphs. It runs in O(n n log n) time when n is the number

More information

CMSC 754 Computational Geometry 1

CMSC 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 information

Voronoi diagram and Delaunay triangulation

Voronoi diagram and Delaunay triangulation Voronoi diagram and Delaunay triangulation Ioannis Emiris & Vissarion Fisikopoulos Dept. of Informatics & Telecommunications, University of Athens Computational Geometry, spring 2015 Outline 1 Voronoi

More information

Rigidity, connectivity and graph decompositions

Rigidity, connectivity and graph decompositions First Prev Next Last Rigidity, connectivity and graph decompositions Brigitte Servatius Herman Servatius Worcester Polytechnic Institute Page 1 of 100 First Prev Next Last Page 2 of 100 We say that a framework

More information

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10 Lecture 25: Bezier Subdivision And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10 1. Divide and Conquer If we are going to build useful

More information

Polygon Partitioning. Lecture03

Polygon 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 information

Monotone Paths in Geometric Triangulations

Monotone Paths in Geometric Triangulations Monotone Paths in Geometric Triangulations Adrian Dumitrescu Ritankar Mandal Csaba D. Tóth November 19, 2017 Abstract (I) We prove that the (maximum) number of monotone paths in a geometric triangulation

More information

CMPS 3130/6130 Computational Geometry Spring Voronoi Diagrams. Carola Wenk. Based on: Computational Geometry: Algorithms and Applications

CMPS 3130/6130 Computational Geometry Spring Voronoi Diagrams. Carola Wenk. Based on: Computational Geometry: Algorithms and Applications CMPS 3130/6130 Computational Geometry Spring 2015 Voronoi Diagrams Carola Wenk Based on: Computational Geometry: Algorithms and Applications 2/19/15 CMPS 3130/6130 Computational Geometry 1 Voronoi Diagram

More information

Tree-Weighted Neighbors and Geometric k Smallest Spanning Trees

Tree-Weighted Neighbors and Geometric k Smallest Spanning Trees Tree-Weighted Neighbors and Geometric k Smallest Spanning Trees David Eppstein Department of Information and Computer Science University of California, Irvine, CA 92717 Tech. Report 92-77 July 7, 1992

More information

Space-Time Trade-offs for Stack-Based Algorithms

Space-Time Trade-offs for Stack-Based Algorithms Space-Time Trade-offs for Stack-Based Algorithms Luis Barba Matias Korman, Stefan Langerman Kunihiko Sadakane Rodrigo I. Silveira August 18, 2014 Abstract In memory-constrained algorithms the access to

More information

7 Voronoi Diagrams. The Post Office Problem

7 Voronoi Diagrams. The Post Office Problem 7 Voronoi Diagrams The Post Office Problem Suppose you are on the advisory board for the planning of a supermarket chain, and there are plans to open a new branch at a certain location. To predict whether

More information

26 The closest pair problem

26 The closest pair problem The closest pair problem 1 26 The closest pair problem Sweep algorithms solve many kinds of proximity problems efficiently. We present a simple sweep that solves the two-dimensional closest pair problem

More information

Projects & Polygon Triangulation

Projects & 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 information

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Preferred directions for resolving the non-uniqueness of Delaunay triangulations Preferred directions for resolving the non-uniqueness of Delaunay triangulations Christopher Dyken and Michael S. Floater Abstract: This note proposes a simple rule to determine a unique triangulation

More information

January 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms

January 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 information

In what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces.

In what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces. Voronoi Diagrams 4 A city builds a set of post offices, and now needs to determine which houses will be served by which office. It would be wasteful for a postman to go out of their way to make a delivery

More information

arxiv: v1 [cs.dm] 13 Apr 2012

arxiv: v1 [cs.dm] 13 Apr 2012 A Kuratowski-Type Theorem for Planarity of Partially Embedded Graphs Vít Jelínek, Jan Kratochvíl, Ignaz Rutter arxiv:1204.2915v1 [cs.dm] 13 Apr 2012 Abstract A partially embedded graph (or Peg) is a triple

More information

of a set of n straight lines, have been considered. Among them are k-sets in higher dimensions or k-levels of curves in two dimensions and surfaces in

of a set of n straight lines, have been considered. Among them are k-sets in higher dimensions or k-levels of curves in two dimensions and surfaces in Point-sets with few k-sets Helmut Alt? Stefan Felsner Ferran Hurtado y Marc Noy y Abstract A k-set of a nite set S of points in the plane is a subset of cardinality k that can be separated from the rest

More information

Partitioning 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 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 information

Bar k-visibility Graphs

Bar k-visibility Graphs Bar k-visibility Graphs Alice M. Dean Department of Mathematics Skidmore College adean@skidmore.edu William Evans Department of Computer Science University of British Columbia will@cs.ubc.ca Ellen Gethner

More information

Lifting Transform, Voronoi, Delaunay, Convex Hulls

Lifting Transform, Voronoi, Delaunay, Convex Hulls Lifting Transform, Voronoi, Delaunay, Convex Hulls Subhash Suri Department of Computer Science University of California Santa Barbara, CA 93106 1 Lifting Transform (A combination of Pless notes and my

More information

FINAL EXAM SOLUTIONS

FINAL EXAM SOLUTIONS COMP/MATH 3804 Design and Analysis of Algorithms I Fall 2015 FINAL EXAM SOLUTIONS Question 1 (12%). Modify Euclid s algorithm as follows. function Newclid(a,b) if a

More information

The 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 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 information

arxiv: v1 [cs.cc] 30 Jun 2017

arxiv: v1 [cs.cc] 30 Jun 2017 Hamiltonicity is Hard in Thin or Polygonal Grid Graphs, but Easy in Thin Polygonal Grid Graphs Erik D. Demaine Mikhail Rudoy arxiv:1706.10046v1 [cs.cc] 30 Jun 2017 Abstract In 2007, Arkin et al. [3] initiated

More information

MISCELLANEOUS SHAPES

MISCELLANEOUS 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 information

arxiv: v3 [cs.dm] 12 Jun 2014

arxiv: v3 [cs.dm] 12 Jun 2014 On Maximum Differential Coloring of Planar Graphs M. A. Bekos 1, M. Kaufmann 1, S. Kobourov, S. Veeramoni 1 Wilhelm-Schickard-Institut für Informatik - Universität Tübingen, Germany Department of Computer

More information

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 Reading: Today s materials is presented in part in Computational Geometry: Algorithms and Applications (3rd

More information

An efficient implementation of the greedy forwarding strategy

An efficient implementation of the greedy forwarding strategy An efficient implementation of the greedy forwarding strategy Hannes Stratil Embedded Computing Systems Group E182/2 Technische Universität Wien Treitlstraße 3 A-1040 Vienna Email: hannes@ecs.tuwien.ac.at

More information

Orthogonal art galleries with holes: a coloring proof of Aggarwal s Theorem

Orthogonal 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 information

Computational Geometry. Algorithm Design (10) Computational Geometry. Convex Hull. Areas in Computational Geometry

Computational Geometry. Algorithm Design (10) Computational Geometry. Convex Hull. Areas in Computational Geometry Computational Geometry Algorithm Design (10) Computational Geometry Graduate School of Engineering Takashi Chikayama Algorithms formulated as geometry problems Broad application areas Computer Graphics,

More information

Solutions to problem set 1

Solutions 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 information

G 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)

G 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 information

Computing the Fréchet Distance Between Simple Polygons

Computing 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 information

Capturing an Evader in a Polygonal Environment with Obstacles

Capturing an Evader in a Polygonal Environment with Obstacles Capturing an Evader in a Polygonal Environment with Obstacles Deepak Bhadauria and Volkan Isler Department of Computer Science and Engineering University of Minnesota {bhadau,isler}@cs.umn.edu Abstract

More information

Discharging and reducible configurations

Discharging 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 information

Computational Geometry [csci 3250]

Computational 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 information

CS60003 Algorithm Design and Analysis, Autumn

CS60003 Algorithm Design and Analysis, Autumn CS60003 Algorithm Design and Analysis, Autumn 2009 10 Mid-Semester Test Maximum marks: 45 September 20, 2009 Total time: 2 hours Roll no: Name: [ Write your answers in the question paper itself. Be brief

More information

9 Bounds for the Knapsack Problem (March 6)

9 Bounds for the Knapsack Problem (March 6) 9 Bounds for the Knapsack Problem (March 6) In this lecture, I ll develop both upper and lower bounds in the linear decision tree model for the following version of the (NP-complete) Knapsack 1 problem:

More information

Computational Geometry

Computational 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 information

Reconstructing Orthogonal Polyhedra from Putative Vertex Sets

Reconstructing Orthogonal Polyhedra from Putative Vertex Sets Reconstructing Orthogonal Polyhedra from Putative Vertex Sets Therese Biedl 1 and Burkay Genc 1 David R. Cheriton School of Computer Science, University of Waterloo, Waterloo ON N2L 3G1, Canada biedl@uwaterloo.ca,

More information

Line Arrangements. Applications

Line 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 information

CS 532: 3D Computer Vision 11 th Set of Notes

CS 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 information

Computing a visibility polygon using few variables

Computing a visibility polygon using few variables Computing a visibility polygon using few variables Luis Barba 1, Matias Korman 2, Stefan Langerman 2, and Rodrigo I. Silveira 3 1 Universidad Nacional Autónoma de México (UNAM), Mexico D.F., Mexico. l.barba@uxmcc2.iimas.unam.mx

More information

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize. Cornell University, Fall 2017 CS 6820: Algorithms Lecture notes on the simplex method September 2017 1 The Simplex Method We will present an algorithm to solve linear programs of the form maximize subject

More information

3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples :

3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples : 3. Voronoi Diagrams Examples : 1. Fire Observation Towers Imagine a vast forest containing a number of fire observation towers. Each ranger is responsible for extinguishing any fire closer to her tower

More information

A Reduction of Conway s Thrackle Conjecture

A Reduction of Conway s Thrackle Conjecture A Reduction of Conway s Thrackle Conjecture Wei Li, Karen Daniels, and Konstantin Rybnikov Department of Computer Science and Department of Mathematical Sciences University of Massachusetts, Lowell 01854

More information

On the number of distinct directions of planes determined by n points in R 3

On the number of distinct directions of planes determined by n points in R 3 On the number of distinct directions of planes determined by n points in R 3 Rom Pinchasi August 27, 2007 Abstract We show that any set of n points in R 3, that is not contained in a plane, determines

More information

Parameterized Complexity of Independence and Domination on Geometric Graphs

Parameterized Complexity of Independence and Domination on Geometric Graphs Parameterized Complexity of Independence and Domination on Geometric Graphs Dániel Marx Institut für Informatik, Humboldt-Universität zu Berlin, Unter den Linden 6, 10099 Berlin, Germany. dmarx@informatik.hu-berlin.de

More information

Euclidean TSP Between Two Nested Convex Obstacles

Euclidean TSP Between Two Nested Convex Obstacles Euclidean TSP Between Two Nested Convex Obstacles August 11, 2005 Jeff Abrahamson, Dept. of Computer Science, Drexel University, Philadelphia, PA, USA, jeffa@cs.drexel.edu. Ali Shokoufandeh, Dept. of Computer

More information

The Touring Polygons Problem (TPP)

The Touring Polygons Problem (TPP) The Touring Polygons Problem (TPP) [Dror-Efrat-Lubiw-M]: Given a sequence of k polygons in the plane, a start point s, and a target point, t, we seek a shortest path that starts at s, visits in order each

More information

FOUR EDGE-INDEPENDENT SPANNING TREES 1

FOUR EDGE-INDEPENDENT SPANNING TREES 1 FOUR EDGE-INDEPENDENT SPANNING TREES 1 Alexander Hoyer and Robin Thomas School of Mathematics Georgia Institute of Technology Atlanta, Georgia 30332-0160, USA ABSTRACT We prove an ear-decomposition theorem

More information