Point Location Strategies - PowerPoint PPT Presentation

About This Presentation
Title:

Point Location Strategies

Description:

Point Location Strategies Idit Haran 13.4.2005 – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 49
Provided by: mathTauA5
Category:

less

Transcript and Presenter's Notes

Title: Point Location Strategies


1
Point Location Strategies
  • Idit Haran
  • 13.4.2005

2
Outline
  • Problem Description
  • Other strategies
  • Our strategy - Landmarks
  • Benchmark
  • Working with conic arrangementsand some number
    theory
  • Future work
  • Summary

3
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
4
Other Strategies
  • Strategies implemented in CGAL
  • Naïve
  • Walk along line
  • Random Incremental Algorithm (Trapezoidal)
  • Triangulation
  • Other strategies
  • Persistent search trees

5
Naïve Approach (CGAL)
No need for any preprocess, just go over all elements and find the closest Idea
No preprocess.Storage space 0. Preprocess memory
Go over all vertices, and check if q equals a vertex Go over all halfedges and check if q is on edge Go over all halfedges and find the closest edge upwards. O(n) query time Query
6
Walk Along a Line
start from a known place in the arrangement and walk from there towards the query point through a straight line Idea
No preprocess.Storage space 0. Preprocess memory
The implementation in CGAL Start from the unbounded face Walk down to the point in through a vertical line Asymptotically O(n) time In practice quite good, easy to maintain Query
7
Random Incremental Algorithm (Trapezoidal)
Use hierarchy data structure that allows a logarithmic query time Idea
Add the segments one by one randomly. For each segment Update the trapezoidal map. Update the DAG. O(nlogn) time, O(n) space Preprocess memory
Search for the trapezoid in the DAG O(log n) time, if the segments were added randomly Query
8
Vertical Decomposition
  • Assume a bounding box.
  • Extend the vertical line from each vertex upward
    and downward, until it touches another segment.

9
Trapezoidal Maps
  • Contains triangles and trapezoids.
  • Each trapezoid or triangle is determined by two
    vertices and two segments.
  • A refinement of the original subdivision.

10
Trapezoidal Maps
  • Theorem In a trapezoidal map of n segments,
    there are at most 6n4 vertices, and at most 3n1
    faces.
  • Proof
  • Vertices
  • 2n original vertices
  • 4n 2 extensions for each original vertex.
  • 4 Vertices of the bounding box.
  • Total 6n4
  • Faces Similar

11
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.

12
The DAG Search Structure
DAG Directed Acyclic Graph
13
Using the DAG Search Structure
14
Triangulation
Use a working algorithm on triangulation and test it on the arrangement (only segments !)(triangles are much simpler than faces) Idea
Triangulate the planar map O(nlogn) time, O(n) space Keep relations between planar map vertices and triangulation Preprocess memory
Find the triangle q is located in The locate is done by walk from an arbitrary vertex.They claim that it takes time O(n) in the worst case, but only O(sqrt(n)) on average if the vertices are distributed uniformly at random. Find the face in the arrangement that contains this triangle Query
15
Persistent Search Trees (Sarnak-Tarjan)
Divide the arrangement into slabs, like in sweep, and use logarithmic search Idea
Draw a vertical line through each vertex, splitting the plane into vertical slabs. Observations sets of line segments intersecting - contiguous slabs are similar. Reduces the problem to storing a persistent sorted set. O(n log n) time, O(n log n) space Preprocess memory
Find the slab Find the two segment above and below q O(log n) time. Query
16
Other Strategies - Summary
Persistent Triangle RIC Walk Naïve
O(nlogn) O(n) O(nlogn) O(n) O(nlogn) O(n) none none Preprocess memory
O(logn) O(sqrt(n)) O(n) O(logn) lt O(n) O(n) Query
Good locate time Quite good locate time Good locate time Simple and reasonable query time Simple Benefits
Long preprocess, large memory Long preprocess Complicated data structure, bugs, long preprocess, Very large memory needs Query time not good enough Bad query time Drawbacks
More Algorithms on Delaunay Triangulations The
Delaunay Hierarchy, Jump Walk
17
Point location using Landmarks
Special points, landmarks are stored in a nearest neighbor search structure (e.g., kd-trees). During query time, walk from the landmarks towards the query point. Idea
Choose the landmarks, and locate them in the arrangement. Store the landmarks in a nearest neighbor search structure. Preprocess
Given a query point q, find the closest landmark l to the query point q, using the search structure. walk from l to q. Query
l
18
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
19
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
20
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 !

21
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
l9
l10
22
Kd-trees - Construction
l1
l9
l3
l2
l5
l6
l3
l2
l4
l5
l7
l6
l10
l8
l7
l8
l9
l10
l4
23
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
l9
l10
2
1
l4
11
24
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 !

25
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
26
Landmarks point location Query
  • Decide on startup face
  • From vertex
  • Check all incident face to the vertex, and find
    the face in qs direction.
  • From Edge
  • Choose between the two incident face to the edge.
  • From Face
  • This is the startup face.

27
Landmarks point location Query
  • Is query point in face?
  • Count the number of edges on fs boundary that
    are above q.
  • Odd q is inside f found !
  • Even need to cross to the next face.

q
28
Landmarks point location Query
  • Cross to next face
  • Create a segment s from the landmark l to the
    query point q
  • find the edge e in f that intersects s
  • flip e to get a new face f.
  • check if q is in f

f
e
f
s
q
29
Benchmark
  • Categories Query Preprocess time
  • Algorithms Naïve, Walk, Triangle, RIC, 2
    variants of landmarks algorithm.
  • Arrangements random and degenerate. similar
    results.

Random
Onebig
30
Benchmark Query Arrangements of random line
segments
Time in milliseconds
Landmarks (random) Landmarks (vertices) RIC Triangle Walk Naïve Number of Original Segments Number of Edges
0.13 0.20 0.05 0.2 0.31 0.28 10 35
0.23 0.31 0.20 1.7 3.9 8.9 100 2301
0.24 0.32 0.26 3.6 8.7 30.7 200 9548
0.26 0.35 0.33 8.6 24.3 163.4 500 56070
0.26 0.35 N/A 12.07 35.1 329.6 700 114303
0.27 0.36 N/A 18.14 50.5 685.7 1000 235553
31
Benchmark Preprocess Arrangements of random
line segments
Time in seconds
Algorithm Specific Preprocess Algorithm Specific Preprocess Algorithm Specific Preprocess Algorithm Specific Preprocess Common Preprocessing Constructing the Arrangement Number of Original Segments Number of Edges
Landmarks (random) Landmarks (vertices) RIC Triangle Common Preprocessing Constructing the Arrangement Number of Original Segments Number of Edges
0.03 lt0.001 0.016 0.036 0.004 10 35
2.3 lt0.001 4.04 11 1.2 100 2301
10 lt0.001 20 80 5.4 200 9548
68 lt0.001 153 990 30 500 56070
166 1 N/A 1463 31 700 114303
352 2 N/A 7984 65 1000 235553
Naïve and Walk algorithms do not require any
specific preprocessing besides constructing the
arrangement
32
Landmarks Algorithm Analysis
Algorithm performance for varying number of
random landmarks
Queries with AD 0 Query Time msec Net Preprocessing Time sec Total Preprocessing Time sec Number of Random Landmarks
2.9 3.95 0.1 72.8 10
14.2 1.41 0.2 72.9 100
30.9 0.55 0.5 73.3 1,000
53.0 0.33 3.5 76 10,000
73.9 0.26 17 90 50,000
82.0 0.22 34 106 100,000
87.7 0.21 169 242 500,000
Results on an arrangement of 500 original
segments, include 56,000 edges and 28,000
vertices
33
Landmarks Algorithm Analysis
Algorithm performance vs. the type of landmarks
used
Queries with AD 0 Query Time msec Net Preprocessing Time sec Total Preprocessing Time sec Number of Landmarks Landmarks Type
92.7 0.32 0.6 72.8 28,000 Vertices (V)
96.6 0.27 1.8 74.7 57,000 Edge Midpoints (EM)
97.6 0.27 1.9 74.5 85,000 V EM
73.9 0.26 17 90.0 50,000 Random
77.5 0.24 16.7 89.3 50,000 UniformGrid
34
Landmarks Algorithm Analysis
35
Conics
  • Differences from segments
  • Bench results
  • Problems invoked, and their solutions
  • Cross to next face
  • The chord method
  • Number type theory

36
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)

37
Benchmark Query Arrangements of random conic
arcs
Time in seconds
Landmarks (random) Landmarks (vertices) RIC Walk Naïve Number of Original Conics Number of Edges
0.10 0.25 0.04 0.3 0.2 10 26
0.14 0.36 0.07 0.7 0.4 20 72
0.17 0.45 0.11 1.6 0.9 40 192
0.16 0.51 0.15 3.5 1.5 60 430
0.15 0.62 0.2 8.5 3.4 100 1000
0.11 0.69 0.4 28.8 9.8 200 7554
0.12 0.72 0.35 71.4 29.6 400 26160
38
Conics - Cross to Next Face
  • 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
l
l
e
s
e
s
q
q
q
s
l
x-range
x-range
x-range
(a) (b)
(c)
39
Whats the problem with the vertices in an
arrangement of conic arcs ?
v
p
Problem 1vertex may be complex irrational
number (algebraic with degree 4)
40
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 isy
    t(x1) where t is the slope of the line.
  • solve x2 (t(x1))2 1

x2y21
v
yt(x1)
(-1,0)
41
One Rational Point
  • Apparently, not all conics with rational (or even
    integer) coefficients have rational points on
    them
  • For example, the circle x2 y2 3 does
    not have any rational points on it.

42
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 p2 and ps that divide
    the determinant of the equation coefficients. It
    is also sufficient to check only for k lt 3 the
    largest exponent in the determinant
    factorization.

3 Variables
43
How to find a rational solution (if there is
one)
  • Theoremif 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.

44
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 xlt3F, ylt3F
  • check whether z is also an integer.
  • YES we found a solution.
  • All NO there is no solution.
  • Complexity (3F)2

45
If there are no rational points on the conic?
  • Euclids algorithm to approximate real number x
    into rational number r

x a0 1/x1, x1gt1, a0 - integer x1 a1
1/x2, x2gt1, 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 lt 1/qn2
46
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.

47
Landmarks future work
  • Rationalization of the vertices
  • More types of landmarks
  • Combination of different landmarks types
  • Memory usage of the algorithms

Halton sequence Hammersley Points
48
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
Write a Comment
User Comments (0)
About PowerShow.com