1 / 59

Computing the shortest path on a polyhedral surface

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.

oleg-bowers
Download Presentation

Computing the shortest path on a polyhedral surface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

  2. Overview of Presentation • Introduction • Related works • Dijkstra’s Algorithm • Fast Marching Method • Results

  3. Introduction

  4. 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

  5. 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)

  6. 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) Dijkstra's algorithm Fast Marching Methods(FMM)

  7. Dijkstra's Algorithm

  8. Dijkstra's Shortest Path Algorithm • Find shortest path from s to t. 2 24 3 9 s 18 14 6 2 6 4 19 30 11 5 15 5 6 16 20 t 7 44

  9. Dijkstra's Shortest Path Algorithm   2 24 3 0 9 s 18  14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44  distance label 

  10. Dijkstra's Shortest Path Algorithm delmin   2 24 3 0 9 s 18  14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44  distance label 

  11. Dijkstra's Shortest Path Algorithm decrease key   9 X 2 24 3 0 9 s 18  14 X 14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44  distance label  15 X

  12. Dijkstra's Shortest Path Algorithm delmin   (0,9) X 2 24 3 0 9 s 18  14 X 14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44  distance label  15 X

  13. Dijkstra's Shortest Path Algorithm   (0,9) X 2 24 3 0 9 s 18  14 X 14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44   15 X

  14. Dijkstra's Shortest Path Algorithm decrease key  33 X  (0,9) X 2 24 3 0 9 s 18  14 X 14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44   15 X

  15. Dijkstra's Shortest Path Algorithm  33 X  (0,9) X 2 24 3 0 9 delmin s 18  (0,14) X 14 6 2 6  4  19 30 11 5 15 5 6 16 20 t 7 44   15 X

  16. Dijkstra's Shortest Path Algorithm 32  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 2 6  44 4  X 19 30 11 5 15 5 6 16 20 t 7 44   15 X

  17. Dijkstra's Shortest Path Algorithm 32  33 X X  9 X 2 24 3 0 9 s 18  (0,14) X 14 6 2 6  44 4  X 19 30 11 5 15 5 6 16 20 t 7 44  delmin  15 X

  18. Dijkstra's Shortest Path Algorithm 32  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 2 6  35 44 X 4  X 19 30 11 5 15 5 6 16 20 t 7 44  59 X  (0,15) X

  19. Dijkstra's Shortest Path Algorithm delmin (6,32)  33 X X  9 X 2 24 3 0 9 s 18  14 X 14 6 2 6  35 44 X 4  X 19 30 11 5 15 5 6 16 20 t 7 44  59 X  15 X

  20. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 2 6  35 44 X X 4  X 19 30 11 5 15 5 (3,34) 6 16 20 t 7 44  51 59 X X  (0,15) X

  21. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 (3,34) 2 6  35 44 X X 4  X 19 30 11 5 15 5 6 16 delmin 20 t 7 44  51 59 X X  (0,15) X

  22. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 2 6  45 35 X 44 X X 4  X 19 30 (3,34) 11 5 15 5 6 16 20 t 7 44  50 51 59 X X X  (0,15) X

  23. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 (3,34) 2 6  (5, 45) 35 X 44 X X 4  X 19 30 11 5 delmin 15 5 6 16 20 t 7 44  50 51 59 X X X  (0,15) X

  24. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 (6,34) 2 6  (5,45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 t 7 44  50 51 59 X X X  (0,15) X

  25. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 (3,34) 2 6  (5,45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 t 7 44  delmin 50 51 59 X X X  (0,15) X

  26. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 0 9 s 18  (0,14) X 14 6 (3,34) 2 6  (5, 45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 (5,50) t 7 44  51 59 X X X  (0,15) X

  27. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 9 s 0 18  (0,14) X 14 6 (3,34) 2 6  (5, 45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 (5,50) t 7 44  51 59 X X X  (0,15) X

  28. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 9 s 0 18  (0,14) X 14 6 (3,34) 2 6  (5, 45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 (5,50) t 7 44  51 59 X X X  (0,15) X

  29. Dijkstra's Shortest Path Algorithm (6,32)  33 X X  (0,9) X 2 24 3 9 s 0 18  (0,14) X 14 6 (3,34) 2 6  (5, 45) 35 X 44 X X 4  X 19 30 11 5 15 5 6 16 20 (5,50) t 7 44  51 59 X X X  (0,15) X

  30. 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.

  31. Preliminaries 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. 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.

  32. Fast Marching Method(FMM) • J. A. Sethian • Professor • Department of Mathematics • University of California, Berkeley • Norbert Wiener Prize in Applied Mathematics • R. Kimmel Professor Department of Computer Science Technion-Israel Institute of Technology IEEE Transactions on Image Processing

  33. Forest fire

  34. 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 .

  35. Eikonal equation • Eikonal equation (from Greek εικων) • Hyperbolic PDE with boundary condition • Minimal geodesics are characteristics. • Describes propagation of waves in medium.

  36. 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 from the triangle. • Mark with minimum value of as black (remove from ) • Until there are no more green vertices. • Return distance map .

  37. 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 computed from and • Path can pass on mesh faces

  38. Fast Marching Method cont.

  39. propagation Using the intrinsic variable of the triangulation Acute triangulation The update procedure is given as follows

  40. Fast Marching Method cont. Acute triangulation guarantee that the consistent solution approximating the Viscosity solution of the Eikonal equation has the monotone property

  41. Obtuse triangulation Inconsistent solution if the mesh contains obtuse triangles Remeshing is costly

  42. Obtuse triangulation cont. • Solution: split obtuse triangles by adding virtual connections to non-adjacent vertices

  43. Obtuse triangulation cont. Done as a pre-processing step in

  44. Results (Good)

  45. Results (Bad)

  46. Why?

  47. More Flags for Keeping Track of an Advancing Wavefront FromVertex : 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.

  48. More Flags for Keeping Track of an Advancing Wavefront • From Left Part: edge v1v3 receives wavefront coming from the left part of edge v1v2. (b) From Right Part: Edge v3v2 receives wavefront coming from the right part of edge v1v2.

More Related