Best First Search: A Algorithm
Best First Search: A Algorithm
Best First Search: A Algorithm
A* Algorithm
Notion of Heuristics
Heuristics use domain specific knowledge to
estimate the quality or potential of partial
solutions
Examples
Manhattan distance heuristic for 8 puzzle
Calculating Cost
f(n) = g(n) + h(n)
g(n) – Actual cost of traversing from initial state
to state n
h(n) – Estimated cost of reaching to the goal
from state n
Informed State Space
Given: [S, s, O, G, h] where
S is the (implicitly specified) set of states
s is the start state
O is the set of state transition operators
each having some cost
G is the set of goal states
h( ) is a heuristic function estimating the
distance to a goal
To find:
Min. cost of sequence of transactions to the
goal state
A* Algorithm
1. Initialize: Set OPEN = {s},
CLOSE = { }, Set f(s) = h(s), g(s)=0
2. Fail:
If OPEN ={ }, Terminate with Failure
Node g()
1 0
CLOSE
OPEN
Node g()
1 0
CLOSE
1(12)
OPEN
2(12) 5(13)
Node g()
1 0
CLOSE
2 2
1(12)
5 1
OPEN
5(13)
Node g(n)
1 0
CLOSE
2 2
1(12) 2(12)
5 1
OPEN
5(13) 3(19) 6(12)
Node g()
1 0
CLOSE
2 2
1(12) 2(12)
5 1
3 3
6 5
OPEN
5(13) 3(19)
Node g()
1 0
CLOSE
2 2
1(12) 2(12) 6(12)
5 1
3 3
6 5
OPEN
10(13) 3(19) 5 (13)
7(17)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12)
7 6
10 9
OPEN
10(13) 3(19) 7(17)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12) 5(13)
7 6
10 9
OPEN
3(19) 10(13) 7(17)
9(14)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12) 5 (13)
7 6
10 9
9 2
OPEN
3(19) 7(17) 9(14)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12) 5 (13)
7 6
10(13)
10 9
9 2
OPEN
3(19) 7(17) 9(14)
11(13)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12) 5 (13)
7 6
10(13)
10 9
9 2
11 12
OPEN
3(19) 7(17) 9(14)
Node g()
1 0
2 2
5 1
3 3
CLOSE 6 5
1(12) 2(12) 6(12) 5 (13) 7 6
10(13) 11(13) 10 9
9 2
11 12
OPEN
3(19) 7(17) 9 (14)
12 (13)
Node g()
1 0
2 2
5 1
3 3
CLOSE
6 5
1(12) 2(12) 6(12) 5 (13)
7 6
10(13) 11(13)
10 9
9 2
11 12
OPEN
3(19) 7(17) 9 (14)
Node g()
1 0
2 2
5 1
3 3
CLOSE 6 5
1(12) 2(12) 6(12) 5 (13) 7 6
10(13) 11(13) 12 (13) 10 9
9 2
11 12
12 13
Comparing with OR Graph Search
Instead of 11 nodes (OR) we expanded only 7
nodes in A*
Inference: Nodes which looked promising
initially were found to be not so good later on
and were ignored/left off
Claims
If f(n) < C* then n must be expanded
Assumption
1. The heuristic function under estimates
h(n) <= f*(n) (Cost of reaching goal from n)
2. All costs are +ve
3. If you have nodes with same costs (f() value) then
select the one which has minimum g() value
4. At times we have to expand sub optimal paths before
expanding optimal paths (Non – monotonicity of
Heuristic Function)
5
1
3 1
4 23
2 3
4 3
2 4
Suppose h() under
1 estimates
3
5
20
0 6
5
1 OPEN
3 1 1(5)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6
5
1 OPEN
3 1
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5)
5
1 OPEN
3 1 2(7) 3(24)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5)
5
1 OPEN
3 1 3(24)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5) 2(7)
5
1 OPEN
3 1 3(24) 4(9)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5) 2(7)
5
1 OPEN
3 1 3(24)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5) 2(7) 4(9)
5
1 OPEN
3 1 3(24) 5(11)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5) 2(7) 4(9)
5
1 OPEN
3 1 3(24)
4 23
2 3
4 3
2 4
1
3 5
20
CLOSE
0 6 1(5) 2(7) 4(9) 5(11)
5
1
3 1
4 23 OPEN
2 3 3(24) 6(28)
4 3
2 4
1
3 5
20
0 6 CLOSE
1(5) 2(7) 4(9) 5(11)
5
1
3 1
4 23 OPEN
2 3 6(28)
4 3
2 4
1
3 5
20 CLOSE
0 6 1(5) 2(7) 4(9) 5(11)
3(24)
5
1 OPEN
3 1 6(28) 4(6)
4 23
2 3
4 3
2 4
1
3 5
20 CLOSE
0 6 1(5) 2(7) 4(9) 5(11)
3(24)
5
1 OPEN
3 1 6(28)
4 23
2 3
4 3
2 4
1
3 5
20 CLOSE
0 6 1(5) 2(7) 4(9) 5(11)
3(24) 4(6)
5
1 OPEN
3 1 6(28) 5(8)
4 23
2 3
4 3
2 4
1
3 5 CLOSE
20 1(5) 2(7) 4(9) 5(11)
3(24) 4(6)
0 6
5
1
3 1
4 23
2 3 OPEN
4 6(28)
3
2 4
1
3 5
CLOSE
20
1(5) 2(7) 4(9) 5(11)
0 6 3(24) 4(6) 5(8)
5
1
3 1
4 23
2 3 OPEN
4 6(28) 6(25)
3
2 4
1
3 5
CLOSE
20
1(5) 2(7) 4(9) 5(11)
0 6 3(24) 4(6) 5(8)
5
1
3 1
4 23
2 3 OPEN
4 3
2 4
1
3 5
CLOSE
20
1(5) 2(7) 4(9) 5(11)
0 6 3(24) 4(6) 5(8) 6(25)
Results
A heuristic is called admissible if it always
under estimates, that is, we always have h(n) ≤
f*(n), where f*(n) denotes the minimum
distance to a goal state from state n
For finite state spaces, A* always terminates
Algorithm A* is admissible, that is, if there is
a path from start state to a goal state, A*
terminates by finding an optimal path
Results
If A1 and A2 are two versions of A* such that A2 is more
informed than A1 , then A1 expands at least as many
states as does A2 (Because h2() is more informed then
h1())
If we are given two or more admissible heuristics for
every state and we do not know which is more informed,
then, we can take their max to get a stronger admissible
heuristic at every state.
h(n) = max (h1(n), h2(n))
A* Algorithm