A* Search Algorithm
This is informed search technique also called as HEURISTIC
search.
This algo. Works using heuristic value.
A*uses h(n)->Heuristic function & g(n)->Cost to reach the
node ‘n’ from start state.
Find shortest path though search spaces.
Estimated Cost f(n)=g(n)+h(n)
A* gives Fast & Optimal result as compared with previous
algorithms.
Space & Time Complexity of BFS is also O(V+E) where V is
vertices and E is edges.
2.
A* Search Algorithm
A*Algorithm extends the path that minimizes the
following function- f(n) = g(n) + h(n)
Here,
‘n’ is the last node on the path
g(n) is the cost of the path from start node to node ‘n’
h(n) is a heuristic function that estimates cost of the
cheapest path from
node ‘n’ to the goal node
Algorithm-
The implementation of A* Algorithm involves
maintaining two lists-
OPEN and CLOSED.
OPEN contains those nodes that have been evaluated by
the heuristic function but have not been expanded into
successors yet.
CLOSED contains those nodes that have already been
3.
A* Search Algorithm
Thealgorithm is as follows-
Step-01:
Define a list OPEN.
Initially, OPEN consists solely of a single node, the start
node S.
Step-02:
If the list is empty, return failure and exit.
Step-03:
Remove node n with the smallest value of f(n) from OPEN
and move it to list CLOSED.
If node n is a goal state, return success and exit.
Step-04:
Expand
node n.
4.
A* Search Algorithm
Step-05:
If any successor to n is the goal node, return success and
the solution by
tracing the path from goal node to S.
Otherwise, go to Step-06.
Step-06:
For each successor node,
Apply the evaluation function f to the node.
If the node has not been in either list, add it to OPEN.
Step-07:
Go back to Step-02.
5.
A* Search Algorithm
Examplewith Solution:
Consider the following
graph-
The numbers written on
edges represent the
distance between the
nodes.
The numbers
written on
nodes
represent the heuristic
value.
Find the most cost-
effective path to reach
6.
A* Search Algorithm
Examplewith
Solution: Solution-
Step-01:
We start with node A.
Node B and Node F can be
reached from node A.
A* Algorithm calculates f(B) and
f(F).
Estimated Cost f(n)=g(n)
+h(n) f(B) = 6 + 8 = 14
f(F) = 3 + 6 = 9
Since f(F) < f(B), so it decides to
go to node F.
->Closed
list(F) Path- A
7.
A* Search Algorithm
Examplewith
Solution: Solution-
Step-02:
Node G and Node H
can be reached from
node F.
A* Algorithm
calculates f(G) and
f(H).
f(G) = (3+1) + 5 = 9
f(H) = (3+7) + 3 = 13
Since f(G) < f(H), so it decides to
go to node G.
->Closed
list(G)
8.
A* Search Algorithm
Examplewith
Solution: Solution-
Step-03:
Node I can be reached from
node G. A* Algorithm
calculates f(I).
f(I) = (3+1+3) + 1 = 8
It decides to go to node I.
->Closed list(I)
9.
A* Search Algorithm
Examplewith
Solution: Solution-
Step-04:
Node E, Node H and
Node J can be
reached
from node I.
A* Algorithm calculates f(E), f(H)
and f(J). f(E) = (3+1+3+5) + 3 = 15
f(H) = (3+1+3+2) + 3 = 12
f(J) = (3+1+3+3) + 0 = 10
Since f(J) is least, so it decides
to go to node J.
->Closed list(J)
Shortest Path- A → F → G → I →
A* Search Algorithm
Advantagesof BFS:
A* Algorithm is one of the best path finding
algorithms.
It is Complete & Optimal
Used to solve complex problems.
Disadvantages of
BFS:
Requires more
memory