El algoritmo A*
La b煤squeda de caminos es un problema que usualmente se resuelve por medio de algoritmos de b煤squeda en grafos como ancho-primero, profundidad-primero, Dijkstra y A*.
En este tipo de problemas conocemos un estado inicial, un estado final (meta) y un conjunto de reglas mediante las cuales podemos realizar “movidas” para ir avanzando en un grafo compuesto por nodos. Eventualmente, avanzado por el grafo, llegaremos al nodo que corresponde a la meta habiendo finalizado la b煤squeda y habiendo obtenido el conjunto de movidas que nos lleva de un punto a otro.
El algoritmo A* es uno de los preferidos para este tipo de aplicaciones por ser admisible (si existe una soluci贸n la encuentra) y optimal (encuentra la soluci贸n 贸ptima, que en nuestro caso particular es el camino mas conveniente).
Fundamentos del algoritmo A*
A* es un algoritmo informado que basa su comportamiento en la evaluaci贸n de una funci贸n expresada del siguiente modo:
f(n) = g(n) + h(n)
La funci贸n se encuentra compuesta por:
g(n) : es el costo de las movidas realizadas.
h(n) : es la funci贸n heur铆stica. Representa el costo estimado del mejor camino. Dicha estimaci贸n debe ser realizada por defecto, es decir, siempre menor o igual a la real.
En b煤squeda de caminos, la funci贸n heur铆stica suele ser el camino recto hacia la meta, ya que no importa como sea el mapa, es imposible que exista camino de costo menor.
El modo de realizar el c谩lculo de la distancia necesaria para llegar a la meta depende del tipo de movidas permitidas.
Si solo podemos movernos vertical y horizontalmente podremos realizar el c谩lculo de la distancia Manhattan, que consiste en sumar la cantidad de bloques en horizontal y vertical que restan para llegar a la meta. Si adem谩s se permiten movidas diagonales, deberemos aplicar Pit谩goras y el c谩lculo ser谩 la ra铆z cuadrada de la suma de los cuadrados de los catetos.
Analicemos un ejemplo para ver el algoritmo en acci贸n:

S representa el punto de partida. La bandera azul representa la meta. Los casilleros de color negro representan obst谩culos y los casilleros blancos representan caminos posibles.
Nuestra funci贸n heur铆stica ser谩:
![]()
En pocas palabras, lo que expresamos en la f贸rmula anterior fue la distancia que resta para llegar a la meta desde la posici贸n en la cual nos encontramos.
驴Y cu谩les ser铆an las primeras movidas posibles?

En la figura anterior vemos a izquierda como avanzamos por el mapa y derecha como queda conformado el 谩rbol con el valor de la funci贸n f(n) para cada una de las bases abiertas. De todas ellas seleccionaremos la de menor f, es decir, la de menor costo calculado como la suma del costo del camino recorrido y el costo estimado del camino que resta recorrer.
Para entender como realizamos el c谩lculo del valor de la funci贸n f(n), veamos en mayor detalle como realizamos el c谩lculo de la primer movida:
![]()
隆Es muy sencillo!, g siempre incrementar谩 en uno a medida que avancemos por el mapa (ya que estamos tomando el costo de avance en forma unitaria para todas las posiciones) y h ser谩 el resultado de aplicar la f贸rmula de la figura 2, que es la distancia de dicha posici贸n a la meta.




Muy buen articulo.
Cabe aclarar que, H (la funcion heuristica) puede calcularse por Manhattan o Pitagoras, pero existen muchos otros metodos. De hecho en H radica la llave para convertir el algoritmo en un sue帽o o en una pesadilla.
Cuanto mejor sea el calculo del estimado H, mejor sera la performance del algoritmo A*