Automágica: durante 2017 estoy trabajando bastante en Automágica, mi software para editar libros: Más información - Posts relacionados

Asimov sobre Inteligencia Artificial

En El monstruo subatómico, un libro de difusión, Isaac Asimov habla sobre Iteligencia Artificial. Hace más o menos dos años que lo leí y tenía la intención de transcribir el artículo para que esté disponible en Internet. Casi lo olvidé, hasta que hoy alguien lo mandó en la lista de PyAr. Copio y pego a continuación.

Capítulo 11

Más pensamientos acerca del pensamiento

Podés leerlo en http://www.librosmaravillosos.com/elmonstruosubatomico/capitulo11.html

Gracias a Diego Avendaño, Patricio Barros y Antonio Bravo.


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


Un ejemplo de búsqueda A*

El ejemplo consiste en un plano de 800x600 puntos con el punto (0,0) en la esquina superior izquierda. En el plano hay puntos y figuras (formadas por puntos). Uno de los puntos es el origen y otro el destino. El problema a resolver es encontrar el camino más corto desde el origen al destino moviéndose de punto a punto y sin pasar sobre una figura.

La heurística utilizada es la distancia en línea recta desde la posición actual a la posición del objetivo.

Instalación y uso

Teniendo Python y PyGame instalados, obtener el código fuente:

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

y dentro de la carpeta astar ejecutar gui.py:

cd astar

python gui.py

El primer click que se haga marcará el punto origen (verde) y el segundo el punto destino (rojo).

Luego se pueden agregar tantos puntos sueltos o figuras como se quieran. Si se hace uno o dos clicks y luego se aprieta la barra espaciado, uno o dos puntos son añadidos al planto. Si se hacen más de dos clicks antes de apretar la barra espaciadora, entonces una figura formada por los puntos marcados es añadida.

Se siguen cargando tantos puntos y figuras como se quiera. Finalmente, al aprender Enter se ejecuta el algoritmo de búsqueda y si se encuentra un camino-solución, este es graficado.

Otros casos de prueba:

Teoría relacionada