Given two spatial point sets R and B in the plane, with cardinalities m and n, respectively, and stored in two separate R-trees, we propose an efficient algorithm to verify whether R and B are linearly separable. The sets R and B are linearly separable if there exists a line that splits the plane into to halfplanes, one containing all R and the other one containing all B. This is the first algorithm that answers the separability question in the context of the spatial data bases. That is, it considers as input big spatial data stored in secondary storage data structures (e.g., the R-tree) which are not allowed to be completely stored in the main memory of the computer to run a classic algorithm. The algorithms designed in this context aim to minimize as much as possible the number of blocks read from the secondary storage data structures to the main memory. Studied problems in this setting are the k-nearest neighbor problem and the spatial range query problem. Our algorithm explicitly exploits the geometric and spatial properties of the R-trees to access only the nodes relevant to decide the linear separability of the given sets. Our experimental results show the efficiency of the algorithm, since it accesses between the 0.34 and 2.79% of the nodes of the R-trees. We also analyze the asymptotic running time of the algorithm, showing that it runs in $$O(m\log m + n\log n)$$ time in the worst case.
Read full abstract