Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
1
Dynamic ComputationalGeometry
Roberto TamassiaDepartment of Computer Science
Brown University
1991 Roberto Tamassia
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
2
Summary
■ Range Searching (Range Tree)■ Point Enclosure (Segment Tree)■ Segment Intersection■ Rectangle Intersection■ Point Location with Segment Trees■ Point Location with Dynamic Trees
Reference
■ Y.-J. Chiang and R. Tamassia, “DynamicAlgorithms in Computational Geometry,”Technical Report CS-91-24, Dept. ofComputer Science, Brown Univ., 1991.
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
3
Range Searching
■ Set P of points in d-dimensional space Ed
■ Range Query: report the points of Pcontained in a query range r
■ Query range:■ r = (a1,b1) × (a2,b2) × ... × (ad,bd)■ d=1 interval■ d=2 rectangle with sides parallel to axes
■ Variations of Range Queries:■ count points in r■ if points have associated weights,
compute total weight of points in r
P
r
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
4
One-Dimensional RangeSearching
■ use a balanced search tree T with internalnodes associated with the points of P
■ thread nodes in in-order■ Query for range r = (x',x")
■ search for x' and x" in T, this givesnodes µ' and µ"
■ follow threads from µ' to µ" and reportpoints at internal nodes encountered
x' x"
µ' µ"
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
5
Complexity of One-DimensionalRange Searching
■ Space requirement for n points: O(n)■ Query time: O(log n + k), where k is the
number of points reported■ Time for insertion or deletion of a point:
O(log n).■ Note that thread pointers are not affected by
rotations.
Exercises
■ * Show how to perform queries withoutusing threads.
■ * Show how to perform 1-D range countingqueries in time O(log n).
■ * Assuming that the points have weights,show how to find the heaviest point in thequery range in time O(log n)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
6
One-Dimensional Range Tree
■ Alternative structure for 1-D rangesearching.
■ More complex than a simple balancedsearch tree.
■ Can be extended to higher dimensions.■ Range Tree: balanced search tree T
■ leaves ↔ points, sorted by x-coordinate■ node µ ↔ subset P(µ) of the points at the
leaves in the subtree of µ■ Space for n points: O(n log n).
P(µ)
µ
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
7
One-Dimensional Range Queries
■ Αn allocation node µ of T for the queryrange (x',x") is such that (x',x") contains P(µ)but not P(parent(µ)).
■ the allocation nodes are O(log n)■ they have disjoint point-sets■ the union of their point-sets is the set of
points in the range (x',x")■ Query Algorithm
■ find the allocation nodes of (x',x")■ for each allocation node µ
report the points in P(µ)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
8
How to Find the Allocation Nodes
■ Each node µ of T stores:min(µ): smallest x-coordinate in P(µ)max(µ): largest x-coordinate in P(µ)
■ Find(µ): recursive procedure to mark all theallocation nodes of (x',x") in the subtree of µif x' ≤ min(µ) and x" ≥ max(µ) then mark µ as an allocation node else if µ is not a leaf then
if x' ≤ max(left(µ))then Find(left(µ))
if x" ≥ min(right(µ))then Find(right(µ))
x' x"
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
9
Dynamic Maintenance of theRange Tree
■ Algorithm for the insertion of a point p■ create a new leaf λ for p in T■ rebalance T by means of rotations■ for each ancestor µ of λ do
insert p in the set P(µ)■ In a rotation, we need to perform split/
splice operations on the point-sets storedat the nodes involved in the rotation.
■ We use a red-black tree for T, andbalanced trees for the point sets.
■ Insertion time: O(log2n). Similarly fordeletions.
ν"
µ"ν'
µ'
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
10
Two-Dimensional Range Searching
■ 2-D Range-Tree, a two level structure■ Primary structure: a 1-D range tree T based
on the x-coordinates of the points■ leaves ↔ points, sorted by x-coordinate■ node µ ↔ subset P(µ) of the points at the
leaves in the subtree of µ■ Secondary structure for node µ:
■ Data structure for 1-D range searchingby y-coordinate in the set P(µ) (either a1-D range tree or a balanced tree)
P(µ)
µ
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
11
Two-Dimensional Range Querieswith the 2-D Range-Tree
■ Query Algorithm for range r = (x',x") × (y',y")■ find the allocation nodes of (x',x")■ for each allocation node µ
perform a 1-D range query for range(y',y") in the secondary structure of µ
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
12
Space and Query Time
■ The space used for n points depends on thesecondary data structures:
■ O(n log2n) space with 1-D range trees■ O(n log n) with balanced trees
■ Query time for a 2-D range query:■ O(log n) time to find the allocation nodes■ Time to perform a 1-D range query at
allocation node µ: O(log n + kµ),where kµ points are reported
■ Total time: Σµ (log n + kµ) = O(log2n + k)
Exercises
■ * Show how to perform 2-D range countingqueries in time O(log2n).
■ ** Give worst-case examples for the space■ *** Extend the range tree to d dimensions:
show how to obtain O(n logd−1 n) space andO(logdn + k) query time.
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
13
Dynamic Maintenance of theRange Tree
■ Algorithm for the insertion of a point p■ create a new leaf λ for p in T■ rebalance T by means of rotations■ for each ancestor µ of λ do
insert p in the secondary data structure of µ
■ When performing a rotation, we rebuildfrom scratch the secondary data structureof the node that becomes child (thereseems to be nothing better to do).
■ The cost of a rotation at a node µ isO(|P(µ)|) = O(#leaves in subtree of µ)
■ By realizing T as a BB[α]-tree, theamortized rebalancing time is O(log n).
■ The total insertion time is dominated bythe for-loop and is O(log2n) amortized.
■ Similar considerations hold for deletion.
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
14
Rotation in a 2-D Range Tree
■ The secondarydata structureof µ" is thesame as the oneof ν'.
■ The secondarydata structureof ν" needs to beconstructed.
■ The secondarydata structureof µ' needs to bediscarded.
ν"
µ"
ν'
µ'
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
15
Summary of Two-DimensionalRange Tree
■ Two-level tree structure (RR-tree)■ Reduces 2-D range queries to a collection
of O(log n) 1-D range queries■ O(n log n) space■ O(log2n + k) query time■ O(log2n) amortized update time
Exercise■ *** Modify the range-tree to achieve query
time O(log n + k).
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
16
Point Enclosure
■ Set R of orthogonal ranges in Ed
■ Point Enclosure Query: given a query pointq, report the ranges of R containing q.
■ Dual of the range searching problem.■ For d=1, R is a set of intervals.■ For d=2, R is a set of rectangles.
R
q
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
17
One-Dimensional Point Enclosure
■ Let S be a set of segments (intervals), and Xthe set of segment endpoints plus ±∞.
■ Segment-tree T for S: a two-level structure■ Primary structure: balanced tree T for X
■ leaves ↔ elementary intervals inducedby the points of X
■ node µ ↔ x-coordinate x(µ) and intervalI(µ) formed by the union of the intervalsat the leaves in the subtree of µ
■ Secondary structure of a node µ:■ set S(µ) of the segments that contain I(µ)
but not I(parent(µ)).
µ
Ι(µ)
S(µ)
T
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
18
Point Enclosure Queries with theSegment Tree
■ Find the elementary interval I(λ)containing the query point q by searchingfor q in the primary structure of T
■ For each node µ in the path from λ to theroot, report the segments in S(µ)
q
λ
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
19
Complexity of One-DimensionalPoint Enclosure
■ A node µ is an allocation node of segment sif S(µ) contains s.
■ Each segment s has O(log n) allocationnodes
s
■ Space used by the segment-tree: O(n log n)■ Query time: O(log n + k)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
20
Exercises
■ * Show how to perform point enclosurecounting queries in O(log n) time usingO(n) space.
■ ** Discuss special cases that have not beenaddressed (e.g., a query point is a segmentendpoint).
■ ** Dynamize the segment tree, i.e., showhow to support insertions and deletions ofsegments.
■ ** Give an efficient data structure toperform 1-D segment intersection queries.(Given a set of segments on a line, reportthe segments intersecting a querysegment.)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
21
Two-Dimensional Point Enclosure
■ We represent a set of rectangles with sidesparallel to the axes by means of a two-levelstructure (SS-tree).
■ Primary structure:■ a segment tree T for the x-intervals of
the rectangles of R■ Secondary structure of a node µ:
■ a 1-D point enclosure data structure forthe y-intervals of the rectangles in S(µ)(another segment tree)
■ Space for n rectangles: O(n log2n)■ Query algorithm for point q
■ Locate q in T, this gives a leaf λ whoseelementary vertical strip contains q
■ Perform 1-D point enclosure queries inthe secondary structures of the nodes onthe path from λ to the root
■ Query time: O(log2n + k)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
22
Orthogonal Segment Intersection
■ S: set of n horizontal segments in the plane■ Orthogonal Segment Intersection Query:
given a vertical query segment s, report thesegments of S intersected by s.
■ Two data structures for this problem:■ SR-tree: the segments of S are stored in
an x-based segment-tree T' . Thesecondary structures support 1-D rangesearching on the y-coordinate. Asegment intersection query correspondsto performing O(log n) 1-D range queriesalong a root-to-leaf path in T'.
■ RS-tree: the segments of S are stored in ay-based range-tree T". The secondarystructures support 1-D point enclosurequeries on the x-coordinate. A segmentintersection query corresponds toperforming O(log n) 1-D point enclosurequeries at the allocation nodes of s in T".
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
23
Exercises
■ * Determine the space requirement andquery time of the SR-tree and RS-tree.
■ ** Dynamize the SR-tree and the RS-tree.■ ** Show how to perform vertical “ray
shooting” queries for horizontal segments.
Example of Querying the SR-Tree
s
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
24
Orthogonal Rectangle Intersection
■ Let R be a set of n rectangles with sidesparallel to the axes
■ Orthogonal Rectangle Intersection Query:given a query rectangle r, determine therectangles of R intersected by r.
■ Rectangles r' and r" intersect iff one of thefollowing mutually exclusive cases arises:
■ the bottom-leftcorner of r' is in r"
■ the bottom-leftcorner of r" is in r'
■ the left side of r'intersects thebottom side of r"
■ the left side of r"intersects thebottom side of r'
r"r"
r"
r"
r'
r'
r'
r'
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
25
Orthogonal Rectangle Intersection
■ We can perform an orthogonal rectangleintersection query as follows:
■ range search query for the bottom-leftcorners of the rectangles of R containedin r
■ point enclosure query for the rectanglesof R containing the bottom-left corner of r
■ orthogonal segment intersection queryfor the bottom sides of the rectangles of Rintersected by the left side of r
■ orthogonal segment intersection queryfor the left sides of the rectangles of Rintersected by the bottom side of r
■ We can use a data structure consisting offour components: RR, SS, RS, and RS tress.
■ Orthogonal rectangle intersection queries ind dimensions can be performed with a datastructure consisting of the d-level treesgiven by the symbolic expansion of (R + S)d
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
26
Planar Point Location
■ Subdivision S of the plane into polygonalregions, induced by the vertices and edgesof a planar graph
■ Find the region containing a query point q■ Fundamental two-dimensional searching
problem
r1
r2
r3
r4
r6
r5
r7
q
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
27
Types of Planar Subdivisions
■ Monotone
■ Convex
■ Triangulation
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
28
Static Point Location
■ Preprocess the subdivision■ Answer on-line queries
(query points are not known in advance)■ Performance measures:
■ space■ query time■ preprocessing time
Dynamic Point Location
■ Perform an on-line sequence of intermixedqueries and updates (insertion anddeletion of vertices and edges)
■ Performance measures:■ space■ query time■ insertion/deletion time
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
29
■ Translate a vertex
Update Operations for PlanarSubdivisions
■ Insert/Delete an edge
■ Insert/Delete a chain of edges■ Insert/Delete an isolated vertex■ Insert/Delete a vertex on an edge
r
r"
r'
e
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
30
Best Results for Static Point Location[Kirkpatrick 83, Edelsbrunner GuibasStolfi 86, Sarnak Tarjan 86]■ O(n) space■ O(log n) query time■ O(n log n) preprocessing time
Best Results for Dynamic Point Location[Goodrich Tamassia 91] monotone subdiv.
[Cheng Janardan 90] connected subdiv.■ O(n) space, O(log2n) query time, O(log n)
update time
[Preparata Tamassia 89] convex subdiv.
[Chiang Tamassia 91] monotone subdiv.■ O(n log n) space, O(log n) query time,
O(log2n) amortized update time
[Goodrich Tamassia 91] monotone subdiv.■ O(log n loglog n) query time, O(1) amortized
insertion time
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
31
Point Location with Segment Trees(Overmars, CG '85)
■ Use an SR-tree for the set of edges■ Each edge stores the region above it■ The secondary structures are balanced
trees that support down-shooting queries ina vertical “slab”
■ O(n log n) space and O(log2n) query time
q
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
32
Exercises
■ ** Show how to construct the segment-treestructure for point location in O(n log n)time
■ *** Dynamize the data structure■ **** Modify the data structure to achieve
O(log n) query time and O(n log n) space ina static environment
Open Problem■ ***** Modify the data structure to achieve
O(log n log log n) query time and polylogupate time in a fully dynamic environment.
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
33
Point Location With Dynamic Trees(Goodrich-Tamassia, STOC '91)
■ A new method for planar point location,based on interleaving primal and dualspanning trees
■ Algorithms are relatively simple and easy toimplement
■ Optimal static data structure: O(n) space,O(log n) query time
■ Efficient fully dynamic data structure formonotone subdivisions: O(n) space, O(log2n)query time, O(log n) update time
■ Efficient on-line data structure forinsertions: O(log n loglog n) query time, O(1)amortized insertion time
■ Improved 3-dimensional point location:O(n log n) space, O(log2n) query time
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
34
Triangulations
■ A subdivision can be refined into atriangulation by adding fictitious edges,plus 3 fictitious vertices
r1
r1 r5
r5
r5
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
35
Monotone Spanning Tree
■ For each vertex, select an incoming edge(incoming = incident from below)
■ This yields a monotone spanning tree T ofthe subdivision
T
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
36
Dual Spanning Tree
■ Place a dual node in every region■ For each non-tree edge, draw a dual edge■ This yields a dual tree D
D
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
37
Cycles and Cuts
■ Each non-tree edge■ forms a cycle with T■ induces a cut in D
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
38
Point Location Algorithm
1. Find a centroid edge e whose cutdecomposes D into subtrees D' (internal)and D" (external), each with at most 2/3 ofthe nodes.
2. Determine if the query point q is inside oroutside the cycle C(e) induced e
3. If q is inside C(e), then recur on D', elserecur on D"
q inside C(e)
q outside C(e)
D'
D''
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
39
Example
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
40
Testing if q is Inside or OutsideCycle C(e)
■ The boundary of cycle C(e) consists of twomonotone chains (L and R)
■ We represent each such chain with abalanced tree
■ By doing binary search on the y-coordinateof q, we determine the points of L and R infront of q in O(log n) time
q
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
41
Centroid Decomposition
■ Represent the recursive decomposition ofthe dual tree by means of a binary tree B
■ A point location query traverses a root-to-leaf path in B
B
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
42
Complexity Analysis
Query Time■ The centroid decomposition tree B has
2n−5 leaves (regions)■ For each node µ of B:
leaves(µ) < 2/3 leaves(parent(µ))■ The centroid tree has depth O(log n)■ Visiting each node takes O(log n) time■ Query time: O(log2n)
Space■ If we store at each node the corresponding
cycle, we use Ο(n2) space■ To save space and dynamize the data
structure, we use dynamic trees ...
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
43
Dynamic Trees
[Sleator Tarjan 1983]■ Data structure to represent a collection of
rooted trees■ Operations:
■ Path(v): return the path from v to theroot (as a balanced binary tree)
■ Link: join two trees by adding an edge■ Cut: decompose a tree by removing an
edge
T1
T1
T2
T2
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
44
Dynamic Trees and PointLocation
■ use dynamic trees for T and D■ use D for finding centroid edges■ use T for retrieving edge chains
■ Space: O(n)
Query algorithm1. If D consists of a single region r, then
report r and stop2. Find a centroid edge e=(u,v)3. Cut D at edge e into D' (internal) and D"
(external)4. L(e) = Path(u)5. R(e) = splice(e,Path(v))6. If q is inside, L(e) ∪ R(e), then recur on D',
else recur on D"
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
45
Path Decomposition
■ partition the edges into light and heavy:
heavy edge: size(child) > size(parent) / 2
light edge: size(child) ≤ size(parent) / 2■ heavy edges form disjoint solid paths■ going from a leaf to the root we traverse at
most log n light edges■ “removing light edges decomposes an
unbalanced tree into a balanced tree ofsolid paths”
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
46
Representing a Solid Path■ we represent each solid path P by means of
a balanced binary tree, called path-tree■ leaf ↔ node of P■ internal node ↔ subpath of P
■ solid paths can be split and spliced in timeO(log n)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
47
Operation Path(v)
■ Construct the path from v to the root bysplitting and splicing O(log n) solid paths
v
v
split
splice
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
48
Finding a Centroid Edge
Theorem:There exists a centroid edge that is either onthe solid path P of the root, or is incident tothe bottommost node of P■ Case 1: w1 < 1 + 2n/3, centroid edge on P■ Case 2: w1 > 1 + 2n/3, centroid edge incident
to µ1
µ1
µ2
µ3
µ4
µ5
Corollary:A centroid edge can be found in time O(log n)
w1=w2=4 w3=3
w4=6 w5=8
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
49
T1
T2
Link/Cut Operations
■ In a link operation, O(log n) edges maychange from light to heavy, thus causingO(log n) split/splice operations on the solidpaths. (And similarly for a cut operation.)
T1
T2
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
50
Time Complexity of Link/Cut
■ Using standard balanced trees (e.g., AVL,red-black) each split/splice operation takesO(log n) time
■ Total time complexity: O(log2n)
■ To improve the update time, use biasedsearch trees [Bent-Sleator-Tarjan, 85]
■ node µ on a solid path P■ weight w(µ) = size of child of µ not in P■ depth of µ-leaf = O(log (W/w(µ))), where
W is the total weight■ Since all the split/splice operations on
solid paths are along a root-to-leaf path,the time complexity is now:
O(log(n/w1)+log(w1/w2)+...+log (wk-1/wk))■ Total time complexity: O(log n)
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
51
Dynamization
■ Repertory of update operations for monotonesubdivisions:
■ insert/delete an edge■ expand a vertex into two vertices
connected by an edge■ contract an edge■ insert/delete a monotone chain
■ Use the leftist monotone spanning treeobtained by selecting the lefmost incomingedge of each vertex
■ Cannot dynamically maintain atriangulation of the subdivision
■ Instead, dynamically maintain a refinementof the subdivision such that the dual tree Dhas degree at most 3
■ An update operation on the subdivisioncorresponds to performing O(1) link/cutoperations on the dynamic trees
Dynamic Computational GeometryALCOM Summer School, Aarhus, August 1991
52
Refinement of the Subdivision
■ Insert a “comb” that duplicates the leftchain of every region. The “comb” is placedinfinitesimally close to the left chain
■ The refined subdivision is topologicallydifferent but geometrically equivalent tothe original subdivision.
■ In the refined subdivision the dual tree ofthe leftist monotone spanning tree hasdegree at most 3.