Reverse Furthest Neighbors in Spatial Databases

655 Views

Download Presentation
## Reverse Furthest Neighbors in Spatial Databases

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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%