290 likes | 460 Views
Algoritmos Genéticos. Ramón Garduño Juárez Diseño de Fármacos. Introducción.
E N D
Algoritmos Genéticos Ramón Garduño Juárez Diseño de Fármacos
Introducción “Los Algoritmos Genéticos son buenos al tomar grandes, potencialmente enormes espacios de búsqueda y navegar por entre ellos, buscando por combinaciones óptimas de cosas, soluciones que de otra manera se tomarían toda una vida para encontrar.” - Salvatore Mangano Computer Design, Mayo 1995
Una revisión rápida de los AG • Desarrollados: en los EUA en los 1970’s • Pioneros: J. Holland, K. DeJong, D. Goldberg • Típicamente aplicados a: • La optimización discreta • Características Atribuidas : • no son muy rápidos • Una buena heurística para problemas combinatorios • Características Especiales: • tradicionalmente enfatiza el combinar la información de padres saludables (cruzamiento) • muchas variantes, e.g., modelos de reproducción, operadores
Algoritmos Genéticos • El AG original de Holland se conoce ahora como el genético algoritmo simple (AGS) • Otros AGs usan diferentes: • Representaciones • Mutaciones • Cruzamientos • Mecanismos de selección
Representación de los cromosomas • Los cromosomas pueden ser: • Cadenas de Bits (0101 ... 1100) • Números Reales (43.2 -33.1 ... 0.0 89.2) • Permutaciones de elementos (E11 E3 E7 ... E1 E15) • Listas de reglas (R1 R2 R3 ... R22 R23) • Elementos del programa (programación genética) • ... cualquier estructura de datos ... población
Espacio Genotipo = {0,1}L Espacio Fenotipo Codificado (representación) 10010001 10010010 010001001 011101001 Decodificado (representación inversa) Representación
Tipos de AGS • AG Generacional:poblaciones enteras son reemplazadas en cada iteración • AG Estado-estable:unos cuantos miembros son reemplazados en cada generación población miembros descartados desechos
Ciclo de reproducción en AGS • Seleccionar a los padres del pozo de apareamiento • (tamaño del pozo = tamaño de la población) • Mezclar el pozo de apareamiento • Para cada par consecutivo aplicar el cruzamiento con probabilidad pc , de lo contrario copiar los padres • Para cada prole aplicar la mutación (cambiar el bit con probabilidad pm independientemente del bit) • Remplazar la población entera con la prole resultante
Operadores AGS: cruzamiento de 1-punto • Escoja un punto al azar en los dos padres • Separe a los padres en este punto de cruce • Dé origen a nueva prole al intercambiar sus extremos • Pc típicamente en el intervalo (0.6, 0.9)
Operadores AGS: mutación • Altere cada gen independientemente con una probabilidad pm • pm es conocida como el índice de mutación • Típicamente entre 1/tamaño_pobl y 1/ longitud_cromosoma
1/6 = 17% B aptitud (A) = 3 A C aptitud (B) = 1 2/6 = 33% 3/6 = 50% aptitud (C) = 2 Operadores AGS: Selección • Idea Principal: mejores individuos tienen mayor probabilidad • Probabilidad proporcional a la aptitud • Implementación: técnica de la ruleta • Asignar a cada individuo una parte de la ruleta • Gire la ruleta n veces para seleccionar n individuos
Un ejemplo [Goldberg 1989] • Problema simple : max x2 sobre {0,1,…,31} • Enfoque AG: • Representación: código binario, e.g. 01101 13 • Tamaño de la población: 4 • X-amiento de 1-punto, mutación por bit • Selección de ruleta • Inicialización azarosa • Se muestra un ciclo generacional hecho a mano
El AG simple • Ha sido sujeto de muchos estudios • aún se usa como referencia para AGs nuevos • Muestra muchos defectos, e.g. • Representación es muy restrictiva • Mutación & cruzamiento solo se aplica a cadenas de bits & representaciones de enteros • Mecanismo de selección es sensitivo en la convergencia de poblaciones con valores de aptitud muy cercanos • Modelo de población generacional (paso 5 en AGS ciclo reproductivo) puede ser mejorado con la selección explicita del sobreviviente
Operadores Alternativos de Cruzamiento • El desempeño con cruzamiento de 1 punto depende del orden en el que las variables ocurren en la representación • más probablemente mantendrá juntos a los genes que están cercanos • nunca podrá mantener juntos a genes de los extremos opuestos de la cadena • esto es conocido como la tendencia posicional • Puede ser explotado si conocemos la estructura del problema, pero generalmente éste no es el caso
Cruzamiento de n-puntos • Escójanse n puntos azarosos de cruce • Sepárense los genes en estos puntos • Pegue las partes, alternándose entre los padres • Generalización de 1 punto (todavía con tendencia posicional)
Cruzamiento uniforme • Asignar ‘cabezas’ a un padre, y ‘colas’ a el otro • Eche una moneda al aíre para cada gen del primer hijo • Haga una copia inversa del gen para el segundo hijo • La herencia es independiente de la posición
¿Cruzamiento O mutación? • Debate con más de una década: cual es mejor / necesario / principales-antecedentes • Respuesta (al menos, más de común acuerdo): • depende del problema, pero • en general, es mejor tener a ambos • ambos tienen un papel diferente • es posible tener AE-solo-mutación, AE-solo-Xamiento no trabajan
¿Cruzamiento O mutación? (cont) Exploración: Descubriendo áreas prometedoras en el espacio de búsqueda, i.e. ganando información del problema Explotación: Optimizando dentro de un área prometedora, i.e. usando información Existe la cooperación Y competición entre ellos • El cruzamiento es exploratorio, realiza un gran brinco a un área en algún lugar “entre” dos (padres) áreas • La mutación es explotadora, esta crea al azar pequeñas desviaciones, por lo cual permanece cerca (en el área de) del padre
¿Cruzamiento O mutación? (cont) • Solo el cruzamiento puede combinar la información de dos padres • Solo la mutación puede introducir nueva información (alelos) • El cruzamiento no cambia las frecuencias de los alelos en la población (por medio de experimentos: 50% 0’s en el primer bit en la población, ?% después de llevar a cabo n cruzamientos) • Para pegarle al óptimo a menudo se necesita una mutación ‘suertuda’
Otras representaciones • Codificación Gray de enteros (aún cromosomas binarios) • la codificación Gray es un mapeo que significa que pequeños cambios en el genotipo causan pequeños cambios en el fenotipo (a diferencia del código binario). Un mapeo genotipo-fenotipo “más suave” hace la vida más fácil para el AG Hoy en día es más aceptado que es mejor codificar las variables numéricas directamente como • Enteros • Variables de punto flotante
Un ejemplo abstracto Distribución de Individuos en la Generación 0 Distribución de Individuos en la Generación N