scispace - formally typeset
Search or ask a question
Journal ArticleDOI

Linear-time algorithms for visibility and shortest path problems inside triangulated simple polygons

TL;DR: Given a triangulation of a simple polygonP, linear-time algorithms for solving a collection of problems concerning shortest paths and visibility withinP are presented.
Abstract: Given a triangulation of a simple polygonP, we present linear-time algorithms for solving a collection of problems concerning shortest paths and visibility withinP. These problems include calculation of the collection of all shortest paths insideP from a given source vertexS to all the other vertices ofP, calculation of the subpolygon ofP consisting of points that are visible from a given segment withinP, preprocessingP for fast "ray shooting" queries, and several related problems.

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI
TL;DR: In this paper, a deterministic algorithm for triangulating a simple polygon in linear time is presented. But the main tools used are the polygon-cutting theorem, which provides us with a balancing scheme, and the planar separator theorem, whose role is essential in the discovery of new diagonals.
Abstract: We give a deterministic algorithm for triangulating a simple polygon in linear time. The basic strategy is to build a coarse approximation of a triangulation in a bottom-up phase and then use the information computed along the way to refine the triangulation in a top-down phase. The main tools used are the polygon-cutting theorem, which provides us with a balancing scheme, and the planar separator theorem, whose role is essential in the discovery of new diagonals. Only elementary data structures are required by the algorithm. In particular, no dynamic search trees, of our algorithm.

592 citations

01 Jan 1978

366 citations

Journal ArticleDOI
TL;DR: The algorithm is based on an efficient implementation of wavefront propagation among polygonal obstacles, and it actually computes a planar map encoding shortest paths from a fixed source point to all other points of the plane; the map can be used to answer single-source shortest path queries in O(log n) time.
Abstract: We propose an optimal-time algorithm for a classical problem in plane computational geometry: computing a shortest path between two points in the presence of polygonal obstacles. Our algorithm runs in worst-case time O(n log n) and requires O(n log n) space, where n is the total number of vertices in the obstacle polygons. The algorithm is based on an efficient implementation of wavefront propagation among polygonal obstacles, and it actually computes a planar map encoding shortest paths from a fixed source point to all other points of the plane; the map can be used to answer single-source shortest path queries in O(log n) time. The time complexity of our algorithm is a significant improvement over all previously published results on the shortest path problem. Finally, we also discuss extensions to more general shortest path problems, involving nonpoint and multiple sources.

347 citations

Journal ArticleDOI
TL;DR: It is shown that the universal covering space of a surface can be used to unify previous results on computing paths in a simple polygon and leads to simplified linear-time algorithms for shortest path trees, for minimum-link paths in simple polygons, and for paths restricted to c given orientations.
Abstract: In this abstract, we use the universal covering space of a surface to generalize previous results on computing paths in a simple polygon. We look at optimizing paths among obstacles in the plane under the Euclidean and link metrics and polygonal convex distance functions. The universal cover is a unifying framework that reveals connections between minimum paths under these three distance functions, as well as yielding simpler linear-time algorithms for shortest path trees and minimum link paths in simple polygons.

279 citations

References
More filters
Book
Robert E. Tarjan1
01 Jan 1983
TL;DR: This paper presents a meta-trees tree model that automates the very labor-intensive and therefore time-heavy and therefore expensive process of manually selecting trees to grow in a graph.
Abstract: Foundations Disjoint Sets Heaps Search Trees Linking and Cutting Trees Minimum Spanning Trees Shortest Paths Network Flows Matchings

2,120 citations


"Linear-time algorithms for visibili..." refers background in this paper

  • ...s t ructure (as desc r ibed in C h a p t e r 5 o f [29]), which suppor t s logar i thmic-cos t...

    [...]

Journal ArticleDOI
TL;DR: The splay tree, a self-adjusting form of binary search tree, is developed and analyzed and is found to be as efficient as balanced trees when total running time is the measure of interest.
Abstract: The splay tree, a self-adjusting form of binary search tree, is developed and analyzed. The binary search tree is a data structure for representing tables and lists so that accessing, inserting, and deleting items is easy. On an n-node splay tree, all the standard search tree operations have an amortized time bound of O(log n) per operation, where by “amortized time” is meant the time per operation averaged over a worst-case sequence of operations. Thus splay trees are as efficient as balanced trees when total running time is the measure of interest. In addition, for sufficiently long access sequences, splay trees are as efficient, to within a constant factor, as static optimum search trees. The efficiency of splay trees comes not from an explicit structural constraint, as with balanced trees, but from applying a simple restructuring heuristic, called splaying, whenever the tree is accessed. Extensions of splaying give simplified forms of two other data structures: lexicographic or multidimensional search trees and link/cut trees.

1,321 citations


"Linear-time algorithms for visibili..." refers background in this paper

  • ...Another possibility is to represent the funnels by self-adjusting search trees [27]....

    [...]

  • ...The dynamic optimality conjecture of Sleator and Tarjan for such trees (see [27]) suggests that the resulting shortest path algorithm runs in linear time, although we do not know how to prove this....

    [...]

Journal ArticleDOI
TL;DR: This work presents a practical algorithm for subdivision search that achieves the same (optimal) worst case complexity bounds as the significantly more complex algorithm of Lipton and Tarjan, namely $O(\log n)$ search time with $O(n)$ storage.
Abstract: A planar subdivision is any partition of the plane into (possibly unbounded) polygonal regions. The subdivision search problem is the following: given a subdivision $S$ with $n$ line segments and a query point $p$, determine which region of $S$ contains $p$. We present a practical algorithm for subdivision search that achieves the same (optimal) worst case complexity bounds as the significantly more complex algorithm of Lipton and Tarjan, namely $O(\log n)$ search time with $O(n)$ storage. Our subdivision search structure can be constructed in linear time from the subdivision representation used in many applications.

810 citations


"Linear-time algorithms for visibili..." refers background or methods in this paper

  • ...Having calculated II, we next apply to it one of the linear-time preprocessing algorithms of [18] and [5] for point location, obtaining a data structure from which the region of II containing (the dual of) any query ray r, and thus also the edge of P first hit by r, can be found in O(log n) time....

    [...]

  • ...This can be done in linear time, using the techniques in [18] or [5]....

    [...]

  • ...queries [18], [5], and s ta t ioning guards in s imple art gal ler ies [9]....

    [...]

  • ...We can then use either one of the linear-time algorithms of [18] and [5] to preprocess this partitioning into a data structure that supports O(log n)time point location queries....

    [...]

Journal ArticleDOI
TL;DR: A substantial refinement of the technique of Lee and Preparata for locating a point in $\mathcal{S}$ based on separating chains is exhibited, which can be implemented in a simple and practical way, and is extensible to subdivisions with edges more general than straight-line segments.
Abstract: Point location, often known in graphics as “hit detection,” is one of the fundamental problems of computational geometry. In a point location query we want to identify which of a given collection of geometric objects contains a particular point. Let $\mathcal{S}$ denote a subdivision of the Euclidean plane into monotone regions by a straight-line graph of m edges. In this paper we exhibit a substantial refinement of the technique of Lee and Preparata [SIAM J. Comput., 6 (1977), pp. 594–606] for locating a point in $\mathcal{S}$ based on separating chains. The new data structure, called a layered dag, can be built in $O(m)$ time, uses $O(m)$ storage, and makes possible point location in $O(\log m)$ time. Unlike previous structures that attain these optimal bounds, the layered dag can be implemented in a simple and practical way, and is extensible to subdivisions with edges more general than straight-line segments.

563 citations


"Linear-time algorithms for visibili..." refers background or methods in this paper

  • ...Having calculated II, we next apply to it one of the linear-time preprocessing algorithms of [18] and [5] for point location, obtaining a data structure from which the region of II containing (the dual of) any query ray r, and thus also the edge of P first hit by r, can be found in O(log n) time....

    [...]

  • ...This can be done in linear time, using the techniques in [18] or [5]....

    [...]

  • ...queries [18], [5], and s ta t ioning guards in s imple art gal ler ies [9]....

    [...]

  • ...We can then use either one of the linear-time algorithms of [18] and [5] to preprocess this partitioning into a data structure that supports O(log n)time point location queries....

    [...]

Journal ArticleDOI
01 Sep 1984-Networks
TL;DR: The goal is to find interesting cases for which the solution can be obtained without the explicit construction of the entire visibility graph, which solve the problems by constructing the shortest-path tree from the source to all the vertices of the obstacles and to the destination.
Abstract: In this paper we address the problem of constructing a Euclidean shortest path between two specified points (source, destination) in the plane, which avoids a given set of barriers. This problem had been solved earlier for polygonal obstacles with the aid of the visibility graph. This approach however, has an Ω(n2) time lower bound, if n is the total number of vertices of the obstacles. Our goal is to find interesting cases for which the solution can be obtained without the explicit construction of the entire visibility graph. The two cases are (i) the path must lie within an n-vertex simple polygon; (ii) the obstacles are n disjoint and parallel line segments. In both instances greedy O(n log n) time algorithms can be developed which solve the problems by constructing the shortest-path tree from the source to all the vertices of the obstacles and to the destination.

428 citations


"Linear-time algorithms for visibili..." refers background or methods in this paper

  • ...The first part of the lemma follows by the same argument (taken from [21]) used to justify the correctness of our algorithm....

    [...]

  • ...Following [21], we call the union F = Fuw = zr( a, u ) w zr( a, w) the f u n n e l associated with d = uw, and a the cusp of the funnel....

    [...]

  • ...uses finger search trees (and is thus subtler than the simple linear list representation used in [21]), in order to obtain the desired linear-time complexity....

    [...]

  • ...It is shown in [21] that ~r(a, u), ir(a, w) are both outward convex; i....

    [...]

  • ...specif ied po in ts [21], p rep rocess ing P to suppor t logar i thmic- t ime po in t loca t ion...

    [...]