Vous êtes sur la page 1sur 52

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

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

Mecanismo aleatorio de reproduccin

Poblacin generacin = n+1

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

Diferencias con otros mtodos


Trabajan con un conjunto de parmetros codificados y no con los parmetros mismos. Inician la bsqueda desde un conjunto de puntos, no de uno solo. Usan una funcin a optimizar en lugar de la derivada u otro conocimiento adicional. Usan reglas de transicin probabilsticas no determinsticas.

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

Puntos a considerar en un AG bsico


Codificacin de los parmetros de un problema.

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

Puntos a considerar en un AG bsico


Criterio de paro. Normalmente cuando un porcentaje alto de la poblacin converge a un valor. Si con ese valor no se llega a la medida esperada, entonces se toma una pequea proporcin y se inyecta diversidad gentica'' (se generan aleatoriamente nuevos individuos), o inclusive se reemplaza completamente la poblacin. Operadores genticos. Los principales son: cruza(crossover), mutacin, seleccin (algunos autores lo consideran como tal) y reemplazo (aunque existen ms).

ALGORITMOS GENTICOS

Operadores genticos: SELECCIN


Proceso que escoge los miembros de la poblacin que sern utilizados para la reproduccin. Su meta es dar ms oportunidades de seleccin a los miembros ms aptos de la poblacin.
Lo ms comn es implementar una ruleta con truco para elegir a los individuos, donde los ms aptos tienen una mayor parte en la ruleta, por lo tanto, ms probabilidad de ser escogidos. Existen otros mtodos como el torneo en que dos individuos son elegidos aleatoriamente y se escoge al ms apto.

ALGORITMOS GENTICOS

Operadores genticos: CRUZA


Operador que consiste en unir en alguna forma los cromosomas de dos padres para formar dos descendientes. Lo ms sencillo es implementar cruza de un punto, que toma dos individuos y corta sus cromosomas en una posicin seleccionada al azar, para producir dos segmentos anteriores y dos posteriores, los posteriores se intercambian para obtener dos cromosomas nuevos, como se ve en la siguiente figura:

ALGORITMOS GENTICOS

Operadores genticos: MUTACIN


Se encarga de modificar en forma aleatoria uno o ms genes del cromosoma de un descendiente.
La siguiente figura muestra el quinto gen siendo mutado, a lo que se conoce como mutacin sencilla:

ALGORITMOS GENTICOS

Operadores genticos: REEMPLAZO

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

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

Valor binario 10010100 10010001 00101001 01000101

Descodificacin

Valor real

148 0,16 145 0,14 41 -0,68 65 -0,49

[2/(28 -1)]*x -1= y

Amplitud del intervalo


Origen del intervalo 6

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

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

Si problema de optimizacin, la propia funcin a optimizar

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

Valor real 0,161 0,137

Aptitud

0.974 .981 .540 .760

10010001 00101001 01000101

41 -0,678 65 -0,490

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

Pr(x)
y

aptitud( x) aptitud( y) p o b l a ci n

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

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

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

1 1

0 0

0 1

1 1

0 1

1 0

0 1

1 0

0 0

0 0

hijo 2

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

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

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

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

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

576 361 169 576 1682 420.5 576

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

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

Mutacin

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

33

Nueva poblacin: reemplazar padres por hijos


Poblacin 1 iteracin 11011
10000 01100 11001

aptitud

Probabilidad seleccin
0.44 0.15 0.04 0.37

Probabilidad acumulada
0.44 0.59 0.63 1.00

h1 h2 h3 h4 Suma Media mejor

27 16 8 25

729 256 64 625 1674 418,5 729

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.