Está en la página 1de 38

Las especies no se desarrollan hacia la perfección, sino lo

contrario. El débil, de hecho, siempre prevalece sobre el


fuerte, no solamente porque son mayoría, sino también
porque son los más astutos.
Friedrich Nietzsche, The Twilight of the Idols

Universidad de Chile
Facultada de Ciencias Físicas y Matemáticas
Departamento de Ingeniería Civil

ALGORITMOS GENÉTICOS

Presentación original descargada desde: http://www.alfredorahn.com/


Adaptación realizada por Rodrigo Meza L., Semestre de Primavera, 2006
Algoritmos Genéticos

 Programas evolutivos que emplean


principalmente la representación binaria.

 Un algoritmo genético simula la evolución de los


procesos y los cambios genéticos en las
estructuras de los cromosomas o individuos de
una población.

 Cada individuo representa una posible solución


del problema.

 En cada nueva generación habrán individuos


mejor adaptados, es decir, habrá soluciones que
se acercarán cada vez más al óptimo del
problema.
ESTRUCTURA DE UN ALGORITMO
GENÉTICO SIMPLE (AGS)

110010 1010
Cromosomas
101110 1110 Cruce
1100101010
Codificación 1100101010
Soluciones
1011101110 1100101110
1011101110
0011011001
0011011001
1100110001 Mutación
1100110001 0011011001

0011001001
Selección
Evaluación

1100101110

1011101010
Cálculo Aptitud
0011001001
Rueda de la Ruleta Decodificación Soluciones
ESTRUCTURA GENERAL DE UN
A.G. SIMPLE

Después de varias generaciones el


algoritmo converge hacia el mejor
cromosoma: representa la solución
óptima o subóptima.
ESTRUCTURA GENERAL DE UN
A.G. SIMPLE
1. [Inicio]:Generar población aleatoria de n cromosomas (soluciones apropiadas al problema)
2. [Aptitud]: Evaluar la aptitud f(x) de cada cromosoma x en la población.
3. [Nueva población] Crear una nueva población repitiendo los pasos siguientes hasta
completar la nueva población:
1. [Selección] Seleccionar dos padres cromosomas de la población de acuerdo a su aptitud.
2. [Cruce] Con una probabilidad de cruce combinar dos padres para obtener un nuevo
hijo. Si no se realiza => el hijo es copia exacta del padre.
3. [Mutación] Con una probabilidad de mutación mutar un bit en cada locus.
4. [Aceptación] Colocar el nuevo hijo en la población nueva.
5. [Reemplazo] Usar la nueva población para otra corrida del algoritmo.
6. [Verificar] Condición final satisfecha => parar, y retornar el mejor cromosoma.
7. [Ciclo] Ir al paso 2
ASPECTOS A EMULAR EN LOS
ALGORITMOS GENÉTICOS

* Idear genética de la
información.

* Idear una aplicación selectiva,


emulando el Darwinismo.

* Idear mecanismos de
reproducción
ESTRUCTURA GENERAL DE UN A.G.S
Representación

1. Se refiere a la manera de representar una solución o


individuo.
2. Depende en general del problema a tratar.
3. Cromosoma: Cadena de símbolos => representa una
solución => puede ser un número real / entero.

Cromosoma 1 000001010100101
Cromosoma 2 101111011111110

4. Los símbolos son cadenas de bits => representación


binaria.
ESTRUCTURA GENERAL DE UN A.G.S
Representación

 La longitud de la cadena depende de la precisión deseada => si el


dominio de la variable xj es [aj, bj] y la precisión requerida es n
dígitos después del punto decimal => longitud del dominio debe ser
dividido en al menos (bj- aj)*10n rangos de igual tamaño. Los bits
requeridos (mj) serán:

m j 1 n mj
2  (b j  a j ) *10  2 1
ESTRUCTURA GENERAL DE UN A.G.S
Representación

Cambios Notación Decimal y Binaria

53.095 = 5* 104 +3* 103 + 0*102 + 9* 101 + 5* 1


10011 => 1*24 +0*23 + 0*22 +1*21 +1*20 = 16+2+1 = 19 = >

m j 1
10011 => 1*20 +1*21 + 0*22 +0*23 +1*24 = 19 = (  b i 2i )10
i 0

Una cadena de 5 bits => representa números decimales entre [0..31]


=> [00000...11111]
ESTRUCTURA GENERAL DE UN A.G.S
Representación

 Conversión de string => número real:


Convertir el string binario => de la base 2 a la base 10 => substring:

m j 1

1.  ((bm j 1..b0 )) 2  (  bi 2i )10  substring


i 0

bj  a j
2.  x j  a j  decimal ( substring ) * mj
2 1
ESTRUCTURA GENERAL DE UN A.G.S
Representación

Ejemplo
 Hallar el valor de x que maximiza la función: f(x) = x. Sen (10 .x) +1.0 en el
rango x  [-1..2]. Trabajar con una precisión de 6 dígitos.

 Codificación: Cálculo de los bits requeridos para representar a x:


m j 1 n mj
2  (b j  a j ) * 10  2 1

m j 1 6 mj
2  ( 2  ( 1)) * 10  2 1

21 22
2.097.152  2  3.000.000  2  4.194.304  # bits  22

1000101110110101000111
1000101110110101000111
ESTRUCTURA GENERAL DE UN A.G.S
Representación

 Decodificación :convertir el string => número real

1000101110110101000111 2288967 Substring


1000101110110101000111 2288967

bj  a j
x j  a j  decimal ( substring ) * mj
2 1

3
x j  1  2288967 *  0.637197
4194303
ESTRUCTURA GENERAL DE UN A.G.S
Representación

Los cromosomas:

0000000000000000000000 -1
0000000000000000000000

COTAS DEL
DOMINIO
1111111111111111111111
1111111111111111111111 2
EJEMPLO CON UN ALGORITMO
GENÉTICO SIMPLE

Problema de Optimización:
(Dos Variables)

Max f(x1 ,x2) = 21.5+ x1sen(4 x1) + sen(20 x2)


-3.0  x1  12.1
4.1 x2  5.8
EJEMPLO CON UN ALGORITMO
GENÉTICO SIMPLE

Bits necesarios para x1y x2:

X1: (12.1-(-3.0))*10.000=151.000 => 217 <151000 218=> m1=18


X2: (5.8 - 4.1)*10.000=17.000 => 214 <17.000 215=> m2=15 =>
Longitud Total del cromosoma : m1 +m2 = 33 bits.
33
000001010100101001 101111011111110
18 15
EJEMPLO CON UN ALGORITMO
GENÉTICO SIMPLE

 Conversión de string => número real:


bj  a j
x j  a j  decimal( substring ) * mj
2 1
Número Binario Número Decimal
X1 000001010100101001 5417
X2 101111011111110 24318
X1= -3.0+5417*[12.1-(-3.0)]/ [218-1] = -2.687969
X2= 4.1+24318*[5.8 –4.1]/ [215-1] = 5.361653
ESTRUCTURA GENERAL DE UN A.G.S
Población Inicial

 En general los Algoritmos Genéticos trabajan sobre


En general los Algoritmos Genéticos trabajan sobre
una
una población
población fija
fija dede nn individuos
individuos inicializada
inicializada
aleatoriamente.
aleatoriamente.Esta
Estaforma
formadedegenerar
generarlalapoblación
poblacióneses
lalamás
mássimple
simplepara
paraobtener
obtenercromosomas
cromosomasbien biendispersos
dispersos
enenelelespacio de las soluciones.
espacio de las soluciones.

 El tamaño n de la población afecta al programa


El tamaño n de la población afecta al programa
evolutivo,
evolutivo, pues
pues eses lala principal
principal fuente
fuente dede material
material
genético,
genético,además
ademásdedelalamutación.
mutación.

 n debe ser un número tal que permita tener diversidad


n debe ser un número tal que permita tener diversidad
dede individuos,
individuos, sin
sin sacrificar
sacrificar lala eficiencia
eficiencia enen lala
búsqueda.
búsqueda.
ESTRUCTURA GENERAL DE UN A.G.S
Población Inicial

•Consiste en la creación aleatoria Ejemplo 1


•Cada cromosoma tiene
de una población de cromosomas
22 bits.
(individuos).
•Cada bit generado
•Los bits de cada cromosoma son
aleatoriamente.
inicializados aleatoriamente.

V1 = (x1) = 0.637197 1000101110110101000111


1000101110110101000111
V2 = (x2) = - 0.958973 0000001110000000010000
0000001110000000010000
1110000000111111000101
V3 = (x3) = 1.627888 1110000000111111000101
EJEMPLO CON UN ALGORITMO
GENÉTICO SIMPLE

Ejemplo 2

 Población Inicial:
V1= [000001010100101001101111011111110]
Población Inicial = 3
V2= [001110101110011000000010101001000]
V3= [111000111000001000010101001000110]

 Lo que corresponde a:

V1= [x1,x2]= [-2.687969, 5.361653]


Fenotipo
V2= [x1,x2]= [0.474101, 4.170144]
V3= [x1,x2]= [10.419457, 4.661461]
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud

• La función de adaptación cuantifica la


aptitud de cada cromosoma como
solución del problema, y determina su Maximizar f(x) = x. Sen (10 .x) +1.0
probabilidad de ser seleccionado para la
fase de reproducción y poder pasar ~ función de aptitud
parte de su material genético a la
siguiente generación. Max f(x11 ,x22) = 21.5+ x1sen(4 x11) + sen(20 x22)

• Determina la conexión entre el ~ función de aptitud


programa evolutivo y el problema
considerado. Emula al ambiente, pues
provee la presión que hace evolucionar Minimizar f(x) = x. Sen (10 .x) +1.0
la población hacia cromosomas más 1
función de aptitud =
aptos
1  f(x)
• Influye en la complejidad del
Algoritmo Genético.
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud

Maximizar f(x) = x. Sen (10 .x) +1.0


Eval (v1) = f(x1) = 1.586345
1. Convertir Genotipo en
1. Convertir Genotipo en
Fenotipo
Eval (v2) = f(x2) = 0.078878 2.
Fenotipo
Evaluar la función objetivo
2. Evaluar la función objetivo
3. Convertir el valor de la
Eval (v3) = f(x3) = 2.250650 3. Convertir
función el valor
objetivo en de la
aptitud.
función objetivo en aptitud.

Max f(x11 ,x22) = 21.5+ x11sen(4 x11) + sen(20 x22)


Eval(v1) = f(-2.687969, 5.361653) = 19.805119
Eval(v2) = f(0.474101, 4.170144) = 17.370896
Eval(v3) = f(10.419457, 4.661461) = 9.590546
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud

 Sus propiedades son determinantes en la eficiencia y eficacia


del método.
 Es importante tratar de incorporar en ella las restricciones del
problema.
 El número(los números) que produce(n) en general se
traducen en probabilidades.
 En general no es relevante la forma como se evalúa esta
función, lo que permite incorporar la mayor cantidad de
información posible.
 Llamada también => Función de Adaptación
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud

Prob. de Selección o
Sobrevivencia para
Individuo Adaptación Cruzamiento
SUPERINDIVIDUO
N° fi pi = fi / Ftotal
Es un cromosoma que tiene una
adaptación muy alta en 1 200 0.797
comparación con el resto de los
cromosomas de la población:
problema de Convergencia 2 30 0.119
Prematura, donde el algoritmo
genético encontrará una solución
3 10 0.040
sin haber explorado
suficientemente el espacio de 4 8 0.032
búsqueda.
5 2 0.008
6 1 0.004
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud
Renormalización

 Técnicas para evitar los efectos de convergencia prematura


=> superindividuos.
 Existen diversas técnicas, por ejemplo:
 Ventana de renormalización (1 Parámetro).
 Renormalización lineal (2 Parámetros)
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud
Renormalización

Ventana de Renormalización
Determinar un mínimo para la ventana. Asignar a cada individuo una
nueva adaptación igual a la adaptación actual menos mínimo , si da
positivo; o mínimo si da negativo.

Ejemplo:
F. Adapt.: 500 200 110 80 20 5
Min. 10: 490 190 100 70 10 10
Min. 100: 400 100 10 100 100 100
Min. 250: 250 250 250 250 250 250
ESTRUCTURA GENERAL DE UN A.G.S
Función de Evaluación de Aptitud
Renormalización

Ordenar los cromosomas en adaptación decreciente. Asignar un valor


máximo a la máxima adaptación, fijar un decremento el cual se resta
sucesivamente asignando este valor como adaptación renormalizada a cada
individuo sucesivo en el orden.

F. Adapt.: 500 200 110 80 20 5


Max. 100 Dec. 5:
100 95 90 85 80 75
Max. 100 Dec. 20:
100 80 60 40 20 00
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Cruce / Recombinación

La selección de los individuos que van a reproducirse se realiza mediante un operador


de selección. El operador de selección hace la elección basándose en los valores de
adaptación de los individuos. Ejemplos: Ranking, Ruleta y Torneo.

 Procedimiento de Cruce Cruce de un Punto


 Procedimiento de Cruce
Begin
Begin • Establecer la probabilidad de cruce pcc => se espera que
k<= 0;
k<= 0; en promedio pcc*100 cromosomas sean cruzados.
While (kn) do begin
While (kn) do begin
rk<= número aleatorio en [0,1]; • Para cada individuo se genera un número aleatorio rkk.
rk<= número aleatorio en [0,1];
if (rk< pc) then • Si rkk < pcc => se selecciona el individuo para ser
if (rk< pc) then
seleccione vk como un padre; cruzado.
seleccione vk como un padre;
end
end • Generar número aleatorio entero entre [2,n° de bit-1]
K<= k+1;
K<= k+1; para determinar el punto de cruce para cada par de
end padres a cruzar. Este es el llamado cruce monopunto.
end
end
end
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Cruce / Recombinación

• En el ejemplo 2 si punto de cruce = 9 y se cruzan los cromosomas v11’ y v33’


quedan los hijos:

V11’ = [001110101| 110011000000010101001000]


V33’ = [000001010 | 100101001101111011111110]
V11’’= [001110101100101001101111011111110] Nueva Población
(Actual)
V33’’= [000001010 110011000000010101001000]
V22’’= [001110101110011000000010101001000] =V 22’
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Cruce / Recombinación

• Si la cantidad de padres seleccionados para el cruce es par => se cruzan los padres
tomados de dos en dos aleatoriamente.
• Impar => Se añade otro tomado al azar o se elimina uno de los seleccionados. La
selección del método es aleatoria.
• Los dos hijos generados => reemplazan a los padres en la población actual.
• El cruce => normalmente genera dos hijos.
• Dependiendo del método de cruce => se puede obtener un solo hijo.
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Cruce / Recombinación

• Existen otras formas de


Cromosoma 1 11011 | 00100110110 realizar cruce: dos puntos,
Cromosoma 2 11011 | 11000011110 uniforme, aritmético y
otros.
Descendiente 1 11011 | 11000011110 •Puede resultar complicado y
dependiente => codificación.
Descendiente 2 11011 | 00100110110
•Cruces específicos para un
problema => mejoran
¿Implementación? desempeño de los AG.
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Mutación

Procedimiento • Establecer la probabilidad de


ProcedimientodedeMutación
Mutación mutación pmm => se espera que en
1.1. Total
Totalde debits
bits==nn(tamaño
(tamaño promedio pmm*100 cromosomas sean
población)*número
población)*númerodedebits bitspor
por mutados.
cromosoma.
cromosoma.
2.2. Generar
Generaruna unasecuencia
secuenciadede
números
númerosaleatorios
aleatoriosrkrk (k=1...
(k=1...
Total bits) en [0,1].
Total bits) en [0,1].
3.3. SiSirkr <<ppm => mutar bit k.
k m => mutar bit k.
ESTRUCTURA GENERAL DE UN A.G.S
Operadores Genéticos
Mutación

Para el ejemplo # 2 (diapositiva 20) es necesario generar


3*33 números aleatorios => 99 para cada cromosoma de la población;
suponiendo que luego de hacerlo queda:

pos. Bit N° Crom. N° bit en na


el cromosoma
39 2 6 0.009857

=>Mutar bit 6 del cromosoma 2:


V22’’’= [ 001110101110011000000010101001000]

1
ESTRUCTURA GENERAL DE UN A.G.S
Mutación

Hijo 1 Original 1101111000011110


•Previene que la población
Hijo 2 Original 1101100100110110 => caiga en un óptimo
local.
Hijo 1 Mutado 1100111000011110
•Depende => codificación
Hijo 2 Mutado 1101101100110110 individuo.
•Existen diversas formas
¿Implementación? de realizarla
ESTRUCTURA GENERAL DE UN A.G.S
Reinserción de los Hijos en la Población

 El método de reinserción será


Procedimiento de Reinserción
diferente según si la cantidad de Procedimiento de Reinserción
cromosomas generados sea 1. Nº Hijos = Nº Cromosomas Población:
1. Nº Hijos = Nº Cromosomas Población:
menor, igual o mayor que la Reinserción Pura, pues cada cromosoma
Reinserción Pura, pues cada cromosoma
cantidad de elementos vive exactamente una generación.
vive exactamente una generación.
existentes en la población. 2. Nº Hijos > Nº Cromosomas Población:
2. Nº Hijos > Nº Cromosomas Población:
Similar a Reinserción Pura, pues se eligen
Similar a Reinserción Pura, pues se eligen
los mejores cromosomas entre los que se
los mejores cromosomas entre los que se
generaron, y se eliminan los cromosomas
generaron, y se eliminan los cromosomas
sobrantes
sobrantes
3. Nº Hijos < Nº Cromosomas Población: Se
3. Nº Hijos < Nº Cromosomas Población: Se
requiere seleccionar a aquellos individuos de
requiere seleccionar a aquellos individuos de
la población que serán reemplazados.
la población que serán reemplazados.
Métodos: inserción uniforme, elitista, torneo
Métodos: inserción uniforme, elitista, torneo
invertido.
invertido.
ESTRUCTURA GENERAL DE UN A.G.S
Criterios de Término

 El criterio de terminación del algoritmo


genético es el encargado de definir el
momento en el cual debe detenerse el ciclo
de evolución y adoptar el cromosoma más
apto como la solución encontrada por el
algoritmo genético. A continuación se
describen los criterios más comúnmente
utilizados.
ESTRUCTURA GENERAL DE UN A.G.S
Criterios de Término: Convergencia de
Identidad

 Consiste en detener al algoritmo genético cuando


un determinado porcentaje de los cromosomas de la
población representan a la misma solución.
 Los operadores del algoritmo genético tienden a
preservar y difundir el material genético de los
cromosomas más aptos, por lo que es de esperar
que luego de un gran número de generaciones,
alguna solución con gran valor de aptitud se
imponga y domine la población.
ESTRUCTURA GENERAL DE UN A.G.S
Criterios de Término: Convergencia de Aptitud

 Puede suceder que existan soluciones distintas que obtengan


valores de aptitud similares. En ese caso, es probable que no
haya una solución que se imponga en la población (y el
criterio de terminación por convergencia de identidad nunca
se cumple).
 Este criterio no espera a que la población se componga
mayoritariamente de una sola solución, sino que finaliza la
ejecución del algoritmo cuando los valores de aptitud de un
determinado porcentaje de las soluciones son iguales, o
difieren en un pequeño porcentaje.
 Por ejemplo, cuando el 90% de las soluciones tenga valores
de aptitud que no difieran en más de un 1%.
ESTRUCTURA GENERAL DE UN A.G.S
Criterios de Término: Cantidad de Generaciones

 Los métodos anteriores apuntan a esperar a que la evolución de la población


llegue a su fin.
 Cuando alguno de ellos se cumple, es probable que las soluciones no sigan
mejorando mucho más, no importa cuantas generaciones más se ejecuten.
 Sin embargo, los algoritmos genéticos pueden necesitar un número de
generaciones muy grande para llegar a la convergencia, dependiendo de las tasas
de reproducción y mutación.
 Utilizando cualquiera de los dos criterios anteriores no puede estimarse un
número máximo de generaciones, ya que esto dependerá no solamente de los
parámetros del algoritmo genético sino también del azar.
 El criterio de terminación por cantidad de generaciones consiste simplemente en
finalizar la ejecución una vez que ha transcurrido un número determinado de
generaciones.

También podría gustarte