A* search algorithm.