Transcript Slide 1
Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25 Overview of Presentation Introduction Related works Dijkstra’s Algorithm Fast Marching Method Results Introduction Motivation Computing the shortest path between two points s and t on a polyhedral surface S is a basic and natural problem From the viewpoint of application: Robotics, geographic information systems and navigation Establishing a surface distance metric Related works Exact globally shortest path algorithms Shair and Schorr (1986) On shortest paths in polyhedral spaces. O(n3logn) Mount (1984) On finding shortest paths on convex polyhedral. O(n2logn) Mitchell, Mount and Papadimitriou (MMP)(1987) The discrete geodesic problem. O(n2logn) Chen and Han(1990) shortest paths on a polyhedron. O(n2) Approximate shortest path algorithms Sethian J.A (1996) A Fast Marching Level Set Method for Monotonically Advancing Fronts. O(nlogn) Kimmel and Sethian(1998) Computing geodesic paths on manifolds. O(nlogn) Xin Shi-Qing and Wang Guo-Jin(2007) Efficiently determining a locally exact shortest path on polyhedral surface. O(nlogn) Related works Exact globally shortest path algorithms Shair and Schorr (1986) On shortest paths in polyhedral spaces. O(n3logn) Mount (1984) On finding shortest paths on convex polyhedral. O(n2logn) Mitchell, Mount and Papadimitriou (MMP)(1987) The discrete geodesic problem. O(n2logn) Dijkstra's Chen and Han(1990) shortest paths on a polyhedron. O(n2) algorithm Approximate shortest path algorithms Sethian J.A (1996) A Fast Marching Level Set Method for Monotonically Advancing Fronts. O(nlogn) Kimmel and Sethian(1998) Computing geodesic paths on manifolds. O(nlogn) Xin Shi-Qing and Wang Guo-Jin(2007) Efficiently determining a locally exact shortest path on polyhedral surface. O(nlogn) Fast Marching Methods(FMM) Dijkstra's Algorithm Dijkstra's Shortest Path Algorithm Find shortest path from s to t. 24 2 9 s 3 18 14 6 30 15 11 5 5 4 19 6 16 20 7 6 2 44 t Dijkstra's Shortest Path Algorithm 0 s 24 2 9 18 14 30 11 5 5 distance label 19 16 44 4 6 20 7 6 2 6 15 3 t Dijkstra's Shortest Path Algorithm delmin 0 s 24 2 9 18 14 30 11 5 5 distance label 4 19 6 16 20 7 6 2 6 15 3 44 t Dijkstra's Shortest Path Algorithm decrease key X 9 0 s 24 2 9 18 X 14 14 30 11 5 5 distance label 15 X 4 19 6 16 20 7 6 2 6 15 3 44 t Dijkstra's Shortest Path Algorithm delmin X (0,9) 0 s 24 2 9 18 X 14 14 30 11 5 5 distance label 15 X 4 19 6 16 20 7 6 2 6 15 3 44 t Dijkstra's Shortest Path Algorithm X (0,9) 0 s 24 2 9 18 X 14 14 30 11 5 5 15 X 4 19 6 16 20 7 6 2 6 15 3 44 t Dijkstra's Shortest Path Algorithm decrease key X 33 X (0,9) 0 s 24 2 9 18 X 14 14 30 11 5 5 15 X 4 19 6 16 20 7 6 2 6 15 3 44 t Dijkstra's Shortest Path Algorithm X 33 X (0,9) 0 s 24 2 9 3 delmin 18 X (0,14) 14 6 30 15 11 5 5 15 X 4 19 6 16 20 7 6 2 44 t Dijkstra's Shortest Path Algorithm 32 X 33 X X (0,9) 0 s 24 2 9 18 X (0,14) 14 6 30 15 44 X 11 15 X 4 19 6 16 20 7 6 2 5 5 3 44 t Dijkstra's Shortest Path Algorithm 32 X 33 X X 9 0 s 24 2 9 18 X (0,14) 14 6 30 15 44 X 11 4 19 6 16 20 7 15 X 6 2 5 5 3 44 delmin t Dijkstra's Shortest Path Algorithm 32 X 33 X X (0,9) 0 s 24 2 9 18 X (0,14) 14 6 30 15 44 X 35 X (0,15) X 11 4 19 6 16 20 7 6 2 5 5 3 44 t 59 X Dijkstra's Shortest Path Algorithm delmin (6,32) X 33 X X 9 0 s 24 2 9 18 X 14 14 30 44 X 35 X 5 5 15 X 11 4 19 6 16 20 7 6 2 6 15 3 44 t 59 X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 18 X (0,14) 14 6 30 15 44 X X 35 X (3,34) (0,15) X 11 4 19 6 16 20 7 6 2 5 5 3 44 t 51 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 (0,15) X (3,34) 44 X X 35 X 6 2 11 4 19 6 20 7 18 5 5 3 16 delmin 44 t 51 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 5 18 (0,15) X 6 2 44 X X 35 X (3,34) 5 45 X 11 4 19 6 16 20 7 3 44 t 50 51 X 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5, 45) X 4 11 19 delmin 6 16 20 7 3 44 t 50 51 X 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 18 (6,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5,45) X 11 4 19 6 16 20 7 3 44 t 50 51 X 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5,45) X 11 4 19 6 16 20 7 3 t 44 delmin 50 51 X 59 X X Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 0 s 24 2 9 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5, 45) X 11 4 19 6 16 20 7 3 44 (5,50) t X 51 X X59 Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 9 s 0 24 2 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5, 45) X 11 4 19 6 16 20 7 3 44 (5,50) t X 51 X X59 Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 9 s 0 24 2 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5, 45) X 11 4 19 6 16 20 7 3 44 (5,50) t X 51 X X59 Dijkstra's Shortest Path Algorithm (6,32) X 33 X X (0,9) 9 s 0 24 2 X (0,14) 14 6 30 15 18 (3,34) 44 X X 35 X 5 5 (0,15) X 6 2 (5, 45) X 11 4 19 6 16 20 7 3 44 (5,50) t X 51 X X59 Summary Dijkstra’s algorithm is to construct a tree of shortest paths from a start vertex to all the other vertices on the graph. Characteristics: 1. Monotone property: Every vertex is processed exactly once 2. When reach the destination, trace backward to find the shortest path. Preliminaries Let S be a triangulated polyhedral surface in R3, defined by a set of faces, edges and vertices. Assume that the Surface S has n faces and x0, x are two points on the surface. Face sequence: F is defined by a list of adjacent faces f1, f2,…, fm+1 such that fi and fi+1 share a common edge ei . Then we call the list of edges E=(e1,e2,…,em) an edge sequence. Fast Marching Method(FMM) R. Kimmel Professor Department of Computer Science Technion-Israel Institute of Technology IEEE Transactions on Image Processing J. A. Sethian Professor Department of Mathematics University of California, Berkeley Norbert Wiener Prize in Applied Mathematics Forest fire Eikonal equation Let be a minimal geodesic between and . The derivative is the fire front propagation direction. In arclength parametrization . Fermat’s principle: Propagation direction = direction of steepest increase of Geodesic is perpendicular to the level sets of on . . Eikonal equation Eikonal equation (from Greek εικων) Hyperbolic PDE with boundary condition Minimal geodesics are characteristics. Describes propagation of waves in medium. Fast marching algorithm Initialize and mark it as black. Initialize for other vertices and mark them as green. Initialize queue of red vertices . Repeat Mark green neighbors of black vertices as red (add to ) For each red vertex For each triangle sharing the vertex Update Mark from the triangle. with minimum value of as black (remove from Until there are no more green vertices. Return distance map . ) Update step difference Dijkstra’s update Vertex updated from adjacent vertex Distance computed from Path restricted to graph edges Fast marching update Vertex updated from triangle Distance from computed and Path can pass on mesh faces Fast Marching Method cont. propagation Using the intrinsic variable of the triangulation Acute triangulation The update procedure is given as follows Fast Marching Method cont. Acute triangulation guarantee that the consistent solution approximating the Viscosity solution of the Eikonal equation has the monotone property Obtuse triangulation Inconsistent solution if the mesh contains obtuse triangles Remeshing is costly Obtuse triangulation cont. Solution: split obtuse triangles by adding virtual connections to non-adjacent vertices Obtuse triangulation Done as a pre-processing step in cont. Results (Good) Results (Bad) Why? More Flags for Keeping Track of an Advancing Wavefront From Vertex : the shortest path to the vertex v goes via its adjacent vertex v’. From Edge: the shortest path to the vertex v goes across the edge v1v2; p is the access point. More Flags for Keeping Track of an Advancing Wavefront From Left Part: edge v1v3 receives wavefront coming from the left part of edge v1v2. (a) (b) From Right Part: Edge v3v2 receives wavefront coming from the right part of edge v1v2. Backtracing Paths Result Questions will be welcome !