AG un vistazo rápido
Desarrollado: USA en 1970’s
Primeros nombres: J. Holland, K. DeJong, D.
Goldberg
Típicamente aplicado a:
– Optimización discreta
Características exhibidas:
– No demasiado rápido
– Buen heurístico para problemas combinatorios
Características especiales:
– Tradicionalmente enfatiza la combinación de información de buenos padres (crossover)
Algoritmos genéticos
El AG original de Holland se conoce como
algoritmo genético simple (AGS)
Otros AGs utilizan diferentes:
– Representaciones– Mutaciones – Crossovers
AGS resumen técnico
Representación strings binarios
Recombinación N-point o uniforme Mutación Cambio de bit con
probabilidad fija
Selección de padres Proporcional al fitness
Selección de supervivientes Todos hijos sustituyen a los padres
AGS ciclo reproductivo
1. Seleccionar individuos de la población para formar el mating pool (individuos que van a ser padres)
(tamaño del mating pool = tamaño de la población) 1. Desordenar el mating pool
2. Para cada par de individuos consecutivos aplicar
crossover con probabilidad pc, en otro caso copiar los padres
3. Para cada hijo (offspring) aplicar mutación (bit-flip con probabilidad pm independientemente para cada bit)
AGS operadores: 1-point crossover
Elegir un punto aleatorio en los dos padres Dividir los padres en ese punto
Crear hijos intercambiando las colas
AGS operadores: mutación
Altera cada gen independientemente con probabilidad pm pm se llama tasa de mutación
Idea principal: los individuos mejores consiguen una mayor probabilidad
– Probabilidades proporcionales al fitness – Implementación: técnica de la ruleta
Asignar a cada individuo una parte de la
ruleta
Girar la ruleta n veces para seleccionar n
individuos
AGS operadores: Selección
Un ejemplo Goldberg ‘89 (1)
Problema simple max x
2sobre {0,1,…,31}
Aproximación mediante AG:
– Representación: código bin, e.g. 01101 ↔ 13 – Tamaño de población: 4
– 1-point xover, bitwise mutation – Selección mediante ruleta
– Inicialización aleatoria
EL AGS
Ha sido objeto de numerosos estudios
– Aún utilizado como benchmark para nuevos AGs
Presenta algunas deficiencias:
– La representación es demasiado restrictiva
– Mutación y crossovers sólo son aplicables para
representaciones de cadenas de bits y enteros
– Mecanismo de selección delicado para converger
poblaciones de individuos con fitness similares
– Modelo de población Generacional (el paso 5 del AGS
Operadores de Crossover alternativos
El rendimiento del 1-Point Crossover depende del orden en el que las
variables aparecen en la representación
– Es más probable mantener juntos genes que están juntos unos de
otros
– Mayor probabilidad de mantener juntos bits próximos y
imposibilidad de manentener juntos los genes de extremos opuestos del string (Positional Bias)
Crossover de n-point
Elegir n puntos aleatorios de crossover Dividir a lo largo de dichos puntos
Crossover uniforme
Para el primer hijo, se lanza una moneda y si sale cara se toma el bit del primer
padre y en caso contrario del segundo.
El segundo hijo toma los valores complementarios del primero.
La herencia es independiente de la posición (no hay bias posicional), pero hay
Crossover O mutación?
Gran debate: cuál es mejor? Respuesta (al menos, ampliamente aceptada):
– Depende del problema, pero
– en general, es bueno usar ambos. – Cada uno tiene su papel.
Exploración: Descubrir areas prometedoras en espacio de búsqueda, i.e. obtener más información del problema
Exploitation: Optimizar dentro de un area prometedora, i.e. usar la
información
Existe una cooperación y competición entre ellos
Crossover es “explorativo”, hace un gran salto a un area en algún lugar entre dos areas de las dos areas de los padres (en general) Mutación es “exploitative”, crea pequeñas desviaciones aleatorias, permaneciendo cerca del area del padre (en general)
Sólo el crossover puede combinar información
de dos padres
Sólo la mutación puede introducir nueva
información (alelos)
El crossover no cambia la frecuencia de los
alelos (n-point o uniforme)
Otras representaciones
Codificación Gray de enteros (cromosomas binarios)
– La codificación Gray es un maping que hace que “pequeños cambios en el genotipo causa pequeños cambios en el
fenotipo” (improbable en codificación binaria). Mapping
“suaves” entre genotipos y fenotipos hacen la vida más fácil para los AG
Hoy en día está generalmente aceptado que es mejor codificar variables numéricas directamente como
Enteros
Código Gray (Frank Gray)
D Bin Gray 0 000 000 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 6 110 101 7 111 100Distancia Hamming 1 entre
Representaciones Enteras
Algunos problemas tienen asociados de forma natural
variables enteras, e.g. parámetros de procesos de imagen
Otros toman valores categóricos de un conjunto fijo, e.g.
{blue, green, yellow, pink}
Los operadores de crossover N-point / uniform crossover
funcionan igual que en el caso de string binarios
Se puede extender la mutación bit-flipping para hacer
– “creep” i.e. mayor probabilidad para moverse a valores similares – En general será difícil conocer un rango correcto para ‘creep’.
Por tanto se pueden usan dos operadores de mutación en tandem
Problemas con variables reales
Muchos problemas son real-valuados, e.g.optimización con parametros continuos f : ℜ n ℜ
Mapping reales en cadenas de bits
z ∈ [x,y] ⊆ ℜ representado por {a1,…,aL} ∈ {0,1}L
• [x,y] → {0,1}L debe ser invertible (un fenotipo por genotipo)
∀ Γ: {0,1}L → [x,y] define la representación
Sólo se representan 2L valores de los infinitos
L determina la máxima precisión posible de las soluciones Alta precisión cromosomas grandes (evolución lenta)
Γ a
1,. .. ,a
L
=x+
y −x
2
L−1
⋅
∑
j=0 L−1Mutaciones reales 1
Esquema general de mutaciones de variables reales
Mutación Uniforme:
Análoga a bit-flipping (binarios) o búsqueda aleatoria (enteros)
x
i,x
i'∈
[
LB
i,UB
i]
x1, x2, . . . xn> −−−−> < x'1,x2' , . . . ,x'n¿ ¿
Mutaciones reales 2
Mutaciones No-uniformes:
– Se han propuesto muchos métodos, tales como
variación dependiente del tiempo de la amplitud de la mutación, etc.
– Muchos esquemas son probabilísticos pero
usualmente sólo hacen un pequeño cambio al valor
– El método más común es sumar una desviación
aleatoria a cada componente de forma separada, tomado de una N(0, σ)
– La desv. Estándar σ controla la maginitud de cambio
variables reales
Discreto:
– Cada alelo del hijo z proviene de sus padres (x,y) con
igual probabilidad: zi = xi o yi
– Puede usarse crossover de n-puntos o uniforme
Intermedio
– Explota la idea de crear hijos “entre” los padres
(recombinación aritmética)
– zi = α xi + (1 - α) yi donde α : 0 ≤ α ≤ 1. –
El
parámetroα
puede ser:• constante: recombinación aritmética uniforme
Single arithmetic crossover
• Padres: 〈x1,…,xn 〉 y 〈y1,…,yn〉
• Seleccionar un único gen (k) aleatoriamente, • hijo1:
• Intercambiando
α
y 1-
α
para el otro hijo
. e.g. con α = 0.5Simple arithmetic crossover
• Padres: 〈x1,…,xn 〉 y 〈y1,…,yn〉
• Seleccionar aleatoriamente un gen (k) tras este punto mezclar los valores
• hijo1 :
• Cambiar
α
por 1-
α
para el otro hijo
. e.g. con α = 0.5• El más utilizado
• Padres: 〈x1,…,xn 〉 y 〈y1,…,yn〉 • Hijo 1 es:
• Hijo 2 como en otros casos. e.g. con α = 0.5
Crossover aritmético completo
Permutaciones como representaciones
Los problemas de ordenación/secuenciación
constituyen un tipo especial
La tarea es (o puede resolverse) ordenando algunos
objetos en un cierto orden
– Ejemplo: algoritmo de ordenación: lo importante es que elementos van antes que los otros (orden)
– Ejemplo: Problema del agente viajero: lo importante es que elementos está a continuación de cada uno (adyacencia)
Estos problemas se expresan en general como una
permutación:
ejemplo TSP (Problema del viajante)
Problema:
• Dadas n ciudades
• Encontrar un tour completo de longitud mínima
Codificación:
• Etiquetar las ciudades 1, 2, …, n
• Un tour completo es una permutación (e.g. for n =4 [1,2,3,4], [3,4,2,1] son OK) El espacio de búsqueda es
GRANDE:
para 30 ciudades hay 30! ≈ 1032
Permutaciones: Oper. de Mutación
Los operadores de mutación usuales conducen a
soluciones no factibles
– e.g. mutación bit-wise: Cambiar el valor del gen i que contiene el valor j
– Cambiar a un valor k significaría que k ocurre dos veces y j no aparece
Por tanto hay que cambiar al menos dos valores
El parámetro de la Mutación ahora refleja la probabilidad
Mutation de insercción
Tomar dos alelos aleatoriamente
Mover el segundo a continuación del primero,
trasladando el resto
Mutación por intercambio
Tomar dos alelos aleatoriamente e
intercambiarlos
Preserva la mayoría de la información de
Mutación por inversión
Seleccionar dos alelos aleatoriamente e
invertir los elementos del substring contenido
entre ellos.
Mutación Scramble
Seleccionar un subconjunto de genes
aleatoriamente
Reordenar aleatoriamente sus alelos en esas
posiciones
Los operadors de Crossover “
Normales” a menudo
conducen a soluciones infactibles:
Se han diseñado muchos operadores
especializados para combinar la información
sobre orden y adyacencia de los padres
Oper. Crossover para Permutaciones
1 2 3 4 5 5 4 3 2 1
Order Crossover
La idea es preservar el orden relativo en el que aparecen los elementos
Procedimiento:
1. Elegir un trozo arbitrario del primer padre 2. Copiar esta parte al primer hijo
3. Copiar los números que no están en la primera parte en el primer hijo:
Empezando a la derecha del punto de corte de la parte copiada
Utilizando el orden del segundo padre Volviendo al principio al alcanzar el final
Order Crossover ejemplo
Copiar el conjunto seleccionado aleatoriamente del
primer padre
Procedimiento:
• Seleccionar un segmento aleatorio del padre 1 copiarlo en el primer hijo
• Comenzando desde el primer punto de crossover buscar los
elementos en dicho segmento del segundo padre que no han sido copiados
• Para cada uno de estos i mirar en el hijo para ver que elemento j ha sido copiado en su lugar desde el padre 1.
• Situar i en la posicion ocupada j en el padre 2, ya que sabemos que no pondremos j allí
• Si la posicion ocupada por j en el padre 2 ha sido rellenada en la posición k, poner i en la posición ocupada por k en el padre 2
• Tras haber tratado los elementos del segmento del crossover, el resto se rellena del padre 2.
El segundo hijo se crea análogamente
Ejemplo PMX
Step 1
Step 2
Crossover con ciclos
Idea básica:
Cada alelo procede de un padre junto con su posición.
Procedimiento:
1. Hacer un ciclo de alelos de P1 de la forma siguiente.
(a) Empezad con el primer alelo de P1.
(b) Mirar el alelo en la misma posición de P2. (c) Ir a la posición con el mismo alelo en P1. (d) Añadir este alelo al ciclo.
(e) Repetir el paso b hasta d hasta llegar al primer alelo de P1.
2. Poner los alelos del ciclo en el primer hijo en las posiciones que tenían en el primer padre.
Ejemplo de crossover con ciclos
Step 1: identificar ciclosRecombinación de ejes
Construir una tabla de listas de uniones que
están presentes en los padres, si pertenece a
los dos poner un +
Tras construir la tabla de lista de uniones
1. Tomar aleatoriamente un elemento inicial y ponerlo en el hijo 2. Establecer dicho elementos, como elemento actual
3. Borrar todas las referencias al elemento actual 4. Examinar la lista del elemento actual:
– Si hay algún elemento común, tomarlo para ser el siguiente elemento – En otro caso tomar la entrada en la lista que es más corta
– Si hay empates romperlos aleatoriamente
5. En caso de encontrar una lista vacía:
– Examinar el otro extremo del hijo para proseguir
– En otro caso elegir un nuevo elemento aleatoriamente
Recombinaciones Multipadre
En nuestros modelos no estamos sujetos a las leyes
naturales
Observar que la mutación utiliza un padre, el crossover
“tradicional” 2, la extensión a a>2 es facíl de considerar
Entorno a los años 1960s, algunos trabajos, aunque no
muchos, indicaban su utilidad
Tres tipos principalmente:
– Basados en frecuencias de los alelos, e.g., p-sexual voting generalización del crossover uniforme
– Basados en segmentación y recombinación de los padres, e.g., crossover diagonal que generaliza al n-point crossover
Modelos de poblaciones
AGS utiliza un modelo Generacional:– Cada individuo sobrevive exactamente una generación – El conjunto entero de padres es sustituido por los hijos
En el otro extremo de modelos están los modelos de
Estado estacionario (Steady-State):
– En cada generación se genera un descendiente/hijo, – Un miembro de la población se reemplaza
Gap generacional
– La proporción de la población reemplazada
Selección/competición basada en fitness
La selección tiene lugar en dos sitios:– Selección para tomar parte del mating pool (selección de los padres)
– Selección de padres + hijos para sobrevivir (survivor selection)
Los operadores de selección operan a nivel de individuo
completo
– i.e. Son independientes de la representación
Elementos del proceso de selección
Ejemplo de utilización: AGS
Número esperado de copias de un individuo i
E( ni ) = µ • f(i)/ 〈f〉
(µ = tam. Pop., f(i) = fitness de i, 〈f〉 fitness medio en pob.)
Algoritmo de ruleta (Roulette wheel algorithm):
– Dada una distribución de probabilidad, girar una ruleta n veces para obtener n selecciones. (cada 'quesito de la ruleta' con
amplitud proporcional a la probabilidad f(i)/<f>) – No garantiza el valor real de ni
Algoritmo SUS de Baker (stochastic universal
sampling):
– n selecciones uniformemente elegidas a partir de una selección aleatoria obtenida al girar la ruleta
Presenta los problemas siguientes
– Un miembro muy bueno (con fitness muy elevado) puede apoderarse del resto si este es mucho menos bueno:
Convergencia prematura
– Al final de la ejecución cuando los fitness son muy similares, la presión de la selección se pierde
– Altamente sensible a traslaciones
EL escalado puede evitar los dos últimos problemas
– Windowing: f’(i) = f(i) - β
Donde β es el peor fitness en la/las última/s n generaciones
– Sigma Scaling: f’(i) = max( f(i) – (〈 f 〉 - c • σf ), 0.0)
Donde c es una constante, usualmente 2.0
Selección basada en ranking
Intento de evitar los problemas de SPF
basando las probabilidades de selección en
fitness relativos en lugar del absolutos
Se ordena la población de acuerdo a su fitness
y entonces las probabilidades de selección se
asginan de forma que la mejor tenga ranking
µ
-1 y la peor ranking 0
Esto supone un esfuerzo extra al algoritmo,
pero generalmente es despreciable comparado
con el resto de costo computacional del
Ranking Lineal
Parametrizado por un factor s: 1.0 < s ≤ 2.0 – Mide la ventaja del mejor individuo
– En AG generacionales s corresponde al número de copias que recibe dicho individuo (µ tamaño de la población)
Ejemplo con población de 3 miembros
Ranking Exponencial
La presión de selección está limitada al usar
ranking lineal
Ranking Exponencial puede seleccionar más
de 2 copias del mejor individuo
Selección por torneo (Tournament)
Todos los métodos de selección anteriores se
basán en estadísticas globales de la población
– Pueden ser un cuello de botella, especialmente en
proceso en paralelo
– Se basan en una función fitness que podría no
existir
Procedimiento:
– Tomar k miembros de la población aleatoriamente y
selecciona el mejor de ellos
La prob. de la selección de i depende de:
– Ranking/orden de i– Tamaño de la muestra k
Cuanto mayor k mayor presion de selección
– Si los participantes del torneo se toman con
reemplazamiento o no
Seleccionar sin reemplazamiento incrementa la presión de selección
– Si el mejor participante siempre gana (determinista) o
lo hace con probabilidad p
Selección de supervivientes
La mayoría de los métodos anteriores
utilizados para selección de padres son válidos
La selección de supervivientes puede dividirse
en dos aproximaciones:
– Basadas en edade.g. AGS
In SSGA can implement as “delete-random” (not
recommended) or as first-in-first-out (a.k.a. delete-oldest)
– Basadas en Fitness
Dos casos especiales
Elitismo
– Ampliamente utilizado en ambos modelos
poblacionales (GGA, SSGA)
– Siempre se guarda al menos una copia del mejor
individuo hasta el momento
GENITOR: “borrar-el-peor”
– Los λ peores individuos de la población se