Algoritmos Genéticos

Anuncio
Introducción a la Computación Evolutiva
Tercera Clase: Algoritmos Genéticos
Algoritmos Genéticos
• Desarrollados en USA durante los años ´70
• Autores principales: J. Holland, K. DeJong, D. Goldberg
• Aplicados típicamente a:
– Optimización Discreta
• Características atribuídas
– No son demasiado veloces
– Buenas heurísticas para problemas combinatorios
• Atributos especiales:
– Tradicionalmente, centran la atención sobre combinar la
información proveniente de buenos padres (cruce genético)
– Muchas variantes de modelos de reproducción y operadores
1
Algoritmos Genéticos
• El AG concebido originalmente por Holland
es conocido ahora como el Algoritmo
Genético Simple (AGS)
• Otros AGs utilizan diferentes:
–
–
–
–
Representaciones
Mutaciones
Cruces
Mecanismos de selección
AGS: Resumen de Características
Representación
Strings de bits
Cruce
N-puntos o uniforme
Mutación
Cambiar valor de cada bit en
base a probabilidad prefijada
Proporcional al Fitness
Selección de Padres
Selección de Sobrevivientes
Característica distintiva
Todos los hijos reemplazan a
los padres
Enfásis sobre el cruce genético
2
AGS: Representación
Espacio Fenotípico
Espacio Genotípico = {0,1}L
Codificación
(representación)
10010001
10010010
01000100
01110100
Decodificación
(Representación
inversa)
AGS: Ciclo de Reproducción
1. Seleccionar padres para conformar el “mating
pool” (tamaño del “mating pool” = tamaño de la
población)
2. Conformar parejas a partir del “mating pool”
3. Sobre cada pareja, aplicar cruce genético en base
a una probabilidad pc
4. Sobre cada hijo, aplicar mutación (mutar cada
bit del hijo en base a una probabilidad pm )
5. Reemplazar la población completa por los hijos
resultantes
3
Operadores del AGS: Cruce de 1 punto
• Elegir un punto aleatorio sobre los dos padres
• Dividir a los padres en dicho punto de cruce
• Crear hijos intercambiando las secuencias de bits ubicadas
a la derecha del punto de cruce
• Típicamente, la Pc pertenece al rango (0.6, 0.9)
Padres
Hijos
Operadores del AGS: Mutación
• Alterar cada gen (bit) independientemente en base a una
probabilidad Pm
• A la probabilidad Pm se la denomina rango de mutación
– Típicamente, su valor se encuentra entre (1/tamaño de la población)
y (1/longitud del cromosoma)
Padre
Hijo
4
Operadores del AGS: Selección
• Idea central: los mejores individuos obtienen mayores
posibilidades
– Posibilidades son proporcionales al fitness
– Implementación: Técnica Rueda de Ruleta
• Asigna a cada individuo una parte de la Rueda de Ruleta
• Gira la rueda n veces para seleccionar n individuos
1/6 = 17%
A
3/6 = 50%
B
fitness(A) = 3
C
2/6 = 33%
fitness(B) = 1
fitness(C) = 2
Ejemplo (Goldberg 1989)
• Problema: maximizar x2, x ∈ {0, 1, …, 31}
• AG para este problema:
– Representación: código binario de 5 bits (ej.: 01101 →
13)
– Tamaño de la población: 4
– Cruce de un punto, Mutación de bit
– Selección por Rueda de Ruleta
– Inicialización aleatoria
• A continuación, se muestra el seguimiento de un
ciclo generacional
5
Ejemplo (Goldberg 1989): Selección
Ejemplo (Goldberg 1989): Cruce
6
Ejemplo (Goldberg 1989): Mutación
El AG Simple
• Ha sido el tema central de muchos estudios
– Todavía es considerado como un punto de referencia
para la definición de nuevos AGs
• Posee varias limitaciones …
– Representación es demasiado restrictiva
– Operadores de mutación y cruce solamente aplicables a
representaciones del tipo: strings de bits y strings de
enteros
– Cuando los valores de fitness son muy cercanos entre
si, el mecanismo de selección no es capaz de ejercer
una adecuada presión selectiva, esto dificulta y retrasa
la convergencia de la población
– El modelo de población generacional (paso 5 en el ciclo
reproductivo del AGS) puede ser mejorado mediante
una selección de sobrevivientes explícita
7
Operadores de Cruce Alternativos
• El desempeño del cruce de 1 punto depende del
orden que tengan las variables en la representación
– Tiende a mantener juntos a aquellos genes de la
representación que se encuentran en posiciones
cercanas
– No podrá mantener juntos a aquellos genes que se
encuentran en extremos opuestos de la representación
– Estos efectos son conocidos como Sesgo Posicional
– Este tipo de sesgo puede ser explotado si existen
dependencias conocidas en la representación elegida
(usualmente, éste no es el caso)
Operador de Cruce de n puntos
•
•
•
•
Elige n puntos de cruce de forma aleatoria
Divide a los padres en dichos puntos de cruce
Reensambla partes, alternando entre los padres
Generalización del cruce de 1 punto (posee algo de sesgo
posicional)
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
• Largo debate: cuál es el principal / necesario /
secundario?
• Respuesta (al menos, la más acordada):
– Depende del problema
– Sin embargo, en general, es bueno utilizar ambos
– Ambos tienen roles diferentes
9
Cruce o Mutación
• Exploración: Descubrir áreas prometedoras en el espacio
de búsqueda (ganando información sobre el problema)
• Explotación: Optimizar un área prometedora (usando
información)
• Existe co-operación y competición entre ambos
mecanismos
• El cruce es exploratorio, desarrolla un gran salto a un área
que se encuentra en algún lugar entre dos áreas (padres)
• La mutación es explotadora, crea pequeñas desviaciones
aleatorias, por lo tanto permanece cerca (en el área) del
padre
Cruce o Mutación
• Sólo el cruce puede combinar información
de dos padres
• Sólo la mutación puede introducir nueva
información (alelos)
• El cruce no cambia las frecuencias de los
alelos que existen en la población
• Para alcanzar el óptimo a menudo se
necesita una mutación “acertada”
10
Otras representaciones
• Actualmente, se considera que es mejor
codificar a las variables numéricas
directamente como:
– Números enteros
– Números reales
Representaciones Enteras
• Algunos problemas tienen variables enteras (ej.:
parámetros de procesamiento de imágenes)
• En otros las variables toman valores categóricos de un set
predefinido (ej.: {azul, verde, amarillo, rosa})
• Los operadores de cruce de n puntos y uniforme son
aplicables sobre este tipo de representaciones
• El operador de mutación (que altera el valor de un bit)
debe ser extendido para poder ser aplicado sobre este tipo
de representaciones
– Reajuste Aleatorio (variables categóricas): cambia el valor de cada
gen por otro valor posible
– Mutación por Deslizamiento (variables numéricas): suma un valor
(+ o -) al valor de cada gen. Los valores a sumar son elegidos
aleatoriamente para cada posición
11
Representaciones Reales
• Muchos problemas tienen variables reales
(ej.: optimización de parámetros continuos)
• Ilustración: función de Ackley (muy utilizada en CE)
Representaciones Reales: Mutación
El esquema general de la mutación es:
x = x1 , ..., xl → x ′ = x1′ , ..., xl′
xi , xi′ ∈ [LBi , UBi ]
• Surgen dos tipos de mutación al considerar la
distribución de probabilidades a partir de la cual se
eligen los nuevos valores
– Mutación uniforme
– Mutación no uniforme
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
Cruce aritmético individual
• Padres: ⟨x1, …, xn⟩ y ⟨y1, …, yn⟩
• Elige al azar una posición k, k : 1 ≤ k ≤ n
• El hijo 1 es conformado de la siguiente manera:
x1 , ..., x k −1 , α ⋅ y k + ( 1 − α ) ⋅ x k , x k +1 ,..., x n
• El hijo 2 es creado de la misma manera invirtiendo los roles de los
padres
α = 0.5
k=8
14
Cruce aritmético simple
• Padres: ⟨x1, …, xn⟩ y ⟨y1, …, yn⟩
• Elige al azar una posición k, k : 1 ≤ k ≤ n
• El hijo 1 es conformado de la siguiente manera:
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
Cruce aritmético completo
• Es el operador aritmético más utilizado
• Padres: ⟨x1, …, xn⟩ y ⟨y1, …, yn⟩
• El hijo 1 es definido de la siguiente manera:
α ⋅ x + ( 1− α ) ⋅ y
• El hijo 2 es definido de la siguiente manera:
α ⋅ y + ( 1− α ) ⋅ x
α = 0.5
15
Representaciones: Permutaciones
• Se utilizan en problemas de ordenamiento o de
secuenciación
• En tales problemas, se requiere decidir el orden en que
deberían ocurrir ciertos eventos
– Ejemplo: “job shop scheduling” (es importante qué elementos
ocurren antes de cada elemento existente (orden temporal))
– Ejemplo: Problema del Viajante (es importante qué elementos
ocurren inmediatamente después de cada elemento existente
(adyacencia))
• Generalmente, las soluciones a estos problemas son
expresadas como una permutación de n elementos
predefinidos
– Si el problema posee n variables entonces la representación es una
lista de n enteros (cada entero ocurre exactamente una vez en la
lista)
Permutaciones: Operadores de Mutación
• Los operadores de mutación normales llevan a soluciones
inadmisibles
– Cambiar el valor j de un gen por otro valor posible k, significa que
k ocurre dos veces y j no ocurre ninguna vez en la solución (esto
no es una permutación)
• Para permutaciones, no es posible considerar a cada gen
independientemente
• En este caso, una mutación consiste en mover los valores
de los genes sobre la solución
• Como consecuencia, el parámetro de mutación es
interpretado como la probabilidad de que el operador sea
aplicado sobre la solución completa
– En los operadores de mutación normales, el parámetro es
interpretado como la posibilidad de que la mutación sea aplicada
sobre cada gen de manera individual
16
Permutaciones: Mutación por inserción
• Se eligen dos valores al azar de la solución
• Se mueve el segundo valor a continuación del primero (se
corren los valores ubicados entre medio de los dos
elegidos)
• Este operador preserva la mayor parte del orden existente
entre los valores y de la información sobre adyacencias
Valores elegidos: 2 y 5
Permutaciones: Mutación por
intercambio
• Se eligen dos posiciones al azar y se intercambian sus
valores
• Preserva la mayor parte de la información sobre
adyacencias. La información sobre el orden es perturbada
de manera más significativa.
Posiciones elegidas: 2 y 5
Links rotos: 4
17
Permutaciones: Mutación por inversión
• Se eligen al azar dos posiciones de la solución y se
invierten los valores existentes entres dichas posiciones
• Preserva la mayor parte de la información sobre
adyacencias pero perturba significativamente la
información sobre el orden
Posiciones elegidas: 2 y 5
Links rotos: 2
Permutaciones: Mutación por mezcla
• Se elige aleatoriamente un set de posiciones de la solución
• Se reordenan (se mezclan) aleatoriamente los valores
existentes en las posiciones elegidas (sobre dichas
posiciones)
• Las posiciones elegidas pueden no ser contiguas
Set de posiciones elegidas: {2, 3, 4, 5}
18
Permutaciones: Operadores de Cruce
• Los operadores de cruce normales producen soluciones
inadmisibles
12345
12321
54321
54345
• Se han diseñado diversos operadores de cruce para
permutaciones
– Se centran en combinar la información proveniente de los dos
padres sobre el orden o sobre la adyacencia de los elementos
Permutaciones: Cruce de orden
•
•
La idea central es preservar el orden relativo en el cual
ocurren los elementos
Procedimiento:
1. Elegir dos puntos de cruce al azar
2. Copiar los valores del padre 1 que se encuentran entre los dos
puntos de cruce en el hijo 1
3. Copiar en el hijo 1 los valores que aún no se han incluido en dicho
hijo
1. Comenzar a partir del segundo punto de cruce del padre 2
2. Copiar los valores no incluidos en el hijo 1 respetando el orden en el
cual dichos valores aparecen en el padre 2
3. Al terminar la lista del padre 2, continuar con los primeros valores
de la misma
4. El segundo hijo es creado de manera análoga (pasos 2 y 3)
invirtiendo el rol de los padres
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 )
• Copia los valores no incluidos en el hijo 1 respetando el
orden que ellos tienen en el padre 2 (1, 9, 3, 8, 2)
Permutaciones: Cruce PMX (partially
mapped crossover)
•
Procedimiento para padres P1 y P2
1.
2.
3.
4.
5.
6.
•
Elegir dos puntos de cruce al azar, y copiar los valores del P1
que se encuentran entre los dos puntos de cruce en el hijo 1
Posicionarse en el primer punto de cruce sobre P2, y revisar qué
elementos de P2 (existentes entre los dos puntos de cruce) no
han sido incluidos en el hijo 1
Por cada elemento i de los mencionados, revisar qué elemento j
ha sido copiado en su posición (sobre P2) en el hijo 1
Ubicar i, en el hijo 1, en la posición ocupada por j sobre P2 (esto
es posible de hacer porque j ya ha sido ubicado en el hijo 1)
Si la posición ocupada por j en el P2 ya ha sido llenado en el
hijo 1 por un elemento k, ubicar i en la posición ocupada por k
en P2
Una vez revisados los elementos entre los puntos de cruce, las
posiciones restantes del hijo 1 deben ser llenadas a partir de P2.
El segundo hijo es creado de manera análoga invirtiendo
los roles de los padres
20
Permutaciones: Cruce PMX (ejemplo)
• Paso 1
• Paso 2
• Paso 3
Permutaciones: Cruce basado en ciclos
•
•
•
La idea central es preservar la posición absoluta en la
cual los elementos ocurren
El operador divide a los elementos en ciclos. El hijo es
creado seleccionando, de manera alternada, ciclos de
cada padre
Procedimiento:
1.
Definir un ciclo de valores a partir de P1 en la siguiente forma
1.
2.
3.
4.
5.
2.
3.
Comenzar con el primer valor no usado de P1
Revisar el valor ubicado en la misma posición en P2
Ir a la posición que contiene el mismo valor en P1
Sumar este valor al ciclo
Repetir los pasos 2-4 hasta que se arribe al primer valor de P1
Ubicar los valores del ciclo en el hijo 1 (hijo 2) respetando las
posiciones que ellos tienen en el P1 (P2)
Definir el siguiente ciclo. Ubicar a los valores de este ciclo en el
hijo 1 (hijo 2) respetando las posiciones que ellos tienen en el P2
(P1)
21
Permutaciones: Cruce basado en ciclos
(Ejemplo)
• Paso 1: identificar ciclos
• Paso 2: copiar, alternadamente, los ciclos dentro del hijo
Permutaciones: Cruce basado en arcos
• Este operador se basa sobre la idea de que un hijo
debería ser creado utilizando solamente los arcos
que están presentes en uno o en los dos padres
• Para lograr este objetivo, se construye una tabla de
arcos (listas de adyacencia).
• En dicha tabla, para cada elemento, se indica
cuáles son los elementos adyacentes a él en cada
uno de los padres (el símbolo + indica que un arco
está presente en ambos padres)
22
Permutaciones: Cruce basado en arcos
• Si se tiene a los padres siguientes …
[1 2 3 4 5 6 7 8 9] y [9 3 7 8 2 6 5 1 4]
• Se construye la siguiente tabla
Permutaciones: Cruce basado en arcos
•
Procedimiento (una vez construida la tabla de arcos):
1.
2.
3.
Elegir al azar un elemento y ubicarlo en el hijo
Remover todas las referencias, que existan en la tabla, al
elemento elegido
Examinar la lista de arcos del elemento elegido
•
•
4.
Si existe un arco común (+) a un cierto elemento, elegir a este
último para que sea el siguiente elemento en el hijo
En otro caso, se elige el elemento de la lista que tenga la lista de
arcos más corta
En el caso de alcanzar una lista vacía
–
–
El otro extremo del hijo es examinado por extensión
En otro caso, un nuevo elemento es elegido al azar
23
Permutaciones: Cruce basado en arcos
(Ejemplo)
Cruce Multipadre
• Operadores de cruce con aridad > 2
• Permiten experimentar con esquemas reproductivos que no
existen en la naturaleza
• Estos operadores no son utilizados frecuentemente en CE
• Sin embargo, distintos estudios sobre varios problemas han
mostrado que la utilización de este tipo de operadores tiene
un efecto positivo en muchos casos
• Estos operadores pueden ser categorizados en base al
mecanismo utilizado para combinar la información de los
padres:
– Basado sobre la frecuencia de los alelos (ej. Votación p-sexual,
generalización del cruce uniforme)
– Basado en la segmentación y recombinación de los padres (ej.
Cruce diagonal, generalización del cruce de n puntos)
– Basado en operaciones numéricas sobre alelos reales
(generalización de los operadores de cruce aritmético)
24
Modelos de Población
• Dos de los modelos más conocidos son:
– El modelo generacional
– El modelo steady-state
• Modelo generacional
– La población actual es reemplazada completamente por
los hijos generados a partir de ella
• Modelo steady-state
– Los n peores individuos de la población actual son
reemplazados por los n mejores individuos del conjunto
de hijos generados a partir de la población actual
Competencia basada en fitness
• La competencia basada en fitness ocurre en dos
puntos del ciclo evolutivo
– Cuando se selecciona a los individuos que formarán
parte del mating pool (selección de padres)
– Cuando se selecciona a los individuos de {padres +
hijos} que serán transferidos a la siguiente generación
(selección de sobrevivientes)
• Distinción entre:
– Operadores de selección: definen a las probabilidades
de selección
– Algoritmos de selección: definen cómo se aplican las
probabilidades de selección
25
Ejemplos de algoritmos de selección
• Número esperado de copias de un individuo i
E( ni ) = f (i) / ⟨f ⟩ = (size pop) * f (i) / Sum f (j)
{ f (i) = fitness de i, ⟨f ⟩ = fitness promedio}
• Algoritmo de Rueda de Ruleta
– Considera una distribución de probabilidades dada
( ej: f(i) = f (i) / Sum f (j) )
– La ruleta es girada n veces para realizar n selecciones
Selección Proporcional al Fitness
• Este mecanismo de selección tiene algunos problemas
– Los individuos que son mucho mejores que el resto dominan muy
rápidamente a la población completa (Convergencia Prematura)
– Si los valores de fitness son muy cercanos entre sí, se pierde la
presión selectiva (se obtiene una selección aleatoria casi
uniforme)
– Altamente susceptible a versiones transpuestas de la misma
función de fitness
• El escalamiento puede evitar los últimos dos problemas
(las diferencias entre los valores de fitness son realzadas )
– Windowing: f’(i) = f(i) - β
• β es el peor fitness de la población actual
– Sigma Scaling: f’(i) = max( f(i) – (⟨ f ⟩ - c • σf ), 0.0)
• c es una constante, usualmente 2.0
26
Selección Proporcional al Fitness :
Transposición de la función de fitness
Selección basada en el Ranking
• Intenta eliminar los problemas de la SPF
• Define a las probabilidades de selección en base al
fitness relativo en lugar de hacerlo en base al
fitness absoluto
• Procedimiento:
– Ordena a los individuos de la población en base a sus
valores de fitness (de forma creciente)
• El individuo con mejor fitness tiene la posición más alta
– Luego, asigna a cada individuo una probabilidad de
selección de acuerdo a su posición en el orden (en lugar
de hacerlo de acuerdo a su valor de fitness real)
• Mantiene una presión selectiva constante
27
Selección basada en el Ranking
• Es necesario decidir cómo mapear las posiciones
en el orden (ranking) a probabilidades de
selección
• Los dos enfoques más conocidos son:
– Mapeo Lineal (Linear Ranking)
– Mapeo Exponencial (Exponential Ranking)
Mapeo Lineal
• Parametrizado mediante un factor s (1.0 < s ≤ 2.0)
– Controla la ventaja (en términos de probabilidades) que tienen los
mejores individuos sobre los peores
• Ejemplo (3 individuos):
28
Mapeo Exponencial
• Impone una mayor presión selectiva que el Mapeo Lineal
– Permite obtener una mayor diferencia entre las probabilidades de
los individuos que poseen posiciones cercanas
• El factor de normalización c debe ser elegido de forma que
la suma de las probabilidades sea 1 (se define en función
del tamaño de la población)
Rueda de Ruleta
• Los individuos son ubicados en una rueda de
ruleta
• Cada individuo ocupa un espacio proporcional a
su probabilidad de selección
• La rueda es girada n veces para seleccionar a los n
individuos que conformarán el mating pool
29
Selección por Torneo
• Todos los operadores y algoritmos vistos hasta ahora
requieren conocimiento sobre una distribución de
probabilidades de la población completa
• En algunas situaciones obtener dicho conocimiento
requiere demasiado tiempo o es imposible
– Si el tamaño de la población es muy grande
– Si la población está distribuida (ej.: sistema paralelo)
– Si no existe una función de fitness que pueda asignar a cada
individuo un valor de fitness de forma independiente (ej.:
aplicación que evoluciona estrategias de juego, aplicaciones de
diseño evolutivo, aplicaciones de arte evolutivo)
Selección por Torneo
• La selección por torneo no requiere conocimiento
global sobre la población
• Sólo requiere una política para comparar a dos
individuos dados
• Procedimiento:
– Elegir al azar k individuos de la población, y
seleccionar al mejor de ellos
– Repetir el proceso para seleccionar más individuos
30
Selección por Torneo
• La probabilidad de que un individuo i sea
seleccionado depende de 4 factores:
– La posición o categoría de i en la población
– Tamaño k de la muestra
• Cuanto más grande es k más se incrementa la presión selectiva
– La probabilidad p de que el mejor individuo del torneo
sea seleccionado
• Usualmente p = 1 (torneo determinístico), pero algunas
versiones utilizan p < 1
– Si los individuos son elegidos con o sin reemplazo
• La elección sin reemplazo incrementa la presión selectiva
Selección de Sobrevivientes
• La selección de sobrevivientes también se
denomina reemplazo o reinserción
• Las estrategias de reemplazo son categorizadas de
acuerdo a si ellas discriminan …
– En base a la edad de los individuos
• La población actual es totalmente reemplazada por los hijos de
dicha población (AGS)
• n individuos de la población actual (elegidos al azar) son
reemplazados por n hijos de dicha población (elegidos al azar)
– En base al fitness de los individuos
• Aplicar alguno de los métodos de selección vistos en las
filminas anteriores sobre el conjunto {población actual + hijos
de la población actual} (ej.: Selección por torneo)
31
Dos estrategias basadas en fitness
• Eliminar a los peores
– Steady-state: los n peores individuos de la población
actual son reemplazados por los n mejores hijos de
dicha población
– Puede llevar a una convergencia prematura
• Por este motivo, generalmente es utilizado en combinación con
poblaciones grandes y/o con una política de no permitir
duplicados
• Elitismo
– Es utilizado en combinación con algún esquema de
reemplazo basado en fitness o alguno basado en edad
– Evita perder al mejor individuo obtenido hasta el
momento
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
El problema se define de la siguiente manera:
–
–
–
–
J, es un conjunto de tareas (jobs)
O, es un conjunto de operaciones
M, es un conjunto de máquinas
Able : O → M, define que máquina puede desarrollar una
operación dada
– Pre : O → O, define qué operación debe preceder a una operación
dada
– Dur : O × M → IR, define la duración of o ∈ O sobre m ∈ M
El objetivo es definir un schedule que sea:
– Completo: todas las tareas son ordenadas temporalmente
– Correcto: todas las condiciones definidas por Pre son satisfechas
– Óptimo: la duración total del schedule es mínima
32
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
• Representación: los individuos son permutaciones del
conjunto conformado por las operaciones
• Las permutaciones son decodificadas a schedules por un
procedimiento de decodificación. Procedimiento:
– Toma la primer (siguiente) operación del individuo
– Busca su máquina (se asume que existe sólo una máquina posible
para cada operación)
– Asigna el tiempo de comienzo más temprano posible sobre esta
máquina. Dicho tiempo depende de:
• La ocupación de la máquina
• Las relaciones de precedencia de la operación
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
• El fitness de una permutación es la duración del schedule
correspondiente (la duración debe ser minimizada)
• Operadores de cruce y mutación: utilizar cualquier
operador que sea válido para permutaciones
• Selección de Padres: Rueda de Ruleta sobre la inversa del
fitness
• Selección de Sobrevivientes: Esquema Simple
• Población inicial: definida de manera aleatoria
• Condición de corte: número máximo de schedules
generados
33
Ejemplo de una aplicación basada en AG:
Problema Job Shop Scheduling
Comparación de operadores de cruce
34
Descargar