[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