Herramienta Parte II
-
Upload
jeremy-andre-galindo-fernandez -
Category
Documents
-
view
28 -
download
0
Transcript of Herramienta Parte II
HERRAMIENTAS DE DESARROLLO DE I.A.
INTRODUCCIÓN Las aplicaciones basadas en inteligencia artificial se desarrollan a partir de algún lenguaje de programación. En los
inicios del desarrollo en inteligencia artificial se usaban lenguajes como Pascal, Fortran y Cobol.
LISP fue uno de los primeros lenguajes especiales desarrollados y empleados para aplicaciones de inteligencia
artificial. PROLOG es otro. Sin embargo, actualmente existen otros productos (Shells - Frameworks) que facilitan el
desarrollo de aplicaciones basadas en inteligencia artificial.
Actualmente la inteligencia artificial es un campo amplio de aplicación, por ello existen variadas herramientas de
desarrollo específicas para cada área. En este documento se resumirá las herramientas que existen por cada área
de aplicación.
HERRAMIENTAS POR ÁREA DE DESARROLLO
ALGORITMOS GENÉTICOS
Watchmaker Framework
Es un framework extensible y de alto rendimiento orientado a objetos para la aplicación de algoritmos
evolutivos/genéticos independientes de la plataforma de Java. El framework proporciona la evolución de segura de
tipos para tipos arbitrarios a través de una API no invasiva. Watchmaker Framework es un software de código
abierto, libre para descargar y utilizar sujeto a los términos de la Licencia de Software Apache, Versión 2.0.
WEB: http://watchmaker.uncommons.org/
ECJ
Es un framework para la computación evolutiva escrito en Java. El sistema fue diseñado para necesidades
experimentales grandes y proporciona herramientas que contienen muchos algoritmos populares para la
computación evolutiva, además de sus convenciones, pero con especial énfasis hacia la programación genética. ECJ
cuenta con código abierto bajo una licencia académica de estilo BSD (AFL 3.0).
WEB: http://cs.gmu.edu/~eclab/projects/ecj/
JGAP
Es un componente para algoritmos genéticos y programación genética proporcionado como framework de java.
Provee mecanismos básicos de genética que pueden ser fáciles de usar para aplicar principios evolutivos a
soluciones de un problema.
JGAP fue diseñado para ser fácil de usar y ser altamente modular para que así mas usuarios aventureros puedan
fácilmente utilizar operadores genéticos personalizados y otros sub-componentes.
WEB: http://jgap.sourceforge.net/
GAlib
Contiene un conjunto de objetos para algoritmos geneticos en c++. La librería incluye herramientas para usar
algoritmos genéticos para optimizar cualquier programa en c++ utilizando cualquier operador genético.
WEB: http://lancet.mit.edu/ga/
REDES NEURONALES
Neuroph
Es un framework de redes neuronales en java para desarrollar arquitecturas de redes neuronales comunes.
Contiene una librería bien diseñada y de código abierto con un pequeño nuemero de clases básicas que
corresponden a los conceptos básicos de redes neuronales. Tambien tiene un editor grafico de redes neuronales
para crear rápidamente componentes para una red neuronal en java. Ha sido publicado como código abierto bajo
la licencia Apache 2.0 y es gratis para su uso.
WEB: http://neuroph.sourceforge.net/
Encog
Es un framework de aprendizaje automático avanzado que soporta una variedad de algoritmos avanzados, así
como clases de apoyo para normalizar y procesar datos. Algoritmos de aprendizaje de computadora, tales como
máquinas de soporte vectorial, Redes Neuronales Artificiales, programación genética, redes bayesianas, modelos
ocultos de Markov y Algoritmos Genéticos son soportados. La mayoría de los algoritmos de entrenamiento de
Encog son multi-hilo y escalables en hardware multinúcleo. Encog también puede hacer uso de una GPU para
aumentar la velocidad en el tiempo de procesamiento. También se proporciona un entorno de trabajo basado en
interfaz gráfica de usuario para ayudar a modelar los algoritmos de aprendizaje automático. Encog ha estado en
desarrollo activo desde 2008 y está disponible para lenguajes como Java, .Net y C/C++.
WEB: http://www.heatonresearch.com/encog
JOONE (Java Object Oriented Neural Engine)
Es un framework java para redes neuronales artificiales. Es usado para construir y entrenar redes neuronales con
un poderoso ambiente visual. Fue iseñado modularmente y puede ser fácilmente extendido escribiendo modulos
para implementar nuevos algoritmos o arquitecturas. Tiene una licencia LGPL.
WEB: http://freecode.com/projects/joone
ROBÓTICA
Microsoft Robotics Developer Studio
Microsoft Robotics Studio es un entorno de desarrollo orientado al desarrollo de aplicaciones en robótica. Una de
las ventajas de MRDS es proporcionar una plataforma de desarrollo de robótica con soporte de concurrencia en
tiempo real orientado a servicios y una plataforma escalable y extensible. Se puede descargar de manera gratuita.
WEB: http://www.microsoft.com/robotics/
Los principales componentes de Robotics Studio son:
Un Lenguaje de Programación Visual (VPL), que permite la creación intuitiva de aplicaciones para robots.
Un entorno de simulación Visual 3D basado en el motor de simulación física AGEIA.
Soporte en tiempo de ejecución (Runtime) que gestiona la entrada/salida asíncrona, la concurrencia y la
distribución de servicios.
MRDS está diseñado para ser una plataforma de desarrollo genérica que pueda emplearse con gran diversidad de
fabricantes de robots, existen gran variedad de servicios que operan directamente con los modelos de robots más
populares. Una aplicación en Robotics Studio es en esencia una coordinación de diversos servicios distribuidos y
asíncronos.
ROS (Robot Operating System)
Provee librerias y herramientas para ayudar a desarrolladores de software a crear aplicaciones para robots. Provee
también abstracciones de hardware, controladores de dispositivos, librerías, visualizadores, transmisión de
mensajes, manejo de paquetes de datos y mucho mas. ROS esta bajo la licencia BSD.
WEB: http://www.ros.org/wiki/
LÓGICA DIFUSA
Xfuzzy
El entorno de desarrollo Xfuzzy integra un conjunto de herramientas que facilitan al usuario cubrir las diversas
etapas implicadas en el proceso de diseño de los sistemas de inferencia difusos basado en la lógica, desde su
descripción inicial hasta su ejecución final.
WEB: http://www2.imse-cnm.csic.es/Xfuzzy/
jFuzzyLogic
Es un paquete de logica difusa escrito en Java. Implementa la especificación FCL (Fuzzy Control Language). Puede
ser integrado con eclipse gracias al plugin que provee.
WEB: http://jfuzzylogic.sourceforge.net/html/index.html