280 likes | 293 Views
Explore a novel data structure supporting simplex operations and simplicial thickness queries efficiently in d-dimensional space. Our solution offers optimal time and space complexity, complemented by special simplicial partitions and a unique construction approach.
E N D
Dynamic Data Structures for Simplicial Thickness Queries Danny Z. Chen and Haitao Wang Computer Science and Engineering University of Notre Dame Indiana, USA
Outline • Problem definitions • Related work • Our solutions • Further discussions
Simplicial thickness • Given: A set S of simplices in d-D space (d>1 is fixed), a point p • The simplicial thickness of p: The number of simplices in S containing p 2 3 1
Simplicial thickness query • Given: A set P of n points and a simplex set S in d-space (S=Ø initially) • Objective: Design a data structure to support • Simplex insertion: Insert a simplex to S • Simplex deletion: Delete a simplex from S • Simplicial thickness query: Given a query simplexσ, report the point with the minimum simplicial thickness among all points inσ∩P
Related work • No previous work on the problem • Simplex range searching [Chazelle 90, Matousek 92, 93] • Dynamic versions supporting point insertions and deletions [Matousek 92] • Standard dynamic data structure design techniques [Overmars 83]
Our solution • We propose a data structure with the following bounds: • O(n logn) time and O(n) space • Support the simplex insertion, deletion, simplicial thickness query in O(n1-1/d(logn)O(1)) time each (e.g., n1/2(log n)O(1) when d=2) • Based on simplicial partitions [Matousek 92]
Simplicial partition [Matousek] • Given a point set P, its simplicial partition is ∏={(P1, △1)…(Pm, △m)}: • Pi’s are pairwise disjoint subsets which form a partition of P • Each △i is a simplex containing Pi
Special simplicial partition • We call a simplicial partition special if max{|Pi|}<2min{|Pi|} • Given a half-space: • Easy: Process the points in the simplices which do not intersect its boundary • Problem: How to handle those simplices intersecting its boundary?
Partition tree [Matousek] • For a point set P, build a partition tree T by constructing special simplicial partitions on P recursively: • Each internal node v corresponds to a subset Pv, a simplex △v, and a special simplicial partition ∏v of Pv • Each leave corresponds to a constant size subset
Time and space • T can be constructed in O(n logn) time and O(n) space [Matousek 92]
Our new data structure T’ • T’ is similar to T • But, in addition, we also store two values k1(v) and k2(v) at each node v • Some new concepts are needed
Poke • A simplex s pokes another simplex s’ if s∩s’≠Ø and s does not contain s’ completely blue pokes red red also pokes blue blue pokes red
Intersection set (IS) • For each node v, define IS(v) as the set of simplices in IS(parent(v)) which poke △v (if v is the root, IS(v)=S)
Definitions of k1(v) and k2(v) • k1(v): The number of simplices in IS(parent(v)) which contain △v completely (k1(v)=0 if v is the root) • k2(v): The minimum simplicial thickness among all points in Pv with respect to the simplices in IS(v) • For each point pi in a leaf node v, we also store k1(pi) as the number of simplices in IS(v) which contain pi
Construction time and space • O(n) space • O(nlogn) time
An observation (for insertion) k2(v)=min{k1(v’)+k2(v’)} k2(v)=min{k1(p)} v v p v’ For an internal node v For a leaf node v
Simplex insertionσ • Update k1 values: Beginning from the root, for each internal node v: • Ifσcontains △v, we increase k1(v) by 1 • If σpokes △v, we process all children of v recursively • Update k2 values: By the preceding observation
Simplex insertionσ(cont.) • The time complexity is O(n1-1/d(log n)O(1)) • Simplex deletion can be handled analogously
An observation (for query) • If we apply simplex insertion on the query simplexσ, the k1 values of some nodes and points will be increased. • We call those nodes and points the ending nodes
An observation (cont.) For each ending node, we define a thickness value k2(v) k1(p) The query answer is the minimum of these values
Simplicial thickness queryσ • As we going down in the tree, we accumulate the sum of k1 values from the root to the current node • We also maintain the current minimum thickness value • Query time is O(n1-1/d(log n)O(1))
Applications Point approximation: • Input: A point set P in the plane, an integer g>0, andε>0 • Output: A piecewise linear function f to approximate P with g outliers, s.t., • The complexity of f is minimized • The maximum vertical point error is no more thanε • The number of outliers is no more than g
An example error Outlier
A sub-problem Given P’ which is a subset of P, and an integer q (0≤q≤g) with P’=Ø initially, derive a data structure to support three operations: • Point insertion: Insert a point from P\P’ to P’ • Point deletion: Delete a point from P’ • Feasibility test: Determine whether there exists a line segment to approximate the points in P’ with at most q violations and with error no more than the givenε
3-D k-level lowest point query • Given: A set P of n planes in 3-D space, an integer k>0, a constantε>0, and P’ P • Objective: A data structure to support the following operations • Plane insertion: Insert a plane of P\P’ to P’ • Plane deletion: Delete a plane from P’ • k-level lowest point query: Determine whether the lowest point on the k-level of the plane arrangement of P’ has z-coordinate larger thanε
Further discussions • Weighted version: Each simplex has a weight • Max version: Query the point with the maximum simplicial thickness