Dynamic Algorithms for Planar Point Location Kanat Tangwongsan in collaboration with Guy Blelloch, Umut Acar, Srinath Sridhar. Aladdin Center - Summer.

Slides:



Advertisements
Similar presentations
CS 225 Lab #11 – Skip Lists.
Advertisements

Computational Geometry
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.
Tight Bounds for Dynamic Convex Hull Queries (Again) Erik DemaineMihai Pătraşcu.
Dynamic Planar Convex Hull Operations in Near- Logarithmic Amortized Time TIMOTHY M. CHAN.
I/O-Algorithms Lars Arge Fall 2014 September 25, 2014.
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.
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
1 Hashing, randomness and dictionaries Rasmus Pagh PhD defense October 11, 2002.
More on Randomized Data Structures. Motivation for Randomized Data Structures We’ve seen many data structures with good average case performance on random.
1 Algorithmic Aspects of Searching in the Past Christine Kupich Institut für Informatik, Universität Freiburg Lecture 1: Persistent Data Structures Advanced.
External Memory Geometric Data Structures
A Linear Time Algorithm for the k Maximum Sums Problem By Gerth S. Brodal and Allan G. Jørgensen.
Fractional Cascading CSE What is Fractional Cascading anyway? An efficient strategy for dealing with iterative searches that achieves optimal.
Navigating Nets: Simple algorithms for proximity search Robert Krauthgamer (IBM Almaden) Joint work with James R. Lee (UC Berkeley)
9/5/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Plane Sweep Algorithms and Segment Intersection Carola Wenk.
November 4, Algorithms and Data Structures Lecture XIV Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Query Processing in Databases Dr. M. Gavrilova.  Introduction  I/O algorithms for large databases  Complex geometric operations in graphical querying.
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.
Multiversion Access Methods - Temporal Indexing. Basics A data structure is called : Ephemeral: updates create a new version and the old version cannot.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 16 – Persistenz und Vergesslichkeit.
I/O-Algorithms Lars Arge Aarhus University February 27, 2007.
Update 1 Persistent Data Structures (Version Control) v0v0 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 Ephemeral query v0v0 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 Partial persistence.
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,
Persistent Data Structures Computational Geometry, WS 2007/08 Lecture 12 Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen, Institut.
I/O-Algorithms Lars Arge Spring 2009 March 3, 2009.
Dynamic Point Location via Self-Adjusting Computation Kanat Tangwongsan Joint work with Guy Blelloch, Umut Acar, Srinath Sridhar, Virginia Vassilevska.
Geometric Data Structures Computational Geometry, WS 2007/08 Lecture 13 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan Joint work with Guy Blelloch and Umut Acar (TTI-C)
I/O-Algorithms Lars Arge Aarhus University March 5, 2008.
Fully Persistent B-Trees 23 rd Annual ACM-SIAM Symposium on Discrete Algorithms, Kyoto, Japan, January 18, 2012 Gerth Stølting Brodal Konstantinos Tsakalidis.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
Teaching Geometric Algorithms to Gracefully “Walk” and “Jump” Kanat Tangwongsan ALADDIN 2005 Joint work with Umut Acar, Guy Blelloch, and Jorge Vittes.
Hidden-Line Elimination Computational Geometry, WS 2006/07 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
1 Geometric index structures April 15, 2004 Based on GUW Chapter , [Arge01] Sections 1, 2.1 (persistent B- trees), 3-4 (static versions.
1 Persistent data structures. 2 Ephemeral: A modification destroys the version which we modify. Persistent: Modifications are nondestructive. Each modification.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Lecture 11 : More Geometric Data Structures Computational Geometry Prof. Dr. Th. Ottmann 1 Geometric Data Structures 1.Rectangle Intersection 2.Segment.
1 A Handy Data Structure Space-Efficient Finger Search on Degree-Balanced Search Trees Guy Blelloch, Bruce Maggs, Maverick Woo.
Important Problem Types and Fundamental Data Structures
Orthogonal Range Searching I Range Trees. Range Searching S = set of geometric objects Q = query object Report/Count objects in S that intersect Q Query.
Randomized Algorithms - Treaps
Advanced Algorithm Design and Analysis (Lecture 9) SW5 fall 2004 Simonas Šaltenis E1-215b
1 Geometric Intersection Determining if there are intersections between graphical objects Finding all intersecting pairs Brute Force Algorithm Plane Sweep.
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.
Skip Lists Mrutyunjay. Introduction ▪ Linked Lists Benefits & Drawbacks: – Benefits: – Easy Insert and Deletes, implementations. – Drawbacks: – Hard to.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
External Memory Algorithms for Geometric Problems Piotr Indyk (slides partially by Lars Arge and Jeff Vitter)
Presented by: Mohammad Shabbir Hasan REPRESENTING GEOMETRIC CONSTRUCTIONS AS PROGRAMS Author: Bruce Sherin School of Education and Social.
14/13/15 CMPS 3130/6130 Computational Geometry Spring 2015 Windowing Carola Wenk CMPS 3130/6130 Computational Geometry.
B-trees and kd-trees Piotr Indyk (slides partially by Lars Arge from Duke U)
Succinct Geometric Indexes Supporting Point Location Queries Prosenjit Bose, Eric Y. Chen, Meng He, Anil Maheshwari, Pat Morin.
Lars Arge Presented by Or Ozery. I/O Model Previously defined: N = # of elements in input M = # of elements that fit into memory B = # of elements per.
Sets of Digital Data CSCI 2720 Fall 2005 Kraemer.
CMPS 3130/6130 Computational Geometry Spring 2015
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
1 Point Location Strategies Idit Haran
Internal Memory Pointer MachineRandom Access MachineStatic Setting Data resides in records (nodes) that can be accessed via pointers (links). The priority.
UNC Chapel Hill M. C. Lin Geometric Data Structures Reading: Chapter 10 of the Textbook Driving Applications –Windowing Queries Related Application –Query.
Michal Balas1 I/O-efficient Point Location using Persistent B-Trees Lars Arge, Andrew Danner, and Sha-Mayn Teh Department of Computer Science, Duke University.
1 Data Organization Example 1: Heap storage management Maintain a sequence of free chunks of memory Find an appropriate chunk when allocation is requested.
Computational Geometry
Persistent Data Structures (Version Control)
Query Processing in Databases Dr. M. Gavrilova
CMPS 3130/6130 Computational Geometry Spring 2017
Range Queries on Uncertain Data
Algorithms and Data Structures Lecture XIV
Presentation transcript:

Dynamic Algorithms for Planar Point Location Kanat Tangwongsan in collaboration with Guy Blelloch, Umut Acar, Srinath Sridhar. Aladdin Center - Summer 2004

Planar Point Location Classical geometric retrieval problem.Classical geometric retrieval problem. Subdivide a Euclidean plane into polygons by line segments. (These segments intersect only at their endpoints).Subdivide a Euclidean plane into polygons by line segments. (These segments intersect only at their endpoints). Identify which polygon the query point (red spot) is in.Identify which polygon the query point (red spot) is in.

Static vs Dynamic Static: fixed structureStatic: fixed structure Dynamic: possible insertion/deletion of segmentsDynamic: possible insertion/deletion of segments

Motivation Applications of Point LocationApplications of Point Location –Geographic Information Systems (GIS) –User Interface (Mouse/Windows relation) –Graphics and CAD/CAM –etc. Why dynamic?Why dynamic? –Interesting –Heavy use in circuit layout, computer graphics, etc.

Some Previous Work Many solutions to this problem:Many solutions to this problem: –[Kirkpatrick 1983]; [Edelsbrunner, Guibas 1986]; [Overmars 1985]; [Sarnak, Tarjan 1986], etc. Various approaches and techniques: persistent trees, segment trees, etc.Various approaches and techniques: persistent trees, segment trees, etc. See Chiang and Tamassia’s “Dynamic Algorithms in Computational Geometry” for pointers to these.See Chiang and Tamassia’s “Dynamic Algorithms in Computational Geometry” for pointers to these. Close look at Sarnak-Tarjan solution.Close look at Sarnak-Tarjan solution.

Sarnak-Tarjan Solution Idea: (partial) persistenceIdea: (partial) persistence – O(log n) -query-time, O(n)- space solution. Static: unable to insert/delete segments.Static: unable to insert/delete segments. Relies on Cole’s observation and Dobkin-Lipton construction.Relies on Cole’s observation and Dobkin-Lipton construction.

Dobkin-Lipton Construction Draw a vertical line through each vertex, splitting the plane into vertical slabs.Draw a vertical line through each vertex, splitting the plane into vertical slabs.

Locate a point with two binary searches - O(log n)- query time.Locate a point with two binary searches - O(log n)- query time. Nice but space inefficient – can cause O(n 2 ).Nice but space inefficient – can cause O(n 2 ).

 (n) segments in each slabs, and  (n) slabs.  (n) segments in each slabs, and  (n) slabs. If storing a tree for each slab, order n 2 space usage. If storing a tree for each slab, order n 2 space usage.

time A B Sets of line segments intersecting contiguous slabs are similar.Sets of line segments intersecting contiguous slabs are similar. Cole’s Observation

Reduces the problem to storing a “persistent” sorted set.Reduces the problem to storing a “persistent” sorted set.

Some Notions of Persistency Ephemeral data structure: cannot go back in time.Ephemeral data structure: cannot go back in time. Persistent data structure: keeps all previous versions accesible.Persistent data structure: keeps all previous versions accesible. –Partial persistence Various solutions: see e.g. Driscoll et al., Overmars, etc.Various solutions: see e.g. Driscoll et al., Overmars, etc. Trees:Trees: –“path-copying” is simple and powerful –Native to functional programming languages e.g. ML, Scheme, etc.

Path-copying illustrated Insert Version Dictionary

Friendly “Dynamic/Stability” 101 What is a “Dynamic Algorithm”?What is a “Dynamic Algorithm”? –Maintains its input/output relationship as the input changes. Some Words of the DaySome Words of the Day –to “dynamize” an algorithm is to make it dynamic. –“dynamization” is the process of making an algorithm dynamic. “stable” = a change to the input does not change the execution trace (function call tree) too dramatically.“stable” = a change to the input does not change the execution trace (function call tree) too dramatically.

Dynamizing Persistent Data Structure Acar et al (SODA 2004) shows a way to dynamize static algorithms.Acar et al (SODA 2004) shows a way to dynamize static algorithms. The efficiency depends on “stability”.The efficiency depends on “stability”.

Traditional linked-list is bad for look-up [ O(n) ].Traditional linked-list is bad for look-up [ O(n) ]. An additional layer saves a lot of “probing”.An additional layer saves a lot of “probing”. Achieve O(log n) by adding a few more layers.Achieve O(log n) by adding a few more layers. –Say with n/4, n/8 and so forth nodes. –Sadly, maintaining this perfect structure is hard. Digression #1: Skip Lists

Pugh[1990] invented “skip lists”.Pugh[1990] invented “skip lists” ! ! ! ! ! The level of a node is drawn from the geometric distribution i.e. a node has level k - 1 with probability 1 / 2 kThe level of a node is drawn from the geometric distribution i.e. a node has level k - 1 with probability 1 / 2 k Skip Lists: expected O(n) -space, and expected O(log n) insert/delete/look-up.Skip Lists: expected O(n) -space, and expected O(log n) insert/delete/look-up.

Our Unified Goals Dynamize Sarnak-TarjanDynamize Sarnak-Tarjan –use the idea of persistent data structure and be able to support insertion/deletion/lookup on-the-fly. “stability” is the key to efficiency.“stability” is the key to efficiency. Treaps and skip lists looks promising.Treaps and skip lists looks promising. “path-copying” as the starting point.“path-copying” as the starting point. Benchmark against existing techniques.Benchmark against existing techniques.

Questions?

Thank you!