Best-First Search: The A* Algorithm Keith L. Downing
August 20, 2014
Keith L. Downing
Best-First Search: The A* Algorithm
Search is.. A (preferably methodical) process for finding something. Searching for:
pre-existing entities (information, objects, etc.) strategies for creating/designing entities. Examples:
Web search (for just about anything) AI search - creates something, doesn’t just find it. Web search for AI search algorithms. Uninformed -vs - Informed: Do points in the search space give information that helps the searcher to determine the next step? Partial -vs- Complete solutions (i.e., attempts): Could the current state of search always be considered a complete solution, though not necessarily good or optimal? Or is it often a partial state that must be incrementally enhanced to become a solution?
E.g. 2 approaches to origami. Closed-loop -vs- Open-loop control Keith L. Downing
Best-First Search: The A* Algorithm
Incremental -vs- Local Search
Incremental
Local
The problem-solver works with partial -vs- complete solutions. Keith L. Downing
Best-First Search: The A* Algorithm
8 Puzzle: An AI Classic Goal State
1 2 3 8
Current State
4
7 6 5
1 5 3 4 6 2 8 7 Move Left Move Up Move Down
1 5 4 6 3 2 8 7
1 5 3 4
1 5 3
6
2 8 7
4 6 7 2 8
For this puzzle, a complete solution is a sequence of moves that achieves the goal configuration. Typically, this is solved using incremental methods that add one move at a time to a partial sequence. Keith L. Downing
Best-First Search: The A* Algorithm
The Horizon of a Search Graph Root Node Contains Starting Search State Expansion = Generating Child Nodes
Open, Unexpanded Closed, Expanded
Expansion
Keith L. Downing
Best-First Search: The A* Algorithm
3 Common Incremental Search Algorithms General
General
Breadth-First
Depth-First
Problem-Specific "Intelligent"
Best-First
Keith L. Downing
Best-First Search: The A* Algorithm
Stacks, Queues and Agendas
The key decision that differentiates depth-first, breadth-first and best-first search is: these algorithms: What node on the OPEN list should be expanded next? Depth-First: OPEN = a stack (LIFO - Last in, first out) Breadth-First: OPEN = a queue (FIFO - First in, first out) Best-First: OPEN = a sorted list known as the agenda, where sorting is based on the node’s evaluation, which reflects the algorithm’s knowledge about that search state and its potential to be extended into an optimal solution.
Keith L. Downing
Best-First Search: The A* Algorithm
Shakey the Robot: Stanford Research Institute, 1960’s
Needed a good route-planning algorithm. Hart, Nilsson, Raphael (1968), A formal basis for the heuristic determination of minimum cost paths, in IEEE Transactions System Science and Cybernetics Still used by the vehicle-navigation industry. Keith L. Downing
Best-First Search: The A* Algorithm
The Evaluation Function in Best-First Search
g(x)
f(x) = g(x) + h(x) x
Concrete
Estimate
h(x)
Goal State
Keith L. Downing
Best-First Search: The A* Algorithm
The Heuristic Function: h(X)
Current State
Goal State
1 5 3
Distance ??
1 2 3
4 6
8
2 8 7
7 6 5
Euclidiean Distance
4
Manhattan Distance
1 5 3
1 5 3
8
8
The heuristic function estimates the distance (typically in terms of the number of moves) from the current state to the goal.
Keith L. Downing
Best-First Search: The A* Algorithm
The A* Algorithm
DEFINE best-first-search() 1
CLOSED ← 0; / OPEN ← 0/
2
Generate the initial node, n0, for the start state.
3
g(n0) ← 0; Calculate h(n0)
4
f(n0) ← g(n0) + h(n0);
5
Push n0 onto OPEN.
6
Do Agenda Loop
Keith L. Downing
Best-First Search: The A* Algorithm
The Agenda Loop (Open List = Agenda) If OPEN = 0/ return FAIL X ← pop(OPEN) push(X,CLOSED) If X is a solution, return (X, SUCCEED) SUCC ← generate-all-successors(X) For each S ∈ SUCC do:
If node S* has previously been created, and if state(S*) = state(S), then S ← S*. push(S,kids(X)) If not(S ∈ OPEN) and not(S ∈ CLOSED) do: attach-and-eval(S,X) insert(S,OPEN) ;; OPEN is sorted by ascending f value.
else if g(X) + arc-cost(X,S) < g(S) then (found cheaper path to S): attach-and-eval(S,X) If S ∈ CLOSED then propagate-path-improvements(S) Keith L. Downing
Best-First Search: The A* Algorithm
Node Expansion in A* A (10)
A (10)
1
1
1 C(9)
B(9)
1
2 E (10)
D(8)
1
C(9)
B(9)
1
Expand D
2
D(8)
2
F(7)
E(10)
1
1 G(7)
H(8)
D C
B
E
A
Agenda Closed Nodes (Open Nodes)
Keith L. Downing
G C H
D
F
B
E
A
Agenda Closed Nodes (OpenSearch: Nodes)The A* Algorithm Best-First
Updating g values in A*
P1
g=4
h = 20
P2
g=2
h = 22
Before
After
C1
g=5
C1
h = 19
g=3
h = 19
C2
g=6
C2
h = 18
g=4
Keith L. Downing
h = 18
Best-First Search: The A* Algorithm
Admissable Heuristics for A* An admissable heuristic NEVER overestimates distance to the goal. 1
2
f(x) ≤ 2 + 2 1
X
Y
1
f(z) = 4 + 0 1 Z
V
2
f(v) ≤ 3 + 2 f(w) = 5 + 0
f(y) ≤ 3 + 1
1
W
Agenda
V X
Y
W
W
Z
X W
Time
Keith L. Downing
Best-First Search: The A* Algorithm
Rush Hour
Scenario Specification
4 3 Exit
0 5
0, 2, 2, 2 0, 0, 4, 3 0, 3, 4, 2 0, 4, 1, 2
1
2
1, 2, 0, 2 1, 4, 2, 2
What is g? Find an admissible h.
Keith L. Downing
Best-First Search: The A* Algorithm
Missionaries and Cannibals: A Classic AI Puzzle
M C M C C M 3 x (M,C) => Boat holds 2 (4 or 5) x (M,C) => Boat holds 3 (6 or more) x (M,C) => Boat holds 4
What is g? Find an admissible h. Keith L. Downing
Best-First Search: The A* Algorithm
The Switchboard Puzzle
Start
End
Visit every peg from start to end. Neighbor distance is D, but each turn requires an extra amount, W, for wrapping. What is g? Find an admissible h.
Keith L. Downing
Best-First Search: The A* Algorithm
Example Demos
Missionaries and Cannibals Rush Hour Navigation
Keith L. Downing
Best-First Search: The A* Algorithm