Algoritmos Genéticos Y Optimización n Heurística Dr. Adrian Will Grupo de Aplicaciones de Inteligencia Artificial Universidad Nacional de Tucumán awill@herrera.unt.edu.ar
Operadores de Selección Rank Based Fitness Assingment Muchas veces las diferencias de un valor a otro de la función n de Fitness son excesivamente grandes, y provocan una presión n de Selección n excesivamente Alta (Selective Pressure), lo que hace que el mejor individuo de la población reciba un gran número n de copias, y cope rápidamente la población. Otras veces los valores de la función n de Fitness son demasiado similares a lo largo de toda la población, y la presión n de selección n es excesivamente baja,, lo cual hace la búsqueda b lenta porque el mejor individuo de la población n no recibe suficientes copias. En ese caso se debe REESCALAR la función n de evaluación, de manera de seleccionar los individuos de acuerdo a un RANKING de la población, y no de los valores de la función n de Fitness.. O sea, se les asigna una POSICIÓN relativa en la población, el mejor de todos, el peor de todos, y los intermedios, y se asigna la probabilidad de selección n de acuerdo a este ranking
Operadores de Selección Rank Based Fitness Assingment Ejemplo Presión n de Selección n excesiva - Crowding sol 5.5223 p 5.5223/44.949 0.07 sol 2 2.340 p 2 2.340 /44.949 0.0850 sol 3 6.087 p 3 6.087 /44.949 0.2 sol 4.0435 p 4.0435 /44.949 0.0762 sol 5 89.9264 p 5 89.9264 /44.949 0.6205 0
Operadores de Selección Rank Based Fitness Assingment Ejemplo 2 Presión n de Selección n baja Convergencia Lenta sol 0.5023 p 0.5023/ 2.064 0.2385 sol 2 0.340 p 2 0.340 / 2.064 0.49 sol 3 0.3587 p 3 0.3587 / 2.064 0.703 sol 4 0.4350 p 4 0.4350 / 2.064 0.2065 sol 5 0.4964 p 5 0.4964 / 2.064 0.2357 0
Operadores de Selección Rank Based Fitness Assingment - Linear Ranking (Ranking( Lineal) Se evalúa a la población n usando la función n de Evaluación n original Se ordena la población n en un Ranking, según n el valor de la función n de Evaluación, de mejor a peor (peor( primero, mejor último) Se le asigna a cada individuo un valor de Fitness Lineal, basado sólo s en la POSICIÓN N pos del individuo en el ranking (y por lo tanto independiente nte del valor de la función n de Fitness original) Se aplica entonces otro método, m como SUS o Ruleta, para completar el proceso de Selección. El método m de Ranking Lineal (y en general todos los métodos m de selección por Ranking) contiene un factor SP que permite controlar la Presión n de Selección n (Selective( Pressure) ) introducida por el métodom
Operadores de Selección Rank Based Fitness Assingment Linear Ranking (Ranking( Lineal) LR( pos) pos (2 SP) + 2( SP ), SP [,2] N SP SP SP pos LR( pos) (2 ) + 2( ) + 0 N pos.2 LR( pos) (2.2) + 2(.2 ) 0.8 + 0.4 N pos pos 2 LR( pos) (2 2) + 2(2 ) 2 N N pos N
Operadores de Selección Rank Based Fitness Assingment Linear Ranking (Ranking( Lineal) SP 2, 0 LR( pos) 2
Operadores de Selección Rank Based Fitness Assingment 2 Non Linear Ranking (Ranking No Lineal) Similar al Ranking Lineal (Se evalúa a la población n según n la función original, se le asigna un valor de Fitness de acuerdo a su posición n relativa en la población n y se utiliza ese Fitness con otro método m de selección. Lo que se modifica es el proceso de asignación n del valor de Fitness dado el ranking, que no es lineal. Tambien contiene un factor SP que controla la Presión n de Selección (Selective Pressure) ) provocada por el métodom En general, es mayor que la aplicada por el Ranking Lineal. Ranking Lineal Disminuye la SP Ranking No Lineal Aumenta la SP
Operadores de Selección Rank Based Fitness Assingment Non Linear Ranking (Ranking( No Lineal) NLR( pos) N X pos 0 N i i X 0 X 0, donde es una raíz z real del polinomio De ese modo, NLR() ( SP 0 N N 2 N 3 N) X 0 + SP( X 0 + X 0 +... + X + ) N N N 2 N 3 NX 0 SP( X 0 + X 0 + X 0 +... + X 0 + ) NX N 0 NX 0 N N < ε NLR() < ε i N i X X i 0 i SP N i NX SP X 0 P( x) ( SP N i N) X 0 N N i X i 0 0 + SP( X NLR( N) SP N 2 0 + X N 3 +... + X + ) 0 Y ademas,
Operadores de Selección Rank Based Fitness Assingment 2 Non Linear Ranking (Ranking No Lineal) SP N 2, 0 LR( pos) SP
Operadores de Selección Rank Based Fitness Assingment Ranking No Lineal Ranking Lineal Tiende a Aumentar Selective Pressure Tiende a Disminuir Selective Pressure
Porque funcionan los Algoritmos Genéticos? Teorema de los Esquemas (Schemata Theory) Building Block Hypotesis Operador de Selección Selección Natural (Darwin) Encontrar los Genes que mejor funcionan y combinarlos para encontrar mejores soluciones Combinar y preservar la información genética de los padres al crear los hijos * * * 5 3 * 6 4 * Exploración de un espacio O(n 3 ) con un algoritmo O(n)
Genética Molecular - ADN ADN: Ácido Desoxiribo Nucleico (DNA Deoxyribo Nucleic Acid) Molécula Larga encontrada en el interior del núcleo de la célula Codifica la información necesaria para mantener y reproducir cualquier ser vivo La mayoría de las heurísticas de búsqueda estudiadas se basan en distintos aspectos de este mecanismo, solo o combinado con otros
Genética Molecular - ADN
Genética Molecular - Cromosomas
Genética Molecular - ADN
Genética Molecular - ADN ADN DNA AT, GC ARNm mrna sola hélice, T U ARNm ARN mensajero (messenger RNA)
Genética Molecular - ADN A T, G C Copias Simétricas
Genética Molecular - ADN A T, G C Copias Simétricas Información Redundante ( cada copia permite regenerar la cadena completa) La información contenida en la cadena corresponde a UNA SOLA tira de pares base A,G,T,P, que son convertidos a A,G,U,P, antes de salir del núcleo de la célula La información no útil (Intron) es eliminada al hacer la copia, quedando sólo la información útil (Exon) que va a producir la proteína Cada 3 pares base codifican un aminoácido, y las proteínas están formadas por cadenas de estos aminoácidos
Genética Molecular - ADN
Genética Molecular - ADN ADN C A T C A T C A T C C T C C T C A G C A G T A G Amino Acidos His His His Pro Pro Gln Gln Stop Proteína Cada 3 Pares Base (cada letra del código) codifican un aminoácido Una tira de aminoácidos representan una proteína La tira de Pares Base comenzando y terminando en un STOP, representan un GEN Cada GEN representa una única PROTEÍNA
Genética Molecular - ADN GEN Sección del ADN de un cromosoma, que codifica una proteína (contiene los planos para la fabricación de la misma, órdenes accesorias, segmentos no útiles (Intrones), y órdenes accesorias como Start y Stop) Fenotipo (Phenotype) Característica Visible asociada a un Gen. Se refiere generalmente a los cromosomas de Reproducción Sexual, y a las leyes de la Herencia Genética (Mendel y otros) Por ejemplo, color de ojos, tipo de sangre, etc. Por Extensión, en Algoritmos Genéticos se llama Genotype, y Genotipic Space, al espacio de los individuos (soluciones del problema), y Phenotype o Fenotipic Space al espacio de las soluciones en la realidad. Por ejemplo, en el TSP, el Genotipo sería una permutación, y en Fenotipo sería la ruta real correspondiente en la realidad.
Algoritmos Genéticos y Evolutivos Genes Cromosoma 4.23 6.32 22.8 0.45 36.2.23 22.5 4.23 32. Genotipo Solución construída utilizando esos parámetros Fenotipo
Genética Molecular - Mutaciones Si bien existe redundancia, mecanismos de seguridad (sólo sale del núcleo de la célula una copia, no el original), y mecanismos de edición y corrección, se producen errores en diversas etapas del proceso. Esto de lugar a MUTACIONES Algunas mutaciones se producen en Intrones, y por lo tanto no tienen efecto alguno. Otras se producen en algún gen importante o sección del mismo, y dar lugar a enfermedades. Otras se producen en los cromosomas de las células reproductivas y dan lugar a malformaciones o problemas congénitos. Pero también se entiende que la evolución se dá en parte por este tipo de mutaciones, además de los cambios y errores que ocurren durante la reproducción
Genética Molecular - Mutaciones Inversion Mutation
Genética Molecular - Mutaciones Ring Mutation
Genética Molecular - Mutaciones
Genética Molecular - Mutaciones
Genética Molecular - Mutaciones
Porque funcionan los Algoritmos Genéticos? Teorema de los Esquemas (Schemata Theory) Building Block Hypotesis Operador de Selección Selección Natural (Darwin) Encontrar los Genes que mejor funcionan y combinarlos para encontrar mejores soluciones Combinar y preservar la información genética de los padres al crear los hijos * * * 5 3 * 6 4 *
Operadores de Crossover o Cruzamiento El operador de Crossover o Cruzamiento se realiza, en la mayoría de las arquitecturas de AG, inmediatamente luego de la selección, aplicando por parejas el operador a la población seleccionada Es el principal responsable por la Exploración del espacio de Búsqueda que se efectúa inteligentemente, ya que opera sobre padres seleccionados por sus buenas características, intentando extraer y mejorar estas características (los operadores de mutación se aplican sobre individuos seleccionados al azar). La idea detrás de todos los operadores de Crossover, es extraer y preservar parte del material genético de los padres en cada hijo, y al mismo tiempo combinar los genes de ambos padres, de manera de producir una camada de mejor calidad (offspring)
Crossover Single Point Crossover Se elige punto de corte al azar Se elige el primer hijo tomando la sección primera del primer padre (inicio a punto de corte), y la sección segunda del otro padre (punto de corte a final) El efecto de búsqueda es por explorar los vértices de un cubo en n dimensiones, que se puede probar que respetan los límites dados por la matriz de Bounds, si el individuo original los respetaba También se lo puede interpretar como un operador genético que busca recombinar los genes de los padres para encontrar los más interesantes Presenta una tendencia (Bias) a cortar en las secciones centrales más que en el borde
Crossover Single Point Crossover P 2. 9.3 7.4.8 5.2 3.3 0.5 6. 4.8 8.3 P 2 4.2.6 2.7 6.4 5.9 3. 9.2 7.7 0.3 8.5 C 2. 9.3 7.4.8 5.9 3. 9.2 7.7 0.3 8.5 C 2 4.2.6 2.7 6.4 5.2 3.3 0.5 6. 4.8 8.3
Crossover Single Point Crossover ( x, y, z ) ( x, y, z 2 ) ( x 2, y 2, z 2 ) ( x 2, y 2, z )
Crossover Multi Point Crossover Similar a Single Point Crossover, pero con cantidad de cortes al azar : Se elige la cantidad de cortes a realizar, al azar (entre y n-) Se eligen los puntos de corte, al azar Se elige cada hijo de secciones alternadas uno y otro padre De forma similar, existe el 2-Point Crossover El efecto de los 3 es similar, pero el Single Point Crossover tardará mucho mas tiempo en lograr el mismo efecto, y es necesario que los cortes salgan en los lugares precisos en el momento justo (lo cual es poco probable). Por eso es preferible 2-Point o MultiPoint que Single-Point. Presentan una tendencia (Bias) a cortar en las secciones centrales más que en el borde.
Crossover Multi Point Crossover P 2. 9.3 7.4.8 5.2 3.3 0.5 6. 4.8 8.3 P 2 4.2.6 2.7 6.4 5.9 3. 9.2 7.7 0.3 8.5 C 2. 9.3 7.4 6.4 5.9 3.3 0.5 6. 0.3 8.5 C 2 4.2.6 2.7.8 5.2 3. 9.2 7.7 4.8 8.3
Crossover Uniform or Scattered Crossover Se crea una máscara binaria, al azar Se construye el primer hijo de la siguiente manera: Se toman del primer padre los lugares indicados por 0, y se colocan en la coordenada correspondiente del primer hijo Restan varios lugares para llenar (indicados por los s del vector de máscara). Se toman esas coordenadas del segundo padre y se colocan en los lugares correspondientes del hijo. Se procede de manera simétrica para el otro hijo: Se toman las coordenadas indicadas por del primer padre, y se colocan en el segundo hijo Se completa tomando el resto de los valores de las coordenadas correspondientes del segundo padre. Se lo conoce también como Discrete Recombination
Crossover Uniform Crossover P 2. 9.3 7.4.8 5.2 3.3 0.5 6. 4.8 8.3 P 2 4.2.6 2.7 6.4 5.9 3. 9.2 7.7 0.3 8.5 Máscara 0 0 0 0 C 2..6 2.7.8 5.2 3. 0.5 7.7 4.8 8.3 C 2 4.2 9.3 7.4 6.4 5.9 3.3 9.2 6. 0.3 8.5
Crossover Shuffle Se introduce una Permutación Aleatoria (Shuffle) de ambos padres, asociada a uno de los operadores de Crossover anteriores, con el objetivo de minimizar el Bias presentado por estos hacia las secciones centrales. Elegir Padres Determinar permutación al azar Aplicar la MISMA permutación a ambos padres Aplicar el operador de Crossover elegido (Single Point, Two Point, Multi Point, Uniform Crossover) Aplicar la Permutación Inversa a ambos hijos (Paso necesario por problemas de Bounds, en general) Esto hace que los cortes se repartan más uniformemente entre todas las coordenadas del vector, y un histograma de posiciones de cortes aparece distribuido con bastante uniformidad.
Crossover Shuffle P P 2 2. 9.3 7.4.8 5.2 3.3 0.5 6. 4.8 8.3 4.2.6 2.7 6.4 5.9 3. 9.2 7.7 0.3 8.5 Shuffle 0 5 8 2 7 9 4 6 3 C 8.3 5.2 6. 9.3 0.5 4.8 2..8 3.3 7.4 C 2 8.5 5.9 7.7.6 9.2 0.3 4.2 6.4 3. 2.7
Crossover Arith Crossover P, P2 C r ( P2 P ) + P, C 2 r ( P P2 ) + P2 ( r R, al azar)
Crossover Arith Crossover
Crossover Heuristic Crossover Similar al Arith Crossover Produce un hijo más allá del padre con mejor Fitness, sobre la línea determinada por ambos padres, C ( r ) P + rp 2 r ( P2 P ) + P, r Es poco claro como se genera el segundo hijo Intenta utilizar más eficientemente la información disponible, orientando la búsqueda hacia la dirección mas promisoria Es Heurístico porque a pesar de que en muchos casos esta hipótesis es cierta y proporciona mejores soluciones que los padres y que los otros operadores de Crossover, no siempre es cierta y a veces falla. ~ ( si F ( P2 ) > F ( P ).25 )
Crossover Cube Crossover 2 2 2 2 2 2 2 2 ) * ( ).,..., ( ).* ( ) * ( ).,..., ( ).* ( P P P r r P P P R C P P P P r r P P P R C P n n + + + + azar al,,...,.25.25.25.25 n n r r r r M
Crossover Partial Map Crossover Se aplica a problemas con codificación basada en el orden (permutaciones) Se eligen los 2 padres Se eligen 2 puntos de corte, al azar (coordenadas de los padres) Se construye el primer hijo de la siguiente manera: Se toman secciones alternadas del primer padre (o sea, la primera y la tercera), y se ponen en el primer hijo, con los mismos valores y en la misma posición Para completar los valores faltantes, se sigue el segundo padre, descartando los valores ya ubicados hasta el momento (de manera de no repetir) Se consigue así preservar en cada hijo parte de la información genética de un padre, exacta en posición y orden de aparición, y del otro el orden de aparición de las variables restantes.
Crossover Partial Map Crossover P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2 9 7 0 5 3 6 4 8
Crossover Order Based Crossover Similar a Partial Map Crossover, pero con una máscara binaria generada al azar que indica que coordenada se extrae de cada padre. P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2 6 3 5 9 0 7 4 8 Máscara 0 0 0 0
Crossover Cyclic Crossover Similar a Order Based Crossover, pero las coordenadas fijas son llenadas de otra manera, que depende de ambos padres: P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2
Crossover Cyclic Crossover P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2 7 6
Crossover Cyclic Crossover P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2 7 6
Crossover Cyclic Crossover P 2 9 7 5 3 0 6 4 8 P 2 4 0 2 6 5 3 9 7 8 C 2 7 6 4 Al completar el ciclo, se continua como Order Based Crossover