Optimal, Output-Sensitive Algorithms for Constructing Upper Envelope of Line Segments in Parallel
FST TCS '01 Proceedings of the 21st Conference on Foundations of Software Technology and Theoretical Computer Science
Journal of Parallel and Distributed Computing
Hi-index | 0.00 |
Given a collection of segments in the plane that intersect pairwise at most k times, regarding the segments as opaque barriers, their upper envelope consists of the portions of the segments visible from the infinite upper point. In this paper, we give efficient parallel methods for finding the upper envelope of k-intersecting segments for any positive integer k, in the weakest shared-memory model, the EREW PRAM. We show that the upper envelope of n k-intersecting segments can be found in O(log ^{1+c} n) time using O(a_{k+1} (n)/ log ^c n) processors for any c0, where a_{k+2} (n) (a_k (n)=O(n), O(nb(n))$, and O(nb(n)^{b(n)^{k-3}}) for k=1, 2, k=3 and k3, respectively, and b(n) is the extremely slowly growing functional inverse of Ackermann's function) is the size of the upper envelope. In particular, for line segments we show the following optimal algorithms: the upper envelope of n line segments can be found in O(log n) time using O(n) processors, and if the line segments are nonintersecting and sorted, the envelope can be found in O(log n) time using O(n/log n) processors. We also show that our methods imply a fast sequential result: the upper envelope of $n$ sorted line segments can be found in O(nlog log n) time sequentially, which improves the known lowest upper bound O(nlog n).