Fig 1.
Steps of the proposed preprocessing method for reducing points.
A: Step 1 finds pxmin and pxmax values and points. B: Steps 2 and 3 of quantization of points into bins and points with minimum and maximum y-coordinate per bin. C: Step 4 creates the upper and lower fence. D: Step 5: get convex lower and upper fences. E: Step 6 finds points outside the upper and lower fences. F: An example of bin boundaries moved according to lower fence points.
Fig 2.
Three points to be managed by Step 6 of the preprocessing.
Lower fence is composed of points a, b, c, d and upper fence by points e, f, g. For each point p1, p2, p3 we need to find whether or not they are outside either of the two fences. When checking points against the lower fence, interval boundaries along the x axis are aligned with the lower fence.
Fig 3.
New bins intervals derived from a lower fence.
For an original six bins of equal size intervals (dotted vertical lines), the polyline joining the points with minimum y-coordinate values on each bin was processed into a convex polyline. The points of the convex polyline are projected into the x axis to form five new bins; these are of non-equal sizes.
Fig 4.
Preprocessing method as a factor of parameter m with n constant.
Upper left: Speedup gained by reducing the n points first to s points and then computing the convex hull on s points. Upper right: Percentage of reduction of points. Lower left: Time spent reducing the points in seconds. Lower right: Time reducing the points plus convex hull time on the reduced set in seconds. The grey lines are a visual aid to the reader of the underlying pattern shown by the plot. The values for ⌈m = lg n⌉ are marked.
Fig 5.
Speedup gained by the reduction method using CGAL.
Bar ‘10’ is for parameter m = 10 while bar ‘lgn’ is for m = lg n; this m value is the number of bins used in Step 2 of the proposed preprocessing method.
Fig 6.
Speedup gained by the reduction method for three convex hull algorithms.
Bar ‘cgal’ is for from CGAL package as before, bar ‘scipy’ is from convex hull found in SciPy package [8] and bar ‘chan’ is from an ad-hoc implementation of the Chan algorithm. Speedup is reported for m = 10 bins.
Fig 7.
Speedup factor and percentage of reduction of time for three convex hull algorithms for a homerange dataset.
Label ‘Method-1’ (for instance cgal1) corresponds to m = 10 while ‘Method-2’ (for instance cgal2) corresponds to m = lg n. ‘cgal’ is from CGAL package, ‘scipy’ is from SciPy package [8] and ‘chan’ is from an ad-hoc implementation of the Chan algorithm. The thin bars represent the distribution of speedup provided by the preprocessing for each algorithm across all the wildlife species; from minimum to maximum (median as a dot). On the right, the bars represent the distribution of the percentage of reduction across all species, except at m = 16 that is the median (of the reduction) of all species combined.
Fig 8.
Speedup and percentage of reduction for three convex hull algorithms for a synthetic dataset.
On the left, speedup was computed with parameter m = 10 for the three algorithms, ‘cgal’, ‘scipy’ and ‘chan’. On the right the percentage of reduction is shown for the case of a constant parameter m = 10 and for a variable parameter m = lg n.
Fig 9.
Speedup factor and percentage of reduction of points for three convex hull algorithms for an image dataset.
On the left, speedup was computed for a constant parameter value of m = 10 for the three algorithms, ‘cgal’, ‘scipy’ and ‘chan’. On the right the percentage of reduction of points is shown for both a constant parameter value of m = 10 and for a variable parameter value of m = lg n. Note all points are integers in this dataset.
Fig 10.
Speedup measured and expected according to Amdhal’s law on the ‘bull’ data from the mammal dataset.
The solid line is the measured speedup, while the dashed line is the one predicted from applying Amdhal’s law. For Amdhal’s law an enhanced speedup was calculated as an average over m into a constant k. CGAL was used to compute the convex hull.