SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Universidad Nacional de Loja
      Carrera de Ingeniería en Sistemas
              Inteligencia Artificial




Nombre: Gabriela Narváez Chamba



                           2012
Framework JGAP

1. Introducción


Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver
problemas de búsqueda y optimización [1]. Están basados en el proceso genético de los
organismos vivos, pues, combinan la supervivencia de los individuos mejor adaptados junto
con 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ón
imitando los principios básicos de la naturaleza.

El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica
robusta, 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 se
garantiza que el Algoritmo Genético encuentre la solución óptima del problema, puede
encontrar soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos
de optimización combinatoria [1].

JGAP es un framework basado en Java para implementar Algoritmos Genéticos. Proporciona
mecanismos genéticos básicos que pueden ser fácilmente 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: Introducción que proporciona una idea general
acerca de los algoritmos genéricos y JGAP; Instalación y Configuración en donde se establece
de forma clara y precisa las acciones a llevar acabo para utilizar el framework; y finalmente
Ejemplo Práctico, en esta esta sección se plasma un ejemplo explicativo para en entender el
funcionamiento y manipular adecuadamente JGAP




                                                                                             2
2. Instalación y Configuración de JGAP

Para el ejemplo práctico 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 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 IDE2


1
    Hasta la fecha de realización de este informe la última versión es 7

                                                                                                 3
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 JGAP

Para utilizar JGAP es necesario descargar unas librerías (archivos jar); esto se puede realizar
desde 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 la
descarga del archivo comprimido:




A continuación se descomprime el archivo jgap_3.6.2_full.zip, en este archivo se encuentran las
librerí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 tener
problemas posteriores. La última versión es la 7.1.2

                                                                                                          4
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 Abrir




IMPORTANTE: Una buena práctica es colocar las librerías en una carpeta dentro de nuestro
proyecto, de esta forma cuando realice el paso anterior va a direccionarse hacia el mismo
proyecto, además se debe escoger la opción Ruta Relativa. La ventaja es la portabilidad, ya
que al abrir el archivo desde otra máquina no existirá el problema de librerías pérdidas 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 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-parte1
http://www.youtube.com/watch?v=eQKHcJbPMNQ&feature=youtu.be



3. Ejemplo Práctico de utilización de JGAP

La forma más efectiva de entender y aprender es a través de la realización de ejercicios
prá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 cantidad
posible de monedas. Por ejemplo si se tiene 1,70 dólares (170 centavos) se puede
descomponer en:

       1 moneda de 1dólar
       1 moneda de 50 centavos y
       2 monedas de 10 centavos

Dando un total de 4 monedas.

Pero también existen otras formas de descomponer, tomando en consideración que las
monedas utilizadas dentro del Ecuador son 6 (Dólar, 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 más aptas será la solución ya que lo que
se busca es lograr la menor cantidad de monedas posibles.

Solución: Implementación del Algoritmo Genéticos

Para la solución, partimos de la creación 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 parámetros y la clase
CambioMinimoFuncionAptitud en donde se codifica la función aptitud

Se debe tener claro que cada gen de los cromosomas será un número 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 dólar (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

                                                                                                                  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 centavo

Código Fuente

El código fuente de este proyecto tiene documentado cada una de sus instrucciones para un
mejor entendimiento, además se ha realizado un video explicativo de todos los cambios
realizados al código fuente original con el objetivo de adaptarlo al contexto actual que es el
Sistema Monetario del Ecuador, además se agregó una interfaz gráfica

Ver video: JGAP-parte2
http://www.youtube.com/watch?v=dTI3LPJ0dvk&feature=youtu.be




Referencias


[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

Weitere ähnliche Inhalte

Was ist angesagt?

Scrum y la gestión de proyecto Web
Scrum y la gestión de proyecto WebScrum y la gestión de proyecto Web
Scrum y la gestión de proyecto Webinvestic
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesAmazon Web Services
 
Estandares de calidad del software
Estandares de calidad del softwareEstandares de calidad del software
Estandares de calidad del softwareSusy12
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de softwarejhonatanalex
 
Introduction To Terraform
Introduction To TerraformIntroduction To Terraform
Introduction To TerraformSasitha Iresh
 
DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)Brad Appleton
 
Especificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRSEspecificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRSsullinsan
 
La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2ralphkui
 
UrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesUrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesIBM Rational software
 
Taller Scrum 3 conclusiones
Taller Scrum 3 conclusionesTaller Scrum 3 conclusiones
Taller Scrum 3 conclusionesVerónica Vera
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De SoftwareJulio Pari
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetesBaraniBuuny
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipoyanezcabrera
 

Was ist angesagt? (20)

Scrum y la gestión de proyecto Web
Scrum y la gestión de proyecto WebScrum y la gestión de proyecto Web
Scrum y la gestión de proyecto Web
 
Patrones Grasp
Patrones GraspPatrones Grasp
Patrones Grasp
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Estandares de calidad del software
Estandares de calidad del softwareEstandares de calidad del software
Estandares de calidad del software
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de software
 
Introduction To Terraform
Introduction To TerraformIntroduction To Terraform
Introduction To Terraform
 
Cascada con subproyectos
Cascada con subproyectosCascada con subproyectos
Cascada con subproyectos
 
Conceptos basicos calidad software
Conceptos basicos calidad softwareConceptos basicos calidad software
Conceptos basicos calidad software
 
DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)
 
Prototipo evolutivo
Prototipo evolutivoPrototipo evolutivo
Prototipo evolutivo
 
Especificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRSEspecificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRS
 
La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2La Arquitectura De Netbeans V2
La Arquitectura De Netbeans V2
 
UrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slidesUrbanCode Deploy course and product overview slides
UrbanCode Deploy course and product overview slides
 
Taller Scrum 3 conclusiones
Taller Scrum 3 conclusionesTaller Scrum 3 conclusiones
Taller Scrum 3 conclusiones
 
1. el proceso unificado
1. el proceso unificado1. el proceso unificado
1. el proceso unificado
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software
 
Creando requerimientos eficaces
Creando requerimientos eficacesCreando requerimientos eficaces
Creando requerimientos eficaces
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incremental
 
9 steps to awesome with kubernetes
9 steps to awesome with kubernetes9 steps to awesome with kubernetes
9 steps to awesome with kubernetes
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 

Ähnlich wie Algoritmos geneticos con JGAP

Manual Instalación JLex & CUP
Manual Instalación JLex & CUPManual Instalación JLex & CUP
Manual Instalación JLex & CUPrubeniii
 
Guia de entornos de programacion unidad 1 semestre 2
Guia de entornos de programacion unidad 1 semestre 2Guia de entornos de programacion unidad 1 semestre 2
Guia de entornos de programacion unidad 1 semestre 2K Manuel TN
 
Manual de instalación ambiente de desarrollo básico de java JDK 1.6
Manual de instalación ambiente de desarrollo básico de java JDK 1.6Manual de instalación ambiente de desarrollo básico de java JDK 1.6
Manual de instalación ambiente de desarrollo básico de java JDK 1.6Andres Bedoya Tobon
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdfAnaLpez275
 
Instalacion de java y sus herramientas
Instalacion de java y sus herramientasInstalacion de java y sus herramientas
Instalacion de java y sus herramientasJuan Diaz Calixtro
 
[ES] Fundamentos esenciales de la plataforma java
[ES] Fundamentos esenciales de la plataforma java[ES] Fundamentos esenciales de la plataforma java
[ES] Fundamentos esenciales de la plataforma javaEudris Cabrera
 
Tutorial programacion01
Tutorial programacion01Tutorial programacion01
Tutorial programacion01Jenny Zambrana
 
Tutorial de eclipse_terminado
Tutorial de eclipse_terminadoTutorial de eclipse_terminado
Tutorial de eclipse_terminadoAixa Rodriguez
 
Manual de usuarios_de_eclipse_jenny
Manual de usuarios_de_eclipse_jennyManual de usuarios_de_eclipse_jenny
Manual de usuarios_de_eclipse_jennyJenny Martinez
 

Ähnlich wie Algoritmos geneticos con JGAP (20)

Tutorial jgap
Tutorial jgapTutorial jgap
Tutorial jgap
 
Clase 1 jJAVA 2012
Clase 1 jJAVA 2012Clase 1 jJAVA 2012
Clase 1 jJAVA 2012
 
Manual Instalación JLex & CUP
Manual Instalación JLex & CUPManual Instalación JLex & CUP
Manual Instalación JLex & CUP
 
Tarea
TareaTarea
Tarea
 
Guia de entornos de programacion unidad 1 semestre 2
Guia de entornos de programacion unidad 1 semestre 2Guia de entornos de programacion unidad 1 semestre 2
Guia de entornos de programacion unidad 1 semestre 2
 
Manual de instalación ambiente de desarrollo básico de java JDK 1.6
Manual de instalación ambiente de desarrollo básico de java JDK 1.6Manual de instalación ambiente de desarrollo básico de java JDK 1.6
Manual de instalación ambiente de desarrollo básico de java JDK 1.6
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdf
 
Instalacion de java y sus herramientas
Instalacion de java y sus herramientasInstalacion de java y sus herramientas
Instalacion de java y sus herramientas
 
[ES] Fundamentos esenciales de la plataforma java
[ES] Fundamentos esenciales de la plataforma java[ES] Fundamentos esenciales de la plataforma java
[ES] Fundamentos esenciales de la plataforma java
 
Hola mundorafaelnavarroprieto
Hola mundorafaelnavarroprietoHola mundorafaelnavarroprieto
Hola mundorafaelnavarroprieto
 
Tutorial programacion01
Tutorial programacion01Tutorial programacion01
Tutorial programacion01
 
Net3
Net3Net3
Net3
 
Netbeans manual 3
Netbeans manual 3Netbeans manual 3
Netbeans manual 3
 
Tutorial de eclipse_terminado
Tutorial de eclipse_terminadoTutorial de eclipse_terminado
Tutorial de eclipse_terminado
 
Manual de usuarios_de_eclipse_jenny
Manual de usuarios_de_eclipse_jennyManual de usuarios_de_eclipse_jenny
Manual de usuarios_de_eclipse_jenny
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
MANUAL JAVA
MANUAL JAVA MANUAL JAVA
MANUAL JAVA
 
JAVA
JAVA JAVA
JAVA
 
JAVA 2
JAVA 2JAVA 2
JAVA 2
 
MANUAL DE JAVA
MANUAL DE JAVAMANUAL DE JAVA
MANUAL DE JAVA
 

Mehr von GabyNarvaez

Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...
Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...
Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...GabyNarvaez
 
Consorcion World Wide Web W3C
Consorcion World Wide Web W3CConsorcion World Wide Web W3C
Consorcion World Wide Web W3CGabyNarvaez
 
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana GabyNarvaez
 
Aplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGAplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGGabyNarvaez
 
Practicas de Observacion
Practicas de ObservacionPracticas de Observacion
Practicas de ObservacionGabyNarvaez
 
Ejercicios de Razonamiento
Ejercicios de RazonamientoEjercicios de Razonamiento
Ejercicios de RazonamientoGabyNarvaez
 

Mehr von GabyNarvaez (6)

Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...
Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...
Ponencia "Laboratorio Virtual para la Simulación de los Componentes Internos ...
 
Consorcion World Wide Web W3C
Consorcion World Wide Web W3CConsorcion World Wide Web W3C
Consorcion World Wide Web W3C
 
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana
Valores, Actitudes y Comportamiento Ecologico Modelado con una Red Bayesiana
 
Aplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOGAplicaciones desarrolladas con PROLOG
Aplicaciones desarrolladas con PROLOG
 
Practicas de Observacion
Practicas de ObservacionPracticas de Observacion
Practicas de Observacion
 
Ejercicios de Razonamiento
Ejercicios de RazonamientoEjercicios de Razonamiento
Ejercicios de Razonamiento
 

Kürzlich hochgeladen

Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 

Kürzlich hochgeladen (20)

Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 

Algoritmos geneticos con JGAP

  • 1. Universidad Nacional de Loja Carrera de Ingeniería en Sistemas Inteligencia Artificial Nombre: Gabriela Narváez Chamba 2012
  • 2. Framework JGAP 1. Introducción Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización [1]. Están basados en el proceso genético de los organismos vivos, pues, combinan la supervivencia de los individuos mejor adaptados junto con 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ón imitando los principios básicos de la naturaleza. El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta, 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 se garantiza que el Algoritmo Genético encuentre la solución óptima del problema, puede encontrar soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria [1]. JGAP es un framework basado en Java para implementar Algoritmos Genéticos. Proporciona mecanismos genéticos básicos que pueden ser fácilmente 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: Introducción que proporciona una idea general acerca de los algoritmos genéricos y JGAP; Instalación y Configuración en donde se establece de forma clara y precisa las acciones a llevar acabo para utilizar el framework; y finalmente Ejemplo Práctico, en esta esta sección se plasma un ejemplo explicativo para en entender el funcionamiento y manipular adecuadamente JGAP 2
  • 3. 2. Instalación y Configuración de JGAP Para el ejemplo práctico 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 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 IDE2 1 Hasta la fecha de realización de este informe la última versión es 7 3
  • 4. 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 JGAP Para utilizar JGAP es necesario descargar unas librerías (archivos jar); esto se puede realizar desde 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 la descarga del archivo comprimido: A continuación se descomprime el archivo jgap_3.6.2_full.zip, en este archivo se encuentran las librerí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 tener problemas posteriores. La última versión es la 7.1.2 4
  • 5. 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
  • 6. 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
  • 7. 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 Abrir IMPORTANTE: Una buena práctica es colocar las librerías en una carpeta dentro de nuestro proyecto, de esta forma cuando realice el paso anterior va a direccionarse hacia el mismo proyecto, además se debe escoger la opción Ruta Relativa. La ventaja es la portabilidad, ya que al abrir el archivo desde otra máquina no existirá el problema de librerías pérdidas 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 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
  • 8. Para una mayor comprensión puede ver el siguiente video JGAP-parte1 http://www.youtube.com/watch?v=eQKHcJbPMNQ&feature=youtu.be 3. Ejemplo Práctico de utilización de JGAP La forma más efectiva de entender y aprender es a través de la realización de ejercicios prá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 cantidad posible de monedas. Por ejemplo si se tiene 1,70 dólares (170 centavos) se puede descomponer en:  1 moneda de 1dólar  1 moneda de 50 centavos y  2 monedas de 10 centavos Dando un total de 4 monedas. Pero también existen otras formas de descomponer, tomando en consideración que las monedas utilizadas dentro del Ecuador son 6 (Dólar, 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 más aptas será la solución ya que lo que se busca es lograr la menor cantidad de monedas posibles. Solución: Implementación del Algoritmo Genéticos Para la solución, partimos de la creación 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 parámetros y la clase CambioMinimoFuncionAptitud en donde se codifica la función aptitud Se debe tener claro que cada gen de los cromosomas será un número 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 dólar (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 8
  • 9. 2. Moneda de 50 centavos 3. Moneda de 25 centavos 4. Moneda de 10 centavos 5. Moneda de 5 centavos 6. Moneda de 1 centavo Código Fuente El código fuente de este proyecto tiene documentado cada una de sus instrucciones para un mejor entendimiento, además se ha realizado un video explicativo de todos los cambios realizados al código fuente original con el objetivo de adaptarlo al contexto actual que es el Sistema Monetario del Ecuador, además se agregó una interfaz gráfica Ver video: JGAP-parte2 http://www.youtube.com/watch?v=dTI3LPJ0dvk&feature=youtu.be Referencias [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