A Practical Algorithm for Enumerating Collinear Points
This paper studies the problem of enumerating all maximal collinear subsets of size at least three in a given set of n points. An algorithm for this problem, besides solving degeneracy testing and the exact fitting problem, can also help with other problems, such as point line cover and general position subset selection. The classic topological sweeping algorithm of Edelsbrunner and Guibas can find these subsets in O(n^2) time in the dual plane. We present an alternative algorithm that, although asymptotically slower than their algorithm in the worst case, is simpler to implement and more amenable to parallelization. If the input points are decomposed into m convex polygons, our algorithm has time complexity O(n^2 m) and space complexity O(n). Our algorithm can be parallelized on the CREW PRAM with time complexity O(n m) using n processors.
READ FULL TEXT