[pyar] Inteligencia Artificial con python

Lucio Torre lucio.torre en gmail.com
Mie Mar 20 15:23:46 ART 2013


Al fin un a* de python usable!

Muy groso.

Por otro lado, raro el ejemplo de busqueda en grafos usando un arbol :)

Lucio.


2012/9/12 fisa <fisadev en gmail.com>

> Con Rafa Carrascosa y Santi Romero estuvimos dedicando algunas horas
> machinalicas a armar una lib de inteligencia artificial con python.
> Implementa los algoritmos de AIMA (el libro más conocido de IA, de
> Peter Norvig, director de investigación en Google y profesor de IA en
> Stanford).
> Ya existía una lib en python de aima hecha por Norvig mismo
> (aima-python), pero de hace muchos años, no terminada del todo, y muy
> abandonada. Además el código era un poco caótico y no tan simple de
> saber lo que estaba hecho y lo que estaba a medias, sin tests, etc.
> Era más fácil hacer una nueva que forkear.
>
> Ya tenemos implementado lo que queríamos para la primer etapa:
> algoritmos de búsqueda de solución, informada, no informada, y local,
> incluyendo algoritmos genéticos. Para las siguientes etapas quedan por
> implementar CSP (satisfacción de restricciones), y cosas como NLP,
> aprendizaje, planeamiento, etc.
> Todo con tests, código bien pythónico, y ya es instalable desde pypi.
> Y con Ariel Rossanigo la vamos a estar usando para dar clases de IA en
> la universidad, así que también va a tener un poco de castigo de casos
> más reales.
>
> El código está en https://github.com/fisadev/simpleai , y también
> pueden instalarla con pip:
>
> pip install simpleai
>
> Una pizca como para que saboreen, un "HELLO WORLD" que parte de un
> string vacío y busca la solución con algoritmo A*:
>
> from simpleai.models import Problem
> from simpleai.search import astar
>
> GOAL = 'HELLO WORLD'
>
> class HelloProblem(Problem):
>     def actions(self, state):
>         if len(state) < len(GOAL):
>             return [c for c in ' ABCDEFGHIJKLMNOPQRSTUVWXYZ']
>         else:
>             return []
>
>     def result(self, state, action):
>         return state + action
>
>     def is_goal(self, state):
>         return state == GOAL
>
>     def heuristic(self, state):
>         # how far are we from the goal?
>         wrong = sum([1 if state[i] != GOAL[i] else 0
>                     for i in range(len(state))])
>         missing = len(GOAL) - len(state)
>         return wrong + missing
>
>
> problem = HelloProblem(initial_state='')
> result = astar(problem)
>
> print result.state
> print result.path()
>
>
> Saludos!!
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130320/6827f7d1/attachment.html>


More information about the pyar mailing list