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 !