The document describes the A* algorithm, a pathfinding algorithm that is an improvement on Dijkstra's algorithm. A* uses a heuristic function to estimate the cost of the shortest path to the goal, in order to guide the search towards the most promising paths. This makes it more efficient than Dijkstra's algorithm for large graphs. The heuristic must be admissible, meaning it cannot overestimate costs, to guarantee an optimal solution. Consistent heuristics also guarantee optimality. A* minimizes the cost function f(n)=g(n)+h(n), where g(n) is the cost to reach node n and h(n) is the heuristic estimate from n to the goal. Examples are given