• Save
Algoritmos geneticos con JGAP
Upcoming SlideShare
Loading in...5
×
 

Algoritmos geneticos con JGAP

on

  • 2,710 views

Implementación de Algoritmos Genéticos utilizando el framework JGAP

Implementación de Algoritmos Genéticos utilizando el framework JGAP

Statistics

Views

Total Views
2,710
Views on SlideShare
2,710
Embed Views
0

Actions

Likes
6
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Algoritmos geneticos con JGAP Algoritmos geneticos con JGAP Document Transcript

  • Universidad Nacional de Loja Carrera de Ingeniería en Sistemas Inteligencia ArtificialNombre: Gabriela Narváez Chamba 2012
  • Framework JGAP1. IntroducciónLos Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolverproblemas de búsqueda y optimización [1]. Están basados en el proceso genético de losorganismos vivos, pues, combinan la supervivencia de los individuos mejor adaptados juntocon operadores de búsqueda genéticos como la mutación y el cruce.Fueron desarrollados por Jhon Holland y Rechemberg que crearon algoritmos de optimizaciónimitando los principios básicos de la naturaleza.El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnicarobusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentesáreas, incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no segarantiza que el Algoritmo Genético encuentre la solución óptima del problema, puedeencontrar soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmosde optimización combinatoria [1].JGAP es un framework basado en Java para implementar Algoritmos Genéticos. Proporcionamecanismos genéticos básicos que pueden ser fácilmente utilizados para solucionar problemasaplicando los principios evolutivos.El objetivo principal del presente trabajo es conocer y probar este framework, por lo tanto elinforme se estructura de la siguiente manera: Introducción que proporciona una idea generalacerca de los algoritmos genéricos y JGAP; Instalación y Configuración en donde se establecede forma clara y precisa las acciones a llevar acabo para utilizar el framework; y finalmenteEjemplo Práctico, en esta esta sección se plasma un ejemplo explicativo para en entender elfuncionamiento y manipular adecuadamente JGAP 2
  • 2. Instalación y Configuración de JGAPPara el ejemplo práctico que se menciona al final del documento así como todas las pruebasrealizadas para el desarrollo de este informe, se utilizó el IDE Netbeans y las librerías de JGAP 2.1. Descarga e instalación de la Máquina Virtual de Java y Netbeans La máquina virtual permite la compilación de las aplicaciones desarrolladas bajo el lenguaje de programación JAVA. Se pude descargar de su página oficial de ORACLE la última versión1: http://www.oracle.com/technetwork/java/javase/downloads/index.html A continuación se muestra la página de descarga, aquí se pude descargar “Java Plataform (JDK)7u4” que es la máquina virtual o en su defecto descargar “JDK 7u4 +Netbeans” que contiene en uno solo tanto la máquina virtual como el IDE Netbeans que para nuestro caso también lo vamos a necesitar Si por el contrario ya se tiene instalada la máquina virtual, se puede descargar el IDE Netbeans de su página oficial: http://netbeans.org/downloads/index.html Como se muestra en la figura, la última versión es la 7.1.2 y además existen algunas opciones, todo depende de los paquetes que se desee descargar junto con el IDE21 Hasta la fecha de realización de este informe la última versión es 7 3 View slide
  • La instalación tanto de Java con Netbeans es sencilla, basta con ejecutar el archivo .exe (que se obtiene de la descarga) aceptar términos y condiciones y clic en siguiente hasta finalizar la instalación 2.2. Descarga y utilización de JGAPPara utilizar JGAP es necesario descargar unas librerías (archivos jar); esto se puede realizardesde la página http://sourceforge.net/projects/jgap/files/.En la página se indica cual es la última versión y al hacer clic en el enlace se direcciona hacia ladescarga del archivo comprimido:A continuación se descomprime el archivo jgap_3.6.2_full.zip, en este archivo se encuentran laslibrerías y algunos ejemplos de aplicación compilados y todos los códigos fuentes.2 Es recomendable descargar la versión de Netbeans completa 257MB (con todos sus paquetes) para no tenerproblemas posteriores. La última versión es la 7.1.2 4 View slide
  • Las tres librerías que nos interesan son: a. Importar librerías 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” o Clic en siguiente >, aparecerá la siguiente ventana en donde se debe especificar el nombre y ubicación del proyecto. Por defecto Netbeans direcciona todos los proyectos a su carpeta NetBeansProjects ubicada en Mis Documentos 5
  • o Finalmente clic en Terminar, a continuación aparecerá la interfaz de Netbeans para el desarrollo de la aplicación dentro del proyecto recientemente creado Importar las librerías JGAP al proyecto creado Al crear un proyecto en Netbeans también se crea otras carpetas, cada una con su función. Por el momento nos interesa la carpeta Bibliotecas, pues aquí es donde debemos importar las librerías JGAP o Clic derecho sobre la carpeta Bibliotecas, se despliega el siguiente submenú en donde se debe escoger la opción Agregar archivo JARCarpeta 6
  • o A continuación aparece ala siguiente ventana en donde se debe especificar la ruta donde se encuentran las 3 librerías. Seleccionarlas y clic en AbrirIMPORTANTE: Una buena práctica es colocar las librerías en una carpeta dentro de nuestroproyecto, de esta forma cuando realice el paso anterior va a direccionarse hacia el mismoproyecto, además se debe escoger la opción Ruta Relativa. La ventaja es la portabilidad, yaque al abrir el archivo desde otra máquina no existirá el problema de librerías pérdidas o dedarse 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 librerías JGAP o A partir de este momento se puede trabajar en la implementación de un algoritmos genético utilizando el framework JGAP 7
  • Para una mayor comprensión puede ver el siguiente video JGAP-parte1http://www.youtube.com/watch?v=eQKHcJbPMNQ&feature=youtu.be3. Ejemplo Práctico de utilización de JGAPLa forma más efectiva de entender y aprender es a través de la realización de ejerciciosprácticos. 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 cantidadposible de monedas. Por ejemplo si se tiene 1,70 dólares (170 centavos) se puededescomponer en:  1 moneda de 1dólar  1 moneda de 50 centavos y  2 monedas de 10 centavosDando un total de 4 monedas.Pero también existen otras formas de descomponer, tomando en consideración que lasmonedas utilizadas dentro del Ecuador son 6 (Dólar, 50 ctv, 25 ctv, 10 ctv, 5 ctv y 1 ctv), asipodemos tener:  2 monedas de 50 centavos  2 monedas de 25 centavos y  4 monedas de 5 centavos Dando un total de 8 monedasComo se puede observar, existen muchas soluciones (cromosomas) para el problema y tieneun valor de aptitud asociado, que deberá depender de la cantidad de monedas totales de esecromosoma. Mientras menos monedas se necesiten más aptas será la solución ya que lo quese busca es lograr la menor cantidad de monedas posibles.Solución: Implementación del Algoritmo GenéticosPara la solución, partimos de la creación de un proyecto en Netbeans denominadoProyecto_JGAP, dentro de este se tiene el paquete de fuentes, que contiene dos clases:CambioMinimo en donde se especifica una serie de parámetros y la claseCambioMinimoFuncionAptitud en donde se codifica la función aptitudSe debe tener claro que cada gen de los cromosomas será un número entero y representará lacantidad de un tipo de moneda de ese cromosoma. Por lo tanto cada cromosoma tendrá 6genes 1. Moneda de 1 dólar (100 centavos)3 Inicialmente el ejercicio fue implementado para que funcione con pesos, luego con euros y ahora el objetivo esadaptarlo al sistema monetario del Ecuador 8
  • 2. Moneda de 50 centavos 3. Moneda de 25 centavos 4. Moneda de 10 centavos 5. Moneda de 5 centavos 6. Moneda de 1 centavoCódigo FuenteEl código fuente de este proyecto tiene documentado cada una de sus instrucciones para unmejor entendimiento, además se ha realizado un video explicativo de todos los cambiosrealizados al código fuente original con el objetivo de adaptarlo al contexto actual que es elSistema Monetario del Ecuador, además se agregó una interfaz gráficaVer video: JGAP-parte2http://www.youtube.com/watch?v=dTI3LPJ0dvk&feature=youtu.beReferencias[1] A Guerra.” Aprendizaje Automático: Algoritmos genéticos” [online]. México: Universidad Veracruzana. 2004. Disponible en: http://di002.edv.uniovi.es/~alguero/eaac/eaac_archivos/09- 10/Trabajos%20para%20evaluaci%C3%B3n/Quintairos/Art%C3%ADculos%20proporcionado s/temageneticos.pdf[2] G.A.Veloso, R. Arce “Algoritmos Genético JGAP” [online].Facultad de Ingenierías Informáticas. 2009. Disponible en: http://eqaula.org/eva/file.php/1800/Trabajo_Practico_Aplicaciones_Informaticas.pdf 9