Carleton University
Technical Report TR-96-32
December 1996

Approximating Weighted Shortest Paths on Polyhedral Surfaces

Mark Lanthier, Anil Maheshwari, Jorg-Rudiger Sack

Abstract

Consider a simple polyhedron P, possibly non-convex, composed of n triangular regions (faces), each assigned a positive weight indicating the cost of travel in that region. We present and experimentally study several algorithms to compute an approximate weighted geodesic shortest path, p'(s,t), between two points s and t on the surface of P. Our algorithms are simple, practical, less prone to numerical problems, adaptable to a wide spectrum of weight functions, and use only elementary data structures. An additional feature of our algorithms is that execution time and space utilization can be traded off for accuracy; likewise, a sequence of approximate shortest paths for a given pair of points can be computed with increasing accuracy (and execution time) if desired. Dynamic changes to the polyhedron (removal, insertions of vertices or faces) are easily handled. The key step in these algorithms is the construction of a graph by introducing Steiner points on the edges of the given polyhedron and compute a shortest path in the resulting graph using Dijkstra’s algorithm. Different strategies for Steiner point placement are examined. Our experimental results obtained on Triangular Irregular Networks (TINs) modeling terrains in Geographical Information Systems (GIS) show that a constant number of Steiner points per edge suffice to obtain high-quality approximate shortest paths. The time complexity of these algorithms for TINs (obtained using real data and randomly generated data) which we experimentally investigated is O(n log n).Our analysis bounds the approximate shortest path cost, p'(s,t), by p(s,t) + wmax|le|, where p(s,t) denotes the geodesic shortest path between s and t on the boundary of P, le is the longest edge and wmax is the maximum weight of the faces of P, respectively. The worst case time complexity is bounded by O(n5). We present an alternate algorithm, using graph spanners, that runs in O(n3 log n) worst case time and reports an approximate path such that p'(s,t) <= B(p(s,t) + wmax|le|), where B > 1 is a constant. Our methodology for computing approximate shortest paths in unweighted TINs involves computing the sequence of faces through which the approximate path passes and then constructing the path by performing a sleeve computation. It turns out that often for the TINs studied, the set of faces intersected by our approximate shortest path is identical to that of the actual shortest path. In such cases the “sleeve computation” reports the actual shortest path. The time complexity of this approximation algorithm applied to TINs is O(n log n).

TR-96-32.pdf