Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.

Slides:



Advertisements
Similar presentations
Two Segments Intersect?
Advertisements

Line Segment Intersection Computational Geometry, WS 2007/08 Lecture 3 – Supplementary Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Map Overlay Algorithm. Birch forest Wolves Map 1: Vegetation Map 2: Animals.
Augmenting Data Structures Advanced Algorithms & Data Structures Lecture Theme 07 – Part I Prof. Dr. Th. Ottmann Summer Semester 2006.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
1 Persistent data structures. 2 Ephemeral: A modification destroys the version which we modify. Persistent: Modifications are nondestructive. Each modification.
Brute-Force Triangulation
2/3/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries II Carola Wenk.
One of the most important problems is Computational Geometry is to find an efficient way to decide, given a subdivision of E n and a point P, in which.
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
I. The Problem of Molding Does a given object have a mold from which it can be removed? object not removable mold 1 object removable Assumptions The object.
Convex Hulls Computational Geometry, WS 2007/08 Lecture 2 – Supplementary Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Zoo-Keeper’s Problem An O(nlogn) algorithm for the zoo-keeper’s problem Sergei Bespamyatnikh Computational Geometry 24 (2003), pp th CGC Workshop.
1 Algorithmic Aspects of Searching in the Past Christine Kupich Institut für Informatik, Universität Freiburg Lecture 1: Persistent Data Structures Advanced.
Robert Pless, CS 546: Computational Geometry Lecture #3 Last Time: Convex Hulls Today: Plane Sweep Algorithms, Segment Intersection, + (Element Uniqueness,
Dynamic Algorithms for Planar Point Location Kanat Tangwongsan in collaboration with Guy Blelloch, Umut Acar, Srinath Sridhar. Aladdin Center - Summer.
Convex Hulls Computational Geometry, WS 2006/07 Lecture 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
Klee’s Measure Problem Computational Geometry, WS 2007/08 Group Work Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen, Institut.
The Half-Edge Data Structure Computational Geometry, WS 2007/08 Lecture 3, Part III Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen,
Linear Programming Computational Geometry, WS 2006/07 Lecture 5, Part IV Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Orthogonal Range Searching Computational Geometry, WS 2006/07 Lecture 13 – Part II Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für.
The Half-Edge Data Structure
Delaunay Triangulation Computational Geometry, WS 2006/07 Lecture 11 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Line Segment Intersection Computational Geometry, WS 2007/08 Lecture 3 – Part I Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 16 – Persistenz und Vergesslichkeit.
Lecture 12 : Special Case of Hidden-Line-Elimination Computational Geometry Prof. Dr. Th. Ottmann 1 Special Cases of the Hidden Line Elimination Problem.
Special Cases of the Hidden Line Elimination Problem Computational Geometry, WS 2007/08 Lecture 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen,
Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Duality and Arrangements Computational Geometry, WS 2007/08 Lecture 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Orthogonal Range Searching Computational Geometry, WS 2006/07 Lecture 13 – Part III Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für.
Lecture 10 : Delaunay Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 Overview Motivation. Triangulation of Planar Point Sets. Definition.
Persistent Data Structures Computational Geometry, WS 2007/08 Lecture 12 Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen, Institut.
Linear Programming Computational Geometry, WS 2007/08 Lecture 7 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Geometric Data Structures Computational Geometry, WS 2007/08 Lecture 13 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Hidden-Line Elimination Computational Geometry, WS 2006/07 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Linear Programming Computational Geometry, WS 2007/08 Lecture 7, Part II Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Lecture 8 : Arrangements and Duality Computational Geometry Prof. Dr. Th. Ottmann 1 Duality and Arrangements Duality between lines and points Computing.
Closest Pair of Points Computational Geometry, WS 2006/07 Lecture 9, Part II Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen,
Polygon Triangulation Computational Geometry, WS 2007/08 Lecture 9 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Linear Programming Computational Geometry, WS 2006/07 Lecture 5, Part III Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Orthogonal Range Searching Computational Geometry, WS 2006/07 Lecture 13 - Part I Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Polygon Triangulation Computational Geometry, WS 2006/07 Lecture 8, Part 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Linear Programming Computational Geometry, WS 2006/07 Lecture 5, Part II Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Line Segment Intersection Computational Geometry, WS 2006/07 Lecture 3 – Part II Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Art Gallery Theorem Computational Geometry, WS 2006/07 Lecture 8, Part 1 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Duality and Arrangements Computational Geometry, WS 2006/07 Lecture 7 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Line Segment Intersection Computational Geometry, WS 2006/07 Lecture 3 – Part I Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Lecture 2 Line Segment Intersection Computational Geometry Prof.Dr.Th.Ottmann 1 Line Segment Intersection Motivation: Computing the overlay of several.
Brute-Force Triangulation
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Point Location Dmitry Rusakov Boris Kronrod. Planar Point Location Lets S be a planar subdivision with n edges. The planar point location problem is.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
14/13/15 CMPS 3130/6130 Computational Geometry Spring 2015 Windowing Carola Wenk CMPS 3130/6130 Computational Geometry.
An Introduction to Computational Geometry Joseph S. B. Mitchell Stony Brook University.
Computational Geometry Piyush Kumar (Lecture 10: Point Location) Welcome to CIS5930.
Line Segment Intersection Computational Geometry, WS 2006/07 Lecture 3 – Part III Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für.
An Introduction to Computational Geometry Joseph S. B. Mitchell Stony Brook University.
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Polygon Triangulation
Computational Geometry
CMPS 3130/6130 Computational Geometry Spring 2017
Computational Geometry
An Introduction to Computational Geometry
Orthogonal Range Searching and Kd-Trees
CMPS 3130/6130 Computational Geometry Spring 2017
I. The Problem of Molding
Presentation transcript:

Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann2 Overview Trapezoidal decomposition A search structure Randomized, incremental algorithm for the construction of the trapezoidal decomposition Analysis Planar point location with persistent structures

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann3 Point Location in a Map

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann4 Partitioning of the Plane into Slabs Query time : O(log n) binary search in x and then binary search in y direction. Storage space O(n 2 ) n/2

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann5 Paritioning into Trapezoids Assumption : Segments are in “general position“ Observation : Every vertical edge has one point in common with a segment end. R

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann6 Observations R f f is convex f is bounded Every non - vertical side of f is part of a segment of S or an edge of R

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann7 Trapezoidal Decomposition Lemma : Each face in a trapezoidal map of a set S of line segments in general position has 1 or 2 vertical sides and exactly two non-vertical sides

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann8 Left Edge of a Trapezoid R For every trapezoid Δ  T(S), except the left most one, the left vertical edge of Δ is defined by a segment endpoint p, denoted by leftp(Δ).

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann9 The 5 Cases: Left Edges of a Trapezoid a) top(  ) bottom(  ) leftp(  ) b) leftp(  ) top(  ) d) leftp(  ) top(  ) c) leftp(  ) top(  ) bottom(  ) e) It is left edge of R. This case occurs for a single trapezoid of T(S) only, namely the unique leftmost trapezoid of T(S)

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann10 Size of the Trapezoidal Map Theorem: The trapezoidal map T(S) of a set of n line segments in general position contains at most 6n + 4 vertices and at most 3n + 1 trapezoids. Proof (1):A vertex of T(S) is either - a vertex of R or 4 - an endpoint of a segment in S or 2n - a point where the vertical extension starting in an endpoint abuts on another segment or on the boundary R. 2 * (2n) 6n + 4

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann11 Size of the Trapezoidal Map Theorem: The trapezoidal map T(S) of a set of n line segments in general position contains at most 6n + 4 vertices and at most 3n + 1 trapezoids. Proof (2): Each trapezoid has a unique point leftp(  ), which is - the lower left corner of R - the left endpoint of a segment (can be leftp(  ) of at most two different trapezoids) - the right endpoint of a segment (can be leftp(  ) of atmost one trapezoid) 1 2n n 3n + 1

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann12 Adjacent Trapezoids Two trapezoids  and  ´ are adjacent if they meet along a vertical edge.  11 22 33 44 55  11 22 33 44 55 66 1)Segments in general position : A trapezoid has atmost four adjacent trapezoids 2) Segments not in general position : A trapezoid can have an arbitrary number of adjacent trapezoids.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann13 Vertical Neighbours: Upper, Lower Left Trapezoid  ' is (vertical) neighbor of  top(  ) = top(  ’) or bottom(  ) = bottom(  ’) In the first case  ´ is upper left neighbor of , in the second case  ´ is lower left neighbor of .

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann14 Representing Trapezoidal Maps There are records for all line segments and endpoints of S, the structure contains records for trapezoids of T(S), but not for vertices or edges of T(S). The record for trapezoid  stores pointers to top(  ), and bottom(  ), pointers to leftp(  ) and rightp(  ) and finally pointers to its atmost 4 neighbors.  is uniquely defined by top(  ), bottom(  ), leftp(  ) and rightp(  ).

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann15 A Search Structure A B C D F E G 1l 1r 2l 2r A B C D E F G 1l 1r 2r 2l End points decide between left, right Segments decide between below, above

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann16 Example: Search Structure A B C D F E G 1l 1r 2l 2r

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann17 A Randomized Incremental Algorithm Input : A set S of n non-crossing line segments Output : The trapezoidal map T(S) and a search structure D(S) for T(S) in a bounding box. Determine a bounding box R, initialize T and D Compute a random permutation s 1,s 2,..., s n of the elements of S for i = 1 to n do add s i and change T(S i - 1 ) into T(S i ) and D(S i -1 ) into D(S i ) Invariant : In the step i T(S i ) is correct trapezoidal map of S i and D(S i ) is an associated search structure.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann18 A Randomized Incremental Algorithm Input : A set of n non-crossing line segments Output : The trapezoidal map T(S) and a search structure D for T(S) in a bounding box. Determine a bounding box R, initialize T and D Compute a random permutation s 1,s 2,..., s n of the elements of S for i = 1 to n do Find the set  0,  1,...,  k of trapezoids in T properly intersected by s i. Remove  0,  1,...,  k from T and replace them by new trapezoids that appear because of the intersection of s i. Remove the leaves for  0,  1,...,  k from D and create leaves for the new Trapezoids. Link the new leaves to the existing inner nodes by adding some new inner nodes.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann19 Questions How can we find the intersecting trapezoids? How can T and D be updated a) if new segment intersects no previous trapezoid b) if new segment intersects previous trapezoids

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann20 Finding the Intersecting Trapezoids 00 sisi 11 22 33  j+1 is lower right neighbour of  j In T(S i ) exactly those trapezoids are changed, which are intersected by s i if rightp(  j ) lies above s i then Let  j+1 be the lower right neighbor of  j. else Let  j+1 be the upper right neighbor of  j Clue :  0 can be found by a query in the search structure D(S i -1 ) constructed in iteration stage i -1.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann21 New Segment Completely Contained in Trapezoid Decomposition t p q s T(S i-1 ) A C B D T(S i ) Search structure D(S i-1 ) t A B CD p q s 4 new trapezoids, -1 old trapezoid, search depth + 3

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann22 New Segment Intersects Previous Ones Decomposition p q t0 t1 t2 t3 s T(S i - 1 ) t0t1t2t3 D(S i - 1 ) Search structure F A B C E D T(S i ) D(S i ) A B C D E F sssq s 6 new trapezoids, – 4 old, depth + 2

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann23 Estimation of the Depth of the Search Structure Let S be a set of n segments in general position, q be an arbitrary fixed query point. Depth of D(S): worst case : 3n, average case : O(log n) Consider the path traversed by the query for q in D Let X i = # of nodes on the search path for q created in iteration step i. X i <= 3 P i = probability that there exists node on the search path for q that is created in iteration step i. E[X i ] <= 3 P i

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann24 Observation Iteration step i contributes a node to the search path for q exactly if  q (S i - 1 ), the trapezoid containing q in T(S i - 1 ), is not the same as  q (S i ), the trapezoid containing q in T(S i ) P i = Pr[  q (S i )   q (S i - 1 )]. If  q (S i ) is not same as  q (S i - 1 ), then  q (S i ) must be one of the trapezoids created in iteration i.  q (S i ) does not depend on the order in which the segments in S i have been inserted. Backwards analysis : We consider T(S i ) and look at the probability that  q (S i ) disappears from the trapezoidal map when we remove the segment s i.  q (S i ) disappears if and only if one of top(  q (S i )), bottom(  q (S i )), leftp(  q (S i )), or right(  q (S i )) disappears with removal of s i.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann25 Observation Prob[top(  q (S i ))] = Prob[bottom(  q (S i ))] = 1/i. Prob[leftp(  q (S i ))] disappears is at most 1/i. Prob[rightp(  q (S i ))] disappears is at most 1/i. P i = Pr[  q (S i )   q (S i - 1 )] = Pr[  q (S i )  T(S i - 1 )] <= 4/i

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann26 Analysis: Size of Search Structure Leaves in D are in one – to – one correspondence with the trapezoids in , of which there are O(n). The total number of nodes is bounded by : (# of inner nodes created in iteration step i) The worst case upper bound on the size of the structure

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann27 Analysis: Size of Search Structure Theorem: The expected number of nodes of D is O(n). Proof: The # of leaves is in O(n). Consider the internal nodes: X i = # of internal nodes created in iteration step i if  disappears from T(S i ) when s is removed from S i otherwise There are at most four segments that cause a given trapezoid to disappear

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann28 Analysis: Size of Search Structure The expected number of newly created trapezoids is O(1) in every iteration of the algorithm, from which the O(n) bound on the expected amount of storage follows.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann29 Summary Let S be a planar subdivision with n edges. In O(n log n) expected time one can construct a data structure that uses O(n) expected storage, such that for any query point q, the expected time for a point location query is O(log n).

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann30 Planar Point Location and Persistence A structure is ephemeral, if there are no mechanisms to revert to previous states. A structure is called persistent, if it supports access to multiple versions. Partially Persistent: All versions can be accessed, but only the newest version can be modified. Fully Persistent: All versions can be accessed and modified. Oblivious: The data structure yields no knowledge about the sequence of operations that have been applied to it, other than the final result of the operation.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann31 Planar point location - example

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann32 Planar Point Location: Sarnak-Tarjan Solution Idea: (partial) persistence –Query time: O(log n), Space: O(n) –Relies on Dobkin-Lipton construction and Cole’s observation. Dobkin-Lipton: –Partition the plane into vertical slabs by drawing a vertical line through each endpoint. –Within each slab, the lines are totally ordered. –Allocate a search tree per slab containing the lines, and with each line associate the polygon above it. –Allocate another search tree on the x-coordinates of the vertical lines.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann33 Dobkin-Lipton Construction Partition the plane into vertical slabs.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann34 Dobkin-Lipton Construction Locate a point with two binary searches. Query time: O(log n). Nice but space inefficient! Can cause O(n 2 ).

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann35 Worst-Case Example Θ(n) segments in each slabs, and Θ(n) slabs.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann36 Cole’s Observation A B Sets of line segments intersecting contiguous slabs are similar. Reduces the problem to storing a “persistent” sorted set.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann37 Improving the Space Bound Create the search tree for the first slab. Then obtain the next one by deleting the lines that end at the corresponding vertex and adding the lines that start at that vertex. Total number of insertions / deletions: –2n –One insertion and one deletion per segment.

Computational Geometry, WS 2007/08 Prof. Dr. Thomas Ottmann38 Planar Point Location and Persistence Updates should be persistent (since we need all search trees at the end). Partial persistence is enough (Sarnak and Tarjan). Method 1: Path-copying method; simple and powerful (Driscoll et al., Overmars). –O(n log n) space + O(n log n) preprocessing time. Method 2: Node-copying method –We can improve the space bound to O(n).