310 likes | 1.01k Views
Reverse Furthest Neighbors in Spatial Databases. Bin Yao , Feifei Li, Piyush Kumar Florida State University . A Novel Query Type. Reverse Furthest Neighbors (RFN) Given a point q and a data set P, find the set of points in P that take q as their furthest neighbor Two versions :
E N D
Reverse Furthest Neighbors in Spatial Databases Bin Yao, Feifei Li, Piyush Kumar Florida State University
A Novel Query Type • Reverse Furthest Neighbors (RFN) Given a point q and a data set P, find the set of points in P that take q as their furthest neighbor • Two versions: • Monochromatic Reverse Furthest Neighbors (MRFN) • Bichromatic Reverse Furthest Neighbors (BRFN)
RFN Example : P : Q
RFN Application P: a set of customers Q: a set of business competitors offering similar products A distance measure reflecting the rating of customer(p) to competitor(q)’s product. A larger distance indicates a lower preference. For any competitor in Q, an interesting query is to discover the customers that dislike his product the most among all competing products in the market.
Furthest Neighbor • Furthest Neighbor: • Given a point p and a set of points Q, p’s furthest neighbor in Q is:
MRFN and BRFN • MRFN for q and P: • BRFN for a point q in Q and P are:
MRFN: Progressive Furthest Cell Algorithm (first algorithm) Lemma: Any point from the furthest Voronoi cell(fvc) of p takes p as its furthest neighbor among all points in P.
Progressive Furthest Cell Algorithm (PFC)PFC(Query q; R-tree T) • Update fvc(q) using points contained by entries in ; • Filter points in using fvc(q); • Initialize two empty vectors and ; priority queue L with T’s root node; fvc(q)=S; • While L is not empty do • Pop the head entry e of L • If e is a point then, update the fvc(q) • If fvc(q) is empty, return; • If e is in fvc(q), then Push e into ; • else • If e fvc(q) is empty then push e to ; • Else for every child u of node e • If u fvc(q) not empty, insert u into L; • Else insert u into ;
MRFN: Convex Hull Furthest Cell Algorithm(second algorithm) Lemma: the furthest point for p from Q is always a vertex of the convex hull of Q. In a reverse angle, only vertices of CH have RFN.
CHFC(Query q; R-tree T (on P)) // compute only once • Find the convex hull of P; • if then return empty; • else • Compute using ; • Set fvc(q,P*) equal to fvc(q, ); • Execute a range query using fvc(q,P*) on T;
Dynamically updating to dataset • PFC: update R-tree • CHFC: • update R-tree (expensive) • Qhull algorithm
Dynamically Maintaining CH: deletion The qhull algorithm
Dynamically Maintaining CH Adapt qhull to R-tree
BRFN • After resolving all the difficulties for the MRFN problem, solving the BRFN problem becomes almost immediate. • Observations: • all points in P that are contained by fvc(q,Q) will have q as their furthest neighbor. • Only the vertexes of the convex hull have fvc.
BRFN algorithm • BRFN(Query q, Q; R-tree T) • Compute the convex hull of Q; • If then return empty; • Else • Compute fvc(q, ); • Execute a range query using fvc(q, ) on T;
Disk-Resident Query Group Limitation: query group size may not fit in memory Solution: Approximate convex hull of Q (Dudley’s approximation: the core set idea)
Experiment Setup • Dataset: • Real dataset • Synthetic dataset • Measurement • Computation time • Number of IOs • Average of 1000 queries
MRFN algorithm CPU computation Number of IOs
BRFN algorithms CPU: vary A, Q=1000 IOs: vary A, Q=1000
Scalability of various algorithms BRFN number of IOs MRFN number of IOs
Conclusion • Introduced a novel query (RFN) for spatial databases. • presented R-tree based algorithms for both version of RFN that feature with excellent pruning capability. • Conducted a comprehensive experimental evaluation.
Motivation • MapQuest, Google Maps, etc. have become essential web services. • Albeit, they provide simple driving directions given a start and an end point. • The same is true for vehicle navigation systems, GPS devices, etc… • It is time to support more advanced services!
BRFN algorithms IOs: vary Q,A=3% CPU: vary |Q|,A=3%