Dynamic programming algorithm for QIP Optimization of cost




















































- Slides: 52

Dynamic programming algorithm for QIP Optimization of cost of multi-track map matching process

Introduction Dynamic Programming


Example for DP • Fibonacci series • We can calculate Fibonacci series as a recursive function, which is reasonable to human. • The code explain the rule of Fibonacci series exactly, so the reader can understand its logic well.

• But there is a problem when the number N goes larger and larger. • Assume that we calculate `fib(5)`, the process will be same as next. • Fib(5) -> Fib(4) + Fib(3) • Fib(4) -> Fib(3) + Fib(2) , Fib(3) -> Fib(2)+Fib(1) • Fib(4) + Fib(3) -> ( Fib(3) + Fib(2) ) + ( Fib(2)+Fib(1) ) ->( ( Fib(2)+Fib(1) ) + Fib(2) ) + ( Fib(2)+Fib(1) ) Example for DP

Example of DP •

Example of DP Naïve programming Dynamic programming

method Dijkstra’s algorithm

Map matching process •

Map matching process • s s

Map matching process • s s s s

Map matching process • s s s s

Map matching process s s s

Map matching process

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Let this red line is a solution (a shortest path or minimum cost), Virtual source

Map matching process Then, this red line also will be a solution of small part. Virtual source Which means, we don’t need to minimize total path at once, but only step by step! Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Map matching process Virtual source Virtual sink Dijkstra’s algorithm

Map matching process Virtual source Virtual sink

To our code implementation

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Implementation Virtual source Virtual sink

Map matching process Virtual source Virtual sink

Dynamic programming and Dijkstra’s algorithm Q&A