Vous êtes sur la page 1sur 34

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
Selección de Padres Proporcional al Fitness

Selección de Sobrevivientes Todos los hijos reemplazan a


los padres
Característica distintiva 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%
fitness(A) = 3
B
A C fitness(B) = 1
3/6 = 50% 2/6 = 33%
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. 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
2. 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
3. Por cada elemento i de los mencionados, revisar qué elemento j
ha sido copiado en su posición (sobre P2) en el hijo 1
4. 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)
5. 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
6. 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. Comenzar con el primer valor no usado de P1
2. Revisar el valor ubicado en la misma posición en P2
3. Ir a la posición que contiene el mismo valor en P1
4. Sumar este valor al ciclo
5. Repetir los pasos 2-4 hasta que se arribe al primer valor de P1
2. Ubicar los valores del ciclo en el hijo 1 (hijo 2) respetando las
posiciones que ellos tienen en el P1 (P2)
3. 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. Elegir al azar un elemento y ubicarlo en el hijo


2. Remover todas las referencias, que existan en la tabla, al
elemento elegido
3. Examinar la lista de arcos del elemento elegido
• 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
4. 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

Vous aimerez peut-être aussi