500 likes | 575 Vues
Point Location Strategies. Idit Haran 13.4.2005. Outline. Problem Description Other strategies Our strategy - Landmarks Benchmark Working with conic arrangements and some number theory Future work Summary. Point Location – Problem Description. Given
E N D
Point Location Strategies Idit Haran 13.4.2005
Outline • Problem Description • Other strategies • Our strategy - Landmarks • Benchmark • Working with conic arrangementsand some number theory • Future work • Summary
Point Location – Problem Description • Given • A map (which divides space of interest into regions) • A query point q (specified by coordinates) • Find the region of the map containing q • Requirement: • (segments/conics) • Fast query • Reasonable preprocess time • Good data structure (small space) INPUT OUTPUT
Other Strategies • Strategies implemented in CGAL: • Naïve • Walk along line • Random Incremental Algorithm (Trapezoidal) • Triangulation • Other strategies: • Persistent search trees
q Walk Along a Line
Vertical Decomposition • Assume a bounding box. • Extend the vertical line from each vertex upward and downward, until it touches another segment.
Trapezoidal Maps • Contains triangles and trapezoids. • Each trapezoid or triangle is determined by two vertices and two segments. • A refinement of the original subdivision.
Trapezoidal Maps • Theorem: In a trapezoidal map of n segments, there are at most 6n+4 vertices, and at most 3n+1 faces. • Proof: Vertices: • 2n– original vertices • 4n– 2 extensions for each original vertex. • 4 – Vertices of the bounding box. • Total: 6n+4 Faces: Similar
Trapezoidal Map Data Structure • For each Trapezoid store: • The vertices that define its right and left sides. • The (up to two) neighboring trapezoids on right and left. • (Optional) The neighboring trapezoids from above and below. This number might be linear, so we store only the leftmost of these.
D Q1 Q3 S3 B P3 A H E K Q2 J P1 S1 Q1 F P1 Q2 S2 A S1 Q3 S3 P2 C G P3 P2 S3 S2 S3 C S2 B J K H D E F G D The DAG Search Structure DAG = Directed Acyclic Graph
D Q1 Q3 S3 B P3 A H E K Q2 J P1 S1 Q1 F P1 Q2 S2 A S1 S3 Q3 P2 C G P3 P2 S3 S2 S3 C S2 B J D E F G D H K Using the DAG Search Structure
A B Persistent Search Trees (Sarnak-Tarjan)
Other Strategies - Summary More Algorithms on Delaunay Triangulations: The Delaunay Hierarchy, Jump & Walk
q Point location using Landmarks l
l l q q Choosing the Landmarks • Number of landmarks • Distribution of the landmarks in the arrangement: • Geometric entities of the arrangement: • Vertices • Edge Midpoints • Points inside the faces: Preprocess the arrangement into trapezoids and triangles • Independent of the arrangement geometry: Grid Random
v p Quality of the landmarks –Arrangement Distance (AD) • The Arrangement Distance (AD) between two points is the number pf faces in which the straight line segment that connect these points passes. • Arrangement Distance ≠ Euclidean Distance AD = 0 AD = 4 v p
Nearest Neighbor Search Structure • Input: • Landmarks • Query point q • Question: • Find nearest landmark l to the query point q • Answer: • Voronoi? - Again, point location problem !
4 6 l1 l9 7 l5 l6 8 l3 l2 5 9 10 3 l10 l8 l7 2 5 4 11 8 2 1 l4 11 1 3 9 10 6 7 Kd-trees • The kd-tree is a powerful data structure that is based on recursively subdividing a set of points with alternating axis-aligned hyper-planes. l1 l3 l2 l4 l5 l7 l6 l8 l10 l9
4 6 l1 7 8 5 9 10 3 2 1 11 2 5 4 11 8 1 3 9 10 6 7 Kd-trees - Construction l1 l9 l3 l2 l5 l6 l3 l2 l4 l5 l7 l6 l10 l8 l7 l8 l10 l9 l4
l1 q 2 5 4 11 8 1 3 9 10 6 7 Kd-trees - Query l1 4 6 l9 7 l3 l2 l5 l6 8 l3 l2 5 l4 l5 l7 l6 9 10 3 l10 l8 l7 l8 l10 l9 2 1 l4 11
Using Kd-trees with the landmarks • Quick: • Approximate nearest neighbor • Operations on points only • Round all points to double – Inexact computation. Final result is always exact !
Landmarks point location – Query Find Nearest Landmark Walk Decide on Startup Face Is query point in face ? Cross to Next Face No Yes Query Point Located
Decide on startup face: From vertex: Check all incident face to the vertex, and find the face in q’s direction. From Edge: Choose between the two incident face to the edge. From Face: This is the startup face. Find Nearest Landmark Walk Decide on Startup Face Is query point in face ? Cross to Next Face No l l l q q q Yes Query Point Located Landmarks point location – Query
Is query point in face? Count the number of edges on f’s boundary that are above q. Odd–q is inside f– found ! Even–need to cross to the next face. Find Nearest Landmark Walk Decide on Startup Face Is query point in face ? Cross to Next Face No Yes Query Point Located Landmarks point location – Query q
Cross to next face: Create a segment s from the landmark l to the query point q find the edge ein fthat intersects s flip eto get a new face f’. check if q is in f’… Find Nearest Landmark Walk Decide on Startup Face Is query point in face ? Cross to Next Face No l Yes Query Point Located Landmarks point location – Query f’ f e s q
Benchmark • Categories: Query & Preprocess time • Algorithms: Naïve, Walk, Triangle, RIC, 2 variants of landmarks algorithm. • Arrangements: random and degenerate. similar results. Random Onebig
Benchmark: Query Arrangements of random line segments Time in milliseconds
Benchmark: Preprocess Arrangements of random line segments Time in seconds Naïve and Walk algorithms do not require any specific preprocessing besides constructing the arrangement
Landmarks Algorithm Analysis Algorithm performance for varying number of random landmarks Results on an arrangement of 500 original segments, include ~56,000 edges and ~28,000 vertices
l v q p Landmarks Algorithm Analysis Algorithm performance vs. the type of landmarks used
Conics • Differences from segments • Bench results • Problems invoked, and their solutions • Cross to next face • The chord method • Number type theory
Conics – differences from segments • More complex curves (every operator on the curves takes longer) • Working with irrational number types • Basically the same methods work (except triangle)
Benchmark: Query Arrangements of random conic arcs Time in seconds
Find exact intersection point – a complex operation on conics ! Instead – use a simple method to decide what edge to flip. The idea: check vertical order on the left and right boundaries of the common x-range. e e q q s s L L x-range x-range Conics - Cross to Next Face e l l e s e s q q q s l x-range x-range x-range (a) (b) (c)
v’Properties: • Rational • On the conic • Close to the v The chord method:given a rationl point r on the conic, we can use the chord method to find v’ v’ r Problem 2:finding the intersection between vp and other curves What’s the problem with the vertices in an arrangement of conic arcs ? v p Problem 1:vertex may be complex irrational number (algebraic with degree 4)
The Chord Method Given: • Unit circle equation: x2 + y2 = 1 • The point (-1,0) is on the circle Find: • Rational point v’ close to v Solution: • Every line passing through this point is:y = t(x+1)where t is the slope of the line. • solve x2 + (t(x+1))2 = 1 x2+y2=1 v y=t(x+1) (-1,0)
One Rational Point • Apparently, not all conics with rational (or even integer) coefficients have rational points on them • For example, the circle x2 + y2 = 3does not have any rational points on it.
Does a conic have rational solution? Change the equation into homogenic coordinates: A:r x2 + s y2 + t xy + u x + v y + w = 0 ⇓(x→x/z, y→y/z)B: r x2 + s y2 + t xy + u xz + v yz + wz2 = 0 (Rational solution to A ⇔ Integer solution to B) Theory 1: if there is a solution for every congruence modulo pk for every prime p and every k, then there is a solution. Theory 2: Check only p=2 and p’s that divide the determinant of the equation coefficients. It is also sufficient to check only for k <= 3 + the largest exponent in the determinant factorization. 3 Variables
How to find a rational solution (if there is one) Theorem:if a conic equation has an integer solution, then the size of the solution (3F), where F is the sum of the absolute value of the coefficients.
What to do in practice? • Change the equation into homogenic coordinates • Go over all small pk and check if there is a solution modulo pk. • One NO – no solution. • All Yes – • search for pairs (x,y) so that |x|<3F, |y|<3F • check whether z is also an integer. • YES – we found a solution. • All NO – there is no solution. • Complexity: (3F)2
Euclid’s algorithm to approximate real number x into rational number r: If there are no rational points on the conic? x = a0 + 1/x1, x1>1, a0 - integer x1 = a1 + 1/x2, x2>1, a1 - interger … Finally, r = a0 + 1/(a1 + (1/ (a2 + ….) ) ) = pn/qn. If x is irrational, and the algorithm ends after n stages, then: | x - pn/qn | < 1/qn2
How to find ? • = the approximation value.should stay “close” to the vertex. • Find the minimum distance between v and other vertices.or • Find the minimum distance to all edges/vertices in the adjacent faces to the vertex.
Landmarks – future work • Rationalization of the vertices • More types of landmarks: • Combination of different landmarks types • Memory usage of the algorithms Halton sequenceHammersley Points
Summary • Point location using landmarks – • Fast query • Efficient preprocess, using inexact computation • Low memory • Simple to understand and implement • Many ways to improvements: different search structure, other choice of points