A* vs Avara

Extendí mi ejercicio de A* para que además busque la solución utilizando Avara y las compare gráficamente.
Avara es otro algoritmo de búsqueda, pero a diferencia de A* no es ni óptimo ni completo. Ambos utilizan una heurística para estimar el costo de un estado n al estado objetivo y por esto se dice que son métodos informados.

La diferencia radica en cómo seleccionan nodos para su expansión: mientras que A* siempre elije el nodo que minimice la función camino recorrido + estimación al objetivo, Avara simplemente elije el nodo con menor estimación al objetivo (no tiene en cuenta el camino previo).

Hay escenarios en los que ambas estrategias encontrarán el mismo camino:


Pero hay otros en los que no:

Instalación y uso

Similar al ejemplo anterior. Teniendo Python y PyGame instalados, obtener el código fuente:

svn co http://svn.juanjoconti.com.ar/astar/tags/astar-vs-avara/ astar-vs-avara

y dentro de la carpeta astar-vs-avara ejecutar gui.py:

cd astar-vs-avara
python gui.py

About Juanjo

Mi nombre es Juanjo Conti, vivo en Santa Fe y soy Ingeniero en Sistemas de Información. Mi lenguaje de programación de cabecera es Python; lo uso para trabajar, estudiar y jugar. Como hobby escribí un libro de cuentos que se puede descargar gratuitamente.
This entry was posted in IA, PyGame and tagged , . Bookmark the permalink.
  • http://nacho.larrateguy.com.ar Nacho

    Muy bueno Juanjo!

  • http://www.aojava.com.ar gorlok

    ¡Muy bueno! A Avara si que no lo conocía :)