Lenguaje de programación para IA

Iniciado por Baal_30, 13 Agosto 2015, 15:53 PM

0 Miembros y 1 Visitante están viendo este tema.

Baal_30

Muy buenas, viendo que por el foro últimamente se ha hablado algo del tema, y es algo que siempre me ha interesado.

Y mi pregunta es, para el tema de la Inteligencia Artificial, ¿que lenguaje de programación es recomendable aprender? ¿Hay alguno creado especificamente para tal propósito?

Gracias y un saludo :D
«La suerte es el cuidado de los detalles». -Winston Churchill

ivancea96

Una IA es un algoritmo. El lenguaje no importa. Claro que puede haber librerías diseñadas en tal lenguaje para diseñar un tipo de IA, por ejemplo, una red neuronal artificial.

Gh057

#2
Hola , bueno en realidad la IA es muy extensa... ya que bien puede ir el desarrollo de juegos, agentes inteligentes, sistemas expertos (tuvieron su auge hace un tiempo, pero son muy costosos de diseñar -debes asistirte en expertos para la base de datos, como el nombre lo indica XD) redes neuronales, algoritmos genéticos (bueno, técnicamente fueron diseñados para búsquedas de cadenas... pero puede aplicarse a otros fines) y ya tocando el hard, robótica...

Todo depende que quieras hacer, hay tópicos mas accesibles, otros realmente complicados... pero todos muy entretenidos!

Lenguaje... bueno hace poco en otro thread ecomendé ver CLIPS, realizado en C derivado del LISP; muy práctico para sistemas expertos, pero tienes tanto una versión en Java  (creo que se denomina JESS... no estoy seguro) es en realidad un entorno de herramientas estilo framework, pero claro que puedes utilizar lenguajes propiamente dichos como Java -ideal si necesitas trabajar con hilos- o simplemente,  en C. (lo adoro jajaaa!)

ref: https://es.wikipedia.org/wiki/Sistema_experto
      https://es.wikipedia.org/wiki/CLIPS
     http://clipsrules.sourceforge.net/documentation/v630/bpg.pdf
     https://en.wikipedia.org/wiki/Jess_%28programming_language%29
     (ver también documentación en su sitio oficial, http://www.jessrules.com/jess/docs)
     

Es como todo... alguno tendrá más practicidad al final, pero lo ideal es tratar de aplicar conceptos nuevos sobre conocimientos sólidos; sino la curva de aprendizaje se vuelve exponencial... y no es muy agradable por cierto. Luego, verás si vale la pena, si te gustaría aprender aplicarlo en otro lenguaje que el que te desenvuelves habitualmente etc etc., pero ten en cuenta que eso en este momento, es irrelevante.

Si ya dominas algo de C, o C++ me refiero tanto a TDA's como algoritmos básicos de búsqueda y ordenación, bien puedes mirar los GA o algoritmos genéticos.
Luego, previa lectura -extensa lectura, aviso XD- de redes neuronales, empiezas por el más simple... una neurona, el perceptrón, y luego sigues con una capa, luego varias... etc, ya sería algoritmos de propagación... Pero paso a paso.

ref: https://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico
     (puede buscar ejemplos de source's como algoritmos evolutivos, etc)
     http://leenissen.dk/fann/wp/ (excelente, para desarrollar ANN en C)
     en Java ahora no recuerdo las bibliotecas que hay para ello... hay framework's también, pero no los he podido probar.
   
La robótica podríamos decir que puede abarcar todo lo anterior, sumado a lo divertido de quemar cosas jajaaa! pero es un mundo que poco he incursionado hasta hoy en día, por falta de tiempo (y del vil metal XD)

Un dato no menor como te habrás dado cuenta, para cada tópico hay desarrollos libres, (incluídos en hard con arduino) por lo que puedes encontrar proyectos muy elaborados e interesantes para aprender. Si te gusta, a darle con tuti.

Ten presente que lo más dificil que puedes encontrarte mientras lo intentes, es sólo lidiar con la falta de tiempo jeje. Saludos!  
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

Baal_30

Genial, muchas gracias por la info, la verdad que parece super extenso y complicado, pero a ver si poquet a poquet :P
«La suerte es el cuidado de los detalles». -Winston Churchill