ME5751�Robotics Motion Planning
Outline
Review
BFS/DFS pseudocode
BFS/DFS pseudocode
Path Planning
Valid and not valid path
Many ways, which one is the shortest?
Problem definition
42nd St
43rd St
44th St
8th Ave
7th Ave
6th Ave
5th Ave
400
400
400
80
80
200
Pomona, California
PABT
Grand Central
Mission statement
All images below, unless otherwise noted, are from: (https://brilliant.org/wiki/dijkstras-short-path-finder/)
So Dijisktra pop up a solution
Edsger W. Dijkstra, 1930-2002
Image from Wikipedia.org
Some notation
α
β
γ
δ
ε
ζ
η
Shortest path first algorithm
Dijisktra
A
α=3
β=7
γ=5
search path
source(previous) path
Node | Distance |
A | 0 |
α | 3 |
β | 7 |
γ | 5 |
δ | ∞ |
ε | ∞ |
ζ | ∞ |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
β=7
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 7->4 |
γ | 5 |
δ | ∞ |
ε | ∞ |
ζ | ∞ |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
β=7
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 7->4 |
γ | 5 |
δ | 10 |
ε | ∞ |
ζ | ∞ |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
β=7
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 10 |
ε | 5 |
ζ | 8 |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
γ =7
ε =5
ζ
=8
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 10 |
ε | 5 |
ζ | 8->7 |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=8
ζ
=7
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 10->7 |
ε | 5 |
ζ | 7 |
η | 8 |
B | 7 |
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
ζ
=8
η=8
B=7
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 7 |
ε | 5 |
ζ | 7 |
η | 8 |
B | 7 |
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
ζ
=8
η=8
B=7
List of all nodes Q
Dijisktra’s Algorithm
A
α=3
γ=5
β=4
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
η=8
B=7
Dijisktra’s Algorithm: Reflection
A
α=3
γ=5
β=4
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
η=8
B=7
Dijisktra’s Algorithm: Reflection
A
α=3
γ=5
β=4
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
η=8
B=7
Dijisktra’s Algorithm: Reflection
A
α=3
γ=5
β=4
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=7
δ=7
η=8
B=7
Shortest path first algorithm
Why Dijisktra works? intuition
Dijisktra’s Algorithm: where is \beta?
A
α=3
γ=5
δ=10
β=4
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 10 |
ε | 5 |
ζ | 8->7 |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
ε =5
ζ
=8
ζ
=7
List of all nodes Q
Flood fill algorithm
start
goal
Flood fill algorithm
0
1
1
2
2
3
3
3
4
4
4
4
4
1
1
1
1
1
1
Flood fill algorithm
0
100
100
200
200
300
250
300
450
500
400
300
275
100
50
25
600�500
500�550
Conclusion
Dijisktra’s algorithm’s application
Outline
Question
Priority Queue
https://www.geeksforgeeks.org/priority-queue-set-1-introduction/
Priority Queue
Priority Queue
Binary search tree
Min heap: parents are always smaller than the child
Outline
Dictionary
Priority Queue with Dictionary
Outline
Dijisktra’s Algorithm: re-visit
A
α=3
γ=5
δ=10
β=4
γ =7
ε =5
ζ
=8
α
β
γ
δ
ε
ζ
η
from Wikipedia.org
δ=6
Dijisktra’s Algorithm: re-visit
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 6 |
ε | 5 |
ζ | 8 |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
A
α=3
γ=5
δ=10
β=4
γ =7
ε =5
ζ
=8
δ=6
Dijisktra’s Algorithm: re-visit
Node | Distance |
A | 0 |
α | 3 |
β | 4 |
γ | 5 |
δ | 4.1 |
ε | 5 |
ζ | 8 |
η | ∞ |
B | ∞ |
α
β
γ
δ
ε
ζ
η
A
α=3
γ=5
δ=10
β=4
γ =7
ε =5
ζ
=8
δ=6 4.1
0.1
4.1
Heuristic
Heuristic function
3.61
5
Greedy Best First Search
a5
5
b4
4.47
b5
4.24
Greedy best first search
4.27
4.47
3.61
a5
5
b4
4.47
b5
4.24
c5
3.61
Greedy best first search
4.27
4.47
3.61
2.82
3.16
2.24
2.24
1.41
2
1
1
Greedy best first search
A* algorithm
This quote is here because it optimizes my heuristic on your (understanding on heuristic, and on combining heuristic with known fact)
A* algorithm
a5
5
b4
5.57
b5
5.24
c5
5.61
A* Algorithm
a5
5
b4
5.57
b5
5.24
c5
5.61
a3
6.12
3.16+3 =6.16
2.82+3 =5.83
2.24+4 =6.24
2.24+4 =6.24
4+3 �=7
A* Algorithm
https://en.wikipedia.org/wiki/A*_search_algorithm
https://www.redblobgames.com/pathfinding/a-star/introduction.html
Dijisktra Algorithm A* Algorithm (from Wikipedia)
A* Algorithm
(children may have a larger value�than the parents)
3.16+3 =6.16
2.82+3 =5.83
2.24+4 =6.24
2.24+4 =6.24
4+3 �=7
A* Algorithm: potential field
d(i,j ) = c(i,j) + H(i,j)
A* Algorithm: potential field
d(i,j) = c(i,j) + H(i,j)
A* Algorithm: potential field
A* Algorithm: parameter tuning
A* Algorithm: parameter tuning
Valid and not valid path
tuning a bike ⬄
tuning parameter
Conclusion
Further Development
Dijisktra (1956)
A* (1968)
D* (1995)
Focused D* (1995)
Life long planning A* (2004)
D* lite (1995)