K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.

Slides:



Advertisements
Similar presentations
Polygon Triangulation
Advertisements

CS 450: COMPUTER GRAPHICS FILLING POLYGONS SPRING 2015 DR. MICHAEL J. REALE.
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.
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.
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.
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
Lecture 3: Polygon Triangulation Computational Geometry Prof. Dr. Th. Ottmann Triangulation (Naive)
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
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.
Overlay of Two Subdivisions
AA Trees another alternative to AVL trees. Balanced Binary Search Trees A Binary Search Tree (BST) of N nodes is balanced if height is in O(log N) A balanced.
Fractional Cascading CSE What is Fractional Cascading anyway? An efficient strategy for dealing with iterative searches that achieves optimal.
Intersections. Intersection Problem 3 Intersection Detection: Given two geometric objects, do they intersect? Intersection detection (test) is frequently.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
17. Computational Geometry Chapter 7 Voronoi Diagrams.
2-dimensional indexing structure
Discussion #36 Spanning Trees
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
1 Red-Black Trees. 2 Black-Height of the tree = 4.
Space Efficient Point Location forTriangulations.
Trees and Red-Black Trees Gordon College Prof. Brinton.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Voronoi Diagrams.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Lecture 2 Chapter 2: Polygon Partitioning.
Polygon Triangulation Computational Geometry, WS 2006/07 Lecture 8, Part 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
General Trees and Variants CPSC 335. General Trees and transformation to binary trees B-tree variants: B*, B+, prefix B+ 2-4, Horizontal-vertical, Red-black.
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.
Brute-Force Triangulation
Binary Trees Chapter 6.
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
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
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.
Chapter Tow Search Trees BY HUSSEIN SALIM QASIM WESAM HRBI FADHEEL CS 6310 ADVANCE DATA STRUCTURE AND ALGORITHM DR. ELISE DE DONCKER 1.
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.
MA/CSSE 473 Day 12 Insertion Sort quick review DFS, BFS Topological Sort.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
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.
Chapter 11 Heap. Overview ● The heap is a special type of binary tree. ● It may be used either as a priority queue or as a tool for sorting.
Heapsort. Heapsort is a comparison-based sorting algorithm, and is part of the selection sort family. Although somewhat slower in practice on most machines.
1 Triangulation Supplemental From O’Rourke (Chs. 1&2) Fall 2005.
Computational Geometry Piyush Kumar (Lecture 10: Point Location) Welcome to CIS5930.
Rooted Tree a b d ef i j g h c k root parent node (self) child descendent leaf (no children) e, i, k, g, h are leaves internal node (not a leaf) sibling.
UNC Chapel Hill M. C. Lin Computing Voronoi Diagram For each site p i, compute the common inter- section of the half-planes h(p i, p j ) for i  j, using.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
1 Overview (Part 1) Background notions A reference framework for multiresolution meshes Classification of multiresolution meshes An introduction to LOD.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Polygon Triangulation
CMPS 3130/6130 Computational Geometry Spring 2017
3. Polygon Triangulation
COMP261 Lecture 23 B Trees.
Computational Geometry
AA Trees.
An Introduction to Computational Geometry
Priority Queues and Heaps
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
B+-Trees.
Query Processing in Databases Dr. M. Gavrilova
CMPS 3130/6130 Computational Geometry Spring 2017
Polygon Triangulation
B-Tree Insertions, Intro to Heaps
Overlay of Two Subdivisions
Presentation transcript:

K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush

Overview Improvement on Gap Tree and K-structure –Faster point location Encompasses Separating Chain –Better storage Designed for point location in polygonal maps

K-structure By Kirkpatrick First triangulate polygonal map –Bound with triangle (XYZ) –Then triangulate with plane sweep Then build triangle hierarchy for searching –Replace group of triangles by smaller group of triangles –Remove vertices –Simplification

Triangulation with Plane Sweep Sweep red line from left to right in x Encounter new vertex –Create edges to all previous vertices when they do not intersect existing edges Introduces new edges XA and YA (dashed)

Building Hierarchy Vertices are independent if no edge between them Find a maximal set of mutually independent vertices in interior –From the edge-adjacency list Remove and retriangulate –bottom up simplification Only remove vertices with 11 edges or less because then the retriangluation is bounded Continue simplifying layers until only have triangle XYZ left Regions a-k will be linked to regions in next higher level

Simplification Hierarchy Remove vertices B,D Retriangulate

Simplification Hierarchy Remove vertices B,D Retriangulate Remove vertex A Retriangulate

Simplification Hierarchy Remove vertices B,D Retriangulate Remove vertex A Retriangulate Remove vertex C Retriangulate

Simplification Hierarchy Remove vertices B,D Retriangulate Remove vertex A Retriangulate Remove vertex C Retriangulate Remove vertex E Done

Point Location in K-structure Descend hierarchy of regions Check each set of triangles in next level Triangles grouped into polygons when not disjoint sets below –Extra triangles to check, but disjoint regions Each level guaranteed to shrink to less than 23/24 th of the previous levels (# of vertices) –Since only remove vertex if has eleven or less edges and mutually independent

Separating Chain Avoids many extra edges –Uses regularization instead of triangulation –Builds Y-Monotone Subdivision Hierarchy based on groups of regions, not triangles –Polygonal regions allowed, not just triangular, so fewer Original implementation slower than K-structure –Faster when using Layered DAG Improved storage using Gap Tree and Layered DAG

Y-Monotone Subdivision No vertical line intersect a region’s boundary more than twice –Creates polygons that are convex in x, not in y Every vertex has edge to left and right in x Regularization creates a Y-Monotone Subdivision from a polygonal map –Adds endpoints at extremes in x –And adds edges –To get edges to the left and right of each vertex –To ensure that regions with boundaries crossed more than twice are broken up

Regularization of Polygonal Maps Insert vertices a,d at extreme edges in x Add edges CD and JK, aA, aB, Ld, Md to have edges to left and right of every vertex Broken lines are added edges Not as many extra edges as triangulation Polygonal Map Y-Monotone Subdivision

Region Ordering Region number higher than region below (compared in y) Only partial ordering (region 5 and 6 could have different numbers) Can be used to create region tree Need to determine separators S i, set of edges that reach from a to d (all x) Ordering used later for traversing the tree in point location Region Tree

Finding Separating Chains Boundary between regions as list of vertices S 2 is between (0,1) and (2,3,4,5,6,7) S 2 is then aACEIKMd and S 7 is aBCDGJKLd

Separating Chain Tree Region tree with separating chains stored in non-leaf nodes Storage can be O(n 2 ) since storing edges multiple times

Gap Tree Edges stored with first separator that contains it, not lower levels Edges only stored once Reduced storage over Chain Tree Notation shows vertices Chain Tree Gap Tree

Point Location in Chain Tree or Gap Tree Start at root with valid regions (0-7) Search chain for segment with right x interval (EI) Check if above or below segment (below) Update valid regions (1 stored with edge EI as region below) to (0,1) Move to least common ancestor of valid regions, possibly skipping levels, check chain (skip to S 1 as it is the least common ancestor of regions 0- 1)

Gap Tree Search Performance Gap Tree with m edges searches each separating chain for correct x interval, O(log(m)) since sorted n separating chains in gap tree, so search log(n) separating chains at worst Total search then O(log(m)log(n)) ~O(log 2 (m)) Layered DAG breaks x axis into intervals to speed up search, achieving O(log(m)) –Don’t redo search for correct x interval

Layered DAG Avoids searching separating chains with hierarchy Pointers from x-interval of one chain to the next Avoid O(m 2 ) space by allowing two child intervals –If only one child per parent would get worst case O(m 2 ) space –For good worst-case space (linear in m edges) instead of m 2 need to have splits –But limit parent interval to two child intervals –Adds complexity to the structure, requires bottom-up construction Combines edges, gaps, and vertices in representation By Edelsbrunner, Guibas, and Stolfi

Building a Layered DAG Start with lowest levels of the gap tree (L1, L3, L5, L7) Insert gaps (dashed squares) and edges (solid squares) separated by vertices (circles) Links from vertices to edges and gaps (arrows) Bottom-up construction Edges and gaps from higher levels will link down

Building a Layered DAG Next level is separating chain but only two intervals in child allowed per parent interval (L2) –Edge or gap replicated (EI) –Take alternating vertices up to next level to guarantee only 2 child intervals Include links from parent interval to child interval(s) –Pointer to vertex if two child intervals since need to check which interval –Otherwise pointer to edge/gap

Build a Layered DAG Iteratively build up, maintaining only two child intervals per parent interval Maintain accurate names from the separating chain (AC in red) not names from vertices (would have been BC) Note that adding alternating vertices from children is only one way to guarantee two child to one parent –Other methods would simplify structure but complicate build

Point Location in DAG Can use binary tree to access root separating chain –Compare against x-value of vertices to traverse binary tree Trace down through links in Layered DAG, comparing with the edges to traverse, comparing against x value of vertices if two child edges

Summary Avoid extra edges –Use regularization instead of triangulation –Like Gap Tree, Layered DAG Hierarchy based on polygons, not triangles –Fewer regions if allowed to be polygonal, not just triangular Need fast Hierarchical implementation –Separating Chains and Gap Tree hierarchy requires redundant search –Faster when using Layered DAG Improve storage by storing only once –Gap Tree and Layered DAG