Académique Documents
Professionnel Documents
Culture Documents
Algoritmos Genéticos
1
Algoritmos Genéticos
2
AGS: Representación
3
Operadores del AGS: Cruce de 1 punto
Padres
Hijos
Padre
Hijo
4
Operadores del AGS: Selección
1/6 = 17%
fitness(A) = 3
B
A C fitness(B) = 1
3/6 = 50% 2/6 = 33%
fitness(C) = 2
5
Ejemplo (Goldberg 1989): Selección
6
Ejemplo (Goldberg 1989): Mutación
El AG Simple
7
Operadores de Cruce Alternativos
Padres
Hijos
8
Operador de Cruce Uniforme
• Define a cada gen de un hijo de manera independiente de
los otros genes (no posee sesgo posicional)
• Para cada posición del primer hijo, se genera un valor
aleatorio en el rango [0, 1]
– Si dicho valor es menor a un parámetro p (usualmente igual a 0.5)
el gen de esa posición es heredado del primer padre, sino el gen es
heredado del segundo padre (sesgo distribucional)
• El segundo hijo es creado usando el mapeo inverso
Padres
Hijos
Cruce o Mutación
9
Cruce o Mutación
Cruce o Mutación
10
Otras representaciones
Representaciones Enteras
11
Representaciones Reales
12
Representaciones Reales:
Mutación Uniforme
• Los nuevos valores son elegidos aleatoriamente
del intervalo [LBi, UBi]
• Todos los valores del intervalo [LBi, UBi] tienen la
misma probabilidad de ser elegidos
• Análogo al operador de mutación conocido como
Reajuste Aleatorio ( representaciones enteras )
Representaciones Reales:
Mutación No Uniforme
• La mayoría de los esquemas son probabilísticos
• Son diseñados de manera que usualmente, pero no
siempre, produzcan un pequeño cambio sobre los valores
de los genes
• El método más común consiste en sumar al valor actual del
gen una cantidad elegida aleatoriamente a partir de una
distribución Gaussiana N(0, σ) y luego, si es necesario,
reducir el valor resultante al rango de valores permitidos
• La desviación estándar σ controla la cantidad de cambio a
aplicar sobre el valor de los genes
– Esto se debe a que la distribución Gaussiana tiene la propiedad de
que el 68% de los valores caen en el rango [- σ, + σ]
13
Representaciones Reales:
Operadores de Cruce
• Cruce discreto
– Cada gen de un hijo z es tomado de alguno de sus
padres (x, y) : zi = xi o yi
– Operadores de este tipo: el operador de cruce uniforme
y el operador de cruce de n puntos
• Cruce aritmético
– Cada gen de un hijo z es creado aplicando una
operación aritmética sobre los genes de los padres (x, y)
– zi = α xi + (1 - α) yi donde α : 0 ≤ α ≤ 1
– El parámetro α puede ser :
• Constante: si es 0.5 se tiene un cruce aritmético uniforne
• Variable (por ej.: dependiente de la edad de la población)
• Elegido al azar cada vez que se realice un cruce
x1 , ..., x k −1 , α ⋅ y k + ( 1 − α ) ⋅ x k , x k +1 ,..., x n
α = 0.5
k=8
14
Cruce aritmético simple
x , ..., x , α ⋅ y + (1 − α ) ⋅ x , ..., α ⋅ y + (1 − α ) ⋅ x
1 k k +1 k +1 n n
• El hijo 2 es creado de la misma manera invirtiendo los roles de los
padres
α = 0.5
k=6
α ⋅ x + ( 1− α ) ⋅ y
α ⋅ y + ( 1− α ) ⋅ x
α = 0.5
15
Representaciones: Permutaciones
16
Permutaciones: Mutación por inserción
Valores elegidos: 2 y 5
Posiciones elegidas: 2 y 5
Links rotos: 4
17
Permutaciones: Mutación por inversión
Posiciones elegidas: 2 y 5
Links rotos: 2
18
Permutaciones: Operadores de Cruce
12345 12321
54321 54345
19
Permutaciones: Cruce de orden
(ejemplo)
• Copia el segmento seleccionado al azar del padre 1 en el
hijo 1 (puntos de cruce: 3 y 7 )
20
Permutaciones: Cruce PMX (ejemplo)
• Paso 1
• Paso 2
• Paso 3
21
Permutaciones: Cruce basado en ciclos
(Ejemplo)
• Paso 1: identificar ciclos
22
Permutaciones: Cruce basado en arcos
23
Permutaciones: Cruce basado en arcos
(Ejemplo)
Cruce Multipadre
24
Modelos de Población
25
Ejemplos de algoritmos de selección
26
Selección Proporcional al Fitness :
Transposición de la función de fitness
27
Selección basada en el Ranking
Mapeo Lineal
28
Mapeo Exponencial
Rueda de Ruleta
29
Selección por Torneo
30
Selección por Torneo
Selección de Sobrevivientes
31
Dos estrategias basadas en fitness
32
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
33
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
Comparación de operadores de cruce
34