Información y enlaces
Participa comentando, viendo lo que otros tienen que decir, o enlazandolo desde tu blog.
- Otros artículos
- Programación en Flujo
- Tree Nation en Agadez, Niger
Una de inteligencia artificial: buscador de caminos A*
Desde mi punto de vista una de las ramas más fascinantes de la programación es la Inteligencia Artificial. Existen 2 definiciones de IA que me gustan especialmente, la primera es muy técnica y la segunda muy práctica, y son las siguientes:
1) Disciplina de la programación dedicada a resolver problemas de complejidad exponencial.
2) Dícese de aquellos actos efectuados por una máquina que de hacerse por humanos se atribuiría a la inteligencia.
Existe una eterna discusión acerca de si las máquinas pueden llegar a ser realmente inteligentes, y en ese sentido recomiendo un libro bastante bueno, “El quinteto de Cambridge” de John L.Casti.
Yo desde luego soy de los que piensa que una máquina sí puede ser inteligente, y llegará un momento en que nos superen. Una de las aplicaciones prácticas que me resulta más interesante (por mi aficción a los juegos) es el buscador de caminos. Son algoritmos por los cuales nuestro objetivo es capaz de sortear los obstáculos y llegar de un punto A a otro B.
El más popular de todos ellos por su eficacia y eficiencia es el buscador A* (o A-estrella, A-Star para los anglosajones). Existe mucha literatura en internet al respecto y recomiendo su lectura si estás interesado en el tema. Groso modo se trata de un mecanismo de selección de trayectoria que utiliza una heurística por la que descarta los nodos de búsqueda de mayor coste y más alejados del destino (en verdad tiene más chicha pero vaya, no tiene sentido extenderse).
Y como no voy a contar algo que ya está en internet os pongo una aplicación práctica de como funciona el A*. Aquí os pongo un pequeño ejecutable hecho en Blitz Basic (para un juego de rol) en el que podeís juguetear con un punto y ponerle obstáculos. Vereís si el condenado es listo o no.
Funciona tanto en Windows como en Linux usando el wine. Agradecimiento especial a Patrick Lester, cuya ayuda resultó imprescindible.
P.D.: Thank you Patrick, you are on the credits of Caotic Party.
Mezclando un poco los temas:
¿Donde podríamos estar si la evolución hubiera estado guiada por una búsqueda A o mejor aún por una búsqueda basada en el aprendizaje?
Comparado estos con la evolución Darwiniana podría parecer este un mecanismo muy ineficaz, ya que genera ciegamente aproximadamente 10^45 organismos sin mejorar su búsqueda heurística un ápice.
Os dejo un pequeño applet para hacer pruebas:http://www.cs.rmit.edu.au/AI-Search/Product/