We present a data structure for three-sided range queries for a set of n points in R 2 where the ... more We present a data structure for three-sided range queries for a set of n points in R 2 where the x-coordinates of the points are restricted to the range {1, 2 ..... N}. The answer to a three-sided range query is the set of points lying in the semi-finite strip defined by three coordinates x0, xl, and Y0-The data structure is based on the priority search tree of McCreight (1981). The basic idea is to start the search at the leaves of the tree and to reduce the query to a constant number of three-sided range queries on sets of O0og n) points. For this purpose we extend the basic priority search tree T by adding four secondary priority search trees to each search path in T. This extended priority search tree can answer three-sided range queries in O(log log n + k) time and O(N + n) space (here, k is the cardinality of the answer).
In this paper we describe and discuss a kernel for higher-dimensional computational geometry and ... more In this paper we describe and discuss a kernel for higher-dimensional computational geometry and we present its application in the calculation of convex hulls and Delaunay triangulations. The kernel is available in form of a software library module programmed in C++ extending LEDA. We introduce the basic data types like points, vectors, directions, hyperplanes, segments, rays, lines, spheres, affine transformations, and operations connecting these types. The description consists of a motivation for the basic class layout as well as topics like layered software design, runtime correctness via checking routines and documentation issues. Finally we shortly describe the usage of the kernel in the application domain.
Multi-core Implementations of Geometric Algorithms
Lecture Notes in Computer Science, 2009
ABSTRACT This paper presents a framework for multi-core implementations of divide and conquer alg... more ABSTRACT This paper presents a framework for multi-core implementations of divide and conquer algorithms and shows its efficiency and ease of use by applying it to some fundamental problems in computational geometry. The framework supports automatic parallelization of any D&C algorithm. It is only required that the algorithm is implemented by a C++ class implementing a so-called job-interface. We also report on experimental results and discuss some aspects of the automatic parallelization of randomized incremental algorithms. Some results of this paper have been presented in the 20th Annual Canadian Conference on Computational Geometry ([13]).
We describe a robust and eecient implementation of the Bentley-Ottmann sweep line algorithm 1] ba... more We describe a robust and eecient implementation of the Bentley-Ottmann sweep line algorithm 1] based on the LEDA platform of combinatorial and geometric computing 9, 8]. The program computes the planar graph G induced by a set S of straight line segments. The nodes of G are all endpoints and all proper intersection points of segments in S. The edges of G are the maximal relatively open subsegments of segments in S that contain no node of G. The algorithm runs in time O((n + s)log n) where n is the number of segments and s is the size of the graph G. The implementation makes use of the basic geometric types rat point and rat segment of LEDA. These types realize two-dimensional points and segments with rational coordinates; they use exact arithmetic for the realization of all geometric primitives. The overhead of exact arithmetic is reduced by means of a oating point lter (cf. 4, 7]). The source of the full paper including the complete C++code is available from
A graph drawing algorithm produces a layout of a graph in twoor three-dimensional space that shou... more A graph drawing algorithm produces a layout of a graph in twoor three-dimensional space that should be readable and easy to understand. Since the aesthetic criteria di er from one application area to another, it is unlikely that a de nition of the \optimal drawing" of a graph in a strict mathematical sense exists. A large number of graph drawing algorithms taking different aesthetic criteria into account have already been proposed. In this paper we describe the design and implementation of the AGD{Library, a library of Algorithms for Graph Drawing. The library o ers a broad range of existing algorithms for two-dimensional graph drawing and tools for implementing new algorithms. The library is written in C ++ using the LEDA platform for combinatorial and geometric computing ([16, 17]). The algorithms are implemented independently of the underlying visualization or graphics system by using a generic layout interface. Most graph drawing algorithms place a set of restrictions on th...
Over the past decades, two major software libraries that support a wide range of geometric comput... more Over the past decades, two major software libraries that support a wide range of geometric computing have been developed: Leda, the Library of Efficient Data Types and Algorithms, and Cgal, the Computational Geometry Algorithms Library. We start with an introduction of common aspects of both libraries and major differences. We continue with sections that describe each library in detail. Both libraries are written in C++. Leda is based on the object-oriented paradigm and Cgal is based on the generic programming paradigm. They provide a collection of flexible, efficient, and correct software components for computational geometry. Users should be able to easily include existing functionality into their programs. Additionally, both libraries have been designed to serve as platforms for the implementation of new algorithms. Correctness is of crucial importance for a library, even more so in the case of geometric algorithms where correctness is harder to achieve than in other areas of sof...
This final book chapter is meant as a brief reflection on the current status of Algorithm Enginee... more This final book chapter is meant as a brief reflection on the current status of Algorithm Engineering and its future development. It is devoted to the many challenges this discipline has to face. By challenges we mean things that are worthy to invest a significant research effort, and working on these problems promises a high potential impact. In early 2007, the authors made a poll among colleagues questioning about the most important challenges for Algorithm Engineering. We also asked them about future trends and developments for the discipline they envision. The answers we obtained covered a broad range of issues which we tried to integrate into the following discussion and overview. We acknowledge thankfully contributions by David Bader, Ulrik Brandes, Hervé Brönniman, Dan Halperin, Riko Jacob, Michael Jünger, Ernst Mayr, Cathy McGeoch, Kurt Mehlhorn, Petra Mutzel, Stefan Näher, Hartmut Noltemeier, Knut Reinert, Peter Sanders, Anita Schöbel, Steve Skiena, Anand Srivastav, Raimund...
As researchers in theoretical or practical computer science, we are used to publishing our result... more As researchers in theoretical or practical computer science, we are used to publishing our results in form of research papers that appear in conference proceedings or journals. Journals are normally considered more prestigious than conference proceedings because ...
ion and Object-OrientedProgramming in C++ ", John Wiley &amp... more ion and Object-OrientedProgramming in C++ ", John Wiley & Sons, 1990[26] L.J. Guibas, R. Sedgewick: " A Dichromatic Framework for Balanced Trees",Proceedings of the 19th IEEE Symposium on Foundations of Computer Science,8-21, 1978[27] Goldberg, R.E.Tarjan: "A New Approach to the Maximum Flow Problem",Journal of the ACM, Vol. 35, 921-940, 1988[28] J.E. Hopcroft, R.M. Karp: "An O(n2:5) Algorithm for Matching in
We describe an implementation of the Hopcroft and Tarjan planarity test and em bedding algorithm ... more We describe an implementation of the Hopcroft and Tarjan planarity test and em bedding algorithm The program tests the planarity of the input graph and either constructs a combinatorial embedding if the graph is planar or exhibits a Kuratowski subgraph if the graph is non planar
GeoWin A Generic Tool for Interactive Visualization of Geometric Algorithms
Lecture Notes in Computer Science, 2002
This paper introduces GeoWin, a generic visualization tool for geometric algorithms. GeoWin can b... more This paper introduces GeoWin, a generic visualization tool for geometric algorithms. GeoWin can be easily interfaced with todays standard geometry software libraries like LEDA and CGAL. By supporting the generic programming approach, it can be adapted to user-defined geometric objects and data types.
Uploads
Papers by Stefan Näher