Operadores de Selección, Cruce y Mutación

Anuncio
Los Algoritmos Genéticos
– Introducción
– Componentes de un AG
– Un AG Simple con representación binaria
– Operadores de Selección, Cruce y Mutación
– Ejemplo: Cálculo del máximo de una función
– AG con codificación no binaria (Penalty Job Sequ.)
Introducción
Los Algoritmos Genéticos siguen una estrategia inspirada
en las leyes de la evolución natural que combina búsqueda
dirigida y búsqueda aleatoria
[Davis 74]
......la idea subyacente de los Algoritmos Genéticos es la de
la evolución natural. En la evolución, las especies se
enfrentan al problema de adaptarse a un entorno complejo
y cambiante. El conocimiento que cada especie adquiere en
este proceso se refleja en la construcción de los
cromosomas de sus individuos.
Componentes de un AG
•
Una representación genética de los individuos o soluciones
potenciales del problema (por ejemplo binaria),
•
Un modo de crear la población inicial,
•
Una función de evaluación que juega el papel del entorno
permitiendo clasificar a los individuos en términos de su fitness,
•
Operadores genéticos de selección, cruce y mutación que simulan
la evolución de las poblaciones, y
•
Valores de los parámetros del algoritmo: longitud de los
individuos, tamaño de la población, número de generaciones,
probabilidad de cruce y probabilidad de mutación.
Un Algoritmo Genético Simple
Algoritmo Genético Simple
Leer parámetros; {Pc,Pm,tam-pob,nro-gen,tam-ind}
Generar la población inicial P(0);
Evaluar P(0);
Mientras no ultima-generación hacer
Generar una nueva población P(t) a partir de la
población anterior aplicando los operadores de
Selección, Cruce y Mutación;
Evaluar P(t)
Finmientras;
Devuelve el mejor individuo de la última población;
Fin.
Operadores Genéticos con
Representación Binaria
– Selección
• Selecciona un individuo de la población anterior con una
probabilidad proporcional al fitness del individuo
– Cruce en un punto
• Se eligen dos individuos aleatoriamente y se decide si hay
cruce o no entre ellos de acuerdo con la probabilidad de cruce.
En caso afirmativo
– Se genera una posición aleatoria entre 1 y la longitud del individuo
– Se intercambian las subcadenas a partir de la posición generada
– Mutación
• Cambia el valor de un bit con una probabilidad igual a la
probabilidad de mutación
Ejemplo de Selección, Cruce y Mutación
000110010111
8
0.32
111010101100
111010101100
6
0.24
000110010111
001110101001
6
0.24
111010101100
111011011100
5
0.2
a) Población
actual
b) Fitness
y prob. de
selección
4
111010010111
111010010111
000110101100
000110101100
111010101001
11111010100
1
001110101001
001110101100
001110101101
c) Selección
d) Cruce
8
e) mutación.
Población
siguiente
Ejemplo: cálculo del máximo de una
función
Se trata de encontrar el máximo, en el
intervalo [-1..2], de la función
f(x) = x * sen(10πx) + 2.0
(Solución: x = 1.85, f(1.85) = 3.85)
4
3,5
3
2,5
f(x)
2
1,5
1
0,5
0
-1
0
1
x
Solución con un AG
Representación de los individuos (binaria)
Población inicial (aleatoria)
Función de evaluación o fitness (eval(v)=f(x))
Operadores genéticos (cruce en un punto, ..),
Parámetros (Pc, Pm, tamaño de la población, número de
generaciones, tamaño de los individuos)
2
¿Cómo determinar los parámetros?
Tamaño de los individuos
Si queremos seis dígitos después del punto decimal, necesitamos, al menos,
3000000 de valores distintos (pues la longitud del intervalo es 3). Esto
significa que debemos tener al menos 22 bits, ya que
2097152 = 221 < 3000000 < 222 = 4194304
Ejemlos:
(1000101110110101000111)
(0000000000000000000000)
(1111111111111111111111)
0.637197
-1
2
Otros parámetros
Pc = 0.8, Pm = 0.03, número de generaciones = 100,
tamaño de la población = 50
AG con codificación no binaria
– Ejemplo de AG para el problema PJS
• Codificación: una permutación de los trabajos
(Tk1,...,Tkn)
• Función fitness
Coste_Total(Tk1,...,Tkn) =
n
∑ (t
i =1
ki
+ du ki )× pki
Fitness(Tk1,...,Tkn) = 1 / Coste_Total(Tk1,...,Tkn)
• Operadores Genéticos
– Selección: proporcional al fitness
– Cruce: cruce basado en el orden (OX)
– Mutación: intercambio de 2 trabajos elegidos aleatoriamente
Cruce basado en el orden (OX) para
permutaciones
Padre1
Padre2
(T2 T5 T1 T6 T0 T3 T4)
(T0 T4 T5 T6 T3 T2 T1)
Selección de una
subcadena
Se eliminan los elementos
de la subcadena
(-- -- T1 T6 T0 -- --)
(-- T4 T5 -- T3 T2 --)
La subcadena del Padre1 mantiene el orden y la posición y el
resto de tareas mantienen el orden del Padre 2
Hijo
(T4 T5 T1 T6 T0 T3 T2)
Descargar