You are on page 1of 18

Algoritmos genticos

1. 2. 3. 4. 5. 6. 7.

Introduccin Esquema bsico Codificacin Evaluacin Seleccin Operadores Ejemplo

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

Aproximacin a la evolucin biolgica

Mtodo de bsqueda y optimizacin inspirados en la evolucin biolgica Posibles soluciones: poblacin Seleccin de los individuos ms aptos Generacin de nuevos candidatos: reproduccin sexual

Recombinacin (cruce) Mutacin


3

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) poblacin(t) REMPLAZAR(poblacin3) EVALUAR(poblacin(t)) end return(poblacin(t)) end
4

Codificacin

Individuo: cromosoma Cromosoma: cadena de caracteres

En principio, cualquier representacin es vlida

Codificacin ptima: alfabeto binario (teorema de los esquemas) Codificacin habitual: cadena de bits

Ejemplos de codificacin maximizacin funcin

f(x)=1-x2, parbola invertida con mximo en x=0 nico parmetro o atributo: variable x Codificamos el valor de la variable mediante un byte [0,255], ajustado al intervalo real [-1,1], donde queremos hallar el mximo de la funcin

Valor binario 10010100 10010001 00101001 01000101

Descodificacin

Valor real

148 0,161 145 0,137 41 -0,678 65 -0,490

2/255*x -1= y

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

Regla de los bloques de construccin

La codificacin es clave en la resolucin del problema Heurstica: parmetros relacionados ente s (genes) deben de estar cercanos en el cromosoma Gran flexibilidad

Cromosomas bi, tridimensionales Longitud variable

Evaluacin

En esta etapa hay que cuantificar la calidad de los individuos de la poblacin Generalmente

Decodificar el cromosoma Calidad de la solucin Evaluacin mediante funcin fitness o aptitud

Ejemplos de funciones de aptitud

Para f(x)=1-x2, la funcin de aptitud es la misma Para 8-reinas: nmero total de pares de damas no amenazadas

Valor binario 10010100

Descodificacin 148 145 41 65

Valor real 0,161 0,137 -0,678 -0,490

Aptitud

0.974 .981 .540 .760

10010001 00101001 01000101

En cualquier solucin: 7+6+5+4+3+2+1=28

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 Se elijen parejas aleatorias de individuos de acuerdo a su probabilidad Inconveniente: los individuos con ms aptitud tiende a dominar la poblacin en pocas generaciones

Pr( x ) =

aptitud ( x ) ypoblacin aptitud ( y )

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

0.974 0.981 0.540 0.760

0.299 0.301 0.166 0.233

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

Manteniendo el tamao de la poblacin intermedia


Reemplazar padres por hijos Reemplazar un par de individuos elegidos aleatoriamente por los hijos Otros

Aumentando el tamao de la poblacin intermedia

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

Operador de cruce (crossover)


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 n-puntos Cruce multipunto Cruce especializado


17

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

Cruce de dos puntos


padre madre 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0

hijo 1 hijo 2

1 1

0 0

0 1

1 1

0 1

1 0

0 1

1 0

0 0

0 0

19

Otros operadores de cruce

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

10

Ejemplo cruce 1 punto 8 reinas

La seleccin aleatoria del punto de cruce no es interesante


Genera individuos vlidos La mezcla de bloques genes- no parece asimilable a un operador del problema real

Seleccionar aleatoriamente el gen a partir del que se hace el reemplazo

Seleccionar aleatoriamente un entero 1 y 7 (nmero de genes) Equivale a intercambiar columnas contiguas entre tableros padres
21

Ejemplo cruce 1 punto 8 reinas


Col.1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8

1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 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 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 0 1 1 1 1 1 0 0 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

11

Ejemplo cruce 1 punto 8 reinas


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

En los algoritmos genticos:


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

12

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

Otros mecanismos de generacin de diversidad


Aumentar el tamao de la poblacin Garantizar la aleatoriedad de la poblacin inicial

25

Otros operadores

Cromosomas de longitud variable

Aadir, eliminar Fuerzan a que cromosomas similares slo reemplacen a cromosomas similares Intentan mantener la diversidad

Operadores de nicho

Distintas especies en la poblacin Cada una de ellas puede converger a un mximo diferente

26

13

Ejemplo optimizacin: f(x)=x2 encontrar mximo entero en [1,32]


Codificacin binaria: cadena de 5 bits Tamao poblacin inicial: 4 individuos Poblacin inicial: aleatoria

Sortear cada bit de cada cadena con p=1/2

Funcin de aptitud f(x)=x2 Seleccin: ruleta Cambio de generacin: manteniendo el tamao de la poblacin intermedia

Reemplazar un par de individuos elegidos aleatoriamente por los hijos


27

Poblacin inicial
Poblacin inicial 1 2 3 4 Suma Media mejor 01101 11000 01000 10011 x 13 24 8 19 aptitud 169 576 64 361 1170 293 576 Probabilidad seleccin 0.14 0.49 0.06 0.31 Probabilidad acumulada 0.14 0.63 0.69 1.00

28

14

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 x aptitud Probabilidad seleccin Probabilidad acumulada

24 19 13 24

576 361 169 576 1682 420.5 576


30

15

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

Suponer se obtienen 2,3

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

16

Mutacin

Probabilidad mutacin: 10-3 Suponer no se produce ninguna mutacin

33

Nueva poblacin: reemplazar padres por hijos


Poblacin 1 iteracin h1 h2 h3 h4 Suma Media mejor 11011 10000 01100 11001 x 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

729 256 64 625 1674 418,5 729

34

17

Ejercicio

Considerar el problema de encontrar el mximo de la funcin f(x)=1-x2, en el intervalo [-1, 1] Utilizar la codificacin y funcin de aptitud propuestas como ejemplo Mtodo de seleccin: torneo Probabilidad de cruce: 0,8 Probabilidad de mutacin:0,001 Cambio de generacin: cambiar padres por hijos Obtener la poblacin tras dos iteraciones

35

18

You might also like