Point Location in Delaunay Triangulations. Inspiration: Graphics software wants to light a model and needs to know which face a light ray hits You moved.

Slides:



Advertisements
Similar presentations
Chapter 5: Tree Constructions
Advertisements

Heuristic Search techniques
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.
Chapter 4: Trees Part II - AVL Tree
AVL Trees COL 106 Amit Kumar Shweta Agrawal Slide Courtesy : Douglas Wilhelm Harder, MMath, UWaterloo
Dynamic Planar Convex Hull Operations in Near- Logarithmic Amortized Time TIMOTHY M. CHAN.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Greedy Algorithms Greed is good. (Some of the time)
Lecture 24 Coping with NPC and Unsolvable problems. When a problem is unsolvable, that's generally very bad news: it means there is no general algorithm.
Hierarchical Voronoi diagrams for spatial data indexing and paging Christopher Gold Dept. Computing & Mathematics, University of Glamorgan, Pontypridd.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.
Junction Trees: Motivation Standard algorithms (e.g., variable elimination) are inefficient if the undirected graph underlying the Bayes Net contains cycles.
SASH Spatial Approximation Sample Hierarchy
1cs542g-term Notes. 2 Meshing goals  Robust: doesn’t fail on reasonable geometry  Efficient: as few triangles as possible Easy to refine later.
2-dimensional indexing structure
Fall 2007CS 2251 Trees Chapter 8. Fall 2007CS 2252 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information.
Space Efficient Point Location forTriangulations.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
B + -Trees (Part 1). Motivation AVL tree with N nodes is an excellent data structure for searching, indexing, etc. –The Big-Oh analysis shows most operations.
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
R-Trees 2-dimensional indexing structure. R-trees 2-dimensional version of the B-tree: B-tree of maximum degree 8; degree between 3 and 8 Internal nodes.
Compact Representations of Separable Graphs From a paper of the same title submitted to SODA by: Dan Blandford and Guy Blelloch and Ian Kash.
The Art Gallery Problem
The Art Gallery Problem
Chapter 3: Cluster Analysis  3.1 Basic Concepts of Clustering  3.2 Partitioning Methods  3.3 Hierarchical Methods The Principle Agglomerative.
Binary Trees Chapter 6.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
Data Structures for Computer Graphics Point Based Representations and Data Structures Lectured by Vlastimil Havran.
Minimal Spanning Trees What is a minimal spanning tree (MST) and how to find one.
B-Tree. B-Trees a specialized multi-way tree designed especially for use on disk In a B-tree each node may contain a large number of keys. The number.
ICS 220 – Data Structures and Algorithms Week 7 Dr. Ken Cosh.
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.
I/O-Efficient Graph Algorithms Norbert Zeh Duke University EEF Summer School on Massive Data Sets Århus, Denmark June 26 – July 1, 2002.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Advanced Algorithm Design and Analysis (Lecture 13) SW5 fall 2004 Simonas Šaltenis E1-215b
Fundamentals of Algorithms MCS - 2 Lecture # 7
Multi-way Trees. M-way trees So far we have discussed binary trees only. In this lecture, we go over another type of tree called m- way trees or trees.
BackTracking CS335. N-Queens The object is to place queens on a chess board in such as way as no queen can capture another one in a single move –Recall.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
Computer Algorithms Submitted by: Rishi Jethwa Suvarna Angal.
Lossless Compression CIS 465 Multimedia. Compression Compression: the process of coding that will effectively reduce the total number of bits needed to.
Games. Adversaries Consider the process of reasoning when an adversary is trying to defeat our efforts In game playing situations one searches down the.
Computational Geometry Piyush Kumar (Lecture 10: Point Location) Welcome to CIS5930.
B + -Trees. Motivation An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations.
An optimal dynamic spanner for points residing in doubling metric spaces Lee-Ad Gottlieb NYU Weizmann Liam Roditty Weizmann.
File Organization and Processing Week Tree Tree.
Spatial Indexing Techniques Introduction to Spatial Computing CSE 5ISC Some slides adapted from Spatial Databases: A Tour by Shashi Shekhar Prentice Hall.
R-Trees: A Dynamic Index Structure For Spatial Searching Antonin Guttman.
Week 10 - Friday.  What did we talk about last time?  Graph representations  Adjacency matrix  Adjacency lists  Depth first search.
AVL Trees and Heaps. AVL Trees So far balancing the tree was done globally Basically every node was involved in the balance operation Tree balancing can.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
1 Point Location Strategies Idit Haran
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
Navigation Piles with Applications to Sorting, Priority Queues, and Priority Deques Jyrki Katajainen and Fabio Vitale Department of Computing, University.
Polygon Triangulation
Mesh Generation, Refinement and Partitioning Algorithms Xin Sui The University of Texas at Austin.
A* Reference: “Artificial Intelligence for Games”, Ian Millington.
Randomized Incremental Algorithm for Delaunay Triangulation (DT) CS Gates 219 October 19, 3:00 – 4:20 Richard Zhang (for Leo G.) Disclaimer: All.
BackTracking CS255.
An Introduction to Computational Geometry
B+-Trees.
B+-Trees.
B+-Trees.
Localizing the Delaunay Triangulation and its Parallel Implementation
Backtracking and Branch-and-Bound
CSC 380: Design and Analysis of Algorithms
Presentation transcript:

Point Location in Delaunay Triangulations

Inspiration: Graphics software wants to light a model and needs to know which face a light ray hits You moved the mouse and the windowing system would like to know which window has focus now. Given latitude and longitude you need to determine which country/city/neighborhood contains your destination

The problem at hand Input: 1) A set of n points in R 1) A set of n points in R 2 (beforehand) 2) Additional points called query points The task: Create a delaunay triangulation using the initial set of points as an offline preprocessing step. Then for each query point, return the triangle which contains it. And make the data fit in O(n) bits with query times of O(log n).

Point location problems Before going into the specifics there are many variants of this problem and I am only tackling a comparatively simple one. Some of the choices here: Dimension: 2d? The windows 2d surface in 3d? The graphics mesh K-d volumes in n-d space? Someone probably has a use for this too.

Point location problems Faces: Triangles? Trapezoids? Any polygon? Input: Are we initially given the set of polygons to use? Or only the edges? Or the points? Partial Input: Sometimes we are allowed to add additional points to aid in making the polygons. Such points are called steiner points and they are generally added to try and create some features which were not present in the original polygon set. For example creating polygons bounded in size or minimum angle.

Back to our case though. What is a delaunay triangulation? Input: 1) A set of n points in R 1) A set of n points in R 2 2) Additional points called query points The task: Create a delaunay triangulation using the initial set of points. Then for each query point, return the triangle which contains it.

Delaunay Triangulations A triangulation of a set of points is a planar graph which connects all the points and in which all faces are triangles. Given the same set of points there are usually many different triangulations. The delaunay triangulation is (almost always) Given the same set of points there are usually many different triangulations. The delaunay triangulation is (almost always) uniquely defined as one with a number of special properties…

Delaunay Triangulation properties The circumcircle of every triangle contains no other points. Every line is also contained within some circle which contains no other points. This triangulation maximizes the minimum angle found in any triangle over all other triangulations. This triangulation is unique … except when 4 or more points are co-circular. This is often avoided by ordering the points and defining later points to be outside the circle defined by earlier points. Thus we assume this case does not occur.

A brief tour of (some of) the algorithms available to do this task. 1)An algorithm which ‘walks’ through the triangulation - Mucke, Saias, Zhu 96 2) An algorithm which looks through the history of operations which created the triangulation - Boissonat and Teillaud 86 3) An algorithm which searches through a DAG of triangles where larger triangles at the top contain smaller child triangles - Mulmuley 91 4) A hybrid algorithm that does both multi-level refinement like 3 and walking like 1. - Devillers 98

1) A Walking algorithm An algorithm using only the final triangulation: a) Choose n 1/3 random points beforehand and store which triangles they are in. b) When given a query point find which of the random points is closest. c) Use line-side tests to visit each triangle from the random point to the query point.

1) A Walking algorithm A simple implementation uses O(n) pointers though Guy’s recent paper on graph compression can be directly applied in this case to get O(n) bits Query time is data-dependent. Usually close to n 1/3 but some pathological cases can be far worse. This algorithm typically is competitive with the best O(log n) algorithms on small problems (n < 1,000) because the constants are small.

2) Incremental history-based Randomly order the points, then insert the points one by one, each time updating the triangulation so that it is delaunay. We can do this by: a)Locating the triangle containing the point to be added b)Inserting the point and connecting it to nearby vertices c) Making ‘edge flips’ to return the triangulation to being delaunay.

2) Incremental history-based a)Locating the triangle containing the point to be added … save this one for the moment b) Inserting the point and connecting it to nearby vertices Start with this: and end with this:

2) Incremental history-based c) Making ‘edge flips’ to return the triangulation to being delauney. Not delauney: edge flip fixes this: Must test adjacent triangles to any triangle which changes. Initially this is just the three incident on the new point, but edge flips can propagate into the neighboring triangles. Provably terminates.

2) Incremental history-based We can keep a history of all triangles added and all edge flips made in a DAG. Each node will represent a triangle present at some phase of construction. When a new point is added the node for its containing triangle will point at 3 child nodes representing the subdivided triangle. When an edge flip occurs the two adjacent triangles will each point to the two new triangles.

2) Incremental history-based a)Locating the triangle containing the point to be added Location is performed by starting with the root node (triangle) and then testing which child triangle the point is contained in. Repeat all the way down the tree, and whatever leaf you wind up with is the containing triangle in the current triangulation.

2) Incremental history-based Space is expected O(n) pointers. Experimentally this needs about twice as much memory as what would be needed to just store the final triangulation, but can fluctuate depending on the exact insertion order used. Queries can be performed in expected O(log n) time.

3) A Hierarchical Algorithm This algorithm stores a set of delaunay triangulations, with varying levels of detail. At the lowest level it simply takes all the points and triangulates them. For each successive level it takes only a random sample of points from the current level.

3) A Hierarchial Algorithm Then it links triangles with every triangle they overlap at the lower level. To locate a point in the final triangulation, locate it at the highest level, then search through all the children to find the proper triangle at the next level.

3) A Hierarchial Algorithm Space is again O(n) pointers Here however the space is not dependent upon the insertion order used. Queries take O(log 2 n) time (and a variant of this algorithm can do it in O(log n) ) Its also much easier to add and delete points from this data structure

4) The multi-level hybrid Here again we use random sub-sampling to select progressively smaller subsets of the input points and triangulate them. However rather than linking triangles between levels, the points are linked. The algorithm then proceeds to find the nearest input point to the query at every level.

4) The multi-level hybrid To proceed between levels a)Take the nearest input point to the query in the coarse level and move to an adjacent triangle at the finer level

4) The multi-level hybrid To proceed between levels b) Walk to the triangle containing the query as in the first algorithm

4) The multi-level hybrid To proceed between levels c) Find the nearest neighbor to query point at this level. It is not necessarily in the current triangle, but very rarely is it many triangles away. At the final level, just use the triangle and skip this step.

4) The multi-level hybrid This algorithm also takes O(n) pointers. It winds up being very little more than just storing the full triangulation, because the typical ratio of sizes between levels is 1:40. The query time is O(log n) and by using the random start point technique at the top level makes this algorithm competitive for all problem sizes.

But how to get to O(n) bits? The most promising avenue (at the moment) appears to be compressing the data structure used by a pre-existing algorithm in a manner which does not affect the query time. The most likely candidate algorithm would be the last, as it is fast, and not an overly complicated data structure. Graph compression has been studied considerably as well, thus many types of graphs are already known to be compressible to O(n) bits.

But how to get to O(n) bits? Triangulations have known representations as small as 3.67 bits/triangle worst case. Unfortunately these representations don’t support finding neighbors in constant time, so they would ruin the query times. Another issue is that the multi-level schemes must maintain links between the different levels of triangulation (either triangle to triangle, or point to point) which also must be compressed.

But how to get to O(n) bits? Dan Blandford, Guy Blelloch, and Ian Kash published a paper last summer that shows how to compress any ‘separable’ graph in O(n) bits while maintaining support for common operations in O(1) time. Here separable means roughly that you can make a vertex cut of O(n c ) vertices for c < 1 such that the graph is divided into two parts, each having at least 1/3 of the vertices. Furthermore you must be able to recursively do this on any sub-graph.

But how to get to O(n) bits? All planar graphs are separable with only O(n 1/2 ) vertices, thus compressing each level separately would be no trouble. The compression algorithm would label vertices at each level in such a way that neighboring vertices are close in number. However if the label assignments are not correlated somehow between levels then it becomes impossible to link them in a compressed form (there are n cn functions from cn points to n points, optimal compression wouldn’t be good enough)

But how to get to O(n) bits? Thus some of the main questions I am working on right now… If all the triangulation levels and the links between are combined into one large graph, is it (provably) separable? Or is there a way of finding good vertex cuts which work at every level simultaneously? This would allow the same vertex numbering to be used at each level. Is there a way to number the vertices such that it doesn’t break the graph compression algorithm, and leaves enough similarity between levels that only O(n) bits can encode all the links?