Material y enlaces de Inteligencia Artificial

El pasado miércoles tuve el gusto de dar una charla sobre Inteligencia Artificial, organizada por el Club de Programadores. Quería presentar en este post el material usado, ejemplos, enlaces mencionados, recursos y bibliografía que recomendé.

El campo de la Inteligencia Artificial es inmenso, y con el correr de los años se ha ido abriendo en ramas distintas, que a veces, poco tienen que ver unas con otras.

La presentación que usé la pueden bajar de IntroIA2009012003b.ppt. Una presentación más antigua, pero más completa (de un curso de dos días) en: IntroIA200501.zip.

Se está formando un grupo de gente interesada en la Inteligencia Artificial, acá en Argentina, leer:

Inteligencia Artificial en Argentina

Mencioné que este año hay un congreso de Inteligencia Computacional Aplicada, leer

Congreso de Inteligencia Computacional Aplicada

Para un primer pantallazo de las ramas, y algo de la historia, puede servir de base el artículo de la Wikipedia:

Artificial Intelligence
History of Artificial Intelligence

Un sitio a visitar es el de Peter Norvig:

Peter Norvig

Un paper totalmente recomendable, para leer las ideas de Marvin Minksy, sobre cómo podría funcionar una mente:

Future Models for Mind-Machines

Más discutible, desde mi punto de vista, son las ideas de Kurzweil, pueden visitar su sitio:

KurzweilAI.net

Mencioné en varios puntos de la charla, un paper que describía la historia de la Inteligencia Artificial, y cómo durante décadas, todos los intentos comerciales fueron fracansando:

If it works, It’s not AI

Un artículo reciente, que tiene una visión más optimista:

Future Watch: A.I. comes of ages

Mencioné el trabajo de Douglas Lenat. Pueden ver lo que está haciendo ahora, persiguiendo el sentido común en:

http://www.cyc.com/

Sitios a visitar sobre Inteligencia Artificial:

http://www.aboutai.net About AI, enlaces sobre distintos temas de AI
http://www.pcai.com/ PC AI Free Magazine
http://www.jair.org/ Journal of Artificial Intelligence Research
http://www.aaai.org/ Association for the advance of Artificial Intelligence

Varias explicaciones de distintos temas, con ejemplos de codigo en

AI Junkie

Lenguajes de Programación

Mencioné en la charla algunos lenguajes. Tienen enlaces dedicados en:

Lisp donde los programas se pueden manipular como datos
Prolog dedicado a implementar programación declarativa

Al final del post, hay libros sobre distintos temas, donde se usan esos lenguajes (ver por ejemplo libros en la web).

Un ejemplo que tenía preparado, pero no mostré, se basaba en usar P#, una implementación de Prolog de código abierto.

Yo estoy trabajando en un intérprete Lisp, ver AjLisp- un intérprete Lisp en .NET.

Ver también

AI Programming (Lisp)
AI Programming (Prolog)

Lógica difusa

El ejemplo que usé en la charla (el de la grúa con contenedor controlado por lógica difusa) es de:

Fuzzy Tech http://www.fuzzytech.com

Sistemas basados en reglas

No vimos ejemplos en la charla, pero pueden visitar:

Jess sistema basado en reglas, en Java (basado en el algoritmo Rete).

Aprendizaje automático

Algunos enlaces

UCI Machine Learning Group
Machine Learning in Games
Machine Learning (AI on the Web)

Planeación

Nombramos los problemas de la planeación. Visitar:

What is Partial-Order Planning?
Review of An introduction to Least Commitment Planning
Selected History of Partial Order Planning, Part 1 (donde aparece Sacerdoti, mi primer referente en el tema)
Selected History of Partial Order Planning, Part 2

Redes Neuronales

En la charla vimos una demo del producto comercial:

NeuroSolutions

El ejemplo de hormigas controladas por redes neuronales que evolucionaban por algoritmos genéticos, en:

Neural Networks in plain English

Algunos enlaces adicionales:

http://www.inns.org/
http://www.nips.cc
http://www.makhfi.com/resources.htm
http://www.makhfi.com/realworld.htm
http://www.neoxi.com/NNR/index.html
http://www.ri.cmu.edu/pubs/pub_926.html
http://vasc.ri.cmu.edu/NNFaceDetector/
http://www.deepinsight.com/
http://satirist.org/learn-game/systems/neurochess.html
http://satirist.org/learn-game/systems/go-net.html
http://satirist.org/learn-game/systems/gammon/
http://www.20q.net/ Twenty Questions Neural-Net on the Web
http://gpdev.net/NeuroDriver_bpnet.html
http://www.codeproject.com/csharp/neural_dot_net.asp
http://www.codeproject.com/dotnet/simple_ocr.asp
http://www.codeproject.com/script/articles/list_articles.asp?userid=441940

Algoritmos Genéticos

Leer como introducción

Genetic Algorithms in plain English

Mostré mi ejemplo de:

AjGa- una librería de algoritmos genéticos

Otros enlaces:

Galib Librería de Algoritmos Genéticos http://lancet.mit.edu/ga/
http://delicious.com/ajlopez/geneticalgorithms

Enlaces adicionales

Genetic Algorithms and Genetic Programming (multitud de enlaces)
What is Genetic Algorithms?
Genetic Programming
Genetic Algorithms
Survival of the Fittest: Natural Selection with Windows Forms (en .NET)
An introduction to Genetic Algorithms In Java
AIAI Technology Genetic Algorithms
Genetic Algorithms and the Traveling Salesman Problem (en C++ para Windows)

Programación Evolutiva

Estuvimos viendo mi ejemplo

Jugando con programas evolutivos

Estuvimos corriendo el ejemplo de AI_Life, donde vimos redes neuronales, algoritmos genéticos y conductas de persecución. 

Juegos e Inteligencia Artificial

Primero, el tema juegos de tablero.

En el proyecto Reversi pueden ver una implementación del algoritmo MinMax con Alfa Beta.

En Connect Four y en Learning Draughts pudimos ver algunas estrategias simples de aprendizaje.

Para tener un panorama de los problemas actuales, hay que visitar el grupo de la Universidad de Alberta:

http://www.cs.ualberta.ca/~games/

Pueden visitar el grupo de Research de Microsoft:

Applied Games

Pero también hay inteligencia artificial en juegos de video. Recomendaría visitar:

Game IA

What is BattleCode-

Artificial Intelligence and Computer Games

AI- AAAI Library online

Game AI for Developers — AiGameDev.com

El tema de máquinas de estado es muy usado, pueden leer

State-Driven Game Agent Design

 

Computer Go

Para mí, un tema fascinante. Vimos en la charla, a mi ejemplo AjGo:

AjGo- hacia un programa que juegue al go

Pueden visitar:

Computer Go in Microsoft

Hay otro grupo de investigación sobre el tema en Beijing:

Craking Go a cargo de Feng-hsiung Hsu

Mis enlaces sobre Computer Go en http://delicious.com/ajlopez/computergo

Todo sobre Go en http://www.gobase.org

Si quieren aprender el juego, pueden visitar el sitio de la Asociación Argentina de Go.

Vida Artificial

Un tema fascinante, nombrado al pasar en la charla. Visiten el proyecto Tierra

http://life.ou.edu/tierra/

Vean las “fotos” de:

http://life.ou.edu/pubs/images/

Otro proyecto que también investiga el tema evolución es:

Darwin at home el resultado de aplicar Fuidiom
Fluidiom Implementado en Java, sería interesante implementar algo similar en .NET y DirectX/OpenGL

Robótica

Mostré el ejemplo de:

Que lindo el guaguau- BigDog de Boston Dynamics

Más enlaces en:

Post sobre Robótica
http://delicious.com/ajlopez/robotics

GRASP Laboratory of Robotics Research and Education @ Penn
Microsoft Invisible Computing
Concious Robots
Robotics Studio at Concious Robots (con algún foro en español)
An introduction to Programming Robots with Microsoft Robotics Studio
Wimo: The Windows Mobile Robot

Bibliografía

Nils J. Nilsson escribió varios libros en estas últimas décadas. Yo recomendaría este libro para una primera aproximación, bastante completa, a la Inteligencia Artificial actual:

Artificial Intelligence: a new synthesis

En español, en Argentina, Librería Cúspide como Inteligencia Artificial: una nueva síntesis.

Uno de sus libros está en línea: How Are We To Know-

Uno de los libros que recomendé es el de Russell y Norvig (es muy bueno en las notas históricas al final de cada capítulo):

AI- A Modern Approach

Si están en Argentina, lo pueden encontrar en español, por ejemplo, en librería Cúspide, como Inteligencia Artificial un enfoque moderno.

Otro de Norvig es

Paradigms of AI Programming

 

Los interesados en lenguajes de programación e Inteligencia Artificial, pueden examinar el clásico de Bratko, muy bueno para aprender la relación entre programación declarativa e Inteligencia Artificial:

Prolog Programming for Artificial Intelligence

Varios libros gratuitos en línea sobre Inteligencia Artificial en

Free Artificial Intelligence Books (visiten el sitio, que hay todos temas, de computación, matemáticas y ciencia).

Enlaces adicionales

Desde hace unos años, mantengo en mi sitio

Enlaces sobre Inteligencia Artificial
Enlaces sobre Redes Neuronales
Enlaces sobre Computer Go

En los últimos tiempos, directamente agrego en mis enlaces de Delicious:

http://delicious.com/ajlopez/artificialintelligence

Los posts que escribo están bajo el tag:

Inteligencia Artificial

Espero que les sirva este material, para explorar tan fascinante tema.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez

This entry was posted in 3036. Bookmark the permalink.

2 Responses to Material y enlaces de Inteligencia Artificial

  1. Pablo says:

    Es un excelente post resumiendo tecnologías, tendencias y fuentes de información.
    Una recopilación simplemente impecable!

  2. daniel says:

    hola, que me recomendarias sobre IA para hacer un juego de cartas, no es como un truco o poker, mas bien es parecido al Magic.

    Gracias.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>