SlideShare a Scribd company logo
1 of 62
Download to read offline
INCREMENTAL SEARCH
AI Frontiers 2018
PROBLEM STATEMENT
Given a potentially inaccurate map of the environment, 

navigate from S to G
PROBLEM STATEMENT
Given a potentially inaccurate map of the environment, 

navigate from S to G
PROBLEM STATEMENT
• Proactive approach:
• Take uncertainty into account during planning. Computationally
expensive
• Reactive approach:
• Plan optimistically and replan if necessary. Computationally cheaper
HIGH LEVEL OPERATIONS
Case 1: 

Assume given map is accurate
(and the map is accurate)
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Map of the environment
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
Case 2: 

Assume given map is inaccurate
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and
go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
HIGH LEVEL OPERATIONS
1. Input: Optimistic map (assume there are no obstacles)
2. Discretize the search space
3. Find a shortest path to the goal
4. Move along path. If path is blocked, update the map and 

go to step 3
Instead of searching for a shortest path from
scratch, reuse information from the previous
search to speed up the current search
INCREMENTAL SEARCH
First search Second search
reusing information 

from the first search
...
INCREMENTAL SEARCH
• Generally, there are two classes of algorithms:
• Algorithms that improve heuristics:
• AA* [Koenig & Likhachev, AAMAS ’05]
• MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07]
• GAA* [Sun, Koenig &Yeoh, AAMAS ’08]
• ...
• Algorithms that transform search trees:
• G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10]
• FRA* [Sun,Yeoh & Koenig, IJCAI ’09]
• ...
INCREMENTAL SEARCH
• Generally, there are two classes of algorithms:
• Algorithms that improve heuristics:
• AA* [Koenig & Likhachev, AAMAS ’05]
• MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07]
• GAA* [Sun, Koenig &Yeoh, AAMAS ’08]
• ...
• Algorithms that transform search trees:
• G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10]
• FRA* [Sun,Yeoh & Koenig, IJCAI ’09]
• ...
BACKGROUND: A*
• Maintains three values for each cell s
• g(s): cost from start to s
• h(s): estimated cost from s to goal
• f(s) = g(s) + h(s): estimated cost from start to goal
• Maintains two lists
• CLOSED: Contains expanded cells (i.e., cells whose shortest path from
start is known)
• OPEN: Priority queue that contains generated cells
BACKGROUND: A*
1 5

2
1 6

2
0 7

6
1 8

2
1 4

2
1 5

2
1 6

2
1 7

2
1 4

2
1 5

2
1 6

2
1 2

2
1 3

2
1 4

2
1 5

2
1 1

2
1 2

2
1 3

2
1 4

2
1 4

2
1 3

2
0 2

2 S
1 0

2 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
1 5

2
1 6

2
0 7

6
1 8

2
1 4

2
1 5

2
1 6

2
1 7

2
1 4

2
1 5

2
1 6

2
1 2

2
1 3

2
1 4

2
1 5

2
1 1

2
1 2

2
1 3

2
1 4

2
1 4

2
1 3

4
0 2

2 S
1 0

2 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
1 5

2
1 6

2
0 7

6
1 8

2
2 4

6
1 5

2
1 6

2
1 7

2
1 4

2
1 5

2
1 6

2
1 2

2
1 3

2
1 4

2
1 5

2
1 1

2
1 2

2
1 3

2
1 4

2
2 4

6
1 3

4
0 2

2 S
1 0

2 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
1 6

2
0 7

6
1 8

2
2 4

6
3 5

8
1 6

2
1 7

2
1 4

2
1 5

2
1 6

2
1 2

2
1 3

2
1 4

2
1 5

2
1 1

2
1 2

2
1 3

2
1 4

2
2 4

6
1 3

4
0 2

2 S
1 0

2 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
4 6

10
0 7

6
1 8

2
2 4

6
3 5

8
4 6

10
1 7

2
4 4

8
5 5

10
1 6

2
6 2

8
5 3

8
6 4

10
1 5

2
7 1

8
6 2

8
7 3

10
1 4

2
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
4 6

10
0 7

6
1 8

2
2 4

6
3 5

8
4 6

10
1 7

2
4 4

8
5 5

10
1 6

2
6 2

8
5 3

8
6 4

10
1 5

2
7 1

8
6 2

8
7 3

10
1 4

2
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
INCREMENTAL SEARCH
• Generally, there are two classes of algorithms:
• Algorithms that improve heuristics:
• AA* [Koenig & Likhachev, AAMAS ’05]
• MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07]
• GAA* [Sun, Koenig &Yeoh, AAMAS ’08]
• ...
• Algorithms that transform search trees:
• G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10]
• FRA* [Sun,Yeoh & Koenig, IJCAI ’09]
• ...
ALGORITHM 1: AA*
• Adaptive A* (AA*) [Koenig & Likhachev, AAMAS ’05]
• Uses standard A* searches
• Updates h-values to make them more informed, i.e. better estimates
• Speeds up the A* searches
ALGORITHM 1: AA*
Main idea:
g(s) + cost(s, goal) ≥ g(goal)

cost(s,goal) ≥ g(goal) - g(s)

hnew(s) = g(goal) - g(s)
s
goalstart
g(goal)
cost(s,goal)g(s)
ALGORITHM 1: AA*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
ALGORITHM 1: AA*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
ALGORITHM 1: AA*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
ALGORITHM 1: AA*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
ALGORITHM 1: AA*
2 5

7
1 6

7
2 7

9
1 4

5
0 5

5 S
1 6

7
2 7

9
2 5

7
3 6

9
7 2

9
4 3

7
3 4

7
4 5

9
6 1

7
5 2

7
4 3

7
5 4

9
3 4

7
2 3

5
3 2

5
7 0

7 G
1 2 3 4 5 6 7
2 5

7
1 6

7
2 7

9
1 6

7
0 5

5 S
1 6

7
2 7

9
2 5

7
3 6

9
7 2

9
4 3

7
3 4

7
4 5

9
6 1

7
5 2

7
4 3

7
5 4

9
3 6

9
2 7

9
7 0

7 G
A
E
D
C
B
G
F
1 2 3 4 5 6 7
Adaptive A* A*
ALGORITHM 1: AA*
• Results:
• Up to 20% faster than A* on grids with Manhattan distance as
h-values
• Typically, the worse the h-values, the larger the speedup
• Well-suited for high dimensional search spaces, where h-values
are often bad
ALGORITHM 1: AA*
Other algorithms in this class:
• MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07]
• Extension to search paths when the target moves
• GAA* [Sun, Koenig &Yeoh, AAMAS ’08]
• Extension to handle decreasing costs
• Applied to control the robotic arm at the International Space Station by
the Canadian Space Agency [Belghith, Kabanza & Hartman, AIS ’10]
• Trea-AA* [Hernandez, Sun, Koenig & Meseguer, AAMAS ’11]
• Extension to speed up the search by reusing search trees
INCREMENTAL SEARCH
• Generally, there are two classes of algorithms:
• Algorithms that improve heuristics:
• AA* [Koenig & Likhachev, AAMAS ’05]
• MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07]
• GAA* [Sun, Koenig &Yeoh, AAMAS ’08]
• ...
• Algorithms that transform search trees:
• G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10]
• FRA* [Sun,Yeoh & Koenig, IJCAI ’09]
• ...
ALGORITHM 2: G-FRA*
• Generalized Fringe-Retrieving A* (G-FRA*) 

[Sun,Yeoh & Koenig, AAMAS ’08]
• Uses standard A* searches
• Identifies portions of the search tree of the previous search that
can be reused
• Starts the search with these portions
BACKGROUND: A*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

8 G
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
BACKGROUND: A*
3 5

8
4 6

10
2 4

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
2 4

6
1 3

4
0 2

2 S
8 0

0 G
C3 C4
D2 D3 D4
E3
F2 F3 F4
C6
D6
E6
F6
C5
D5
E5E2
while(goal ∉ CLOSED)
{
s = argmins∈OPEN f(s)
move s to CLOSED
for all neighboring cells c of s
{
if(c ∉ OPEN ∪ CLOSED)
set g(c) and f(c)
add c to OPEN
else if(c ∈ OPEN)
update g(c) and f(c)
}
}
A
E
D
C
B
G
F
1 2 3 4 5 6 7
g h

f f = g + h CLOSEDOPEN parent pointers
C3 C4
D2 D3 D4
E2 E3
F2 F3 F4
C6
D6
E6
F6
C5
D5
E5
C3
C4
D2
D3
D4
E2
E3F2
F3
F4
C6
D6
E6
F6
C5
D5
E5
C3
C4
D2
D3
D4
E2
E3F2
F3
F4
C6
D6
E6
F6
C5
D5
E5
C3 C4
D2 D3 D4
E2 E3
F2 F3 F4
C6
D6
E6
F6
C5
D5
E5
ALGORITHM 2: G-FRA*
4 6

10
0 7

6
1 8

2
3 5

8
4 6

10
1 7

2
4 4

8
5 5

10
1 6

2
6 2

8
5 3

8
6 4

10
1 5

2
7 1

8
6 2

8
7 3

10
1 4

2
8 0

0 G
A
E
D
C
B
G
F
1 2 3 4 5 6 7
C3 C4
D2 D3 D4
E2 E3
F2 F3 F4
C6
D6
E6
F6
C5
D5
E5
High-level pseudocode:
1. Identify reusable portion of the
search tree
2. Remove the unreusable portion
3. Add the cells in the fringe to the
OPEN list
4. Restart the search
ALGORITHM 2: G-FRA*
0 7

6
4 6

10
0 7

6
0 7

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
0 7

6
0 7

6
0 7

6
8 0

0 G
C3 C4
D2 D3 D4
C6
D6
E6
F6
C5
D5
E5
A
E
D
C
B
G
F
1 2 3 4 5 6 7
High-level pseudocode:
1. Identify reusable portion of the
search tree
2. Remove the unreusable portion
ALGORITHM 2: G-FRA*
0 7

6
4 6

10
0 7

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
0 7

6
0 7

6
0 7

6
8 0

0 G
C3 C4
D2 D3 D4
C6
D6
E6
F6
C5
D5
E5E3
A
E
D
C
B
G
F
1 2 3 4 5 6 7
High-level pseudocode:
1. Identify reusable portion of the
search tree
2. Remove the unreusable portion
3. Add the cells in the fringe to the
OPEN list
ALGORITHM 2: G-FRA*
0 7

6
4 6

10
0 7

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
0 7

6
0 7

6
0 7

6
8 0

0 G
C3 C4
D2 D3 D4
C6
D6
E6
F6
C5
D5
E5
High-level pseudocode:
1. Identify reusable portion of the
search tree
2. Remove the unreusable portion
3. Add the cells in the fringe to the
OPEN list
4. Restart the search
E3
A
E
D
C
B
G
F
1 2 3 4 5 6 7
ALGORITHM 2: G-FRA*
0 7

6
4 6

10
0 7

6
3 5

8
4 6

10
4 4

8
5 5

10
6 2

8
5 3

8
6 4

10
7 1

8
6 2

8
7 3

10
0 7

6
0 7

6
0 7

6
8 0

0 G
C3 C4
D2 D3 D4
C6
D6
E6
F6
C5
D5
E5E3
A
E
D
C
B
G
F
1 2 3 4 5 6 7
High-level pseudocode:
1. Identify reusable portion of the
search tree
2. Remove the unreusable portion
3. Add the cells in the fringe to the
OPEN list
4. Restart the search
ALGORITHM 2: G-FRA*
• Results:
• Up to one order of magnitude faster than GAA*
• Typically, the larger the reusable portion of the search tree, the
faster the algorithm
• Well suited for problems that change only slightly between
search iterations
ALGORITHM 2: G-FRA*
Other algorithms in this class:
• FRA* [Sun,Yeoh & Koenig, IJCAI ’07]
• Optimized version of G-FRA* for navigation in 2D grids
• D* [Stentz, ICRA ’94], D* Lite [Koenig & Likhachev, AAAI ’02]
• Applied to the navigation of the Mars rovers
• Applied to the navigation of UGVs in the DARPA Urban Challenge
• MT-D* Lite [Sun,Yeoh & Koenig, AAMAS ’10]
• Combination of D* Lite and G-FRA* to speed up the search
SUMMARY
• Incremental search algorithms
• Reuses information to speed up the search
• Useful when one needs to search repeatedly for shortest paths
in a graph
• Often applied to robotics applications for autonomous
navigation

More Related Content

What's hot

Presentation - Bi-directional A-star search
Presentation - Bi-directional A-star searchPresentation - Bi-directional A-star search
Presentation - Bi-directional A-star search
Mohammad Saiful Islam
 
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptxPR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
grssieee
 
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
Sean Barbeau
 
Estimation of Signal Models for Aerospace and Industrial Applications slides
Estimation of Signal Models for Aerospace and Industrial Applications slidesEstimation of Signal Models for Aerospace and Industrial Applications slides
Estimation of Signal Models for Aerospace and Industrial Applications slides
Anirban Krishna Bhattacharyya
 

What's hot (18)

Astar algorithm
Astar algorithmAstar algorithm
Astar algorithm
 
Presentation - Bi-directional A-star search
Presentation - Bi-directional A-star searchPresentation - Bi-directional A-star search
Presentation - Bi-directional A-star search
 
Game Paper
Game PaperGame Paper
Game Paper
 
Lecture 21 problem reduction search ao star search
Lecture 21 problem reduction search ao star searchLecture 21 problem reduction search ao star search
Lecture 21 problem reduction search ao star search
 
A* Algorithm
A* AlgorithmA* Algorithm
A* Algorithm
 
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptxPR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
PR3 MODIS_VIIRS_Geo_Error_Trend_with_Kalman_Filter.pptx
 
Cross-Validation and Big Data Partitioning Via Experimental Design
Cross-Validation and Big Data Partitioning Via Experimental DesignCross-Validation and Big Data Partitioning Via Experimental Design
Cross-Validation and Big Data Partitioning Via Experimental Design
 
Spatial SQL
Spatial SQLSpatial SQL
Spatial SQL
 
Helicopter rotor tip vortex diffusion
Helicopter rotor tip vortex diffusionHelicopter rotor tip vortex diffusion
Helicopter rotor tip vortex diffusion
 
Heuristic search
Heuristic searchHeuristic search
Heuristic search
 
Lecture 14 Heuristic Search-A star algorithm
Lecture 14 Heuristic Search-A star algorithmLecture 14 Heuristic Search-A star algorithm
Lecture 14 Heuristic Search-A star algorithm
 
A* algorithm
A* algorithmA* algorithm
A* algorithm
 
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
TRB 2014 - Automatic Spatial-temporal Identification of Points of Interest in...
 
1984 Article on An Application of AI to Operations Reserach
1984 Article on An Application of AI to Operations Reserach1984 Article on An Application of AI to Operations Reserach
1984 Article on An Application of AI to Operations Reserach
 
Example of iterative deepening search & bidirectional search
Example of iterative deepening search & bidirectional searchExample of iterative deepening search & bidirectional search
Example of iterative deepening search & bidirectional search
 
Lwrb ms
Lwrb msLwrb ms
Lwrb ms
 
A* Search Algorithm
A* Search AlgorithmA* Search Algorithm
A* Search Algorithm
 
Estimation of Signal Models for Aerospace and Industrial Applications slides
Estimation of Signal Models for Aerospace and Industrial Applications slidesEstimation of Signal Models for Aerospace and Industrial Applications slides
Estimation of Signal Models for Aerospace and Industrial Applications slides
 

Similar to Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-lecture 2: Incremental Search

Heuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptxHeuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptx
Swagat Praharaj
 
Artificial intelligence topic for the btech studentCT II.pptx
Artificial intelligence topic for the btech studentCT II.pptxArtificial intelligence topic for the btech studentCT II.pptx
Artificial intelligence topic for the btech studentCT II.pptx
bharatipatel22
 
Jarrar.lecture notes.aai.2011s.ch4.informedsearch
Jarrar.lecture notes.aai.2011s.ch4.informedsearchJarrar.lecture notes.aai.2011s.ch4.informedsearch
Jarrar.lecture notes.aai.2011s.ch4.informedsearch
PalGov
 

Similar to Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-lecture 2: Incremental Search (20)

AI3391 ARTIFICIAL INTELLIGENCE UNIT II notes.pdf
AI3391 ARTIFICIAL INTELLIGENCE UNIT II notes.pdfAI3391 ARTIFICIAL INTELLIGENCE UNIT II notes.pdf
AI3391 ARTIFICIAL INTELLIGENCE UNIT II notes.pdf
 
AI-04 Production System - Search Problem.pptx
AI-04 Production System - Search Problem.pptxAI-04 Production System - Search Problem.pptx
AI-04 Production System - Search Problem.pptx
 
Heuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptxHeuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptx
 
Heuristic approach optimization
Heuristic  approach optimizationHeuristic  approach optimization
Heuristic approach optimization
 
Informed Search Techniques new kirti L 8.pptx
Informed Search Techniques new kirti L 8.pptxInformed Search Techniques new kirti L 8.pptx
Informed Search Techniques new kirti L 8.pptx
 
HEURISTIC SEARCH and other technique.pptx
HEURISTIC SEARCH and other technique.pptxHEURISTIC SEARCH and other technique.pptx
HEURISTIC SEARCH and other technique.pptx
 
FADML 10 PPC Solving NP-Hard Problems.pdf
FADML 10 PPC Solving NP-Hard Problems.pdfFADML 10 PPC Solving NP-Hard Problems.pdf
FADML 10 PPC Solving NP-Hard Problems.pdf
 
2-Heuristic Search.ppt
2-Heuristic Search.ppt2-Heuristic Search.ppt
2-Heuristic Search.ppt
 
DAA Notes.pdf
DAA Notes.pdfDAA Notes.pdf
DAA Notes.pdf
 
Artificial intelligence topic for the btech studentCT II.pptx
Artificial intelligence topic for the btech studentCT II.pptxArtificial intelligence topic for the btech studentCT II.pptx
Artificial intelligence topic for the btech studentCT II.pptx
 
Artificial Intelligence_Searching.pptx
Artificial Intelligence_Searching.pptxArtificial Intelligence_Searching.pptx
Artificial Intelligence_Searching.pptx
 
Jarrar.lecture notes.aai.2011s.ch4.informedsearch
Jarrar.lecture notes.aai.2011s.ch4.informedsearchJarrar.lecture notes.aai.2011s.ch4.informedsearch
Jarrar.lecture notes.aai.2011s.ch4.informedsearch
 
Heuristic Searching: A* Search
Heuristic Searching: A* SearchHeuristic Searching: A* Search
Heuristic Searching: A* Search
 
Searching Informed Search.pdf
Searching Informed Search.pdfSearching Informed Search.pdf
Searching Informed Search.pdf
 
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
 
Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}
 
AI3391 Session 10 A searching algorithm.pptx
AI3391 Session 10 A searching algorithm.pptxAI3391 Session 10 A searching algorithm.pptx
AI3391 Session 10 A searching algorithm.pptx
 
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekAIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
 
Rai practical presentations.
Rai practical presentations.Rai practical presentations.
Rai practical presentations.
 
A* and Min-Max Searching Algorithms in AI , DSA.pdf
A* and Min-Max Searching Algorithms in AI , DSA.pdfA* and Min-Max Searching Algorithms in AI , DSA.pdf
A* and Min-Max Searching Algorithms in AI , DSA.pdf
 

More from AI Frontiers

Arnaud Thiercelin at AI Frontiers : AI in the Sky
Arnaud Thiercelin at AI Frontiers : AI in the SkyArnaud Thiercelin at AI Frontiers : AI in the Sky
Arnaud Thiercelin at AI Frontiers : AI in the Sky
AI Frontiers
 

More from AI Frontiers (20)

Divya Jain at AI Frontiers : Video Summarization
Divya Jain at AI Frontiers : Video SummarizationDivya Jain at AI Frontiers : Video Summarization
Divya Jain at AI Frontiers : Video Summarization
 
Training at AI Frontiers 2018 - LaiOffer Data Session: How Spark Speedup AI
Training at AI Frontiers 2018 - LaiOffer Data Session: How Spark Speedup AI Training at AI Frontiers 2018 - LaiOffer Data Session: How Spark Speedup AI
Training at AI Frontiers 2018 - LaiOffer Data Session: How Spark Speedup AI
 
Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-Lecture 1: Heuristi...
Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-Lecture 1: Heuristi...Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-Lecture 1: Heuristi...
Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-Lecture 1: Heuristi...
 
Training at AI Frontiers 2018 - Ni Lao: Weakly Supervised Natural Language Un...
Training at AI Frontiers 2018 - Ni Lao: Weakly Supervised Natural Language Un...Training at AI Frontiers 2018 - Ni Lao: Weakly Supervised Natural Language Un...
Training at AI Frontiers 2018 - Ni Lao: Weakly Supervised Natural Language Un...
 
Training at AI Frontiers 2018 - Udacity: Enhancing NLP with Deep Neural Networks
Training at AI Frontiers 2018 - Udacity: Enhancing NLP with Deep Neural NetworksTraining at AI Frontiers 2018 - Udacity: Enhancing NLP with Deep Neural Networks
Training at AI Frontiers 2018 - Udacity: Enhancing NLP with Deep Neural Networks
 
Training at AI Frontiers 2018 - Lukasz Kaiser: Sequence to Sequence Learning ...
Training at AI Frontiers 2018 - Lukasz Kaiser: Sequence to Sequence Learning ...Training at AI Frontiers 2018 - Lukasz Kaiser: Sequence to Sequence Learning ...
Training at AI Frontiers 2018 - Lukasz Kaiser: Sequence to Sequence Learning ...
 
Percy Liang at AI Frontiers : Pushing the Limits of Machine Learning
Percy Liang at AI Frontiers : Pushing the Limits of Machine LearningPercy Liang at AI Frontiers : Pushing the Limits of Machine Learning
Percy Liang at AI Frontiers : Pushing the Limits of Machine Learning
 
Ilya Sutskever at AI Frontiers : Progress towards the OpenAI mission
Ilya Sutskever at AI Frontiers : Progress towards the OpenAI missionIlya Sutskever at AI Frontiers : Progress towards the OpenAI mission
Ilya Sutskever at AI Frontiers : Progress towards the OpenAI mission
 
Mark Moore at AI Frontiers : Uber Elevate
Mark Moore at AI Frontiers : Uber ElevateMark Moore at AI Frontiers : Uber Elevate
Mark Moore at AI Frontiers : Uber Elevate
 
Mario Munich at AI Frontiers : Consumer robotics: embedding affordable AI in ...
Mario Munich at AI Frontiers : Consumer robotics: embedding affordable AI in ...Mario Munich at AI Frontiers : Consumer robotics: embedding affordable AI in ...
Mario Munich at AI Frontiers : Consumer robotics: embedding affordable AI in ...
 
Arnaud Thiercelin at AI Frontiers : AI in the Sky
Arnaud Thiercelin at AI Frontiers : AI in the SkyArnaud Thiercelin at AI Frontiers : AI in the Sky
Arnaud Thiercelin at AI Frontiers : AI in the Sky
 
Anima Anandkumar at AI Frontiers : Modern ML : Deep, distributed, Multi-dimen...
Anima Anandkumar at AI Frontiers : Modern ML : Deep, distributed, Multi-dimen...Anima Anandkumar at AI Frontiers : Modern ML : Deep, distributed, Multi-dimen...
Anima Anandkumar at AI Frontiers : Modern ML : Deep, distributed, Multi-dimen...
 
Wei Xu at AI Frontiers : Language Learning in an Interactive and Embodied Set...
Wei Xu at AI Frontiers : Language Learning in an Interactive and Embodied Set...Wei Xu at AI Frontiers : Language Learning in an Interactive and Embodied Set...
Wei Xu at AI Frontiers : Language Learning in an Interactive and Embodied Set...
 
Sumit Gupta at AI Frontiers : AI for Enterprise
Sumit Gupta at AI Frontiers : AI for EnterpriseSumit Gupta at AI Frontiers : AI for Enterprise
Sumit Gupta at AI Frontiers : AI for Enterprise
 
Yuandong Tian at AI Frontiers : Planning in Reinforcement Learning
Yuandong Tian at AI Frontiers : Planning in Reinforcement LearningYuandong Tian at AI Frontiers : Planning in Reinforcement Learning
Yuandong Tian at AI Frontiers : Planning in Reinforcement Learning
 
Alex Ermolaev at AI Frontiers : Major Applications of AI in Healthcare
Alex Ermolaev at AI Frontiers : Major Applications of AI in HealthcareAlex Ermolaev at AI Frontiers : Major Applications of AI in Healthcare
Alex Ermolaev at AI Frontiers : Major Applications of AI in Healthcare
 
Long Lin at AI Frontiers : AI in Gaming
Long Lin at AI Frontiers : AI in GamingLong Lin at AI Frontiers : AI in Gaming
Long Lin at AI Frontiers : AI in Gaming
 
Melissa Goldman at AI Frontiers : AI & Finance
Melissa Goldman at AI Frontiers : AI & FinanceMelissa Goldman at AI Frontiers : AI & Finance
Melissa Goldman at AI Frontiers : AI & Finance
 
Li Deng at AI Frontiers : From Modeling Speech/Language to Modeling Financial...
Li Deng at AI Frontiers : From Modeling Speech/Language to Modeling Financial...Li Deng at AI Frontiers : From Modeling Speech/Language to Modeling Financial...
Li Deng at AI Frontiers : From Modeling Speech/Language to Modeling Financial...
 
Ashok Srivastava at AI Frontiers : Using AI to Solve Complex Economic Problems
Ashok Srivastava at AI Frontiers : Using AI to Solve Complex Economic ProblemsAshok Srivastava at AI Frontiers : Using AI to Solve Complex Economic Problems
Ashok Srivastava at AI Frontiers : Using AI to Solve Complex Economic Problems
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Training at AI Frontiers 2018 - LaiOffer Self-Driving-Car-lecture 2: Incremental Search

  • 2. PROBLEM STATEMENT Given a potentially inaccurate map of the environment, 
 navigate from S to G
  • 3. PROBLEM STATEMENT Given a potentially inaccurate map of the environment, 
 navigate from S to G
  • 4. PROBLEM STATEMENT • Proactive approach: • Take uncertainty into account during planning. Computationally expensive • Reactive approach: • Plan optimistically and replan if necessary. Computationally cheaper
  • 5. HIGH LEVEL OPERATIONS Case 1: 
 Assume given map is accurate (and the map is accurate)
  • 6. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 7. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 8. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 9. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path If path is blocked, update the map and go to step 3
  • 10. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path If path is blocked, update the map and go to step 3
  • 11. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path If path is blocked, update the map and go to step 3
  • 12. HIGH LEVEL OPERATIONS 1. Input: Map of the environment 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path If path is blocked, update the map and go to step 3
  • 13. HIGH LEVEL OPERATIONS Case 2: 
 Assume given map is inaccurate
  • 14. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 15. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 16. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and go to step 3
  • 17. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 18. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 19. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 20. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 21. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 22. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 23. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 24. HIGH LEVEL OPERATIONS 1. Input: Optimistic map (assume there are no obstacles) 2. Discretize the search space 3. Find a shortest path to the goal 4. Move along path. If path is blocked, update the map and 
 go to step 3
  • 25. Instead of searching for a shortest path from scratch, reuse information from the previous search to speed up the current search INCREMENTAL SEARCH First search Second search reusing information 
 from the first search ...
  • 26. INCREMENTAL SEARCH • Generally, there are two classes of algorithms: • Algorithms that improve heuristics: • AA* [Koenig & Likhachev, AAMAS ’05] • MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07] • GAA* [Sun, Koenig &Yeoh, AAMAS ’08] • ... • Algorithms that transform search trees: • G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10] • FRA* [Sun,Yeoh & Koenig, IJCAI ’09] • ...
  • 27. INCREMENTAL SEARCH • Generally, there are two classes of algorithms: • Algorithms that improve heuristics: • AA* [Koenig & Likhachev, AAMAS ’05] • MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07] • GAA* [Sun, Koenig &Yeoh, AAMAS ’08] • ... • Algorithms that transform search trees: • G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10] • FRA* [Sun,Yeoh & Koenig, IJCAI ’09] • ...
  • 28. BACKGROUND: A* • Maintains three values for each cell s • g(s): cost from start to s • h(s): estimated cost from s to goal • f(s) = g(s) + h(s): estimated cost from start to goal • Maintains two lists • CLOSED: Contains expanded cells (i.e., cells whose shortest path from start is known) • OPEN: Priority queue that contains generated cells
  • 29. BACKGROUND: A* 1 5
 2 1 6
 2 0 7
 6 1 8
 2 1 4
 2 1 5
 2 1 6
 2 1 7
 2 1 4
 2 1 5
 2 1 6
 2 1 2
 2 1 3
 2 1 4
 2 1 5
 2 1 1
 2 1 2
 2 1 3
 2 1 4
 2 1 4
 2 1 3
 2 0 2
 2 S 1 0
 2 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 30. BACKGROUND: A* 1 5
 2 1 6
 2 0 7
 6 1 8
 2 1 4
 2 1 5
 2 1 6
 2 1 7
 2 1 4
 2 1 5
 2 1 6
 2 1 2
 2 1 3
 2 1 4
 2 1 5
 2 1 1
 2 1 2
 2 1 3
 2 1 4
 2 1 4
 2 1 3
 4 0 2
 2 S 1 0
 2 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 31. BACKGROUND: A* 1 5
 2 1 6
 2 0 7
 6 1 8
 2 2 4
 6 1 5
 2 1 6
 2 1 7
 2 1 4
 2 1 5
 2 1 6
 2 1 2
 2 1 3
 2 1 4
 2 1 5
 2 1 1
 2 1 2
 2 1 3
 2 1 4
 2 2 4
 6 1 3
 4 0 2
 2 S 1 0
 2 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 32. BACKGROUND: A* 3 5
 8 1 6
 2 0 7
 6 1 8
 2 2 4
 6 3 5
 8 1 6
 2 1 7
 2 1 4
 2 1 5
 2 1 6
 2 1 2
 2 1 3
 2 1 4
 2 1 5
 2 1 1
 2 1 2
 2 1 3
 2 1 4
 2 2 4
 6 1 3
 4 0 2
 2 S 1 0
 2 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 33. BACKGROUND: A* 3 5
 8 4 6
 10 0 7
 6 1 8
 2 2 4
 6 3 5
 8 4 6
 10 1 7
 2 4 4
 8 5 5
 10 1 6
 2 6 2
 8 5 3
 8 6 4
 10 1 5
 2 7 1
 8 6 2
 8 7 3
 10 1 4
 2 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 34. BACKGROUND: A* 3 5
 8 4 6
 10 0 7
 6 1 8
 2 2 4
 6 3 5
 8 4 6
 10 1 7
 2 4 4
 8 5 5
 10 1 6
 2 6 2
 8 5 3
 8 6 4
 10 1 5
 2 7 1
 8 6 2
 8 7 3
 10 1 4
 2 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 35. INCREMENTAL SEARCH • Generally, there are two classes of algorithms: • Algorithms that improve heuristics: • AA* [Koenig & Likhachev, AAMAS ’05] • MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07] • GAA* [Sun, Koenig &Yeoh, AAMAS ’08] • ... • Algorithms that transform search trees: • G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10] • FRA* [Sun,Yeoh & Koenig, IJCAI ’09] • ...
  • 36. ALGORITHM 1: AA* • Adaptive A* (AA*) [Koenig & Likhachev, AAMAS ’05] • Uses standard A* searches • Updates h-values to make them more informed, i.e. better estimates • Speeds up the A* searches
  • 37. ALGORITHM 1: AA* Main idea: g(s) + cost(s, goal) ≥ g(goal)
 cost(s,goal) ≥ g(goal) - g(s)
 hnew(s) = g(goal) - g(s) s goalstart g(goal) cost(s,goal)g(s)
  • 38. ALGORITHM 1: AA* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 39. ALGORITHM 1: AA* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 40. ALGORITHM 1: AA* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 41. ALGORITHM 1: AA* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 42. ALGORITHM 1: AA* 2 5
 7 1 6
 7 2 7
 9 1 4
 5 0 5
 5 S 1 6
 7 2 7
 9 2 5
 7 3 6
 9 7 2
 9 4 3
 7 3 4
 7 4 5
 9 6 1
 7 5 2
 7 4 3
 7 5 4
 9 3 4
 7 2 3
 5 3 2
 5 7 0
 7 G 1 2 3 4 5 6 7 2 5
 7 1 6
 7 2 7
 9 1 6
 7 0 5
 5 S 1 6
 7 2 7
 9 2 5
 7 3 6
 9 7 2
 9 4 3
 7 3 4
 7 4 5
 9 6 1
 7 5 2
 7 4 3
 7 5 4
 9 3 6
 9 2 7
 9 7 0
 7 G A E D C B G F 1 2 3 4 5 6 7 Adaptive A* A*
  • 43. ALGORITHM 1: AA* • Results: • Up to 20% faster than A* on grids with Manhattan distance as h-values • Typically, the worse the h-values, the larger the speedup • Well-suited for high dimensional search spaces, where h-values are often bad
  • 44. ALGORITHM 1: AA* Other algorithms in this class: • MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07] • Extension to search paths when the target moves • GAA* [Sun, Koenig &Yeoh, AAMAS ’08] • Extension to handle decreasing costs • Applied to control the robotic arm at the International Space Station by the Canadian Space Agency [Belghith, Kabanza & Hartman, AIS ’10] • Trea-AA* [Hernandez, Sun, Koenig & Meseguer, AAMAS ’11] • Extension to speed up the search by reusing search trees
  • 45. INCREMENTAL SEARCH • Generally, there are two classes of algorithms: • Algorithms that improve heuristics: • AA* [Koenig & Likhachev, AAMAS ’05] • MT-AA* [Koenig, Likhachev & Sun, AAMAS ’07] • GAA* [Sun, Koenig &Yeoh, AAMAS ’08] • ... • Algorithms that transform search trees: • G-FRA* [Sun,Yeoh & Koenig, AAMAS ’10] • FRA* [Sun,Yeoh & Koenig, IJCAI ’09] • ...
  • 46. ALGORITHM 2: G-FRA* • Generalized Fringe-Retrieving A* (G-FRA*) 
 [Sun,Yeoh & Koenig, AAMAS ’08] • Uses standard A* searches • Identifies portions of the search tree of the previous search that can be reused • Starts the search with these portions
  • 47. BACKGROUND: A* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 48. BACKGROUND: A* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 49. BACKGROUND: A* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 8 G while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 50. BACKGROUND: A* 3 5
 8 4 6
 10 2 4
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 2 4
 6 1 3
 4 0 2
 2 S 8 0
 0 G C3 C4 D2 D3 D4 E3 F2 F3 F4 C6 D6 E6 F6 C5 D5 E5E2 while(goal ∉ CLOSED) { s = argmins∈OPEN f(s) move s to CLOSED for all neighboring cells c of s { if(c ∉ OPEN ∪ CLOSED) set g(c) and f(c) add c to OPEN else if(c ∈ OPEN) update g(c) and f(c) } } A E D C B G F 1 2 3 4 5 6 7 g h
 f f = g + h CLOSEDOPEN parent pointers
  • 51. C3 C4 D2 D3 D4 E2 E3 F2 F3 F4 C6 D6 E6 F6 C5 D5 E5
  • 54. C3 C4 D2 D3 D4 E2 E3 F2 F3 F4 C6 D6 E6 F6 C5 D5 E5
  • 55. ALGORITHM 2: G-FRA* 4 6
 10 0 7
 6 1 8
 2 3 5
 8 4 6
 10 1 7
 2 4 4
 8 5 5
 10 1 6
 2 6 2
 8 5 3
 8 6 4
 10 1 5
 2 7 1
 8 6 2
 8 7 3
 10 1 4
 2 8 0
 0 G A E D C B G F 1 2 3 4 5 6 7 C3 C4 D2 D3 D4 E2 E3 F2 F3 F4 C6 D6 E6 F6 C5 D5 E5 High-level pseudocode: 1. Identify reusable portion of the search tree 2. Remove the unreusable portion 3. Add the cells in the fringe to the OPEN list 4. Restart the search
  • 56. ALGORITHM 2: G-FRA* 0 7
 6 4 6
 10 0 7
 6 0 7
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 0 7
 6 0 7
 6 0 7
 6 8 0
 0 G C3 C4 D2 D3 D4 C6 D6 E6 F6 C5 D5 E5 A E D C B G F 1 2 3 4 5 6 7 High-level pseudocode: 1. Identify reusable portion of the search tree 2. Remove the unreusable portion
  • 57. ALGORITHM 2: G-FRA* 0 7
 6 4 6
 10 0 7
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 0 7
 6 0 7
 6 0 7
 6 8 0
 0 G C3 C4 D2 D3 D4 C6 D6 E6 F6 C5 D5 E5E3 A E D C B G F 1 2 3 4 5 6 7 High-level pseudocode: 1. Identify reusable portion of the search tree 2. Remove the unreusable portion 3. Add the cells in the fringe to the OPEN list
  • 58. ALGORITHM 2: G-FRA* 0 7
 6 4 6
 10 0 7
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 0 7
 6 0 7
 6 0 7
 6 8 0
 0 G C3 C4 D2 D3 D4 C6 D6 E6 F6 C5 D5 E5 High-level pseudocode: 1. Identify reusable portion of the search tree 2. Remove the unreusable portion 3. Add the cells in the fringe to the OPEN list 4. Restart the search E3 A E D C B G F 1 2 3 4 5 6 7
  • 59. ALGORITHM 2: G-FRA* 0 7
 6 4 6
 10 0 7
 6 3 5
 8 4 6
 10 4 4
 8 5 5
 10 6 2
 8 5 3
 8 6 4
 10 7 1
 8 6 2
 8 7 3
 10 0 7
 6 0 7
 6 0 7
 6 8 0
 0 G C3 C4 D2 D3 D4 C6 D6 E6 F6 C5 D5 E5E3 A E D C B G F 1 2 3 4 5 6 7 High-level pseudocode: 1. Identify reusable portion of the search tree 2. Remove the unreusable portion 3. Add the cells in the fringe to the OPEN list 4. Restart the search
  • 60. ALGORITHM 2: G-FRA* • Results: • Up to one order of magnitude faster than GAA* • Typically, the larger the reusable portion of the search tree, the faster the algorithm • Well suited for problems that change only slightly between search iterations
  • 61. ALGORITHM 2: G-FRA* Other algorithms in this class: • FRA* [Sun,Yeoh & Koenig, IJCAI ’07] • Optimized version of G-FRA* for navigation in 2D grids • D* [Stentz, ICRA ’94], D* Lite [Koenig & Likhachev, AAAI ’02] • Applied to the navigation of the Mars rovers • Applied to the navigation of UGVs in the DARPA Urban Challenge • MT-D* Lite [Sun,Yeoh & Koenig, AAMAS ’10] • Combination of D* Lite and G-FRA* to speed up the search
  • 62. SUMMARY • Incremental search algorithms • Reuses information to speed up the search • Useful when one needs to search repeatedly for shortest paths in a graph • Often applied to robotics applications for autonomous navigation