SearcharxivSearch

arXiv subjects

Jean Souviron

Publications and source records attributed to Jean Souviron.

3 recordsLinked to original sources

Correcting self-intersecting polygons using minimal memory A simple and efficient algorithm and thoughts on line-segment intersection algorithms

While well-known methods to list the intersections of either a list of segments or a complex polygon aim at achieving optimal time-complexity they often do so at the cost of memory comsumption and complex code. Real-life software optimisation however lies in optimising at the same time speed and memory usage as well as keeping code simple. This paper first presents some thoughts on the available algorithms in terms of memory usage leading to a very simple scan-line-based algorithm aiming at answering that challenge. Although sub-optimal in terms of speed it is optimal if both speed and memory space are taken together and is very easy to implement. For N segments and k intersections it uses only N additional integers and lists the intersections in O(N^1.26) or corrects them in O((N+k) N^0.26) at most in average, with a high probability of a much lower exponent around 0.16 and even as low as 0.1. It is therefore well adapted for inclusion in larger software and seems like a good compromise. Worst-case is in O(N^2). Then the paper will focus on differences between available methods and the brute-force algorithm and a solution is proposed. Although sub-optimal its applications could mainly be to answer in a fast way a number of scattered unrelated intersection queries using minimal complexity and additional resources.

cs.CG

On the predictability of the number of convex vertices

Convex hulls are a fundamental geometric tool used in a number of algorithms. As a side-effect of exhaustive tests for an algorithm for which a convex hull computation was the first step, interesting experimental results were found and are the sunject of this paper. They establish that the number of convex vertices of natural datasets can be predicted, if not precisely at least within a defined range. Namely it was found that the number of convex vertices of a dataset of N points lies in the range 2.35 N^0.091 <= h <= 19.19 N^0.091. This range obviously does not describe neither natural nor artificial worst-cases but corresponds to the distributions of natural data. This can be used for instance to define a starting size for pre-allocated arrays or to evaluate output-sensitive algorithms. A further consequence of these results is that the random models of data used to test convex hull algorithms should be bounded by rectangles and not as they usually are by circles if they want to represent accurately natural datasets

cs.CG

Convex hull: Incremental variations on the Akl-Toussaint heuristics Simple, optimal and space-saving convex hull algorithms

Convex hulls are a fundamental geometric tool used in a number of algorithms. A famous paper by Akl and Toussaint in 1978 described a way to reduce the number of points involved in the computation, which is since known as the Akl-Toussaint heuristics. This paper first studies what this heurstics really represents in terms of reduction of points and demonstrates that the optimum selection is reached using an octogon as the remaining number of points is in O(sqrt(N)) rather than the usual O(N). Then it focuses on optimising the overall computational efficiency in a convex hull computation. Although the heuristics is usually used as a first step in computations one can obtain the convex hull directly from the heuristics's basis. First a simple incremental implementation is described, and if the number of characteristic points of the Akl-Toussaint heuristics p is taken as a parametre the convex hull is then computed in a O(N(p+h/p)) average complexity or O(Nh) asymptotic complexity. Given the relative constant factor of 1/p however experimental results show that this algorithm should be considered linear in average. Worst-case complexity is in O(N^2) and space complexity is O(h) but could be O(1) if the required output is the array of convex vertices's indexes. Then a remark on why the basic incremental method should be preferred for average cases is made. Finally an optimal linear algorithm both in average and worst-case and using a minimal space complexity in O(sqrt(N)) in average (or O(1) if in-place computation is allowed) is presented.

cs.CG