Download - Algoritmos Geneticos Expo
-
Algoritmos
Genticos -
Ventajas
El primer y ms importante punto es que los AG son intrnsecamente paralelos.Los AG funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande. -
Ventajas
Otra ventaja notable de los AG es que se desenvuelven bien en problemas con un paisaje adaptativo complejo -aqullos en los que la funcin objetivo es discontinua, ruidosa, cambia con el tiempo, o tiene muchos ptimos locales. Trabajan con una codificacin de un conjunto de parmetros, no con los parmetros mismos. -
Ventajas
Utilizan operadores probabilsticos, en vez de los tpicos operadores determinstico de las tcnicas tradicionales.Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivas en paralelo. -
Ventajas
Cuando se usan para problemas de optimizacin, resultan menos afectados por los mximos locales que las tcnicas tradicionales (i.e., son mtodos robustos).Otra rea en el que destacan los AG es su habilidad para manipular muchos parmetros simultneamente. -
Desventajas
El lenguaje utilizado para especificar soluciones candidatas debe ser robusto.El problema de cmo escribir la funcin objetivo debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente signifique una solucin mejor para el problema dado. -
Desventaja
Tambin deben elegirse cuidadosamente los otros parmetros de un AG el tamao de la poblacin, el ritmo de mutacin y cruzamiento, el tipo y fuerza de la seleccin.Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura -
1.- Trabajan con la codificacin del conjunto de parmetros, no con los parmetros.
2.- Buscan a partir de una poblacin de puntos, no un
punto nico.
3.- Usan informacin de una funcin objetivo (o ms), no
derivadas u otro conocimiento adicional.
4.- Usan reglas de transicin probabilsticas, no reglas
determinsticas.
Diferencias entre AGs y los mtodos tradicionales de bsqueda
-
Cmo Saber si es Posible usar un Algoritmo Gentico?
Su espacio de bsqueda (i.e., sus posibles soluciones) debe de estar delimitado dentro de un cierto rango.Debe permitir definir una funcin de aptitud que nos indique que tan buena o mala es una cierta respuesta.Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en el computador. -
Codificacin del problema
El conjunto de todos los parmetros (genes en la terminologa de Algoritmos Genticos) se codifica en una cadena de valores denominada cromosoma.Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo. -
Algoritmo
Condicin de parada: cantidad de generaciones, convergencia, tiempo
en el de holland se elige uno por fitness, si no hay que hacerle crossover, se pone en la siguiente generacion. Si no, se elige uno con probabilidad uniforme, se elige un punto de curce con probabilidad uniforme y se ponen los dos en la nueva poblacion
-
Cmo funcionan?
Para resolver un problema usando AG necesitamos:Representar soluciones.Tradicionalmente una cadena de bits.Medir la calidad de cada solucin con respecto al problema a resolver.Se usa una funcin de Objetivo.Penalizacin de resultados. -
Cmo funcionan?
Esquema de funcionamiento de un AG:Se crea una poblacin inicial generando individuos aleatoriamente.Repetimos hasta que se alcance el individuo ptimo o el nmero mximo de generaciones:Asignar un valor de supervivencia a cada miembro de la poblacin.Seleccionar a un conjunto de individuos que actuarn como padres usando como criterio su probabilidad de supervivencia.Emparejar un grupo de padres para crear desdendencia.Combinar la descendencia con la poblacin actual para crear nueva poblacin. -
Obtencin de generaciones
Una generacin se obtiene a partir de la anterior por medio de los operadores de reproduccin. Existen 2 tipos:CruceCopia -
Criterios de parada
Una vez generados los nuevos individuos se realiza la mutacin con una probabilidad Pm. La probabilidad de mutacin suele ser muy baja, por lo general entre el 0.5% y el 2%.Se sale de este proceso cuando se alcanza alguno de los criterios de parada fijados. Los ms usuales suelen ser: - Los mejores individuos de la poblacin representan soluciones suficientemente buenas.La poblacin ha convergido. Un gen ha convergido cuando el 95% de la poblacin tiene el mismo valor para l,Se ha alcanzado el nmero de generaciones mximo especificado.
-
Implementacin de los AG
Los AG se adaptan especficamente a los problemas que van a resolver.No hay un marco terico genrico para aplicarlo a todos los problemas.Es difcil establecer dicho marco.Si es muy genrico, resulta trivial.Si es muy especfico, no se puede adaptar a todos los problemas. -
Codificacin Binaria
Cromosoma (Genotipo)
Solucin Potencial (Fenotipo)
Problema 1: Maximizar una funcin f : [a,b] +
Nmero real x[a,b]
Problema 2: Organizar 8 trabajos en 2 Fases
S = {T1 F1, T2 F0, T3 F1, T4 F0, T5 F0, T6 F0, T7 F1, T8 F1}
Calidad de la Solucin Potencial (Fitness)
Problema 1: valor de f(x)
Problema 2: Medida del beneficio (inversa del coste) de S
*
-
Decodificacin de Cromosomas
Es el clculo del Fenotipo a partir del GenotipoMuchas veces sirve algn algoritmo voraz (p.e. familia NP)Es la operacin ms costosa del AGEl Fitness se calcula de forma inmediata a partir del FenotipoGenotipo
Datos
Problema
Fenotipo
Algoritmo
*
-
Representacin Binaria (Fenotipo)
Genotipo
8 bits
Fenotipo:
Entero Real Planificacin ... Otros*
-
Fenotipo de Tipo Entero
Genotipo:
1*27 + 0*26 + 1*25 + 0*24 + 0*23 + 0*22 + 1*21 + 1*20 =
128 + 32 + 2 + 1 = 163
= 163
Fenotipo:
*
-
Ejercicios 1
El problema original de ocho reinas consista en intentar encontrar una forma de colocar a ocho reinas en un tablero de ajedrez de modo que dos reinas no se atacaran la una a la otra. Es decir, que en un tablero de 8 por 8, ninguna de las reinas comparta una fila, columna o diagonal. -
Solucin
-
Ejercicio 2
Usar un algoritmo gentico para maximizar la funcin f(x) = x2 en el rango x ={0, ..., 31}. (Supongamos que x es entero). La funcin se muestra a continuacin:
-
Generacin de la poblacin inicial
Para usar un algoritmo gentico primero debemos codificar las va-riables de decisin de nuestro pro-blema en un conjunto de cadenas de longitud finita. Hacemos esto codificando la variable x en un conjunto de 5 bits.
Generacin de la poblacin inicial al azar: definimos cada bit en cua-tro conjuntos de bits con probabi-lidad 0.5, por ej. lanzando una moneda 20 veces y asociando cara con 1 y cruz con 0
POBLACION
INICIAL
(GENERADA
AL AZAR)
CADENA
NUMERO
VALOR
DE X
01101
11000
01000
10011
-
Clculo de f(x)
SUMA =
10011
01000
11000
01101
CADENA
NUMERO
POBLACION
INICIAL
(GENERADA
AL AZAR)
1
2
3
4
VALOR
DE X
f(x)=x2
361
19
1170
VALORES DE APTITUD O ADAPTACION
8
64
576
169
13
24
-
Clculo del valor de ajuste
Luego debemos maximizar f(x).
Definimos: valor de aptitud = f(x) = x2
El valor de aptitud, tambin llamado funcin objetivo, en este caso es uno solo. En la realidad, normalmente opti-mizamos una funcin multiobjetivo, o un vector de fun-ciones objetivo.
Para poder realizar la reproduccin debemos calcular los valores de probabilidad de seleccin.
Probab.selecc. =
-
Clculos resultantes
576
169
13
24
PROBAB.
SELECC.
fi/f
CANTIDAD
ESPERADA
fi/fMEDIO
CANTIDAD.
REAL
(usando
Roulette
Wheel)
0.14
0.49
0.06
0.31
0.58
1.97
0.22
1.23
1
1
2
0
1
4
4
1
1
2
293
0.25
576
0.49
1.97
PROMEDIO =
MAXIMO =
SUMA =
10011
01000
11000
01101
CADENA
NUMERO
POBLACION
INICIAL
(GENERADA
AL AZAR)
1
2
3
4
VALOR
DE X
f(x)=x2
361
19
1170
VALORES DE APTITUD
8
64
-
Reproduccin
La siguiente generacin de cadenas se produce aplicando primeramente el operador reproduccin.
Seleccionamos las cadenas de la generacin actual que habrn de ser copiadas en el pool de la generacin prxi-ma,usando reproduccin como proceso de multiplicacin. Esto producir un pool de cadenas con altos valores de aptitud.
Seleccionamos el pool de la prxima generacin hacien-do girar cuatro veces la rueda de ruleta con zonas asigna-das en proporcin a la aptitud de cada cadena.
-
Entrecruzamiento
Las cadenas del pool de apareamiento se aparearn al aplicar este operador.
Un procedimiento posible es:
1.- Las cadenas se aparean al azar.
2.- Las parejas de cadenas apareadas se entrecruzan pro-
duciendo generalmente nuevas cadenas.
Usando un mtodo al azar de seleccin de parejas seleccionamos: cadena 4 entrecruza con cadena 2 y
cadena 1 entrecruza con cadena 2.
Ahora debemos seleccionar la posicin de bit k donde tendr lugar el entrecruzamiento. k se obtiene al azar.
-
Tabla de pares y entrecruzamiento
f(x)=x2
16
25
Suma =
12
27
VALOR
DE X
VALORES DE APTITUD
256
729
625
144
1754
Max =
729
10Z011
11Z000
1100Z0
0110Z1
POOL DE APAREAMIENTO LUEGO DEL ENTRECRUZAM.
PAREJA
SELECCIONADA
AL AZAR
1
2
2
4
Z = posicin.
de entrecruz.
POSICION DEL ENTRECRUZAM.
(ELEGIDO AL AZAR)
4
4
2
2
NUEVA
POBLACION
01100
11001
11011
10000
-
Nota
Ya podemos ver que luego de una iteracin parcial o en medio del camino en la produccin de una generacin he-mos incrementado la suma de las funciones objetivo de 1170 a 1754, y el valor mximo se ha incrementado de 576 a 729.
Hemos seleccionado un mejor conjunto de valores x, que provee una aptitud maximizada f(x) = x2 mayor que nues-tras 4 selecciones iniciales.
-
Conclusiones
El tiempo computacional est dominado por la evaluacin del fitness incluyendo el chequeo de validez de la nueva generacin de solucionesLos resultados no son tan buenos como para el algoritmo no paraleloLa convergencia es mas lenta y hay muchos casos en que no convergeLa performance del algoritmo paralelo es menos sensitiva al scaling factor que la secuencialEl asincronico lleva a mejores soluciones aunque es mas lento.
Con el asincronico puede ser que pida un individuo j y en su lugar me devuelvan su descendiente. Esto no afecta el resultado.
-
FIN