AG: Estrategia de búsqueda (Sistema adaptativo artificial) insp

Anuncio
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 , t1=mH , t n
∑fj
F. ARAMBULA, 2010, CCADET, UNAM
f H
m H , t1=mH , 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 , t1=mH , 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 , t1=mH , t
=m H , t1c
f
F. ARAMBULA, 2010, CCADET, UNAM
Desde t=0 y para un valor constante de c:
m H , t=m H ,01c
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 s1−
l−1
F. ARAMBULA, 2010, CCADET, UNAM
Si además se aplica la cruza con probabilidad Pc:
 H 
P s1−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 1m 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 , t1mH , 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 , t1mH , 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 2MAX −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
Descargar