To improve the efficiency of search algorithms, problem-specific information must be incorporated to solve complex issues with a large number of potential states.
They work out the cost of the cheapest way between two points. For sliding-tiles games, a heuristic function is calculated by calculating the number of movements each tile makes from its target state and adding this value for all tiles.
It extends nodes in the order in which their heuristic values appear on the graph. It generates two lists: a closed list for previously raised nodes and an empty list for nodes that have been generated but have not yet been enlarged.
Each iteration produces all of the child nodes of the node with the lowest heuristic value and places them in the closed list. The heuristic function is then applied to the child nodes, and their heuristic value is used to determine where they belong in the open list. Shorter routes are kept, whereas longer paths are discarded.
It's the most well-known variation of the Best First search. It avoids extending already-expensive routes, instead prioritising the most promising ones.
It enlarges the node that is thought to be closest to the target. It extends nodes using the formula f(n) = h. (n). A priority queue is used to implement it.
It can become trapped in loops, which is a disadvantage. This isn't ideal.