Está en la página 1de 9

Universidad Nacional de Loja Carrera de Ingeniera en Sistemas Inteligencia Artificial

Nombre: Gabriela Narvez Chamba

2012

Framework JGAP 1. Introduccin

Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin [1]. Estn basados en el proceso gentico de los organismos vivos, pues, combinan la supervivencia de los individuos mejor adaptados junto con operadores de bsqueda genticos como la mutacin y el cruce. Fueron desarrollados por Jhon Holland y Rechemberg que crearon algoritmos de optimizacin imitando los principios bsicos de la naturaleza. El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico encuentre la solucin ptima del problema, puede encontrar soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria [1]. JGAP es un framework basado en Java para implementar Algoritmos Genticos. Proporciona mecanismos genticos bsicos que pueden ser fcilmente utilizados para solucionar problemas aplicando los principios evolutivos. El objetivo principal del presente trabajo es conocer y probar este framework, por lo tanto el informe se estructura de la siguiente manera: Introduccin que proporciona una idea general acerca de los algoritmos genricos y JGAP; Instalacin y Configuracin en donde se establece de forma clara y precisa las acciones a llevar acabo para utilizar el framework; y finalmente Ejemplo Prctico, en esta esta seccin se plasma un ejemplo explicativo para en entender el funcionamiento y manipular adecuadamente JGAP

2. Instalacin y Configuracin de JGAP Para el ejemplo prctico que se menciona al final del documento as como todas las pruebas realizadas para el desarrollo de este informe, se utiliz el IDE Netbeans y las libreras de JGAP

2.1. Descarga e instalacin de la Mquina Virtual de Java y Netbeans La mquina virtual permite la compilacin de las aplicaciones desarrolladas bajo el lenguaje de programacin JAVA. Se pude descargar de su pgina oficial de ORACLE la ltima versin1: http://www.oracle.com/technetwork/java/javase/downloads/index.html A continuacin se muestra la pgina de descarga, aqu se pude descargar Java Plataform (JDK)7u4 que es la mquina virtual o en su defecto descargar JDK 7u4 +Netbeans que contiene en uno solo tanto la mquina virtual como el IDE Netbeans que para nuestro caso tambin lo vamos a necesitar

Si por el contrario ya se tiene instalada la mquina virtual, se puede descargar el IDE Netbeans de su pgina oficial: http://netbeans.org/downloads/index.html Como se muestra en la figura, la ltima versin es la 7.1.2 y adems existen algunas opciones, todo depende de los paquetes que se desee descargar junto con el IDE2

Hasta la fecha de realizacin de este informe la ltima versin es 7

La instalacin tanto de Java con Netbeans es sencilla, basta con ejecutar el archivo .exe (que se obtiene de la descarga) aceptar trminos y condiciones y clic en siguiente hasta finalizar la instalacin

2.2. Descarga y utilizacin de JGAP Para utilizar JGAP es necesario descargar unas libreras (archivos jar); esto se puede realizar desde la pgina http://sourceforge.net/projects/jgap/files/. En la pgina se indica cual es la ltima versin y al hacer clic en el enlace se direcciona hacia la descarga del archivo comprimido:

A continuacin se descomprime el archivo jgap_3.6.2_full.zip, en este archivo se encuentran las libreras y algunos ejemplos de aplicacin compilados y todos los cdigos fuentes.

Es recomendable descargar la versin de Netbeans completa 257MB (con todos sus paquetes) para no tener problemas posteriores. La ltima versin es la 7.1.2

Las tres libreras que nos interesan son:

a. Importar libreras JGAP a un Proyecto

Crear un proyecto en Netbeans o Clic en Archivo>Proyecto Nuevo. o Aparecer la siguiente ventana en donde se debe escoger el tipo de proyecto a desarrollar, este caso es Java Application

Clic en siguiente >, aparecer la siguiente ventana en donde se debe especificar el nombre y ubicacin del proyecto. Por defecto Netbeans direcciona todos los proyectos a su carpeta NetBeansProjects ubicada en Mis Documentos

Finalmente clic en Terminar, a continuacin aparecer la interfaz de Netbeans para el desarrollo de la aplicacin dentro del proyecto recientemente creado

Importar las libreras JGAP al proyecto creado Al crear un proyecto en Netbeans tambin se crea otras carpetas, cada una con su funcin. Por el momento nos interesa la carpeta Bibliotecas, pues aqu es donde debemos importar las libreras JGAP o Clic derecho sobre la carpeta Bibliotecas, se despliega el siguiente submen en donde se debe escoger la opcin Agregar archivo JAR\Carpeta

A continuacin aparece ala siguiente ventana en donde se debe especificar la ruta donde se encuentran las 3 libreras. Seleccionarlas y clic en Abrir

IMPORTANTE: Una buena prctica es colocar las libreras en una carpeta dentro de nuestro proyecto, de esta forma cuando realice el paso anterior va a direccionarse hacia el mismo proyecto, adems se debe escoger la opcin Ruta Relativa. La ventaja es la portabilidad, ya que al abrir el archivo desde otra mquina no existir el problema de libreras prdidas o de darse el caso, se la puede importar desde el mismo proyecto o Ahora podemos ver que en la carpeta Bibliotecas del Proyecto EjemploJGAP se encuentran agregados 3 archivos jar que corresponden a las libreras JGAP

A partir de este momento se puede trabajar en la implementacin de un algoritmos gentico utilizando el framework JGAP

Para una mayor comprensin puede ver el siguiente video JGAP-parte1 http://www.youtube.com/watch?v=eQKHcJbPMNQ&feature=youtu.be

3. Ejemplo Prctico de utilizacin de JGAP La forma ms efectiva de entender y aprender es a travs de la realizacin de ejercicios prcticos. El siguiente ejemplo es una variante del original3[2] adaptado al entorno ecuatoriano: El problema consiste en lograr descomponer un cierto monto de dinero en la menor cantidad posible de monedas. Por ejemplo si se tiene 1,70 dlares (170 centavos) se puede descomponer en: 1 moneda de 1dlar 1 moneda de 50 centavos y 2 monedas de 10 centavos

Dando un total de 4 monedas. Pero tambin existen otras formas de descomponer, tomando en consideracin que las monedas utilizadas dentro del Ecuador son 6 (Dlar, 50 ctv, 25 ctv, 10 ctv, 5 ctv y 1 ctv), asi podemos tener: 2 monedas de 50 centavos 2 monedas de 25 centavos y 4 monedas de 5 centavos

Dando un total de 8 monedas Como se puede observar, existen muchas soluciones (cromosomas) para el problema y tiene un valor de aptitud asociado, que deber depender de la cantidad de monedas totales de ese cromosoma. Mientras menos monedas se necesiten ms aptas ser la solucin ya que lo que se busca es lograr la menor cantidad de monedas posibles.

Solucin: Implementacin del Algoritmo Genticos


Para la solucin, partimos de la creacin de un proyecto en Netbeans denominado Proyecto_JGAP, dentro de este se tiene el paquete de fuentes, que contiene dos clases: CambioMinimo en donde se especifica una serie de parmetros y la clase CambioMinimoFuncionAptitud en donde se codifica la funcin aptitud Se debe tener claro que cada gen de los cromosomas ser un nmero entero y representar la cantidad de un tipo de moneda de ese cromosoma. Por lo tanto cada cromosoma tendr 6 genes 1. Moneda de 1 dlar (100 centavos)
3

Inicialmente el ejercicio fue implementado para que funcione con pesos, luego con euros y ahora el objetivo es adaptarlo al sistema monetario del Ecuador

2. 3. 4. 5. 6.

Moneda de 50 centavos Moneda de 25 centavos Moneda de 10 centavos Moneda de 5 centavos Moneda de 1 centavo

Cdigo Fuente El cdigo fuente de este proyecto tiene documentado cada una de sus instrucciones para un mejor entendimiento, adems se ha realizado un video explicativo de todos los cambios realizados al cdigo fuente original con el objetivo de adaptarlo al contexto actual que es el Sistema Monetario del Ecuador, adems se agreg una interfaz grfica Ver video: JGAP-parte2

http://www.youtube.com/watch?v=dTI3LPJ0dvk&feature=youtu.be

Referencias

[1] A Guerra. Aprendizaje Automtico: Algoritmos genticos [online]. Mxico: Universidad Veracruzana. 2004. Disponible en: http://di002.edv.uniovi.es/~alguero/eaac/eaac_archivos/0910/Trabajos%20para%20evaluaci%C3%B3n/Quintairos/Art%C3%ADculos%20proporcionado s/temageneticos.pdf [2] G.A.Veloso, R. Arce Algoritmos Gentico JGAP [online].Facultad de Ingenieras Informticas. 2009. Disponible en: http://eqaula.org/eva/file.php/1800/Trabajo_Practico_Aplicaciones_Informaticas.pdf 9

También podría gustarte