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 searchMohammad Saiful Islam
 
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 searchHema Kashyap
 
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.pptxgrssieee
 
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 Designdans_salford
 
Helicopter rotor tip vortex diffusion
Helicopter rotor tip vortex diffusionHelicopter rotor tip vortex diffusion
Helicopter rotor tip vortex diffusionMichael Patterson
 
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 algorithmHema Kashyap
 
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
 
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 ReserachBob Marcus
 
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 searchAbhijeet Agarwal
 
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 slidesAnirban 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

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.pdfAsst.prof M.Gokilavani
 
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.pptxPankaj Debbarma
 
Heuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptxHeuristic Searching Algorithms Artificial Intelligence.pptx
Heuristic Searching Algorithms Artificial Intelligence.pptxSwagat Praharaj
 
Heuristic approach optimization
Heuristic  approach optimizationHeuristic  approach optimization
Heuristic approach optimizationAng Sovann
 
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.pptxKirti Verma
 
HEURISTIC SEARCH and other technique.pptx
HEURISTIC SEARCH and other technique.pptxHEURISTIC SEARCH and other technique.pptx
HEURISTIC SEARCH and other technique.pptxrakeshkumar12020604
 
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.pdfYelah1
 
2-Heuristic Search.ppt
2-Heuristic Search.ppt2-Heuristic Search.ppt
2-Heuristic Search.pptMIT,Imphal
 
Artificial Intelligence_Searching.pptx
Artificial Intelligence_Searching.pptxArtificial Intelligence_Searching.pptx
Artificial Intelligence_Searching.pptxRatnakar Mikkili
 
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.informedsearchPalGov
 
Heuristic Searching: A* Search
Heuristic Searching: A* SearchHeuristic Searching: A* Search
Heuristic Searching: A* SearchIOSR Journals
 
Searching Informed Search.pdf
Searching Informed Search.pdfSearching Informed Search.pdf
Searching Informed Search.pdfDrBashirMSaad
 
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)Vissarion Fisikopoulos
 
Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}Heuristic Search Techniques {Artificial Intelligence}
Heuristic Search Techniques {Artificial Intelligence}FellowBuddy.com
 
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.pptxAsst.prof M.Gokilavani
 
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekAIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekpavan402055
 
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.pdfCS With Logic
 
AI_Session 8 A searching algorithm .pptx
AI_Session 8 A searching algorithm .pptxAI_Session 8 A searching algorithm .pptx
AI_Session 8 A searching algorithm .pptxAsst.prof M.Gokilavani
 

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_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
 
AI_Session 8 A searching algorithm .pptx
AI_Session 8 A searching algorithm .pptxAI_Session 8 A searching algorithm .pptx
AI_Session 8 A searching algorithm .pptx
 

More from AI Frontiers

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 SummarizationAI Frontiers
 
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 AI Frontiers
 
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...AI Frontiers
 
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...AI Frontiers
 
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 NetworksAI Frontiers
 
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 ...AI Frontiers
 
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 LearningAI Frontiers
 
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 missionAI Frontiers
 
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 ElevateAI Frontiers
 
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 ...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 SkyAI Frontiers
 
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...AI Frontiers
 
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...AI Frontiers
 
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 EnterpriseAI Frontiers
 
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 LearningAI Frontiers
 
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 HealthcareAI Frontiers
 
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 GamingAI Frontiers
 
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 & FinanceAI Frontiers
 
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...AI Frontiers
 
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 ProblemsAI 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

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

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