Aplicaciones Con JGAP
-
Upload
rose-guaman -
Category
Documents
-
view
166 -
download
0
Transcript of Aplicaciones Con JGAP
Universidad Nacional de Loja
UNIVERSIDAD NACIONAL DE LOJA REA DE LA ENERGA, LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES. CARRERA DE INGENIERA EN SISTEMAS MDULO X INTELIGENCIA ARTIFICIAL
ALGORITMOS GENETICOS
PARALELO:
A
ALUMNA: Rosa Elizabeth Guamn Guadalima
DOCENTE:
Ing. Luis Antonio Chamba Eras
Fecha:
2012-05-09
LOJA-ECUADOR
Universidad Nacional de Lojandice
Introduccin.. 3 Instalacin y configuracin de herramientas.3 Instalacin del ide netbeans ....3 Descargar e instalar jgap4 Como agregar libreras a nuestras aplicaciones5 Ejemplo de aplicacin con jgap..10 Implementacin de ejemplo10 Ejemplificacin de ejecuciones y resultados14
Universidad Nacional de Loja
INTRODUCCINJGAP es un framework libre basado en la tecnologa JAVA, que provee mecanismos para aplicar principios evolutivos en la resolucin de problemas mediante la codificacin en un programa informtico. En este ejemplo utilizamos la versin 3.6.2 que en este momento es la versin actual disponible. Nuestro objetivo es implementar este framework en el IDE Netbeans 7.0.1 para aplicarlo en un ejemplo prctico que permita demostrar el uso de JGAP en el campo de la inteligencia artificial.
INSTALACIN Y CONFIGURACIN DE HERRAMIENTASPara empezar a trabajar con nuestro ejemplo debemos considerar que el IDE de Netbeans en cualquiera de las versiones disponibles, debe estar instalado.
INSTALACION DEL IDE NETBEANS.Para descargar Netbeans podemos ingresar a la siguiente URL:http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html
Universidad Nacional de Loja
Una vez descargado el instalador, se procede a la instalacin.
DESCARGAR E INSTALAR JGAPPara descargar las libreras de JGAP ingresamos a la direccin: http://sourceforge.net/projects/jgap/files/latest/download?source=files y automticamente emerger una ventana de descarga del archivo en formato ZIP.
Universidad Nacional de Loja
Ya una vez descargado procedemos a descomprimir el archivo.
COMO AGREGAR LIBRERAS A NUESTRAS APLICACIONESCon Netbeans instalado y JGAP descomprimido ya estamos listos para trabajar en nuestra aplicacin. 1. En Netbeans creamos un nuevo proyecto ejecutando los pasos que se muestran a continuacin:
Universidad Nacional de Loja
Digitamos el nombre del proyecto (ProyectoJGAp), y presionamos el botn Terminar.
Universidad Nacional de Loja
Creado el proyecto procedemos a configurar el Build Path para incluir la librera de jgap. Para lo cual presionamos clic derecho en el proyecto, seleccionamos la opcin establecer la configuracin y luego la opcin Personalizar.
Universidad Nacional de Loja
De la ventana emergente seleccionamos la opcin Bibliotecas y para buscar nuestra librera presionamos el botn Aadir JAR/Carpeta.
Universidad Nacional de LojaEn nuestro ordenador buscamos la ubicacin de la biblioteca y presionamos el botn Abrir:
Por ultimo presionamos el botn Aceptar para terminar nuestro proceso.
Universidad Nacional de Loja
EJEMPLO DE APLICACIN CON JGAPA continuacin presentamos un ejemplo donde se muestra cmo resolver un problema clsico de algoritmos genticos utilizando el framework JGAP. El problema consiste en lograr juntar el monto de dinero ingresado a la aplicacin por parmetro con la menor cantidad de monedas posibles. Por ejemplo si se tienen 2,25 dlares (235 centavos) puede descomponerse de la siguiente forma: 2 Moneda de un dlar 1 Moneda de 25 centavos Dando un total de 3 monedas en total. Cuantas menos monedas se necesiten ms apta ser la solucin ya que lo que se busca es lograr la menor cantidad de monedas posibles.
IMPLEMENTACIN DE EJEMPLOPara este caso la clase principal se llamar CambioMinimo y la funcin aptitud se codificar en la clase CambioMinimoFuncionAptitud. Primero se debe crear una configuracin predeterminados que luego se irn modificando. // Se crea una configuracin con valores predeterminados. // Configuration conf = new DefaultConfiguration(); Luego se le indica que el mejor elemento siempre pase a la prxima generacin // Se indica en la configuracin que el elemento ms apto siempre pase // a // la prxima generacin // conf.setPreservFittestIndividual(true); Se crea la funcin de aptitud que ms adelante se explicar y se setea en la configuracin con valores
Universidad Nacional de Loja// Se Crea la funcin de aptitud y se setea en la configuracin // FitnessFunction myFunc = new CambioMinimoFuncionAptitud(Monto); conf.setFitnessFunction(myFunc); Tambin se debe crear un cromosoma de ejemplo para que el framework conozca su estructura que en este caso poseer 6 genes de acuerdo al nmero de monedas en centavos que ocuparemos para nuestra aplicacin. // Ahora se debe indicar a la configuracin como sern los cromosomas: // en // este caso tendrn 6 genes (uno para cada tipo de moneda) con un // valor // entero (cantidad de monedas de ese tipo). // Se debe crear un cromosoma de ejemplo y cargarlo en la // configuracin // Cada gen tendr un valor mximo y mnimo que debe setearse. // Gene[ ] sampleGenes = new Gene[6]; sampleGenes[0] = new IntegerGene(conf, 0, Math.round(CambioMinimoFuncionAptitud.MAX_M0WT0/100)); // Moneda 1 dlar sampleGenes[1] = new IntegerGene(conf, 0, 10); // Moneda 50 centavos sampleGenes[2] = new IntegerGene(conf, 0, 10); // Moneda 25 centavos sampleGenes[3] = new IntegerGene(conf, 0, 10); // Moneda 10 centavos sampleGenes[4] = new IntegerGene(conf, 0, 10); // Moneda 5 centavos sampleGenes[5] = new IntegerGene(conf, 0, 10); // Moneda 1 centavo IChromosome sampleChromosome = new Chromosome(conf, sampleGenes); conf.setSampleChromosome(sampleChromosome); Es importante tener en cuenta los valores mximos y mnimos ya que al momento de cargarlos, se cargan mal, podra eliminar muchas soluciones que tal vez sean las mejores o si son muy amplios costar ms tiempo de procesamiento llegar a soluciones ptimas. Se puede configurar el tamao que tendr la poblacin (Cantidad de cromosomas de una generacin)
Universidad Nacional de Lojaconf.setPopulationSize(200); Para poder evolucionar se necesita una poblacin inicial. El framework permite cargarla de un xml pero lo mejor en este caso es indicarle que genere una poblacin inicial aleatoria. Poblacion = Genotype.randomInitialGenotype(conf); El mtodo envolve evoluciona una generacin. Se lo llama una cierta cantidad de veces con un loop para que realice cierta cantidad de evoluciones. Poblacion,evolve(); Y cambiamos la presentacin en consola para que el texto resultante se imprima con las palabras centavos y no euros o cntimos
Universidad Nacional de Loja
CLASE CambioMinimoFuncionAptitud.En la clase CambioMinimoFuncionAptitud es donde realizamos la mayor parte de modificaciones. Dentro de la sentencia if del mtodo CambioMinimoFuncionAptitud cambiamos la palabra cntimos por centavos para expresar nuestro algoritmo en funcin de la moneda ecuatoriana. Posteriormente nos trasladamos al mtodo montoCambioMoneda en donde cambiamos desde las lneas 101 a la lnea 109 los valores que tenemos en euros por los valores en dlares.
Rosa Guamn
Firmado digitalmente por Rosa Guamn Nombre de reconocimiento (DN): cn=Rosa Guamn, o=UNL, ou=Universidad Nacional de Loja, [email protected], c=EC Fecha: 2012.06.10 22:09:02 -05'00'
Universidad Nacional de Loja
EJEMPLIFICACIN DE EJECUCIONES Y RESULTADOSTiempo total de evolucion: 8049 ms El cromosoma mas apto encontrado tiene un valor aptitud de: 995.0 Y esta formado por la siguiente distribucion de monedas: 3 Moneda 1 dolar 0 Moneda 50 centavos 0 Moneda 25 centavos 1 Moneda 10 centavos 1 Moneda 5 centavos 0 Moneda 1 centavo Para un total de 315 centavos en 5 monedas. Tiempo total de evolucion: 12083 ms El cromosoma mas apto encontrado tiene un valor aptitud de: 995.0 Y esta formado por la siguiente distribucion de monedas: 5 Moneda 1 dolar 0 Moneda 50 centavos 0 Moneda 25 centavos 0 Moneda 10 centavos 0 Moneda 5 centavos 0 Moneda 1 centavo Para un total de 500 centavos en 5 monedas. Tiempo total de evolucion: 11827 ms El cromosoma mas apto encontrado tiene un valor aptitud de: 994.0 Y esta formado por la siguiente distribucion de monedas: 2 Moneda 1 dolar 1 Moneda 50 centavos 0 Moneda 25 centavos 3 Moneda 10 centavos 0 Moneda 5 centavos 0 Moneda 1 centavo Para un total de 280 centavos en 6 monedas. Tiempo total de evolucion: 6716 ms El cromosoma mas apto encontrado tiene un valor aptitud de: 995.0 Y esta formado por la siguiente distribucion de monedas: 0 Moneda 1 dolar 0 Moneda 50 centavos 0 Moneda 25 centavos 2 Moneda 10 centavos 1 Moneda 5 centavos 2 Moneda 1 centavo Para un total de 27 centavos en 5 monedas. de
315 centavos
de
500 centavos
de
280 centavos
de
27 centavos