Introducción a algoritmos genéticos, y su aplicación Fernando Arámbula CCADET, POSGRADO EN COMPUTACION, UNAM [email protected]; I.- INTRODUCCION Qué es un algoritmo genético (AG): Inspiración biológica; Comparación de AGs con otros métodos de optimización numérica (trabajo de investigacion) Convergencia II.- PRINCIPIOS DE OPERACIÓN DE UN AG Operadores genéticos Teoría de schemata Selección de parámetros óptimos de operación de un AG F. ARAMBULA, 2010, CCADET, UNAM III.- IMPLEMENTACION DE UN AG Algoritmos de selección Crossover y mutación Mapeo de una función objetivo a función de aptitud Codificación de los parámetros de la función de aptitud Implementación de un AG en lenguaje MATLAB Introducción a MATLAB Estructuras de datos AG paralelo (multipoblacional) IV.- APLICACIONES DE AGs Reconocimiento automático de la prostata en imágenes digitales Algoritmo de navegación autónoma de un robot movil F. ARAMBULA, 2010, CCADET, UNAM 1. Introducción AG: Estrategia de búsqueda (Sistema adaptativo artificial) inspirada en los mecanismos de adaptación de los sistemas biológicos. Antecedentes: ¿Cómo produce la evolución organismos cada vez mas aptos en ambientes extremadamente complejos? ‘Adaptation in natural & artificial systems’ John H. Holland, MIT Press, 1975. Goldberg D.E., “Genetic algorithms in search optimization and machine learning”, Addison-Wesley, 1989. F. ARAMBULA, 2010, CCADET, UNAM Objetivos de investigación en Algoritmos Genéticos: 1. 2. 3. Producir una teoría que explique los mecanismos de adaptación de los sistemas biológicos. Producir sistemas artificiales que reproduzcan y aprovechen las ventajas de los mecanismos de adaptación naturales. La optimización de funciones es la aplicación más popular de los AGs F. ARAMBULA, 2010, CCADET, UNAM Sistema Adaptativo Natural Las características de un organismo están determinadas por los genes en sus cromosomas. Cada gen tiene varias posibles formas o alelos que producen diferentes características asociadas a ese gen. Por ejemplo, ciertas variedades de chícharo de jardín tienen un gen que determina el color de la flor, cierto alelo produce una flor blanca y el otro una flor rosa. F. ARAMBULA, 2010, CCADET, UNAM Sistema Adaptativo Natural Existen decenas de miles de genes en los cromosomas de un vertebrado típico,cada gen (ó gene) tiene varios alelos. Si definimos el conjunto α como el conjunto de todos los cromosomas que se obtienen a partir de todas las posibles combinaciones de alelos, observamos que α tiene del orden de: 2 10000 3000 ≈10 cromosomas distintos, considerando sólo dos alelos por gen. F. ARAMBULA, 2010, CCADET, UNAM Sistema Adaptativo Natural Aún una población muy grande, p.ej. 10,000 x106 (la pob. Mundial humana es de 6000 x 106 aprox), de individuos es una fracción minúscula de α La probabilidad de producir indiviuduos aptos con una muestra aleatoria de α es prácticamente cero. F. ARAMBULA, 2010, CCADET, UNAM Búsqueda enumerativa idealizada (“Adaptación enumerativa”) Si a un sistema adaptativo natural le tomara 1.0 mS evaluar el desempeño de un individuo. Tomaría entonces: 3000 10 2997 t opt = =10 S 1000 evaluar todos los cromosomas de α Si consideramos que: 1 dia= 24 x 3600 s =86400 ≈ 100 ks 1 M años = 360 x 106 dias 3 M años ≈ 1000 x 106 ≈ 109 dias ≈ 1014 s F. ARAMBULA, 2010, CCADET, UNAM Búsqueda enumerativa idealizada (“Adaptación enumerativa”) 2997 t opt = 3×10 2983 =3×10 millones deaños 14 10 La edad estimada de la tierra es de 4500 M de años: 4.5 x 103 M de años. F. ARAMBULA, 2010, CCADET, UNAM Epístasis El enorme número de posibles estructuras genéticas (genotipos), para cada especie de vertebrados, es una contribución importante a la complejidad del sistema adaptativo natural. Sin embargo, la mayor parte de la complejidad de estos sistemas se debe a las interacciones que existen entre los genes. Diferentes alelos de un mismo gen producen diferentes proteínas asociadas. Típicamente cada proteína ó conjunto de ellas forman catalizadores biológicos llamados enzimas. De esta manera, los genes controlan las reacciones químicas que se dan en una célula. F. ARAMBULA, 2010, CCADET, UNAM Epístasis La mayoría de las veces, los productos de una cierta reacción química, se utilizan en muchas otras reacciones de la célula. Así los efectos de modificar alguna enzima tienen una gran propagación, ocasionando cambios significativos en la forma y funcionamiento de la célula. Los efectos de diferentes enzimas no son aditivos. Por ejemplo sí una secuencia de reacciones químicas depende de varias enzimas, la secuencia no se da hasta que están presentes todas las enzimas (fenómeno conocido como epístasis). F. ARAMBULA, 2010, CCADET, UNAM Esto es el, efecto de cada alelo depende fuertemente de que otros alelos están presentes en el cromosoma. El conjunto de características de un organismo – el fenotipo – depende en gran medida de procesos epistáticos. Por lo que no existe una manera sencilla de asignar créditos a cada alelo individual por el desempeño del fenotipo. El proceso de adaptación consiste entonces, en la búsqueda de un conjunto de alelos coadaptados – esto es, alelos de diferentes genes, que juntos aumentan significativamente el desempeño (en cierto ambiente) del fenotipo correspondiente. F. ARAMBULA, 2010, CCADET, UNAM La pregunta central para un sistema adaptativo natural es, entonces: ¿Cómo transformar estructuras inicialmente inapropiadas, en estructuras apropiadas a una variedad de nichos ambientales? [¿Cuál es la estrategia de adaptación o plan adaptativo más apropiado?] F. ARAMBULA, 2010, CCADET, UNAM En estudios de genética matemática, la acción del ambiente E ∈ sobre el fenotipo (y por consiguiente el genotipo A∈ ) se sumariza en una medida de desempeño μE llamada “aptitud” (fitness). Aproximadamente, la aptitud de un fenotipo es el número de sus descendientes que sobrevive para reproducirse. Dentro de una población la aptitud de un individuo está estrechamente relacionada con su influencia en el desarrollo futuro de la población cuando muchos descendientes de un individuo sobreviven para reproducirse, entonces muchos miembros de la población resultante (i.e. la siguiente generación) tendrán los alelos del individuo original. F. ARAMBULA, 2010, CCADET, UNAM La evaluación de los genotipos en una población puede verse como un proceso de muestreo. Donde el espacio de búsqueda es el conjunto de todos los posibles genotipos (α) y el resultado de cada muestra es el desempeño μE del fenotipo correspondiente. Podemos preguntarnos entonces: ¿Cómo afecta el resultado μE(A) de una muestra muestreo τ ? F. ARAMBULA, 2010, CCADET, UNAM A∈ el plan de En un sistema genético la influencia de cada individuo A∈ es directamente proporcional a su aptitud μE(A) Esto no necesita ser así en general. Sin embargo la reproducción en proporción al desempeño observado, ha proporcionado buenos resultados en la implementación de planes de muestreo – llamados planes reproductivos – aplicables en cualquier problema de adaptación. Al hacer el número de descendientes, de un individuo, proporcional a su desempeño aseguramos que la mayoría de los conjuntos coadaptados de alelos, de los individuos más aptos, pasan a la siguiente generación. F. ARAMBULA, 2010, CCADET, UNAM Después de varias generaciones, el material genético de la población consistirá, principalmente, de los conjuntos coadaptados de genes, que han demostrado mejor desempeño. De esta manera, el plan reproductivo toma en cuenta la experiencia pasada. Ésta experiencia queda almacenada en el material genético de cada generación. La simple reproducción no genera nuevas estructuras para ser evaluadas en el ambiente . Esto se logra a través de operadores genéticos que preservan la mayoría de los conjuntos coadaptados de alelos de la generación actual pero al mismo tiempo producen nuevos conjuntos de alelos para su evaluación. F. ARAMBULA, 2010, CCADET, UNAM OPERADORES GENÉTICOS PRINCIPALES Las dos características principales de los operadores genéticos naturales son: 1.- Los operadores no afectan el tamaño de la población. (de ésta forma no se afecta el proceso de reproducción). 2.- Los operadores pocas veces separan alelos que se encuentran cercanos en un cromosoma. Es decir los alelos coadaptados se mantienen juntos. F. ARAMBULA, 2010, CCADET, UNAM OPERADORES GENÉTICOS PRINCIPALES cruza (crossover) padres : descendencia: Posición de cruza Mutación aleatoria cromosoma original: mutación: Pm << 1 (0.01-0.001 por gen) Posición de mutación F. ARAMBULA, 2010, CCADET, UNAM F. ARAMBULA, 2010, CCADET, UNAM Un algoritmo genético (AG) constituye la implementación de un plan de muestreo (adaptación) reproductivo, que utiliza como operadores principales la cruza y la mutación aleatoria con baja probabilidad. F. ARAMBULA, 2010, CCADET, UNAM Para utilizar un AG en un problema de optimización, es necesario codificar el conjunto de parámetros del problema como un arreglo de longitud finita, de elementos de un cierto alfabeto (finito). Ejemplo: Maximizar la función f(x)=x2 en el intervalo [0, 31] Codificación de x como el conjunto de posiciones (s) de un arreglo de switches en una caja negra: F. ARAMBULA, 2010, CCADET, UNAM El AG optimiza s para encontrar la óptima x: F. ARAMBULA, 2010, CCADET, UNAM Experimentos Población aleatoria y los correspondientes valores de aptitud: No.arreglo 1 01101 2 11000 3 01000 4 10011 total aptitud 169 576 64 361 1170 % del total 14.4 49.2 5.5 30.9 100.0 F. ARAMBULA, 2010, CCADET, UNAM Reproducción proporcional a la aptitud No.arreglo 1 01101 2 11000 3 01000 4 10011 total aptitud 169 576 64 361 1170 %del total 14.4 49.2 5.5 30.9 100.0 F. ARAMBULA, 2010, CCADET, UNAM Optimización numérica de funciones, utilizando AGs: No son necesarias las derivadas de la función (método numérico); Un AG puede optimizar funciones complicadas (muchos óptimos locales, puntos optimos cercanos a sub-óptimos ) en tiempos cortos; Un AG converge lentamente al valor óptimo, sin embargo se acerca muy rápido. Trabajo de investigación. Describir brevemente: -optimización de funciones escalares de variable vectorial; -optimización multiobjetivo: funciones vectoriales; -método simplex de optimización numérica; -método de euler de optimización numérica. F. ARAMBULA, 2010, CCADET, UNAM II.- PRINCIPIOS DE OPERACIÓN DE UN AG II.1. Schemata y sus propiedades II.2. Teorema de schema ¿Qué es lo que procesa un AG y cómo sabemos que el procesarlo producirá resultados óptimos para un problema particular? F. ARAMBULA, 2010, CCADET, UNAM Plantillas de similitud (“Schemata”) Un ‘schema’ (plural schemata) es una plantilla de similitud que representa un subconjunto de arreglos con correspondencias en ciertas posiciones. Por ejemplo, para el alfabeto binario {0, 1} si agregamos un tercer elemento * (no importa) podemos entonces crear arreglos (schemata) sobre el alfabeto ternario {0, 1, *}. F. ARAMBULA, 2010, CCADET, UNAM Un schema puede verse como un mecanismo de correspondencia de patrones. Un cierto schema corresponde a un patrón si los 1’s y 0’s en el patrón y el schema corresponden para todas las posiciones. Por ejemplo: Para un arreglo de longitud 5. El schema: {*0000} corresponde (“matches”) a los 2 arreglos: {10000, 00000} El schema: {*111*} corresponde a los arreglos: {01110, 01111, 11110, 11111} F. ARAMBULA, 2010, CCADET, UNAM El * es un elemento de notación que permite representar todas las posibles similitudes entre arreglos de una cierta longitud y alfabeto. El * nunca es procesado explícitamente por un AG. El número total de schemata posibles para arreglos de longitud l sobre un alfabeto de cardinalidad k está dado por : (k+1)l Ejemplo: para k=2, l =5; Ns=243 Los schemata nos permiten evaluar cuanta información se incorpora en el proceso de búsqueda (optimización) si incluimos las similitudes entre los arreglos de una población. Consideremos el arreglo de 5 bits: A1: 11111 Este arreglo es uno de entre 25 schemata que corresponden con A1, ya que cualquiera de las 5 posiciones puede ser ocupada por su valor o por un * F. ARAMBULA, 2010, CCADET, UNAM En general un arreglo de longitud l contiene 2l schemata. Entonces una población de tamaño n contiene entre 2l y n2l schemata dependiendo de la variedad en la población. Por ejemplo: para arreglos binarios con l=5 y n=4, tenemos entre 32 y 128, schemata diferentes. Nótese cómo con sólo 4 arreglos podemos representar la mitad de los (243) schemata que existen para l=5 . ¿Cuántos arreglos de 5 bits se necesitan para representar los 243 posibles schemata?. F. ARAMBULA, 2010, CCADET, UNAM Enumeración de schemata para cadenas binarias de longitud 2: V={0,1}; l =2 Ns=(2+1)l = 9 ; No. total de schemata que existen para cadenas binarias de long. 2. Ns/cadena = 2l = 4; No. de schemata asociados a una sola cadena F. ARAMBULA, 2010, CCADET, UNAM Enumeración de schemata para cadenas binarias de longitud 2: F. ARAMBULA, 2010, CCADET, UNAM Propiedades de los Schemata Orden; O(). Es el número de posiciones fijas en un schema. Para: H1= 0 1 1 * 1 * * H2= 0 * * * * * * O(H1)=4; O(H2)=1; El orden de un schema es una medida de su especificidad. Longitud de definición; δ() Es la distancia entre la 1a. y la última posición fija de un schema. δ(H1)= 5-1= 4; δ(H2)= 0 F. ARAMBULA, 2010, CCADET, UNAM δ es una medida de la probabilidad de sobrevivencia de un schema al aplicar crossover. Los schemata y sus propiedades proporcionan los medios básicos para analizar el efecto neto de la reproducción y los operadores genéticos en los “bloques de construcción” de una población. Hemos visto que aún poblaciones pequeñas contienen una gran cantidad de información sobre las correspondencias que existen entre los arreglos que forman la población. De los 2l a n2l schemata en una población (binaria). ¿Cuántos son procesados de manera util por un AG? 1.- La reproducción asigna un número creciente de evaluaciones a arreglos con alto desempeño. F. ARAMBULA, 2010, CCADET, UNAM 2.- La aplicación de “crossover” crea nuevos arreglos. Manteniendo los subarreglos con menor longitud de definición 1***0 δ=4 **01* δ=1 *1*0* δ=2 3.- Si la mutación es suficientemente baja tampoco altera arreglos con δ corta. Los schemata con δ corta se conocen como bloques de construcción. Un AG asigna un número creciente de evaluaciones a los bloques de construcción asociados con un mejor desempeño. F. ARAMBULA, 2010, CCADET, UNAM Visualización de los schemata F. ARAMBULA, 2010, CCADET, UNAM Visualización como hiperplanos: F. ARAMBULA, 2010, CCADET, UNAM II. 2. Teorema de schema ó Teorema fundamental de AGs. Notación. Consideramos arreglos sobre el alfabeto binario V={0,1} Utilizaremos letras mayúsculas para indicar arreglos y letras minúsculas con subíndices para indicar los caractéres de un arreglo. F. ARAMBULA, 2010, CCADET, UNAM Por ejemplo, el arreglo A de 7 bits: A= 0 0 0 1 1 0 1 puede representarse como: A= a1 a2 a3 a4 a5 a6 a7 Cada característica ai es análoga a un gene y los valores de ai son análogos a los alelos. Es posible tener arreglos en los que las características ordenadas secuencialmente. Por ejemplo: A'= a3 a1 a2 a7 a5 a6 a4 Indicaremos una población de n arreglos Aj; j=1,2,3,..........n en el tiempo t como A(t) o β (t) F. ARAMBULA, 2010, CCADET, UNAM ai no están f H m H , t1=mH , t n ∑fj F. ARAMBULA, 2010, CCADET, UNAM f H m H , t1=mH , t n ∑fj (1) Donde: f(H) es el desempeño promedio de todos los arreglos Ai que representan al schema H en el tiempo t. El desempeño promedio de toda la población A(t) está dado por ∑ f= f j n Podemos entonces rescribir la ec. 1 como: f H m H , t1=mH , t f F. ARAMBULA, 2010, CCADET, UNAM (2) Entonces, los schemata con un desempeño mayor que el promedio de la población reciben un número creciente de muestras en la siguiente generación. Mientras que los que tienen un desempeño menor al promedio reciben un número decreciente de muestras. Esto se da para cada schema en A (t) en PARALELO. Supongamos ahora que un cierto schema H muestra consistentemente un desempeño arriba/abajo del promedio por un valor donde c es un constante positiva/negativa. c f Podemos escribir la ec. 2 como: f c f m H , t1=mH , t =m H , t1c f F. ARAMBULA, 2010, CCADET, UNAM Desde t=0 y para un valor constante de c: m H , t=m H ,01c t La reproducción entonces asigna un número exponencialmente creciente (decreciente) de copias a los schemata que muestran un desempeño superior (inferior) al promedio de la población. La aplicación de crossover crea nuevas estructuras afectando al mínimo el proceso de reproducción. Consideremos la siguiente estructura de longitud l y 2 schemata asociados: A=0111000 H1= * 1 * * * * 0 H2= * * * 1 0 * * El schema H1 tiene menos probabilidades de sobrevivir crossover ya que en promedio es muy probable que el punto de cruza esté entre las posiciones 2 y 7. F. ARAMBULA, 2010, CCADET, UNAM δ(H1) = 7 – 2 =5 ; Existen l -1 posibles posiciones para realizar la cruza. Si seleccionamos una aleatoriamente y con igual probabilidad. Entonces la probabilidad de desaparecer de H1 está dada por: Para H2: H 1 5 Pd = = l−1 6 Pd = 1 6 1 P s=1−Pd = 6 P s= 5 6 En general la probabilidad de sobrevivencia de un schema H está dada por (Pc=1): H P s1− l−1 F. ARAMBULA, 2010, CCADET, UNAM Si además se aplica la cruza con probabilidad Pc: H P s1−Pc l−1 El efecto combinado de la reproducción y la cruza está dado entonces por: (suponiendo independencia de ambas operaciones). m H , t 1m H , t [ f H H 1−Pc f l −1 ] Si consideramos ahora una probabilidad de mutación Pm. La probabilidad de sobrevivir de un alelo particular es de 1-Pm y la probabilidad de sobrevivencia de un schema está dada por: P sm=1−Pm O H F. ARAMBULA, 2010, CCADET, UNAM Si Pm. << 1 podemos aproximar Psm como P sm=1−O H P m El número esperado de copias de un schema H considerando la aplicación de reproducción, cruza y mutación está dado por el TEOREMA DE SCHEMA: [ f H H m H , t1mH , t 1−Pc −O H Pm f l−1 F. ARAMBULA, 2010, CCADET, UNAM ] Goldberg D.E., “Genetic algorithms in search optimization and machine learning”, AddisonWesley, 1989. F. ARAMBULA, 2010, CCADET, UNAM [ f H H m H , t1mH , t 1−Pc −O H Pm f l−1 F. ARAMBULA, 2010, CCADET, UNAM ] III. Implementación de un AG: En un problema típico de optimización de funciones, dada una función real de varios parámetros reales f (x1, x2, ........, xn). El problema de optimización consiste en encontrar los valores de xi dentro de un cierto rango de valores [ai, bi] que corresponden a un valor óptimo (min ó max) de f . F. ARAMBULA, 2010, CCADET, UNAM CODIFICACIÓN Para optimizar f con un AG es necesario codificar el conjunto de parámetros xi Las opciones más comunes son: - binario gray entero real F. ARAMBULA, 2010, CCADET, UNAM Dada una función Podemos codificar xi en un cierto alfabeto por ejemplo: binario xi : {00000, 00001, . . . . . . . . ., 11111} Entonces cada posible solución de f está representada por un arreglo de 1's y 0's (cromosoma o individuo) de longitud l Para n=5; l =5x5=25 F. ARAMBULA, 2010, CCADET, UNAM Función de desempeño: 2 g=F max− f =n31 − f F. ARAMBULA, 2010, CCADET, UNAM Mapeo lineal (binario ó gray) El rango de valores de xi se mapea linealmente a números enteros binarios, ó código gray, de longitud l .Ejemplo para l =5: BIN GRAY xmax 11111 11111 . . . . xmin . . 00010 00001 00000 . . 00011 00001 00000 Los valores de x se calculan a partir del código (binario o gray) como: x= x max− x min l 2 −1 x cod x min Donde: xcod es el equivalente decimal de un valor de x codificada en binario o gray. F. ARAMBULA, 2010, CCADET, UNAM Mapeo lineal (binario ó gray) El código gray mantiene una distancia constante entre códigos adyacentes, esto puede ayudar al AG a encontrar valores óptimos para ciertas funciones, de manera más robusta. [User’s guide GA toolbox ]. Sin embargo el código binario ha producido resultados satisfactorios en muchas aplicaciones. El conjunto de parámetros de f (x1, x2, ........, xn) puede representarse por un arreglo concatenado de las xi codificadas: 10100 00001 . . . . . . . . 01010 ; lt=nl F. ARAMBULA, 2010, CCADET, UNAM Codificación Mientras que la codificación en binario ha sido muy utilizada en AGs. Existe un interés creciente en formas de codificación alternas como el asignar números enteros, ó reales, a los parámetros del problema. [User’s guide GA toolbox]. Existen algunas ventajas prácticas en la utilización de valores reales para codificar los parámetros de un AG. Mejora la eficiencia ya que no es necesario decodificar cada parámetro, para evaluar la función objetivo. Se utiliza menos memoria ya que pueden utilizarse arreglos de variables de punto flotante para representar un cromosoma. F. ARAMBULA, 2010, CCADET, UNAM Existen 2 principios básicos para seleccionar los cromosomas en un AG. 1. El principio de bloques de construcción relevantes: El usuario debe seleccionar una codificación que resulte en schemata cortos y de bajo orden relevantes al problema. Que no estén muy relacionados con schemata definidos en otras posiciones. Ejemplos: X1, X2 , X3 A: 110, 011, 111 B: 6, 3, 7 C: 101, 111, 011 F. ARAMBULA, 2010, CCADET, UNAM 2. El principio de alfabetos mínimos. El usuario debe seleccionar el alfabeto más pequeño (con menor número de elementos) que permita una codificación práctica de los parámetros del problema. El primer principio trata de maximizar el procesamiento de bloques de construcción relevantes al problema de optimización. El segundo principio recomienda tener tantos schemata como sea posible para un problema particular. Ejemplo: Codificación de 3 parámetros X1, X2, X3 cada uno con un rango de [0,7] X1, X2, X3 BINARIO : 110, 011, 111 Ns=(k+1)l=(2+1)9=19683 ENTERO: 6, 3, 7 Ns=(k+1)l=(8+1)3=729 F. ARAMBULA, 2010, CCADET, UNAM Resolución de la codificación: Error de cuantización La resolución de una codificación es la diferencia entre valores contiguos de la variable codificada (ΔX). El error de cuantización correspondiente es la diferencia máxima entre el código más cercano y el valor exacto de la variable codificada (ΔX/2). La resolución está determinada por el número de valores que puede tomar una variable codificada dentro de su rango. F. ARAMBULA, 2010, CCADET, UNAM Aunque depende del problema y de la función objetivo correspondiente, en general, es recomendable codificar rangos más grandes con un mayor número de valores codificados, manteniendo así una resolución (y un error de cuantización) similar entre variables. A un cierto error de cuantización en las variables de una función objetivo, corresponde un error de cuantización en la evaluación de la función, que depende de la función: F. ARAMBULA, 2010, CCADET, UNAM F. ARAMBULA, 2010, CCADET, UNAM Población inicial. Se generan el número deseado (n) de estructuras de longitud l , utilizando un generador de números aleatorios que distribuya, con igual probabilidad, los k elementos del alfabeto que se utilize, para cada posición en una estructura. Por ejemplo: Para una población binaria de n estructuras (arreglos), individuos, ó cromosomas) de longitud . Es necesario producir números del conjunto con igual probabilidad. En la inicialización aleatoria extendida [GA toolbox User’s guide]. Cada individuo de la población se genera aleatoriamente varias veces, se evalua el desempeño de cada opción y se toma aquella con mejor desempeño. Otra opción consiste en sembrar la población inicial con individuos de los que se sabe de antemano que corresponden a valores cercanos al óptimo. F. ARAMBULA, 2010, CCADET, UNAM GA toolbox codificación: inicialización: binaria natural, gray, entera, real. binaria y entera crtbp crtbase crea un vector que describe la base crtbp crtreal crea una pop real bs2rv conversión binario a real Función objetivo y función de aptitud. La función objetivo proporciona una medida del desempeño del sistema asociado a cierto individuo en la población. Para muchos problemas, los mejores individuos tendrán los valores más bajos de la función objetivo. F. ARAMBULA, 2010, CCADET, UNAM Se utiliza la función de aptitud (fitness function) para convertir los valores de la función objetivo en valores de aptitud de cada individuo con los cuales se pueda asignar el número esperado de copias. Así: F (x) = g (f (x)) Donde: F (x) = función de aptitud f (x) = función objetivo S es una transformación lineal Una forma común de transformación es el mapeo lineal: F (x) = a f (x) + b donde: a es un factor de escala positivo si queremos maximizar f (x) y negativo si queremos minimizar f (x) b es el corrimiento (offset) necesario para no tener valores negativos de F (x) F. ARAMBULA, 2010, CCADET, UNAM f(x) g(f(x))= 1/f(x) g(f(x))= -f(x)+b F. ARAMBULA, 2010, CCADET, UNAM La aptitud relativa de cada individuo en la población puede entonces calcularse como: Pi= F x i N ∑ F x j j=1 El uso de la aptitud relativa (p) para asignar copias a cada individuo, es susceptible de convergencia prematura del AG. Ya que individuos con valores grandes de aptitud relativa (p) en las primeras generaciones pueden dominar las generaciones sucesivas, haciendo converger el AG, hacia puntos subóptimos. Se han reportado métodos de ranking, que limitan el número de copias que puede recibir un individuo (Baker 14, GA-Toolbox). F. ARAMBULA, 2010, CCADET, UNAM Calculo de prob. de sel por ranking: La población de N individuo se ordena de acuerdo a la aptitud de c/u: primero el peor y al final el mejor. El número de copias que se espera de cada individuo se calcula como: X i−1 Pi=2−MAX 2MAX −1 N−1 Donde: Xi es la posición del individuo i; 1.1 <=MAX<= 2.0, es el número máximo de copias que puede recibir un individuo F. ARAMBULA, 2010, CCADET, UNAM Algoritmos de selección (o muestreo) El algoritmo de selección asigna de manera probabilistica un número entero de copias, a un individuo, de acuerdo a su probabilidad de selección (P). Baker (19) propuso 3 medidas del funcionamiento de un algoritmo de selección: sesgo (bias), dispersión (spread), eficiencia. El sesgo es la diferencia absoluta entre la probabilidad de selección (P) y el número de copias (ó prob. efectiva) esperada de un individuo. La dispersión es el rango de valores de probabilidad efectiva que se asignan a un individuo. La eficiencia es una medida de la contribución del algoritmo de selección al tiempo total de proceso de una generación del AG (sin contar la evaluación de la función objetivo). F. ARAMBULA, 2010, CCADET, UNAM Ruleta ó muestreo estocástico con remplazo (Stochastic Sampling with Replacement) Se define un intervalo real sum formado con la suma de las probabilidades de selección de la población. Cada individuo de la población pertenece a un cierto subrango de sum [o,..,sum]. Para seleccionar un individuo se genera un número aleatorio dentro del rango [o,..,sum] y se selecciona el individuo correspondiente. Esto se repite N veces. La ruleta básica tiene sesgo cero y dispersión ilimitada. Cualquier individuo con P> 0 podría llenar la siguiente generación. F. ARAMBULA, 2010, CCADET, UNAM Muestreo Estocástico Universal (Stochastic Universal Sampling) Es un algoritmo que genera, todas las copias necesarias,en una sola selección. Se utilizan N apuntadores igualmente espaciados. La población original se “barajea” aleatoriamente y se genera un solo número ptr en el rango [ 0, sum/N]. Los N individuos se seleccionan por N apuntadores espaciados por sum: [ptr, ptr +sum,…, ptr+ (N-1) sum] Esto es análogo a una ruleta con N marcadores equiespaciados SUS tiene sesgo cero y mínima dispersión. Es también más eficiente que la ruleta básica. F. ARAMBULA, 2010, CCADET, UNAM GA- Tool box: stochastic universal sampling sus stochastic sampling with replacement rws Muestreo determinista A partir de la probabilidad de selección (P) se calcula para cada individuo en β(t) el número esperado de copias (Ne): ne = P. n Se asigna la parte entera de ne a cada individuo, en la población de copias (ó mating pool) μ(t). Los individuos en β(t) se ordenan de acuerdo a la parte fraccionaria de Pi y se toman los individuos necesarios de la parte superior (los que tienen mayor P fraccionaria) para llenar μ(t): F. ARAMBULA, 2010, CCADET, UNAM El muestreo determinista tiene alta eficiencia. Se recomienda utilizar un método de normalización (p.ej. ranking) para calcular Pi F. ARAMBULA, 2010, CCADET, UNAM Muestreo (selección) por torneo: A partir de las probabilidades de selección Pi, se utiliza la ruleta de varios marcadores (SUS) para seleccionar s individuos, donde s es el tamaño del torneo y equivale a la presión de selección. Se copia el individuo con fobj óptima (min/max) en la población de copias μ(t). El proceso se repite n veces. F. ARAMBULA, 2010, CCADET, UNAM Operadores genéticos: Cruza (crossover) Punto único (single point): xovsp Barajeado (shuffle): xovsh Reduced surrogate: producen descendencia diferente a los padres, siempre que es posible: xovsprs; xovdprs; xovshrs Multipunto: xovmp (multipunto) xovdp (doble punto) F. ARAMBULA, 2010, CCADET, UNAM Recombinación (codificación real) Recombinación intermedia. Cuando se utiliza una codificación real de los cromosomas en un AG la recombinación intermedia produce valores de fenotipos nuevos (descendencia) que están entre y alrededor de los padres. recint; recombinación intermedia reclin; recombinación en línea (una sola constante para todos los genes del “hijo”). F. ARAMBULA, 2010, CCADET, UNAM Mutación mut; mutbga; binaria y entera real Reinserción Es el operador (algoritmo) que se utiliza para reemplazar la población actual por la siguiente generación del AG. F. ARAMBULA, 2010, CCADET, UNAM Brecha Generacional (Generation Gap). Es la fracción de individuos nuevos que se insertan en la población actual (0-1) Si uno ó más de los mejores individuos en la población actual se conservan de manera determinista. Se está siguiendo entonces una estrategia elitista. Las dos estrategias de reinserción más comunes son: Reemplazo de los más débiles; reins Reemplazo de los más viejos Terminación del AG Las estrategias usuales son: terminar el AG cuando un cierto número de generaciones ha sido procesado ó cuando se ha alcanzado un cierto valor (óptimo) de la función objetivo. F. ARAMBULA, 2010, CCADET, UNAM GA Toolbox MATLAB Estructuras de datos: Cromosomas Fenotipos Valores de la función objetivo Valores de aptitud Cromosomas. MATLAB almacena una población en una matriz de tamaño Nind x Lind; donde Nind = No de individuos, Lind = longitud de cada uno. Cada renglón de la matriz corresponde al cromosoma de un individuo en la población. F. ARAMBULA, 2010, CCADET, UNAM g 11 g 12 g 21 . chrom= . . g N1 . . g 1L . . . . . g NL Fenotipos: Un fenotipo es el arreglo de parámetros de la función objetivo, que resulta de decodificar el cromosoma correspondiente. F. ARAMBULA, 2010, CCADET, UNAM Los parámetros de la función objetivo (ó variables de decisión) se almacenan en una matriz real de tamaño Nind x Nvar. Donde: Nvar = Número de variables de decisión x11 x phen= 21 . x Nind1 x12 . . . . . . . . x1Nvar . . . . . x NindNvar Cada renglón de la matriz phen corresponde al fenotipo de un individuo. Es posible mezclar fenotipos reales, enteros, o alfanuméricos, en la misma matriz de fenotipos. Todos los renglones deben tener el mismo número de columnas. F. ARAMBULA, 2010, CCADET, UNAM Valores de la función objetivo: La función objetivo puede ser escalar o vectorial en el caso de problemas multiobjetivo. Los valores de la función objetivo se almacenan en una matriz de tamaño Nind x Nobj donde Nobj es el número de objetivos de la función. Cada renglón corresponde al vector de valores de la función objetivo de cada individuo en la población. objV = objfun (phen) % matriz de valores de la % función objetivo objfun es una función objetivo arbitraria. f 11 f 12 f . objv= 21 . . f Nind1 . . . . . . f 1Nobj . . . . . f NindNobj F. ARAMBULA, 2010, CCADET, UNAM Valores de aptitud Se obtienen al aplicar una transformación (usualmente un mapeo lineal) al valor o valores de la función objetivo. La aptitud debe ser siempre un valor escalar no-negativo. Fitn= FITNESS (objv) % valores de aptitud. El AG simple en MATLAB (sga.m) Optimización de la función 1 de DeJong: F. ARAMBULA, 2010, CCADET, UNAM Descriptor de Campo (Field Descriptor) Matriz que especifica la forma en que se van a decodificar los cromosomas del AG. len lb ub FieldD= code scale lbin ubin len es un vector renglón que contiene la longitud de cada subarreglo en los cromsomas del AG sum (len) = lenght (chrom) F. ARAMBULA, 2010, CCADET, UNAM lb y ub son vectores renglón que contienen los valores mínimo y máximo, respectivamente, de cada variable. code es un vector renglón, binario que indica cómo decodificar cada subarreglo; code = ø binario natural code =1 Gray Scale vector renglón binario que indica la utilización de escalamiento proporcional (scale = ø) o logarítmico (scale = 1) para la decodificación de cada variable. lbin, ubin son vectores renglón binarios que indican si se incluye o no, el límite inferior y/o el límite superior en el rango de cada variable. lb= ubin =1 para incluir valor extremo lbin, ubin = ø si no se incluyen los extremos F. ARAMBULA, 2010, CCADET, UNAM DESCRIPTOR DE CAMPO DE SGA.M FieldD = 20 -512 -512 1 0 1 1 20 -512 -512 1 0 1 1 . . . . . . 20 . . . . . -512 . . . . . -512 . . . . .. 1 ...... 0 .. .... 1 ...... 1 7x20 F. ARAMBULA, 2010, CCADET, UNAM F. ARAMBULA, 2010, CCADET, UNAM F. ARAMBULA, 2010, CCADET, UNAM ind1subpob1 ind2subpob1 IMPLEMENTACIÓN DE AGs CON MÚLTIPLES POBLACIONES . . indNsubpob1 Modelo de migración: ind1subpob2 Cada subpoblación es procesada por un AG tradicional. De vez en cuando ocurren migraciones de ind2subpob2 algunos individuos de una subpoblación hacia otra. El . número de migrantes y el patrón de migración contribuyen a tener mayor diversidad genética en las . chrom= subpoblaciones indNsubpob2 . . . . ind1subpobN . . indNsubpobN F. ARAMBULA, 2010, CCADET, UNAM IMPLEMENTACIÓN DE AGs CON MULTIPLES POBLACIONES G.A- toolbox proporciona funciones de alto nivel que aceptan como argumento el número de subpoblaciones en una estructura de datos. Las funciones de bajo nivel se llaman independientemente desde cada subpoblación para procesar cada generación en la manera usual. Funciones de alto nivel que soportan subpoblaciones: mutate recombin reins select TODAS LAS SUBPOBLACIONES DEBEN SER DEL MISMO TAMAÑO F. ARAMBULA, 2010, CCADET, UNAM IMPLEMENTACIÓN DE AGs CON MULTIPLES POBLACIONES La función migrate realiza la transferencia de individuos de una subpoblación a otra. La migración puede ser: Uniforme. Un cierto número de individuos se selecciona aleatoriamente en una subpoblación y se inserta en otra, con selección aleatoria de remplazos. Basada en aptitud: Los individuos más aptos de una subpoblación se seleccionan para emigrar y se insertan aleatoriamente en otra subpoblación. F. ARAMBULA, 2010, CCADET, UNAM IMPLEMENTACIÓN DE AGs CON MULTIPLES POBLACIONES F. ARAMBULA, 2010, CCADET, UNAM IMPLEMENTACIÓN DE AGs CON MULTIPLES POBLACIONES F. ARAMBULA, 2010, CCADET, UNAM Multipopulation Genetic Algorithm (MPGA) en MATLAB Función objetivo: n −1 J =max ∑ vk k =0 Donde: n es el número de variables objharv.m= -J FieldD = 0 200 0 ...... 0 200 . . . . . 200 2x20 F. ARAMBULA, 2010, CCADET, UNAM Multipopulation Genetic Algortihm (MPGA) en MATLAB Best . Best = . . . Average . . . . . . No. Fun Ev . . . . . . . . MAXGEN X 3 IndAll = x0 . . . x1 . . . . . . . . . . . . . . . . . . . . . . x19 . . . MAXGEN X 3 F. ARAMBULA, 2010, CCADET, UNAM Multipopulation Genetic Algortihm (MPGA) en MATLAB FieldD = 20 20 . . . . . . 20 -512 -512 . . . . . -512 -512 -512 . . . . . -512 1 1 . . . . .. 1 0 0 ...... 0 1 1 .. .... 1 1 1 ...... 1 7x20 F. ARAMBULA, 2010, CCADET, UNAM FIN DE LA PARTE 1 F. ARAMBULA, 2010, CCADET, UNAM