Herramienta Parte II

3
HERRAMIENTAS DE DESARROLLO DE I.A. I NTRODUCCIÓ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 he rramientas 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 independient es 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/ EC J 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/  JG AP 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/ 

Transcript of Herramienta Parte II

Page 1: 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/ 

Page 2: Herramienta Parte II

 

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/ 

Page 3: Herramienta Parte II

 

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