Saltar al contenido principal
Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

Core Computer Science

Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

A* Pathfinding Visualizer

A* Search on a Grid

Paso 0 / 0
Speed 100ms
Step Progress 0 / 0
Open Set 0
Path Length —
Status Ready
Start
Goal / Current
Open
Closed
Obstacle
Final path
Step Explanation

A* expands the node with the smallest f = g + h, where h is the Manhattan distance to the goal.

Pseudocode
 

A* Search Algorithm

Intermediate (3/5) ~1 hora Best-first search con heurística f(n) = g(n) + h(n) g(n): costo real desde source h(n): heurística estimada a goal Prereqs: Grafos, Dijkstra, Heurísticas admisibles

A (A-star)* es un algoritmo de búsqueda de caminos que combina Dijkstra (costo real acumulado) con una heurística (estimación al objetivo). Es óptimo y más eficiente que Dijkstra porque guía la búsqueda hacia el objetivo.

Es el algoritmo estándar en videojuegos, robótica, y sistemas de navegación.

Función de Evaluación

f(n) = g(n) + h(n)

  • g(n): costo real desde start hasta n.
  • h(n): estimación heurística desde n hasta goal.
  • f(n): costo total estimado del camino start → ... → n → goal.

Heurística Admisible

Una heurística es admisible si nunca sobrestima el costo real: h(n) ≤ costo_real(n, goal) para todo n.

Si h(n) es admisible, A es óptimo*: encuentra el camino de menor costo.

Heurística Consistente

Una heurística es consistente (monotónica) si para cada arista (n, a):

h(n) ≤ c(n, a) + h(a)

Si es consistente, g(n) siempre aumenta, y no necesitamos re-procesar nodos.

Ejemplo: Grid con Manhattan Distance

Grid con obstáculos, start=(0,0), goal=(4,4).

h(n) = |n.x - goal.x| + |n.y - goal.y| (Manhattan distance).

A* explora menos nodos que Dijkstra porque h guía hacia el goal.

Comparación

AlgoritmoGuíaÓptimoComplejidad
DijkstraSolo g(n)SíO((V+E) log V)
A* admisibleg + h admisibleSíO((V+E) log V) pero menos nodos
Greedy Best-FirstSolo h(n)NoO((V+E) log V)
Weighted A*g + w×hNo (pero más rápido)O((V+E) log V)

Aplicaciones

  • Videojuegos — pathfinding de personajes (NPCs)
  • Robótica — navegación autónoma
  • Sistemas de navegación — Google Maps, Waze
  • Planificación — movimiento en espacios continuos
  • Enseñanza — introduce heurísticas y best-first search

Casos Extremos

  • h(n) = 0 — A* se convierte en Dijkstra.
  • h(n) = costo_real — explora solo el camino óptimo.
  • h(n) > costo_real — no admisible, puede ser más rápido pero no óptimo.
  • Weighted A* — multiplica h por w > 1: más rápido pero subóptimo.

Trayectoria de Práctica

  1. Implementa A* en un grid 2D; traza la exploración.
  2. Prueba con Manhattan distance y Euclidean distance.
  3. Verifica optimalidad comparando con Dijkstra.
  4. Investiga weighted A*: ¿cómo afecta w > 1?
  5. Investiga D* Lite: ¿para qué se usa en robótica?