Sei sulla pagina 1di 14

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC FACULTAD DE INGENIERA ESCUELA ACADMICO PROFESIONAL DE INGENIERA INFORMTICA Y SISTEMAS

-----------------------------------------------------------------------------------------------------

ALGORITMOS GENTICOS

CURSO

: Algoritmica III

ALUMNA

: Hamely Sarmiento Ponce

DOCENTE

: Ing. Ral Pea Mallma

Abancay-Apurmac 2012

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS NDICE I. PRIMER CAPTULO: ALGORITMOS GENTICOS 1.1 Historiapg.3 1.2 Definicin.pg.3 1.3 Funcionamiento..pg.3 1.3.1 Esquema de funcionamiento.pg.3

1.3.1.1 Funcin de evaluacin y aptitud...pg.4 1.3.1.2 Operadores genticos..pg.4 1.4 Uso de un algoritmo gentico..pg.5 1.5 Algoritmo gentico simple.....pg.5 1.6 Algoritmo gentico paralelopg.6 1.7 Algunas aplicaciones.pg.7 1.8 Ventajas.pg.7 1.9 Desventajas.pg.9 II. SEGUNDO CAPTULO: IMPLEMENTACIN DE LOS ALGORITMOS GENTICOS EN JAVA. 2.1 Definicin de JGAP.pg.9 2.2 Implementacin de los algoritmos genticos en java..pg.9 2.3 Qu ofrece el JGAP?.........................................................................................pg.9 2.4 Instalacin de un algoritmo gentico..pg.9 2.5 Ejemplo aplicativo..pg.12

Pgina 2

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS

PRIMER CAPTULO: ALGORITMOS GENTICOS


1.1 Historia John Holland, estudiante de la universidad de Michigan, fue el inventor de los algoritmos genticos en el ao de 1975, considerndose como una tcnica de bsqueda basada en la teora de la evolucin de Darwin. l desde pequeo se preguntaba cmo lograba la naturaleza crear seres tan perfectos, fue por ello que a comienzo de los 60, sus ideas empezaron a desarrollarse dentro de un grupo denominado Logic Computer siendo consciente de la importancia de la seleccin natural. Luego, Holland imparti en la universidad un curso llamado la teora de los sistemas adaptativos, donde junto con los estudiantes cre ideas que ms tarde se convertiran en los AG. Con ello se supo que los objetivos de su investigacin eran dos: imitar los procesos adoptivos de los sistemas naturales y disear sistemas artificiales que retengan los mecanismos importantes de los sistemas naturales.

1.2 Definicin Se conoce como algoritmos genticos a los mtodos adaptivos que pueden utilizarse para la resolucin de problemas de bsqueda y optimizacin. Su principal caracterstica es que se basan en tcnicas inspiradas en la evolucin biolgica. Tambin son capaces de ir creando soluciones para problemas de la realidad. El poder de los AG, proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades.

1.3 Funcionamiento Para resolver un problema utilizando los AG, requerimos: a) Representar soluciones: es decir una cadena de bits. b) Medir la calidad de solucin con respecto al problema a resolver: para ello se usa una funcin de seleccin. 1.3.1 Esquema de funcionamiento El algoritmo gentico opera a nivel de un genotipo de soluciones a travs de la siguiente secuencia:

Pgina 3

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS Crear una poblacin inicial generando individuos de manera aleatoria. Se repite esta accin hasta conseguir al individuo ms ptimo o el nmero mximo de generaciones. Asignar, un valor de supervivencia a cada miembro. Con ello se debe calcular el fittness (aptitud) de cada individuo. Seleccionar, a un conjunto de individuos que actuarn como padre usando como criterio su probabilidad de supervivencia. Aplicar los operadores genticos de reproduccin, cruce y mutacin a la poblacin actual para crear descendencia. Combinar la descendencia con la poblacin actual para crear nueva poblacin.

1.3.1.1 Funcin de evaluacin y de aptitud Esta es la funcin objetivo, es decir, que es lo que se quiere lograr optimizar; para ello es necesario decodificar la solucin presente en el cromosoma para evaluarla. A su vez permite valorar la aptitud de los individuos, tomando valores positivos. 1.3.1.2 Operadores genticos 1.3.1.2.1 Seleccin: Escoger a la poblacin de los individuos mejor adaptados, para que acten como padres de la siguiente generacin. 1.3.1.2.2 Reproduccin: Es un operador gentico que se contrapone al cruce y a la mutacin ya que modifican a los individuos que pasan a la siguiente generacin. Entonces, la reproduccin significa la clonacin de un individuo, pasando a la siguiente generacin sin modificacin. 1.3.1.2.3 Cruce: En esta fase se mezclan los individuos seleccionados. Los genes de los padres se cruzan entre s para dar lugar a los diferentes hijos. 1.3.1.2.4 Mutacin: Es un operador bsico el cual proporciona un pequeo elemento de aleatoriedad en los individuos de la poblacin. Se encarga del aumento o reduccin del espacio de la bsqueda dentro del AG y del fomento de la variedad gentica dentro de los individuos de la poblacin.

Pgina 4

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS 1.4 Uso de un algoritmo gentico Los algoritmos genticos logran la solucin de problemas de optimizacin, sin embargo, existen problemas en los que no es recomendable usar la tcnica del AG, por lo que se debe tomar las siguientes caractersticas antes de usarla: a. Su espacio de bsqueda debe estar delimitado dentro de un rango. b. Debe definirse una funcin de aptitud que indique que tan mala o buena es una respuesta. c. Las soluciones deben codificarse de una manera que resulte fcil implementar en la computadora.

1.5 Algoritmos genticos simples o cannicos Existen tres tipos de representaciones: a. Representacin binaria: Cada gen tiene el valor de 0 1. b. Representacin entera: Cada gen es un valor entero. c. Representacin real: Cada genes un valor real. Codificacin: Los individuos pueden representarse como un conjunto de parmetros los cuales agrupados forman una ristra de valores (a menudo referida como cromosoma). En trminos biolgicos, el conjunto de parmetros representando un cromosoma particular se denomina fenotipo. El fenotipo contiene la informacin requerida para construir un organismo, el cual se refiere como genotipo. Los mismos trminos se utilizan en el campo de los Algoritmos Genticos. La adaptacin al problema de un individuo depende de la evaluacin del genotipo. Esta ltima puede inferirse a partir del fenotipo, es decir puede ser computada a partir del cromosoma, usando la funcin de evaluacin. La funcin de adaptacin debe ser diseada para cada problema de manera especfica. Dado un cromosoma particular, la funcin de adaptacin le asigna un nmero real, que se supone refleja el nivel de adaptacin al problema del individuo representado por el cromosoma. Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y producir descendientes, que constituirn, una vez. Mutados la siguiente generacin de individuos. La seleccin de padres se efecta al azar usando un procedimiento que favorezca a los individuos mejor adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional a su funcin de adaptacin. Este

Pgina 5

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS procedimiento se dice que est basado en la ruleta sesgada. Segn dicho esquema, los individuos bien adaptados se escogern probablemente varias veces por generacin, mientras que, los pobremente adaptados al problema, no se escogern ms que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutacin.

1.6 Algoritmo gentico paralelo Modelos de islas: Es una idea bsica que consiste en dividir la poblacin total en varias subpoblaciones, en cada una de las cuales se lleva a cabo un algoritmo gentico. Cada cierto nmero de generaciones, se efecta un intercambio de informacin entre las subpoblaciones, proceso que se domina migracin, donde se pueden explorar las diferencias entre las diversas poblaciones, obteniendo una fuente de diversidad gentica. Cada su populacin es una isla definindose un procedimiento por medio del cual se mueve el material gentico de una isla a otra. Existen tres modelos de islas: Comunicacin en estrella

Esclava Maestra Esclava


Comunicacin en redes

Esclava Esclava

Esclava

Esclava

Esclava
Comunicacin en anillo

Esclava

Esclava

Esclava

Esclava

Esclava

Pgina 6

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS 1.7 Algunas aplicaciones de algoritmos genticos Programacin automtica: Para el desarrollo de programas para tareas especficas, y para disear otras estructuras computacionales tales como el autmata celular y las redes de clasificacin. Aprendizaje mquina: Un ejemplo podra ser la utilizacin de los AG para la prediccin del tiempo o la estructura de una protena. Tambin sirva para determinados aspectos de sistemas particulares de aprendizaje, como el de los pesos en una red neuronal, las reglas para sistemas de clasificacin de aprendizaje o sistemas de produccin simblica y los sensores para robots. Economa: Uso de estos algoritmos para modelizar procesos de innovacin, el desarrollo de estrategias de puja y la aparicin de mercados econmicos. Sistemas inmunes: A la hora de modelizar varios aspectos de los sistemas inmunes naturales, incluyendo la mutacin somtica durante la vida de un individuo y el descubrimiento de familias de genes mltiples en tiempo evolutivo , ha resultado til el empleo de esta tcnica. Ecologa: En la modelizacin de fenmenos ecolgicos tales como las carreras de armamento biolgico, la evolucin de parasito husped, la simbiosis y el flujo de recursos. Gentica de aplicaciones: En el estudio de preguntas de tipo Bajo qu condiciones sera viable evolutivamente un gene para la recombinacin? Evolucin y aprendizaje: Los AG se han utilizado en el estudio de las relaciones entre el aprendizaje individual y la evolucin de la especie. Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas sociales, tales como la evolucin del comportamiento social en las colonias de insectos, y la evolucin de la cooperacin y la comunidad en sistemas multiagentes.

1.8 Ventajas Los algoritmos genticos son paralelos, es decir, tienen descendencia mltiple pudiendo explorar el espacio de soluciones en varias direcciones a la vez, brindando una mayor probabilidad en cada ejecucin de encontrar una solucin. Gracias al paralelismo, los AG funcionan bien resolviendo problemas debido a que el espacio de soluciones es grande, lo que permite hacer una bsqueda

Pgina 7

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS exclusiva en un tiempo razonable. El paralelismo implcito tambin les

permite superar el gran nmero de posibilidades y encontrar con xito resultados ptimos en corto tiempo. La manipulacin de muchos parmetros de manera simultnea. Estos realizan cambios aleatorios en sus soluciones y despus utilizan la funcin objetivo para determinar si esos cambios producen alguna mejora, permitiendo a los AG comenzar con una mente abierta.

1.9 Desventajas Considerar al crear un AG definir una representacin del problema, debido a que el lenguaje usado para especificar soluciones candidatas debe ser robusto para poder tolerar cambios aleatorios que no produzcan errores fatales o soluciones sin sentido. Se debe escoger adecuadamente la funcin objetivo y tambin los parmetros algoritmo gentico (tamao de la poblacin, ritmo de mutacin y cruzamiento, tipo y fuerza de seleccin), para lograr una solucin ptima, sino puede que el AG se incapaz de encontrar una solucin al objetivo o de resolver el problema inadecuado. Otra desventaja sera la convergencia prematura que puede haber en un AG.

Pgina 8

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS

SEGUNDO CAPTULO: IMPLEMENTACIN DE LOS ALGORITMOS GENTICOS EN JAVA


2.1 Definicin de JGAP Es un componente de algoritmos genticos y programacin gentica, el cual proporciona mecanismos bsicos de gentica que pueden ser usadas para aplicar principios evolutivos de soluciones a los problemas.

2.2 Implementacin de un algoritmo gentico en Java Para poder implementar algoritmos genticos en Java, se debe disponer de un framework, que para Java es conocido como JGAP, que son las siglas de Java Genetic Algorithms Package (paquete de algoritmos genticos para Java), el cual proporciona mtodos y mecanismos bsicos para implementarlo. Se distribuye bajo licencia de GPL.

2.3 Qu ofrece el JGAP? El paquete de algoritmos genticos para Java posee clases e interfaces para representar: genes (Gene), cromosomas (chromosome), individuos (I chromosome), poblacin (genotype) la funcin de ajuste (fitnessfunction) y operadores genticos. Se deben crear nuevas clases que hereden o implementen las clases e interfaces mencionadas, logrando de esa forma la adaptacin del JGPA al problema especfico que se quiere solucionar. 2.4 Instalacin del JGAP a. Primero se debe descargar la mquina virtual de Java.

Pgina 9

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS b. Descargar el IDE de Netbeans.

c. Seguidamente, se debe descargar las libreras del JGAP. d. Luego nos dirigimos al Netbeans donde creamos un nuevo proyecto.

Pgina 10

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS

e. Despus seleccionas el proyecto y te diriges a las propiedades. Estando ah ingresas a la opcin libreras (libraries), donde finalmente comenzamos a agregar las libreras del JGAP.

Pgina 11

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS 2.5 Ejemplo Aplicativo Se necesita descomponer un cierto monto de dinero en la menor cantidad posible de monedas. Por ejemplo si se tienen 1,35 dlares (135 centavos) puede descomponerse de la siguiente forma: 1 Moneda de un dlar 1 Moneda de 25 centavos 1 Moneda de 10 centavos Total de monedas: 3 monedas en total

Pero tambin puede descomponerse de la siguiente forma: 27 Monedas de 5 centavos. Total de monedas: 27 monedas en total.

Existen varias maneras de descomponer este monto en monedas siendo cada una de ellas una solucin posible al problema (cromosoma) y tiene un valor de aptitud asociado, que deber depender de la cantidad de monedas totales de ese cromosoma. Cuantas menos monedas se necesiten mejor ser la solucin. Cada cromosoma tendr 6 genes. Los genes en este problema son nmeros enteros que representan la cantidad de monedas de cada tipo: Moneda de un dlar (100 centavos) Moneda de 50 centavos Moneda de 25 centavos Moneda de 10 centavos Moneda de 5 centavos Moneda de 1 centavo Implementacin del ejemplo: Para poder implementar una solucin a este problema utilizando JGAP es necesario indicarle al framework una serie de parmetros y codificar la funcin de aptitud. Para este caso la clase principal se llamar CambioMinimo y la funcin aptitud se codificar en la clase CambioMinimoFuncionAptitud. En primer lugar se debe modelar el problema, es decir definir como se compone cada gen de los cromosomas (soluciones posibles). Para este problema puntual cada gen ser un nmero entero y representar la cantidad de un tipo de moneda de ese cromosoma. Por lo tanto cada cromosoma tendr 6 genes.

Pgina 12

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS Ejemplo: Cantidad de Monedas de 1 peso 2

Cantidad de Monedas de 50 centavos 1 Cantidad de Monedas de 25 centavos 1 Cantidad de Monedas de 10 centavos 0 Cantidad de Monedas de 5 centavos Cantidad de Monedas de centavo 0 0

Este cromosoma sumara 275 centavos en 4 monedas. Una vez definido el modelo se codifica la solucin.

Pgina 13

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC-EAPIIS CONCLUSIONES: Un algoritmo gentico es un mtodo muy completo de optimizacin donde se define una representacin adecuada para la solucin de un problema. El JPAG, es un paquete de algoritmos genticos para Java, el cual brinda mecanismos bsicos de gentica que pueden ser usadas para aplicar principios evolutivos de soluciones a los diversos problemas incluso de la vida real.

WEBGRAFA: www.utp.edu.co/php/revistas/ScientiaEtTechnica/docsFTP/21273285-290.pdf taylor.us.es/componentes/miguelangel/algoritmosgeneticos.pdf www.elrincondelprogramador.com/default.asp?pag=articulos/leer.asp&id=6 http://tigre.aragon.unam.mx/geneticos/indice.htm www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t2geneticos.pdf

Pgina 14