Professional Documents
Culture Documents
1. 2. 3. 4. 5. 6. 7.
Introduccin
Propuestos por Holland, mediados 70, computacin evolutiva Popularizados por Goldberg, mediados 80, solucin de problemas del mundo real Inspirados en el modelo de evolucin biolgica sexual Aplicables a problemas de bsqueda y optimizacin complejos
2
Que es un algoritmo gentico (GA)? Los algoritmos genticos (GA) son algoritmos de bsqueda y optimizacin basados en los mecanismos de seleccin natural y gentica. Los GA usan los siguientes mecanismos:
1. la sobrevivencia de los organismos con mejor capacidad dentro de una poblacin 2. uso de secuencias de caracteres (generalmente 1s y 0s) en strings como representacin del ADN de estos organismos 3. el uso de mtodos aleatorios (random) para la generacin de la poblacin y para su reproduccin
Poblacin generacin = n
Cmo se reproducen los algoritmos gentico (GA)? Los GA se reproducen usando el siguiente algoritmo: 1. Esquema de codificacin de la informacin de los miembros en strings (ADN de 1s y 0s) 2. Evaluacin de capacidad (fitness) de cada miembro 3. Seleccin aleatoria de los miembros que se van a reproducir 4. Cruce de la informacin de los miembros (Crossover) 5. Mutacin de la informacin
Condiciones necesarias para la evolucin de los algoritmos gentico (GA)? Las condiciones necesarias para la evolucin son las siguientes: 1. Una entidad capaz de reproducirse 2. Una poblacin de estas entidades 3. Una variedad en la reproduccin 4. Alguna diferencia en la habilidad para sobrevivir de los miembros de la poblacin (los mas capaces sobreviven) basada en el medio ambiente
Caractersticas
Son algoritmos estocsticos, es decir, dos ejecuciones distintas
pueden dar dos soluciones distintas. Son algoritmos de bsqueda mltiple, luego dan varias soluciones. Son los algoritmos que hacen una barrida mayor al subespacio de posibles soluciones vlidas. A diferencia de los otros algoritmos, cuya convergencia y resultado final son fuertemente dependientes de la posicin inicial, la convergencia del algoritmo gentico es poco sensible a la poblacin inicial si esta se escoge de forma aleatoria y es lo suficientemente grande.
ALGORITMOS GENTICOS
Caractersticas
Por su grado de penetracin casi nulo, la curva de convergencia asociada al algoritmo presenta una convergencia excepcionalmente rpida al principio, que casi enseguida se bloquea. Esto de debe a que el algoritmo gentico es excelente descartando subespacios realmente malos. La optimizacin es funcin de la representacin de los datos. Es una bsqueda paramtricamente robusta. Eso quiere decir que slo si se escoge realmente mal los parmetros del algoritmo, ste no va a converger.
ALGORITMOS GENTICOS
ALGORITMOS GENTICOS
Esquema bsico
funcin ALGORITMO-GENTICO(poblacinInicial) returns una poblacin entrada: poblacinInicial, una poblacin static: poblacin(.), un array de poblacin begin t0 poblacin(t) poblacinInicial EVALUAR(poblacin(t)) while (not condicinTerminacin) do t t +1 poblacin1 SELECCIONAR(poblacin(t-1)) poblacin2 CRUZAR(poblacin1) poblacin3 MUTAR(poblacin2) EVALUAR(poblacin3) poblacin(t) REMPLAZAR(poblacin3 U poblacin(t-1)) end return(poblacin(t)) end
4
Funcin de aptitud. Es base para determinar qu individuos (soluciones) tienen mayor o menor probabilidad de sobrevivir. Criterios de tamao de poblacin. Balance entre una poblacin muy pequea (convergencia a un mximo local) y una poblacin muy grande (mayor utilizacin de recursos computacionales). Criterio de seleccin. Los individuos son escogidos de acuerdo a su aptitud. Los ms aptos tienen mayor probabilidad de contribuir con una o ms copias en la siguiente generacin (simulacin de la seleccin natural).
ALGORITMOS GENTICOS
ALGORITMOS GENTICOS
ALGORITMOS GENTICOS
ALGORITMOS GENTICOS
ALGORITMOS GENTICOS
Es el mtodo por el cual se insertan los hijos en la poblacin, por ejemplo mediante la eliminacin del individuo ms dbil o al azar.
ALGORITMOS GENTICOS
Codificacin
Codificacin ptima: alfabeto binario (teorema de los esquemas) Codificacin habitual: cadena de bits
f(x)=1-x2, parbola invertida con mximo en x=0 Buscar mximo en [-1, 1] con una precisin de 2 cifras decimales nico parmetro o atributo: variable x Codificamos el valor de la variable mediante un byte [0,255], pues hay que dividir el intervalo de longitud 2 en 200 unidades y 27 < 200 < 28 Ajustado al intervalo real [1,1], donde queremos hallar el mximo de la funcin
Descodificacin
Valor real
8-reinas
Atributo: posicin de una dama en una columna (3 bits) Cromosoma: secuencia de atributos, 24 bits
Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8
Col.1
0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1
La codificacin es clave en la resolucin del problema Heurstica: parmetros relacionados ente s (genes) deben de estar cercanos en el cromosoma Gran flexibilidad
Evaluacin
En esta etapa hay que cuantificar la calidad de los individuos de la poblacin Generalmente
Para f(x)=1-x2, la funcin de aptitud es la misma Para 8-reinas: nmero total de pares de damas no amenazadas
Aptitud
41 -0,678 65 -0,490
10
Seleccin
Seleccin de los elementos que se reproducen A partir de la funcin de aptitud Varios mtodos
Rueda de ruleta Basado en el rango Seleccin de torneo Manteniendo el tamao de la poblacin Aumentando el tamao de la poblacin
Cambio de generacin
11
Rueda de ruleta
Se asigna a cada individuo la probabilidad: Si algn individuo domina la poblacin, se escala o normaliza
Pr(x)
y
aptitud( x) aptitud( y) p o b l a ci n
3 2
12
Rueda
Valor binario 10010100 10010001 00101001 01000101 Descodi -ficacin 148 145 41 65 Valor real 0,161 0,137 -0,678 -0,490 Aptitud Probabilidad Probabilidad acumulada 0.299 0.600 0.766 1.000
2 13
Basado en el rango
Se ordena la poblacin por orden creciente de aptitud Se eliminan los M primeros (menor aptitud) Se eligen de forma aleatoria, con probabilidad dada por el rango, pares de individuos y sus descendientes se aaden a la poblacin
14
Torneo
Se seleccionan dos individuos aleatoriamente Se elije el ms apto con una probabilidad P y el menos apto con una probabilidad (1-P) Introduce ms diversidad en la poblacin
15
Cambio de generacin
Reemplazar padres por hijos Reemplazar un par de individuos elegidos aleatoriamente por los hijos Otros
Crear poblacin temporal con padres e hijos, seleccionando los mejores Dados n padres generar m (m>n) hijos y de ellos seleccionar los n mejores
16
Principal operador gentico Simula el intercambio de material gentico o genes Se aplica con probabilidad pc a individuos seleccionados Cruce ideal: recombina buenos bloques de construccin de sus progenitores Operadores
Cruce de un punto
Seleccionar aleatoriamente una posicin en el cromosoma Intercambiar el final del cromosoma a partir de dicho punto
1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0
padre
madre
hijo 1 hijo 2
1 1
0 0
0 1
1 1
0 1
1 0
0 1
0 1
0 0
0 0
18
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
hijo 1
1 1
0 0
0 1
1 1
0 1
1 0
0 1
1 0
0 0
0 0
hijo 2
19
Multipunto o uniforme
Cada bit se hereda de un padre aleatoriamente En aquellos problemas donde un cruce aleatorio puede generar individuos no vlidos
Operadores especializados
20
Genera individuos vlidos La mezcla de bloques genes- no parece asimilable a un operador del problema real
Seleccionar aleatoriamente un entero 1 y 7 (nmero de genes) Equivale a intercambiar columnas contiguas entre tableros padres
21
1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 1
Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8
1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0
22
Aptitud:20
padres
Aptitud:26
Aptitud:25
hijos
Aptitud:27
23
Operador de Mutacin
En la evolucin
Las mutaciones son poco frecuentes En la mayor parte de los casos letales En promedio, contribuyen a la diversidad gentica
Se simula cambiando aleatoriamente el valor de un bit Se aplica con probabilidad baja (10-3 o menor) a cada bit de un nuevo individuo, habitualmente junto al cruce Dependiendo del tamao de la poblacin y del nmero de bits por individuo, la mutacin puede ser extremadamente rara en una generacin
24
Utilidad de la mutacin
Genera diversidad
Puede ser de utilidad cuando un algoritmo gentico est estancado Su abuso reduce al algoritmo gentico a una bsqueda aleatoria
25
Otros operadores
Aadir, eliminar Fuerzan a que cromosomas similares slo reemplacen a cromosomas similares Intentan mantener la diversidad
Operadores de nicho
26
Codificacin binaria: cadena de 5 bits Tamao poblacin inicial: 4 individuos Poblacin inicial: aleatoria
Funcin de aptitud f(x)=x2 Seleccin: ruleta Cambio de generacin: manteniendo el tamao de la poblacin intermedia
Poblacin inicial
Poblacin inicial
1 2 01101 11000
x
13 24
aptitud
169 576
Probabilidad seleccin
0.14 0.49
Probabilidad acumulada
0.14 0.63
3
4
01000
10011
8
19
64
361
0.06
0.31
0.69
1.00
Suma
Media mejor
1170
293 576
28
Seleccin: ruleta
Generar cuatro nmeros aleatorios, distribucin de probabilidad uniforme en intervalo (0,1) Un individuo i se selecciona si el nmero aleatorio obtenido est en el intervalo definido por la probabilidad acumulada del individuo i-1 y la del individuo i Suponer que se obtienen: 0.58, 0.84, 0.11 y 0.43 Individuos seleccionados: 2, 4, 1, 2
29
Poblacin seleccionada
Poblacin inicial
2 4 1 2 Suma Media mejor 11000 10011 01101 11000
aptitud
Probabilidad seleccin
Probabilidad acumulada
24 19 13 24
30
Cruce
Emparejamiento: emparejarlos segn se han seleccionado -2 con 4, 1 con 2Probabilidad de cruce: 0.8
Generar nmero aleatorio, distribucin uniforme, (0, 1) Suponer se obtienen 0.7, 0.3: se produce el cruce en ambos emparejamientos
Generar puntos de cruce: numero aleatorio, distribucin uniforme en [1, 2 ,L] con L longitud del cromosoma
31
Creacin descendientes
2
4
1 1 0 0 0
1 0 0 1 1
1 2
0 1 1 0 1 1 1 0 0 0
h1 h2
1 1 0 1 1 1 0 0 0 0
h3 h4
0 1 1 0 0 1 1 0 0 1
32
Mutacin
33
aptitud
Probabilidad seleccin
0.44 0.15 0.04 0.37
Probabilidad acumulada
0.44 0.59 0.63 1.00
27 16 8 25
34
SOFTWARE
Existen varios paquetes y bibliotecas de algoritmos genticos en el mercado, a continuacin se presentan algunos: GAGS Generador de aplicaciones basadas en algoritmos genticos, escrito en C++. Desarrollado por el grupo de J.J. Melero.
Direccin primaria:kal-el.ugr.es/gags.html
Direccin para descargar va FTP:kal-el.ugr.es/GAGS/. GALIB Biblioteca de algoritmos genticos de Matthew. Conjunto de clases en C++ de algoritmos genticos. Direccin primaria: lancet.mit.edu/ga/ Direccin para descargar va FTP:lancet.mit.edu/pub/ga/
ALGORITMOS GENTICOS
SOFTWARE
GPDATA Para desarrollar algoritmos genticos en C++. Direccin primaria:cs.ucl.ac.uk/genetic/papers/ Direccin para descargar va FTP: ftp.cs.bham.ac.uk/pub/authors/W.B.Langdon/gpcode/
GPJPP Bibliotecas de clases para desarrollar algoritmos genticos en Java Direccin primaria: www.turbopower.com/~ kimk/gpjpp.asp.
ALGORITMOS GENTICOS
Conclusiones
El tiempo de convergencia de los AG es predecible por la naturaleza paralela de la bsqueda estocstica. Funciona de forma paralela, por lo que pueden usarse en sistemas distribuidos para mejorar ms la velocidad de bsqueda.
Conclusiones
Inconvenientes del uso de los AG
No hay un marco terico genrico establecido. Si la poblacin inicial es cercana a la solucin ptima, los GA tardarn ms que las tcnicas de resolucin tradicionales.
El GA perder mucho tiempo comprobando soluciones sub-ptimas.
Conclusiones
Hacen buenas estimaciones de la solucin ptima, pero no la calculan exactamente. El usuario debe determinar cmo de cerca est la solucin estimada de la solucin real.
La proximidad a la solucin real depender de la aplicacin en concreto.