150 likes | 250 Views
Shortest path problems. Lecture 2. © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book. Numerical geometry of non-rigid shapes Stanford University, Winter 2009. How to compute the intrinsic metric?. So far, we represented itself.
E N D
Shortest path problems Lecture 2 © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book Numerical geometry of non-rigid shapes Stanford University, Winter 2009
How to compute the intrinsic metric? • So far, we represented itself. • Our model of non-rigid shapes as metric spaces involves the intrinsic metric • Sampling procedure requires as well. • We need a tool to compute geodesic distances on .
Shortest path problem Brussels 943 566 Prague 183 Paris 504 1542 194 902 407 285 Vienna 346 271 Munich 1146 Bern
Shapes as graphs • Sample the shape at vertices . • Represent shape as an undirected graph • set of edges representing adjacent vertices. • Define length function measuring local distances as Euclidean ones,
Shapes as graphs • Path between is an ordered set of connected edges where and . • Path length = sum of edge lengths
Geodesic distance • Shortest path between • Length metric in graph • Approximates the geodesic distance on the shape. • Shortest path problem: compute and between any . • Alternatively:given a source point , compute the distance map .
Bellman’s principle of optimality • Let be shortest path between and a point on the path. • Then, and are shortest sub-paths between , and . • Suppose there exists a shorter path . • Contradiction to being shortest path. Richard Bellman (1920-1984)
Dynamic programming • How to compute the shortest path between source and on ? • Bellman principle: there exists such that • has to minimize path length • Recursive dynamic programming equation.
Edsger Wybe Dijkstra(1930–2002) [‘ɛtsxər ‘wibə ‘dɛɪkstra]
Dijkstra’s algorithm • Initialize and for the rest of the graph; Initialize queue of unprocessed vertices . • While • Find vertex with smallest value of , • For each unprocessed adjacent vertex , • Remove from . • Return distance map .
183 183 183 749 749 749 749 0 183 0 346 0 617 679 617 679 617 617 904 904 904 904 904 346 346 346 346 Dijkstra’s algorithm Brussels 566 Prague 183 Paris 504 407 194 285 346 271 Munich Vienna Bern
Dijkstra’s algorithm – complexity • While there are still unprocessed vertices • Find and remove minimum • For each unprocessed adjacent vertex • Perform update • Every vertex is processed exactly once: outer iterations. • Minimum extraction straightforward complexity: • Can be reduced to using binary or Fibonacci heap. • Updating adjacent vertices is in general . • In our case, graph is sparsely connected, update in . • Total complexity: .
Troubles with the metric • Grid with 4-neighbor connectivity. • True Euclidean distance • Shortest path in graph (not unique) • Increasing sampling density does not help.
Metrication error 4-neighbor topology Manhattan distance 8-neighbor topology Continuous Euclidean distance • Graph representation induces an inconsistent metric. • Increasing sampling size does not make it consistent. • Neither does increasing connectivity.
Metrication error • How to approximate the metric consistently? Solution 1 • Stick to graph representation. • Change connectivity and sampling. • Under certain conditions consistency is guaranteed. Solution 2 • Stick to given sampling (and connectivity). • Compute distance map on a surface in some representation (e.g., mesh). • Requires a new algorithm.