introducción a algoritmos genéticos, y su aplicación · las características de un organismo...
TRANSCRIPT
Introducción a algoritmos genéticos, y su aplicación
Fernando ArámbulaCCADET,
POSGRADO EN COMPUTACION, [email protected];
F. ARAMBULA, 2010, CCADET, UNAM
I.- INTRODUCCIONQué 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 AGOperadores genéticosTeoría de schemataSelección de parámetros óptimos de operación de un AG
F. ARAMBULA, 2010, CCADET, UNAM
III.- IMPLEMENTACION DE UN AGAlgoritmos de selecciónCrossover y mutaciónMapeo de una función objetivo a función de aptitudCodificación de los parámetros de la función de aptitudImplementación de un AG en lenguaje MATLABIntroducción a MATLABEstructuras de datos
AG paralelo (multipoblacional)
IV.- APLICACIONES DE AGsReconocimiento automático de la prostata en imágenes digitalesAlgoritmo 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. Producir una teoría que explique los mecanismos de adaptación de los sistemas biológicos.
2. Producir sistemas artificiales que reproduzcan y aprovechen las ventajas de los mecanismos de adaptación naturales.
3. La optimización de funciones es la aplicación más popular de los AGs
F. ARAMBULA, 2010, CCADET, UNAM
Sistema Adaptativo NaturalLas 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:
cromosomas distintos, considerando sólo dos alelos por gen.
210000≈103000
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:
evaluar todos los cromosomas de α
Si consideramos que:1 dia= 24 x 3600 s =86400 ≈ 100 ks1 M años = 360 x 106 dias3 M años ≈ 1000 x 106 ≈ 109 dias ≈ 1014 s
t opt=103000
1000=102997S
F. ARAMBULA, 2010, CCADET, UNAM
Búsqueda enumerativa idealizada(“Adaptación enumerativa”)
La edad estimada de la tierra es de 4500 M de años:4.5 x 103 M de años.
t opt=3×102997
1014=3×102983millones deañ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
sobre el fenotipo (y por consiguiente el genotipo )
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.
E∈A∈
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 el plan de muestreo τ ?
A∈
F. ARAMBULA, 2010, CCADET, UNAM
En un sistema genético la influencia de cada individuo
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.
A∈
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 PRINCIPALEScruza (crossover)
padres : descendencia:
Posición de cruza
Mutación aleatoriacromosoma 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 deswitches 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 aptitud % del total1 01101 169 14.42 11000 576 49.23 01000 64 5.54 10011 361 30.9 total 1170 100.0
F. ARAMBULA, 2010, CCADET, UNAM
Reproducción proporcional a la aptitud
No.arreglo aptitud %del total1 01101 169 14.42 11000 576 49.23 01000 64 5.54 10011 361 30.9 total 1170 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 AGII.1. Schemata y sus propiedadesII.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: 11111Este 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 =2Ns=(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 SchemataOrden; O(). Es el número de posiciones fijas en un schema.Para: H
1= 0 1 1 * 1 * *
H2= 0 * * * * * *
O(H1)=4; O(H
2)=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. δ(H
1)= 5-1= 4; δ(H
2)= 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 * * 0 1 * * 1 * 0 *δ = 4 δ = 1 δ = 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 1puede representarse como: A= a
1 a
2 a
3 a
4 a
5 a
6 a
7
Cada característica ai es análoga a un gene y los valores de a
i
son análogos a los alelos.
Es posible tener arreglos en los que las características ai no están
ordenadas secuencialmente. Por ejemplo:
A'= a3
a1 a
2 a
7 a
5 a
6 a
4
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
m H , t1=mH , t n f H
∑ f j
F. ARAMBULA, 2010, CCADET, UNAM
(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
Podemos entonces rescribir la ec. 1 como: (2)
mH , t1=mH , t n f H
∑ f j
f =∑ f j
n
mH , t1=mH , t f H f
F. ARAMBULA, 2010, CCADET, UNAM
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.Podemos escribir la ec. 2 como:
c f
mH , t1=mH , t f c f
f=m H , t 1c
F. ARAMBULA, 2010, CCADET, UNAM
Desde t=0 y para un valor constante de c:
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 = 0 1 1 1 0 0 0H
1= * 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.
m H , t =mH ,01ct
F. ARAMBULA, 2010, CCADET, UNAM
δ(H
1) = 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 H
1 está dada por:
Para H2:
En general la probabilidad de sobrevivencia de un schema H está dada por (Pc=1):
Pd=H 1l−1
=56
P s=1−Pd=16
Pd=16
P s=56
P s1−H l−1
F. ARAMBULA, 2010, CCADET, UNAM
Si además se aplica la cruza con probabilidad Pc:
El efecto combinado de la reproducción y la cruza está dado entonces por: (suponiendo independencia de ambas operaciones).
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:
El número esperado de copias de un schema 4 considerando al aplicación de reproducción, crossover y mutación está dado por el TEOREMA DE SCHEMA:
P s1−PcH l−1
mH , t1m H , t f H f [1−Pc
H l−1 ]
P sm=1−PmOH
F. ARAMBULA, 2010, CCADET, UNAM
Si Pm. << 1 podemos aproximar P
sm como
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:
mH , t1mH , t f H f [1−Pc
H l−1
−OH Pm]
P sm=1−OH Pm
F. ARAMBULA, 2010, CCADET, UNAM
Goldberg D.E., “Genetic algorithms in search optimization and machine learning”, Addison-Wesley, 1989.
F. ARAMBULA, 2010, CCADET, UNAM
mH , t1mH , t f H f [1−Pc
H l−1
−OH Pm]
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 (x
1, x
2, ........, x
n). El problema de
optimización consiste en encontrar los valores de xi dentro de un
cierto rango de valores [ai, b
i] 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 x
i
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 arreglode 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: g=F max− f =n312− 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 x
max11111 11111
. . . . . . . 00010 00011 . 00001 00001 x
min00000 00000
Los valores de x se calculan a partir del código (binario o gray) como:
Donde: xcod
es el equivalente decimal de un valor de x codificada en binario o gray.
x=xmax−xmin
2l−1xcodxmin
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, x
2, ........, x
n) 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, 111Ns=(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: binaria natural, gray, entera, real.
inicialización: 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
∑j=1
N
F x j
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:
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
Pi=2−MAX2 MAX−1 X i−1N−1
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 deterministaA 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 P
i 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): xovspBarajeado (shuffle): xovshReduced 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 intermediareclin; recombinación en línea (una sola constante para todos los
genes del “hijo”).
F. ARAMBULA, 2010, CCADET, UNAM
Mutación
mut; binaria y enteramutbga; 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 N
ind = No de individuos, L
ind = 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
Fenotipos:
Un fenotipo es el arreglo de parámetros de la función objetivo, que resulta de decodificar el cromosoma correspondiente.
chrom=
g11 g12 . g1Lg 21 . . .. . . .
g N1 . . gNL
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 N
ind x N
var.
Donde: Nvar
= Número de variables de decisión
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.
phen=
x11 x12 . . x1Nvarx21 . . . .. . . . .
x Nind1 . . . xNindNvar
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 N
ind x N
obj donde N
obj 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 objetivoobjfun es una función objetivo arbitraria.
objv=
f 11 f 12 . . f 1Nobjf 21 . . . .. . . . .
f Nind1 . . . f NindNobj
F. ARAMBULA, 2010, CCADET, UNAM
Valores de aptitudSe 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 es un vector renglón que contiene la longitud de cada subarreglo en los cromsomas del AG sum (len) = lenght (chrom)
FieldD=
lenlbub
codescalelbinubin
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 GrayScale 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
20 20 . . . . . . 20 -512 -512 . . . . . -512
-512 -512 . . . . . -512 1 1 . . . . .. 1FieldD = 0 0 . . . . . . 0 1 1 . . . . . . 1 1 1 . . . . . . 1
7x20
F. ARAMBULA, 2010, CCADET, UNAM
F. ARAMBULA, 2010, CCADET, UNAM
F. ARAMBULA, 2010, CCADET, UNAM
IMPLEMENTACIÓN DE AGs CON MÚLTIPLES POBLACIONES
Modelo de migración:Cada subpoblación es procesada por un AG tradicional. De vez en cuando ocurren migraciones de 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 subpoblaciones chrom=
ind1subpob1ind2subpob1
.
.indNsubpob1ind1subpob2ind2subpob2
.
.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 recombinreinsselect
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:
J=max∑k=0
n−1
vk
Donde: n es el número de variables
objharv.m= -J
FieldD = 0 0 . . . . . . 0
200 200 . . . . . 2002x20
F. ARAMBULA, 2010, CCADET, UNAM
Multipopulation Genetic Algortihm (MPGA) en MATLAB
Best Average . . . . . . No. Fun Ev. . .
Best = . . .. . .. . .
MAXGEN X 3
x0 x1 . . . . . x19. . . . . . .
IndAll = . . . . . . . .. . . . . . . .
MAXGEN X 3
F. ARAMBULA, 2010, CCADET, UNAM
Multipopulation Genetic Algortihm (MPGA) en MATLAB
20 20 . . . . . . 20 -512 -512 . . . . . -512
-512 -512 . . . . . -512 1 1 . . . . .. 1FieldD = 0 0 . . . . . . 0 1 1 . . . . . . 1 1 1 . . . . . . 1
7x20
F. ARAMBULA, 2010, CCADET, UNAM
FIN DE LA PARTE 1