A filtering technique for fast Convex Hull construction in R2
Abstract
This work presents an optimization technique that reduces the computational cost for building the Convex Hull from a set of points. The proposed method pre-processes the input set, filtering all points inside an eight-vertex polygon in O(n) time and returns a reduced set of candidate points, ordered and distributed across four priority queues. Experimental results show that for a normal distribution of points in two-dimensional space, the filtering approach in conjunction with the Graham scan is up to 10x faster than the qhull library, and between 1.7x to 10x faster than the Convex Hull methods available in the CGAL library. Results on the worst case scenario (when all points lie in the circumference) show that a slight random radial displacement of the points make this method the fastest one. Moreover, when increasing the magnitude of this displacement, the performance of the proposed method scales at a faster rate than the other methods. In terms of memory efficiency, the proposed implementation manages to use from 3x to 6x less memory than the other methods. The reason behind this memory improvement is because the proposed method stores indices of the input arrays, avoiding duplicates of the original floating points. Furthermore, the approach extends the problem size up to n <= 2(40) by employing 5-byte indices (instead of 8-bytes) when n >= 2(32). The optimization technique presented in this work has shown to be significantly useful in accelerating the computation of the Convex Hull, and it is not limited just to the combination with the Graham scan, but it can also be used in conjunction with other Convex Hull algorithms. (C) 2019 Elsevier B.V. All rights reserved.
Más información
Título según WOS: | A filtering technique for fast Convex Hull construction in R-2 |
Título según SCOPUS: | A filtering technique for fast Convex Hull construction in R2 |
Volumen: | 364 |
Fecha de publicación: | 2020 |
Idioma: | English |
DOI: |
10.1016/j.cam.2019.06.014 |
Notas: | ISI, SCOPUS - WoS ISI |