SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Griiselda Martiinez
 
Ingenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientosIngenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientosIsidro Gonzalez
 
Listas en prolog
Listas en prologListas en prolog
Listas en prologJeffoG92
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Teoria de grafos. introducción
Teoria de grafos. introducciónTeoria de grafos. introducción
Teoria de grafos. introducciónAlejandra Guzman
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipoyanezcabrera
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instruccionesLely
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibridagabo
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Professional Testing
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacionJaime amambal
 
Conceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaConceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaItzelRodriguezFuentes
 

La actualidad más candente (20)

Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)
 
Diseño de interfaz de usuario
Diseño de interfaz de usuarioDiseño de interfaz de usuario
Diseño de interfaz de usuario
 
Ingenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientosIngenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientos
 
Modularidad
ModularidadModularidad
Modularidad
 
Listas en prolog
Listas en prologListas en prolog
Listas en prolog
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Teoria de grafos. introducción
Teoria de grafos. introducciónTeoria de grafos. introducción
Teoria de grafos. introducción
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Tipos de-pruebas
Tipos de-pruebasTipos de-pruebas
Tipos de-pruebas
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
TALLER DE SISTEMAS OPERATIVOS
TALLER DE SISTEMAS OPERATIVOSTALLER DE SISTEMAS OPERATIVOS
TALLER DE SISTEMAS OPERATIVOS
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Conceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaConceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapa
 

Similar a Algoritmos geneticos con JGAP

Similar a Algoritmos geneticos con JGAP (20)

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
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 

Más de 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
 

Más de 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
 

Último

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
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
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
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Presentación de cita directa según el Manual de APA
Presentación de cita directa según el Manual de APAPresentación de cita directa según el Manual de APA
Presentación de cita directa según el Manual de APAlcolon
 
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
 
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
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 

Último (20)

Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
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
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
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
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.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...
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Presentación de cita directa según el Manual de APA
Presentación de cita directa según el Manual de APAPresentación de cita directa según el Manual de APA
Presentación de cita directa según el Manual de APA
 
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
 
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
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 

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