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