Introducción a la Computación Evolutiva Segunda Clase: Algoritmos Evolutivos Agenda • Resumen sobre la Metáfora Evolutiva • Esquema Básico de un Algoritmo Evolutivo (AE) • Componentes Básicos – – – – – – – – Representación Evaluación Población Selección de Padres Cruzamiento Mutación Selección de Sobrevivientes Condición de Terminación Agenda • Ejemplo: Problema del Viajante • Aspectos generales sobre el comportamiento típico de los AEs • Relación de la CE con otras técnicas de optimización global 1 Resumen sobre la metáfora de la CE • Una población de individuos existe en un ambiente con recursos limitados • La competencia por dichos recursos provoca la selección de los individuos mejor adaptados al ambiente • Estos individuos actúan como semillas para la generación de nuevos individuos mediante el cruzamiento y la mutación • Los nuevos individuos compiten (posiblemente también con los padres) por sobrevivir • A lo largo del tiempo la Selección Natural causa un incremento en el fitness de la población Resumen sobre la metáfora de la CE • Los AEs caen dentro de la categoría de algoritmos denominada “generar y testear” • Ellos son algoritmos estocásticos basados en población • Los operadores de variación (cruzamiento y mutación) crean la diversidad necesaria para la evolución (generan individuos novedosos) • Selección reduce la diversidad y actúa como una fuerza que empuja hacia la calidad Esquema general de un AE 2 Seudo-código típico de un AE Diferentes tipos de AEs • Históricamente, la representación de las soluciones candidatas ha sido utilizada para clasificar a los AEs – – – – Strings binarios: Algoritmos Genéticos Vectores de valores reales: Estrategias de Evolución Máquinas de estado finito: Programación Evolutiva Árboles sintácticos: Programación Genética • La mejor estrategia es … – Elegir la representación que mejor se ajuste al problema – Elegir los operadores de variación que mejor se ajusten a la representación • Los operadores de selección sólo usan el fitness de las soluciones y, por lo tanto, son independientes de la representación Componentes de los AEs • Los AEs tienen un número de componentes, procedimientos, u operadores que deben ser especificados si se pretende definir un AE particular • Los componentes más importantes son: – – – – – – – – Representación (definición de los individuos) Función de Evaluación (función de fitness) Población Mecanismo de Selección de padres Operadores de variación (cruzamiento y mutación) Mecanismo de Selección de los sobrevivientes (reinserción) Procedimiento de inicialización Condición de terminación 3 Representaciones • Las soluciones candidatas (individuos) existen en un espacio fenotípico • Ellas son codificadas como cromosomas. Los cromosomas existen en un espacio genotípico – Codificación: fenotipo → genotipo (no necesariamente uno a uno) – Decodificación: genotipo → fenotipo (debe ser uno a uno) • Cromosomas contienen genes. Los genes se encuentran en posiciones llamadas locus (usualmente prefijadas) y toman un valor (alelo) de varios valores posibles • Para encontrar la solución óptima global, cada solución posible debe ser representada en el espacio genotípico – El proceso evolutivo se desarrolla sobre el espacio genotípico Función de Evaluación (Fitness) • Representa los requerimientos a los cuales la población debería adaptarse • Otras formas de llamarla: función de calidad o función objetivo • Asigna un valor a cada genotipo. Estos valores conforman la base para el proceso de selección – Por lo tanto, cuanto más discriminación (valores diferentes) exista más útiles son estos valores para la selección • Típicamente, se considera que la función de fitness es una función que debe ser maximizada – Sin embargo, algunos problemas requieren minimizar la función de fitness (problemas de minimización) – De todas maneras, es trivial convertir un problema de minimización en un problema de maximización Población • Contiene (representaciones de) posibles soluciones • Usualmente tiene un tamaño prefijado y es un “multiset” de genotipos • Algunos AEs sofisticados también requieren que la población tenga una estructura espacial • Los operadores de selección tienen en cuenta a la población actual completa (las probabilidades reproductivas son relativas a la generación actual) • La diversidad de una población se refiere al número de soluciones diferentes que existe en ella – La diversidad se puede referir al número de diferentes valores de fitness, de diferentes fenotipos, o de diferentes genotipos que existe en la población 4 Mecanismo de Selección de Padres • Define las probabilidades de que los individuos actúen como padres de la siguiente generación. Dichas probabilidades se basan en los valores de fitness de los individuos • La selección es usualmente probabilística – Las soluciones de alta calidad tienen más chances de transformarse en padres que las soluciones de baja calidad – Sin embargo, aún la peor solución en la población actual tiene usualmente alguna chance de transformarse en padre • La naturaleza estocástica de este mecanismo ayuda a escapar de los óptimos locales Operadores de Variación • El rol de estos operadores es generar nuevas soluciones candidatas • Usualmente se dividen en dos tipos de acuerdo a su aridad (número de entradas): – Aridad = 1: operadores de mutación – Aridad > 1: operadores de recombinación • Aridad = 2: operadores de cruzamiento • Se ha debatido mucho acerca de la importancia relativa de la recombinación y de la mutación – Actualmente, la mayoría de los AEs usan ambas – La elección de los operadores de variación específicos a utilizar es dependiente de la representación Mutación • Actúa sobre un genotipo y produce otro • La aleatoriedad de este operador es esencial y diferencia a la mutación de otros operadores heurísticos unarios • La importancia que se le asigna a la mutación depende del tipo de AE y de la representación – AGs binarios: es el operador responsable de preservar e introducir diversidad – PE mediante MEF: único operador de búsqueda – PG: generalmente no es utilizada 5 Mutación • Es importante considerar que los operadores de variación implementan los “pasos” dentro del espacio de búsqueda – La generación de un hijo permite alcanzar un nuevo punto en este espacio • Desde esta perspectiva, la mutación tiene un rol teórico, ésta puede garantizar que el espacio de búsqueda está conectado – Esto es importante porque los teoremas que establecen que un AE descubrirá el óptimo global de un problema dado se basan sobre la propiedad de que cada genotipo que representa a una solución posible puede ser alcanzado mediante los operadores de variación – La forma más simple de satisfacer esta condición es permitir al operador de mutación “saltar” a cualquier lugar • Por ej.: permitir que cualquier alelo pueda ser mutado por cualquier otro alelo con una probabilidad distinta de cero Recombinación • Combina la información de los padres para conformar hijos (nuevos individuos) • Es un operador estocástico – Se decide aleatoriamente qué partes de cada padre deben ser combinadas y la forma en que estas partes deben ser combinadas • El principio sobre el cual se basa la recombinación es el siguiente – Aparear individuos con diferentes atributos deseables puede producir hijos que combinan dichos atributos • Este principio ha sido usado durante miles de años por criadores de ganado y de plantas Recombinación • Los AEs … – Crean un número de hijos mediante la recombinación basada en el azar – Aceptan que algunos de dichos hijos tendrán combinaciones indeseables de características • La mayoría de los hijos pueden ser peores o iguales a sus padres – Esperan que algunos de los hijos tengan características o combinaciones de características mejores que la de sus padres • En los AEs, los operadores de recombinación son aplicados probabilísticamente • Los operadores de recombinación son dependientes de la representación 6 Selección de los sobrevivientes • Este mecanismo también se conoce como Reinserción o Sustitución • La mayoría de los AEs usa un tamaño de población prefijado (tamaño constante) – Entonces es necesario decidir qué individuos del conjunto (padres + hijos) conformarán la población de la siguiente generación • Este mecanismo es determinístico – Basado en el fitness: se ordena a los individuos del conjunto (padres + hijos) y se selecciona a los mejores – Basado en edad: se crea una cantidad de hijos igual a la cantidad de padres existente, y se selecciona sólo a los hijos (los padres son eliminados y los hijos reemplazan totalmente a los padres) – Combinación de los enfoques anteriores (elitismo) Inicialización / Terminación • Inicialización: usualmente la primera población está conformada por individuos generados aleatoriamente – Es necesario asegurar que todos los posibles valores de alelos serán generados y combinados de una manera equilibrada – Se pueden considerar soluciones existentes, o utilizar heurísticas específicas del problema, para componer la población inicial • Terminación: la condición de terminación es chequeada en cada generación – – – – Alcanzar algún valor de fitness conocido Alcanzar un número máximo de generaciones Alcanzar un nivel mínimo de diversidad en la población Detectar que, durante un período de tiempo dado (ej.: número de generaciones), la mejora del fitness permanece bajo un valor de umbral dado Ejemplo: Problema del Viajante 1 2 8 3 7 6 5 4 Encontrar un camino de mínima longitud que visite todas las ciudades – Cada ciudad sólo puede ser visitada una vez – Es necesario retornar a la ciudad de partida 7 Problema del Viajante: Representación 1 2 8 Fenotipo: Un camino en el mapa 3 7 6 Genotipo: Una permutación de los números 1-8 4 5 Mapeo 1 2 3 4 7 5 6 8 Problema del Viajante: Evaluación del Fitness • Se debe minimizar la longitud del camino • Fitness de un camino: – 1/ (longitud del camino) – este fitness debe ser maximizado Problema del Viajante: Mutación • Pequeña variación en una permutación – Intercambiar valores de dos posiciones elegidas aleatoriamente 1 3 5 2 6 4 7 8 1 3 7 2 6 4 5 8 8 Problema del Viajante: Cruzamiento • Combinar dos permutaciones para formar dos nuevas permutaciones: – Elegir un punto de cruce c al azar (1≤ c < N) – Para generar el hijo 1 • Copiar los primeros c valores del padre 1 en las primeras c posiciones del hijo 1 • Los N-c valores restantes del padre 1, son insertados en el hijo 1 respetando el orden relativo que ellos tienen en el padre 2 – Para generar el hijo 2, se utiliza el mismo proceso que para generar el hijo 1 pero se invierte el rol de los padres Padre 1 Padre 2 1 3 5 2 6 4 7 8 8 7 6 5 4 3 2 1 8, 7, 6, 4, 2 1 3 5 8 7 6 4 2 8 7 6 1 3 5 2 4 Hijo 1 Hijo 2 1, 3, 5, 2, 4 Problema del Viajante: Selección • Selección de Padres: – Selección por Torneo: • Para conformar una pareja de padres a partir de la población actual: – Se eligen al azar dos individuos de la población – Se toma al mejor de los dos individuos (primer integrante de la pareja) – Se eligen al azar dos individuos de la población – Se toma al mejor de los dos individuos (segundo integrante de la pareja) Problema del Viajante: Selección • Selección de los sobrevivientes (Reinserción) – Steady-State: • Se ordena a los individuos de la población actual (padres) en base a sus valores de fitness • Se ordena a los hijos de la población actual en base a sus valores de fitness • Se reemplaza a los n peores individuos de la población actual por los n mejores hijos generados • n es un parámetro cuyo valor debe ser predefinido 9 Problema del Viajante: Resumen Representación Permutaciones Cruzamiento Cruzamiento de un punto para permutaciones Probabilidad de Cruzamiento 100% Mutación Intercambio de valores entre 2 posiciones Probabilidad de Mutación 5% Selección de Padres Selección por Torneo Selección de Sobrevivientes Steady State Tamaño de la Población 100 Inicialización Aleatoria Condición de Terminación Producción de 1000 generaciones Notar que éste es sólo un conjunto posible de opciones de operadores y parámetros Comportamiento típico de un AE Fases de la búsqueda evolutiva sobre una superficie de fitness unidimensional (función objetivo uni-dimensional a ser maximizada) Fase temprana: Distribución aleatoria de la población Fase media: La población se ubica sobre las pendientes de las colinas Fase final: La población se concentra sobre los picos de las colinas Comportamiento típico de un AE • En principio, es posible que la población “escale la colina errónea”, y todos los individuos se posicionen alrededor de un óptimo local pero no global • Las distintas fases de búsqueda son categorizadas en términos de: – Exploración (generación de nuevos individuos en regiones no visitadas del espacio de búsqueda) – Explotación (concentración de la búsqueda en la vecindad de buenas soluciones conocidas) • Los procesos de búsqueda evolutivos son vistos como un “trade-off” entre exploración y explotación – Demasiada exploración: lleva a una búsqueda ineficiente – Demasiada explotación: se focaliza la búsqueda demasiado rápidamente • Convergencia Prematura: efecto de perder la diversidad existente en la población demasiado rápidamente y quedar atrapado en un óptimo local 10 Best fitness in population Ejecución típica de un AE: progresión del fitness Time (number of generations) Progreso de un AE ilustrado en términos del mejor fitness (función objetivo a ser maximizada) de la población en relación al tiempo Best fitness in population ¿Son beneficiosas las ejecuciones prolongadas? Progress in 2nd half Progress in 1st half Time (number of generations) Respuesta: • Depende de cuán importante es la última parte del progreso • Puede ser mejor desarrollar ejecuciones más cortas Best fitness in population ¿Vale la pena desarrollar una inicialización inteligente de la población? F F: fitness after smart initialisation T: time needed to reach level F after random initialisation T Time (number of generations) Respuesta: Depende … • posiblemente si, cuando existen buenas soluciones/métodos • generalmente no, cuando no existen buenas soluciones/métodos 11 Comportamiento de un AE: Perspectiva Global • Se considera el desempeño de los AEs sobre un amplio rango de problemas – En lugar de observar las características de una ejecución típica de este tipo de algoritmos • Durante los ’80, Goldberg posicionó a los AEs en el contexto de los métodos automáticos de resolución de problemas – Comparó el desempeño de los AEs sobre un amplio rango de problemas con el desempeño de los: • Métodos de búsqueda aleatoria • Algoritmos especialmente diseñados para un tipo específico de problemas Comportamiento de un AE: Perspectiva Global • Los AEs son considerados como herramientas robustas de resolución de problemas – Proveen un buen nivel de desempeño sobre un amplio rango de problemas • Los AEs superan a los métodos de búsqueda aleatoria • Un algoritmo diseñado especialmente para un tipo de problemas dado: – Se desempeña mucho mejor que un AE, pero solamente sobre el tipo de problemas para el que fue diseñado – En este sentido, los AEs y los algoritmos especialmente diseñados para un tipo de problemas dado son dos extremos antagónicos • Esta percepción ha jugado un rol importante en el posicionamiento de los AEs Performance of methods on problems Comportamiento de un AE : Visión de Goldberg (1989) Special, problem tailored method Evolutionary algorithm Random search Scale of “all” problems 12 Comportamiento de un AE : Visión contemporánea • La visión de Goldberg cambió gradualmente durante los años ’90 – Debido a nuevas ideas provenientes de la práctica y de la teoría • La visión contemporánea reconoce la posibilidad de combinar los dos extremos (AEs y algoritmos especialmente diseñados para un tipo de problemas dado) dentro de un algoritmo híbrido Comportamiento de un AE : AEs y conocimiento del dominio • Durante los años ’90, la tendencia fue: – Agregar conocimiento específico del problema a los AEs (operadores especiales de variación, operadores de reparación, etc.) • El resultado fue una “deformación” en la curva de desempeño de los AEs: – El mejor sobre problemas del tipo dado – El peor sobre problemas diferentes a los del tipo dado – La cantidad de conocimiento agregado es variable Comportamiento de un AE : Visión de Michalewicz (1996) Performance of methods on problems EA 4 EA 2 EA 3 EA 1 P Scale of “all” problems 13 CE y Optimización Global • Los AEs son muy utilizados para resolver problemas de optimización • Optimización Global: encontrar la mejor solución x* de un conjunto de soluciones posibles S • Los AEs no son las únicas técnicas de optimización conocidas • En general, las técnicas de optimización se clasifican como: – Técnicas Determinísticas – Técnicas Heurísticas CE y Optimización Global • Enfoques Determinísticos – Garantizan encontrar x* (solución óptima global) – En general, requieren un tiempo de ejecución exponencial – Ejs. de métodos determinísticos: enumeración, y “branch and bound” • Enfoques Heurísticos (generar y testear) – No garantizan el hallazgo de las soluciones óptimas globales – Pueden ser vistos como conjuntos de reglas en base a las cuales se decide qué solución x ∈ S debería ser generada y testeada a continuación – Ejs. de métodos heurísticos: AEs y “simulated annealing” CE y Optimización Global • Muchas heurísticas se basan sobre la idea de utilizar operadores que imponen algún tipo de estructura sobre los elementos de S – De tal manera que cada punto x tiene asociado un conjunto de vecinos N(x) • Los algoritmos de búsqueda local, y todas sus variantes, pertenecen a este tipo de heurísticas • Dichos algoritmos garantizan que el mejor punto encontrado es localmente óptimo – Óptimo Local: solución superior a todas aquellas existentes en su vecindario – Generalmente son muy rápidos para identificar buenas soluciones – La desventaja es que los problemas generalmente poseen numerosos óptimos locales • Algunos de los cuales pueden ser significativamente peores que el óptimo global • Dichos óptimos pueden ser ofrecidos como la solución encontrada 14 CE y Optimización Global • Los AEs se distinguen de los algoritmos de búsqueda local por los siguientes atributos: – Utilizan una población – Utilizan múltiples operadores estocásticos de búsqueda • Especialmente, operadores de variación con una aridad >1 • Selección estocástica • La población le brinda al AE una manera de definir una función de distribución de probabilidades no uniforme – Esta función dirige la generación de nuevos puntos pertenecientes aS – Esta función refleja interacciones existentes entre los puntos de una población • Dichas interacciones provienen de la recombinación de dos o más miembros de la población • La habilidad de los AEs de mantener un conjunto de puntos distintos le provee una forma de escapar de un óptimo local 15