Multi-pass geometric algorithms
Proceedings of the twenty-first annual symposium on Computational geometry - SCG '05
We initiate the study of exact geometric algorithms that require limited storage and make only a small number of passes over the input. Fundamental problems such as lowdimensional linear programming and convex hulls are considered. As an example, consider the point of finding a line that minimizes the largest vertical distance to a collection of n data points in the plane. Results in the data-stream model  imply a one-pass algorithm that can approximate the minimum to within a 1 + ε factor
... in a 1 + ε factor for any fixed constant ε > 0 with constant space. In contrast, our result on linear programming implies an O(1)-pass algorithm that can find the exact minimum with O(n δ ) space. A related read-only model. Our interest in multi-pass algorithms actually stems from our earlier interest in inplace (or nearly in-place) algorithms  , which are spaceefficient algorithms for input that resides in an array. Such algorithms are allowed to permute entries of the array (and sometimes overwrite entries). Multi-pass algorithms are more restrictive: not only do we lack random access to the input, but the input space can only be read and not written. This read-only characteristic is desirable, because the original input is retained during and after the execution of the algorithm. (Of course, we can make a copy of the input first, but that defeats the purpose of space-efficiency.) Inplace algorithms for many geometric problems  also tend to be complicated, lack locality of reference, and are thus less practical. In contrast, multi-pass algorithms are automatically I/O-efficient (and even cache-oblivious), if the amount of working space is sufficiently small. If read-only random access to the input is allowed and the number of passes is no longer a concern, some of our results can be improved. Specifically, we give: • a read-only O(n)-time randomized algorithm for linear programming in fixed dimensions, using O(log n) space; • a read-only O(n)-time randomized algorithm for finding the convex hull of n sorted points in IR 2 , using O(n δ ) space for any fixed δ > 0.