Consideraciones Diferentes implementaciones. Idea básica: nuevas buenas soluciones pueden ser obtenidas a partir de bloques de soluciones existentes El tiempo de corrida va a depender de los parámetros con gran probabilidad de que si se deja correr por un buen tiempo se obtenga una solución óptima o casi óptima Trabajan sobre toda una población otorgando mayor paralelismo Pueden trabajar sobre un problema sin conocer los detalles del mismo con demasiada exactitud
Ejemplo Assembly Line Balancing Problem Diseño de línea de fabricación usando n estaciones En cada estación se realizan ciertas operaciones en cada producto fabricado y luego se pasa a otra estación en la línea Problema: asignar las operaciones a las n estaciones de forma de que la línea de producción sea balanceada, dado el tiempo que lleva cada operación Algunas operaciones deben realizarse antes de que otras puedan empezar
Grafo de precedencia
Pasos a seguir Codificación Espacio de soluciones Fitness y selección de generación intermedia Recombinación
Codificación Se utilizará un string de números El número en el i-écimo lugar del string corresponde a la estación en la cual la i-écima operación se llevará a cabo Los números de las operaciones van a ser consistentes con el grafo de precedencia Según el grafo presentado:
Espacio de soluciones Soluciones no posibles porque rompen las reglas de precedencia Opciones Crossover y mutación espaciales para mantener las restricciones Dejar que se generen soluciones no aceptables Función de penalización para alejar las soluciones no aceptables Forzar cada string a formar una solución aceptable Se mantiene el string no aceptable pero se decodifica de forma que represente una solución posible
Fitness y selección de la generación intermedia El fitness para el ALBP incluye un elemento correspondiente al tiempo total de la estación mas lenta Un costo de penalización para las soluciones que no sean viables por restricciones de precedencia max i (Si) + KNv Si Tiempo total para las operaciones asignadas a la estación i Nv Número de violaciones de precedencia K Constante igual al tiempo de la operación mas larga
Fitness y selección de la generación intermedia Hay diferentes opciones para obtener el fitness Fitness = constante función_objetivo Fitness = Recíproco (función objetivo) Fitness i = exp(-hvi) Con h elegida para que el fitness caiga en cierto rango particular Superar las dificultades graduando el valor de fitness explícitamente. Esto da control de la velocidad de convergencia del algoritmo
Fitness y selección de la generación intermedia Si el problema es de maximización, el fitness del individuo i va a ser el valor de su evaluación de la función objetivo (vi) Si el problema es de minimización, se toma como fitness el opuesto a ese valor (-vi) Se realiza una escala lineal de los valores para obtener una distribución de fitness con las siguientes propiedades
Fitness y selección de la generación intermedia Selección de la generación intermedia a través de Stochastic Universal Sampling Se toman los integrantes de la población y se ordenan randómicamente A cada uno se le asigna un intervalo proporcional a su fitness y escalado de forma que el total de los intervalos sea N Se consideran los intervalos alineados en una línea que va de 0 a N Se elige un número x (aleatorio uniforme entre 0 y 1) y se pone a los individuos correspondientes a los intervalos x, x+1, , x+N en el mating pool Pares de individuos del mating pool son recombinados usando crossover y mutación
Recombinación Crossover Ocurre en un único punto randómico con probabilidad p Mutación Para cada operación, con una probabilidad pequeña q, se le cambia la estación asignada a la anterior o a la siguiente en el string
Recombinación ajustes Ajustes incluidos por los autores Elitismo Incluir en una posición aleatoria de la población el individuo con mejor valor de fitness de la generación anterior Luego de que se genera la nueva generación, si algún descendiente tiene peor valor de fitness que cualquiera de la generación anterior, se lo retira y se deja a uno de sus padres que siga adelante incambiado en la próxima generación
Resultados experimentales Consideraciones previas No se realizaron optimizaciones en el código Las comparaciones se realizan fijando el número de generaciones en una corrida y observando al mejor individuo en la población final Método de inicialización de la primer población Aleatoriamente Arcus Si bien tiene resultados muy buenos, se tiene el problema de convergencia prematura por poca variabilidad 50 operaciones a asignar a 5 estaciones
Resultados experimentales Valores fijados para la condición de parada de 350 generaciones Probabilidad de crossover 0.6 0.7 0.8 Probabilidad de mutación {0.005, 0.01, 0.015, 0.020, 025, 0.030, 0.035, 0.04} Scaling factor {1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 2.5}
Resultados experimentales 5 problemas generados randómicamente 8 corridas para cada problema con diferentes semillas para generación de valores aleatorios Valores en la tabla (a) promedio del porcentaje de la desviación de las mejores soluciones en la última generación de la mejor solución encontrada (b) promedio del porcentaje de individuos de la población final que tuvieron el mismo valor que el mejor de la generación (c) primer generación en la que un promedio del 90% o mas de los individuos de la población tienen el mismo valor que el mejor de la población
Resultados p = 0.06
Otros resultados Comparaciones eliminando el crossover y realizando selección de la siguiente manera Realizando mutación solo si la solución anterior es mejorada El porcentaje de desviación del valor óptimo es mayor que el encontrado en los resultados anteriores
Dejando que la mutación genere peores soluciones y dejar que la selección mejore la calidad global de la generación, agregando elitismo y eliminando aquellos individuos que luego de la mutación son peores soluciones que el peor de la generación anterior
Las mejores soluciones después de 350 generaciones estaban en promedio a un 32% de la mejor solución encontrada La combinación de crossover y selección es mas efectiva que la utilización de cada una por separado
Solo selección, se reemplaza si mejora
Solo selección, se reemplaza siempre
Fundamentos Matemáticos de los Algoritmos Genéticos
¿ Por qué funcionan los Algoritmos Genéticos? Los Esquemas (Hiperplanos) El Teorema Fundamental Paralelismo Implícito.
Los Algoritmos Genéticos no procesan estrictamente individuos, sino similitudes entre ellos: patrones de similitud entre individuos o esquemas Dado que cada individuo encaja en muchos patrones a la vez, la eficiencia de la búsqueda se multiplica. Fundamentos Matemáticos de los Algoritmos Genéticos
El esquema es una herramienta para estudiar la forma en que una cadena representa a otras cadenas. Es un patrón de similitud que describe un subconjunto de cadenas con similitudes en ciertas posiciones de la cadena. Consideramos el alfabeto binario extendido { 0, 1, *} . Un esquema recoge una determinada cadena si en cada posición del esquema un 1 corresponde a un 1 en la cadena, un 0 a un 0, y el * se corresponde con cualquier cosa Los Esquemas
El esquema *0000 encaja con las cadenas {00000, 10000}.
El esquema 0*0*1 encaja con las cadenas {00001, 00011, 01001, 01011}. Los EsquemasEjemplos
Proposición: Se verifican las siguientes propiedades: Si un esquema contiene k símbolos de indeferencia ( * ) entonces representa a 2k cadenas binarias. Una cadena binaria de longitud L encaja en 2L esquemas distintos. Considerando cadenas binarias de longitud L, existen en total 3L posibles esquemas. Una población de n cadenas binarias de longitud L contiene entre 2L y n2L esquemas distintos. Los Esquemas
Consideraremos los efectos de las operaciones de reproducción, cruce y mutación de los esquemas contenidos en la población. En cada instante de tiempo t (generación) consideraremos una población de cadenas individuales P(t) compuestas por Pj, j= 1..n Los Esquemas
Ciertos esquemas son más específicos que otros. Ciertos esquemas abarcan más parte de la longitud total de la cadena que otros. Para cuantificar estas ideas introducimos dos propiedades de los esquemas: Los Esquemas
Orden de un esquema, : Es el número de posiciones fijas (con 0 ó 1) que contiene dicho esquema. Ejemplo: H = 011*1** ? = 4 Longitud característica de un esquema, : Es la distancia entre la primera y última posiciones fijadas de la cadena. Ejemplo: H = 011*1** ? H = 0****** ? Los Esquemas
Un esquema H representa a cadenas: cuanto mayor sea el orden del esquema a menos cadenas representará. El orden de un esquema da una medida de su especificidad. La longitud característica da una medida de la compacidad de la información contenida en el esquema. Los Esquemas
Diferentes vistas del Muestreo de los hiperplanos
Diferentes vistas del Muestreo de los hiperplanos (2)
Dados una población de cadenas binarias P en un instante t y un esquema H se definen: Presencia de H en P en el instante t, m(H,t): Es el número de cadenas de la población P en el instante t que encajan en el esquema H. Aptitud del esquema H en P en el instante t, Es el promedio de las aptitudes de todas las cadenas de la población que encajan en el esquema H en el instante t.
Los Esquemas
Aptitud media de la población en el instante t, Es el promedio de las aptitudes de todas las cadenas de la población en el instante t. Los Esquemas
EL TEOREMA FUNDAMENTAL Buscamos una formulación de cómo evoluciona en promedio un esquema dentro de una población de un A.G.
Consideramos los efectos individuales y combinados de la reproducción, cruce y mutación sobre los esquemas de una población de cadenas.
El Efecto de la Selección Asumimos que las cadenas son copiadas a la nueva generación con una probabilidad basada en su valor de capacidad (fitness fi ) divida por la capacidad total de la generación:
Supongamos que en un instante dado de tiempo t hay m ejemplares de un esquema particular H contenido en la población P(t) (m = m(H,t) ).
Tomamos una población de tamaño n.
El Efecto de la Selección
Mediante reemplazamientos a partir de la población P(t), esperamos tener m(H,t+1) representantes del esquema en la población en el instante t +1 donde:
Siendo f(H) la aptitud media de las cadenas representadas por el esquema H en el instante t. El Efecto de la Selección
Recordando … Aptitud media de la población en el instante t, Es el promedio de las aptitudes de todas las cadenas de la población en el instante t. Los Esquemas
Ecuación de crecimiento reproductivo del esquema:
Un esquema particular crece como el porcentaje de la aptitud media del esquema respecto de la aptitud de la población.
El Efecto de la Selección
Sea un esquema particular H que permanece por encima de la media una cantidad ( c constante), entonces:
La reproducción asigna un número exponencialmente creciente (decreciente) de ejemplares a los esquemas por encima (por debajo) de la media.
El Efecto de la Selección
El valor esperado de cadenas representantes de H que han sido seleccionadas y a las que no se les aplica cruzamiento es: El Efecto de la Cruza
El valor esperado del número de cadenas representantes de H que fueron seleccionadas y permanecen en el esquema después de aplicárseles cruzamiento es:
Siendo la probabilidad de ruptura del esquema H bajo el tipo de cruzamiento que esté siendo utilizado.
El Efecto de la Cruza
Sea el número de cadenas ganadas por el esquema H durante el procedimiento de cruza:
El Efecto de la Cruza
Resumiendo las anteriores diapositivas, el valor esperado del número de representantes del esquema H tras haber efectuado selección y cruzamiento es:
Aporte de las cadenas de H que no intervinieron en la cruza. Aporte de las cadenas de H que se cruzan y se mantienen en H + las cadenas que no eran de H, pero luego del cruce pasan a formar parte de él. El Efecto de la Cruza
Si las cadenas se cortan en un solo punto, la probabilidad de romper el esquema H con un corte es:
Volviendo a la ecuación:
Eliminando g y haciendo cuentas…:
El Efecto de la Cruza
En el algoritmo original de Holland se elige a un compañero, para realizar la cruza, sin predisposición. A sí que la probabilidad de que esa cadena encaje en el esquema H es:
Tomando en cuenta esto, podemos definir nuevamente
El Efecto de la Cruza
De esta manera llegamos a:
El Efecto de la Cruza Selección del 2do padre basado en su aptitud
Suponemos que la mutación se aplica con probabilidad pm y que tiene el efecto de invertir un bit (cambiar un 1 por un 0 ó viceversa). Para que una cadena representante del esquema H permanezca en él tras una mutación, debe ocurrir que ninguno de los bits definidos del esquema sea invertido.
Estamos suponiendo que los eventos de invertir un bit son independientes entre si. El Efecto de la Mutación
Añadiendo a la expresión que teníamos:
El Efecto de la Mutación
Este resultado recibe el nombre de Teorema del esquema o Teorema Fundamental de los algoritmos genéticos: La presencia de un esquema H en la población P de la generación del instante t en un Algoritmo Genético evoluciona estadísticamente de modo exponencial según la ecuación anterior. Los esquemas de orden bajo adaptados por encima de la media reciben un número exponencialmente creciente de oportunidades en siguientes generaciones.
El Teorema Fundamental
Factor de Crecimiento Factor de Supervivencia
El Teorema Fundamental
Los esquemas con una aptitud por encima de la media incrementan exponencialmente su presencia en sucesivas generaciones Los que tienen la aptitud por debajo de la media decrementan exponencialmente su presencia en la población La tendencia de los esquemas aventajados a incrementar su presencia en sucesivas generaciones se acentúa cuando el esquema es corto y de bajo orden, pues entonces El Teorema Fundamental
Sólo es una cota inferior, es decir, no es exacto. No es muy útil para predecir a largo plazo el comportamiento de un algoritmo genético. Sólo considera los efectos destructivos de los operadores genéticos y no los efectos constructivos. Es muy particular. Está hecho para un AGS con selección proporcional (de ruleta), cruzamiento de un punto y probabilidad de mutación uniforme.
Críticas al Teorema
El problema de la Ineficiencia Los AGs sólo se pueden considerar eficientes en comparación con otros métodos estocásticos, pero si se encuentra un método determinista para resolver un problema lo hará más eficientemente. Tendencia al extravío de la búsqueda: el AG realiza la búsqueda de los mejores puntos utilizando únicamente la aptitud de los individuos para recombinar internamente los bloques constructivos. A veces esta información proporcionada es insuficiente para orientar la búsqueda del óptimo: desorientación (deception).
El problema de la Ineficiencia Un caso especialmente desfavorable ocurre cuando hay una fuerte interacción entre dos o más atributos (genes), de tal forma que la contribución a la aptitud de un individuo que realiza cierto gen depende grandemente de los valores que tomen otros (epistasis o acoplamiento). Existen mecanismos para atenuar estos efectos. En otras ocasiones es necesario incorporar conocimiento específico al AG.
Diversidad en los AGs Diversidad en individuos
Diversidad en Aptitudes
Diversidad en los AGs Con poca variedad de individuos poca variedad de esquemas el operador de cruce pierde la capacidad de intercambio de información útil entre individuos
Diversidad en los AGs Con poca diversidad de aptitudes todos los individuos tienen similares posibilidades de sobrevivir búsqueda aleatoria.
Una gran disparidad de aptitudes suele afectar negativamente a la diversidad de la población.
En algún momento de la evolución de un AG puede ocurrir que un individuo o un grupo de ellos obtengan una aptitud notablemente superior a los demás (fases tempranas de la evolución). Riesgo de que se produzca una evolución en avalancha: al incrementar los individuos más aptos su presencia en la población, la diversidad disminuye, ello hace que en la siguiente generación se favorezca aún más a los individuos más aptos hasta que dominan toda la población (súper individuos). Los súper individuos sólo son los más aptos en cierto momento
Convergencia Prematura
Diversidad en los AGs Deriva genética: Favorecer más de lo que les corresponde a individuos ocasionalmente más aptos. convergencia prematura hacia tal `individuo afortunado'. Conclusión: es necesario tener control sobre la diversidad de aptitudes de la población para evitar que se produzca una convergencia prematura (avalancha) ya sea por exceso diversidad (superindividuos) o por falta de ella (deriva genética).
La eficacia a los AGs se basa en que, aunque el AG sólo procesa n estructuras en cada generación, se puede probar que, bajo hipótesis muy generales, se procesan de modo útil al menos esquemas. Este paralelismo implícito se consigue sin ningún dispositivo o memoria adicionales, sólo con la propia población. A pesar de la ruptura de los esquemas largos de orden alto por los operadores de cruce y mutación, los algoritmos genéticos procesan inherentemente una gran cantidad de esquemas mientras procesan una cantidad relativamente pequeña de cadenas.
Paralelismo Implícito
Algoritmos genéticos paralelos Paralelismo inherente proporcional al tamaño de la población Sugiere que se puede incrementar el tamaño de la población sin afectar la performance Problemas en performance generados por sincronización y envío de mensajes Si se explotan todas las fuentes de paralelismo el tiempo de ejecución para generar una generación no depende del tamaño de la población (Gordon, Whitley y Bohm) Grandes poblaciones convergen mas lentamente
Poblaciones globales con paralelismo Implementación del algoritmo genético canónico pero con Selección por torneo Se eligen dos individuos de la población actual, el mejor de ambos pasa a la generación intermedia Se utilizan N/d procesadores donde N es el tamaño de la población Los procesadores se numeran de 1 a N/2 y el tamaño de la población es par En cada procesador x habitan dos individuos: 2x y 2x-1
Poblaciones globales con paralelismo (2) Se evalúan los individuos Cada procesador realiza dos sorteos independientes y guarda los individuos ganadores de los dos sorteos El crossover se realiza en los procesadores numerados con un número menor a p*N/2 Todos los procesadores realizan mutación en sus individuos (si corresponde)
Modelos isla 6400 individuos en 64 procesadores, por ejemplo Dividir la población total en subpoblaciones de 100 individuos cada una Cada subpoblación ejecuta un algoritmo genético Cada x cantidad de generaciones, las subpoblaciones intercambian algunos individuos intercambiando material genético Si un gran número de individuos migra en cada generación, se pierden las diferencias entre las islas Si la migración es poco frecuente, podría llevar a que cada población converja prematuramente
Algoritmos genéticos celulares 2500 procesadores dispuestos en una grilla de 50 x 50 Los procesadores solo se comunican con sus vecinos inmediatos Cada string (cada procesador) se fija en sus vecinos inmediatos y elige el mejor individuo que encuentra Recombina su individuo con el elegido del vecino Si un vecindario esta a 20 o 25 movimientos de otro, estos vecindarios están aislados como en el modelo de islas Luego de algunas generaciones hay algunos focos conteniendo individuos similares
Paralelismo en el ALBP Se eligió la implementación de forma de minimizar el pasaje de mensajes Locations vs procesadores En una location habita un único individuo Un procesador puede manejar varios individuos Cada location está conectada con un pequeño grupo de locations -> vecindario Definición del vecindario El vecindario de una location estará formado por aquellas locations que no están a mas de 4 links
Paralelismo en el ALBP En cada location el algoritmo selecciona un individuo del vecindario basándose en fitness para recombinarlo con el individuo residente La selección se realiza de forma que el individuo i es elegido del vecindario con probabilidad dada por
La reproducción produce dos descendientes Se sustituye el individuo actual por su mejor descendiente siempre que sea mejor que el peor individuo del vecindario
Paralelismo en el ALBP Repetir Para cada individuo i Evaluar f(i) Transmitir f(i) para todos los individuos j en el vecindario Elegir un individuo j para combinar basado en fitness Pedir el individuo j Reproducir usando los individuos i y j Hasta que la variación en la población es pequeña
Conclusiones El tiempo computacional está dominado por la evaluación del fitness incluyendo el chequeo de validez de la nueva generación de soluciones Los resultados no son tan buenos como para el algoritmo no paralelo La convergencia es mas lenta y hay muchos casos en que no converge La performance del algoritmo paralelo es menos sensitiva al scaling factor que la secuencial
Página anterior | Volver al principio del trabajo | Página siguiente |