A* Algorithm

Interactive pathfinding visualization. Click and drag on the grid to create barriers.

Toolbox

Execution Speed

Search Space

Status: Ready

Performance

Nodes Explored 0
Path Length 0
Total Cost 0.00

Legend

Open List
Closed List
Path

A* Search Algorithm: A Guided Tour

An intelligent pathfinding method that combines speed and accuracy. Use this guide after experimenting with the visualizer.

Quick Context: What is A*?

A* (pronounced "A-star") is a pathfinding and graph traversal algorithm renowned for its performance and accuracy. It's a cornerstone of game development, robotics, and logistics. Unlike simpler algorithms like Breadth-First Search (BFS) or Dijkstra's, A* uses a "heuristic" to intelligently guess the best path to explore, making it significantly faster.

The Core Idea: The A* Formula

A* decides which node to explore next based on a simple but powerful formula:

f(n) = g(n) + h(n)
  • g(n) - The Cost So Far: This is the actual, known cost of the path from the starting node to the current node 'n'. In our grid, this is the number of steps taken.
  • h(n) - The Heuristic Estimate: This is an *educated guess* of the cost from the current node 'n' to the goal. It's what makes A* "smart." A good heuristic is crucial for efficiency.
  • f(n) - The Total Estimated Cost: The sum of the known cost and the estimated future cost. A* always prioritizes the node with the lowest f(n) value.

Guided Experiments with the Visualizer

  1. Baseline Run: Click "Run Algorithm" with the default settings (Manhattan heuristic). Observe how the "Open List" (light purple) expands. Notice its general direction towards the goal, unlike a blind search which would expand uniformly.
  2. Heuristic Showdown (Manhattan vs. Euclidean):
    • Run with Manhattan. This heuristic only considers horizontal and vertical moves (like moving on a city grid). The search pattern will look blocky.
    • Reset, switch the Heuristic to Euclidean, and run again. This heuristic calculates the direct, straight-line distance. Notice how the search area becomes more circular and often explores fewer nodes because it's a more "optimistic" estimate for a grid that allows diagonal movement.
  3. The Wall Challenge: Create a long, C-shaped wall that forces the algorithm to go far out of its way. Run the search. Watch how the `f(n)` cost guides the search to "realize" the direct path is blocked and intelligently find a way around it. This demonstrates A*'s power to adapt.
  4. Race Against Dijkstra's: To simulate Dijkstra's algorithm, you can think of the heuristic `h(n)` as always being 0. A* without a heuristic (`h(n)=0`) is essentially Dijkstra's. It explores every node based only on its distance from the start (`g(n)`), resulting in a much larger, circular search area. The heuristic is what gives A* its focused speed.

Common Mistakes & Key Insights

  • Overestimating Heuristic: If your heuristic `h(n)` accidentally overestimates the true cost to the goal, A* is no longer guaranteed to find the shortest path. This is called an "inadmissible heuristic." The Euclidean and Manhattan distances are "admissible" because they never overestimate the actual path cost.
  • Performance is Heuristic-Dependent: A bad heuristic can make A* slow. A perfect heuristic (that knows the exact cost) would make A* run instantly to the goal without exploring any wrong turns. The goal is to get as close to perfect as possible without being computationally expensive.
  • Open vs. Closed List: The "Open List" contains nodes that are candidates for exploration. The "Closed List" contains nodes that have already been fully explored. A* never re-evaluates a node once it's in the closed list, preventing infinite loops.

Key Takeaways

  • A* finds the shortest path by balancing the cost already traveled (g-cost) with an estimated cost to the finish line (h-cost).
  • It is both complete (will always find a solution if one exists) and optimal (will find the best solution) as long as its heuristic is admissible.
  • Its efficiency makes it a go-to algorithm for pathfinding in video games (NPC movement), GPS navigation, and network routing.
Cheat sheet

A* Pathfinding Algorithm

A* (pronounced "A-star") is a pathfinding and graph traversal algorithm renowned for its performance and accuracy. It's a cornerstone of game development, robotics, and logistics. Unlike simpler algorithms like Breadth-First Search (BFS) or Dijkstra's, A* uses a "heuristic" to intelligently guess the best path to explore, making it significantly faster.

ALGORITHMS · vizlearn.in/dsa/a_star.html