Introducción a la Computación Evolutiva Primera Clase: Introducción Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación 1 Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación Posicionamiento de la CE • La CE es un área perteneciente a las ciencias de la computación • La CE no es parte de las ciencias biológicas • La CE se inspira en el proceso de evolución natural • Las ciencias biológicas brindan inspiración y terminología • La CE puede ser aplicada en investigación biológica 2 La metáfora de la Computación Evolutiva EVOLUCIÓN RESOLUCIÓN DE PROBLEMAS Ambiente Problema Individuo Solución Candidata Fitness (aptitud) Calidad Fitness → posibilidad de sobrevivir y reproducirse Calidad → posibilidad de ser mantenida y usada como semilla para construir nuevas soluciones candidatas Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación 3 Historia: Los fundadores • 1948, Turing: – Propuso una “búsqueda genética o evolutiva” • 1962, Bremermann: – Realizó experimentos computacionales sobre “optimización mediante evolución y recombinación” • Durante los años ´60, tres implementaciones diferentes de la idea básica fueron desarrolladas en diferentes lugares del mundo Historia: Los fundadores • 1964, Rechenberg (Alemania) – Introduce las “estrategias evolutivas” • 1965, Fogel, Owens y Walsh (USA) – Introducen la “programación evolutiva” • 1975, Holland (USA) – Introduce los “algoritmos genéticos” • Durante 15 años estas áreas se desarrollaron separadamente • Desde principios de los ’90, estas áreas son consideradas como diferentes representantes (“dialectos”) de una misma tecnología que se conoce como Computación Evolutiva • 1992, Koza (USA) – Introduce la “programación genética” 4 Historia: Terminología contemporánea • La terminología contemporánea denota a todo este campo como Computación Evolutiva • Los algoritmos involucrados son denominados como algoritmos evolutivos • Se considera que la CE se divide en subáreas correspondientes a las distintas variantes algorítmicas – – – – Programación Evolutiva Estrategias Evolutivas Algoritmos Genéticos Programación Genética Historia: Desarrollo de la CE • La revisión de las reuniones científicas dedicadas a la CE nos brinda un indicio del pasado y del presente del campo • 1985: primera conferencia internacional (ICGA, International Conference on Genetic Algorithms) • 1999: la ICGA se combinó con la Annual Conference on Genetic Programming para convertirse en la conferencia anual GECCO (Genetic and Evolutionary Computation Conference) 5 Historia: Desarrollo de la CE • 1999: la Annual Conference on Evolutionary Programming (1992) se combinó con la IEEE Conference on Evolutionary Computation (1994) para formar el CEC (Congress on Evolutionary Computation) que ha sido desarrollado anualmente hasta hoy • 1990: primera conferencia internacional en Europa (PPSN, Parallel Problem Solving from Nature) – En un panel de discusión durante el primer PPSN se propuso el nombre de Computación Evolutiva Historia: Desarrollo de la CE • 1993: primera revista científica sobre CE (MIT Press) • 1997: se fundó una red europea de investigación sobre CE denominada EvoNet 6 CE en los comienzos del siglo 21 • Existen 3 conferencias principales sobre EC (CEC, GECCO, y PPSN), y alrededor de 10 más pequeñas • Existen 3 revistas científicas dedicadas exclusivamente a la CE, y muchas otras con un perfil muy cercano • Se estima que más de 1500 artículos referidos a CE han sido publicados hasta 2005 • EvoNet tiene más de 150 institutos miembros • Incontable cantidad de aplicaciones • Incontable cantidad de firmas de consultoría y de I+D Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación 7 Evolución Darwiniana • La teoría de Darwin ofrece una explicación de la diversidad biológica y de sus mecanismos subyacentes • La teoría de Darwin se basa en dos tipos de mecanismos fundamentales – Selección natural (supervivencia de los mejores) – Variaciones fenotípicas entre los miembros de la población (cruzamiento, y mutación) Evolución Darwiniana: Supervivencia de los mejores • Considerando que … – Un ambiente puede alojar sólo a un número limitado de individuos – Los individuos tienen instintos básicos orientados a la reproducción • Luego, algún tipo de selección es inevitable • La selección natural favorece a aquellos individuos que compiten más efectivamente por los recursos dados (a aquellos que mejor se adaptan a las condiciones ambientales) • Este fenómeno es también conocido como supervivencia de los mejores 8 Evolución Darwiniana: La diversidad impulsa el cambio • Características fenotípicas son atributos físicos y de comportamiento de un individuo que determinan su respuesta al ambiente • Cada individuo representa una combinación única de características fenotípicas que es evaluada por el ambiente – Si dicha evaluación es positiva, luego la combinación es propagada vía los hijos del individuo – Si dicha evaluación es negativa, la combinación es descartada mediante la muerte del individuo sin haber tenido hijos Evolución Darwiniana: La diversidad impulsa el cambio • Darwin señala que durante la reproducción ocurren pequeñas variaciones aleatorias “mutaciones” en las características fenotípicas – Mediante estas variaciones, se insertan características fenotípicas inexistentes en la población • Mediante el cruzamiento y la mutación se definen nuevas combinaciones de características fenotípicas que son evaluadas por el ambiente • Las mejores combinaciones de características fenotípicas sobreviven y se reproducen y, de esta manera, progresa la evolución 9 Evolución Darwiniana: Resumen • Una población consiste de un conjunto de individuos diversos • El éxito reproductivo de los individuos depende de cuan bien ellos se adaptan a su ambiente en relación al resto de la población – Los individuos son las “unidades de selección” • A medida que los individuos más exitosos se reproducen (mutaciones ocasionales mediante) se obtienen nuevos individuos. • A medida que el tiempo pasa, existe un cambio en la constitución de la población – La población es la “unidad de evolución” Metáfora de la superficie adaptativa • El proceso evolutivo es bien capturado por esta metáfora • Se considera que una población cuyos individuos tienen n características existe en un espacio n+1 dimensional • La dimensión altura representa al fitness de los individuos: altitudes altas representan a valores altos de fitness • Las otras dimensiones corresponden a características biológicas • Una población es representada como un conjunto de puntos sobre esta superficie – Cada punto representa a un individuo diferente (fenotipo) • Luego, la evolución es el proceso mediante el cual la población (nube de puntos sobre la superficie) avanza a través del tiempo hacia las áreas de mayor altitud 10 Ejemplo con dos características Metáfora de la superficie adaptativa • La relación de la evolución con un proceso de optimización es tan directa como engañosa – Porque la evolución no es un proceso de ascenso unidireccional • Debido a que … – La población tiene un tamaño finito – Se realizan elecciones aleatorias durante los procesos de selección y variación • Es común observar un fenómeno denominado “desvío genético” por el cual – Individuos con altos niveles de aptitud pueden desaparecer de la población – La población puede sufrir una pérdida de variedad respecto a algunas características 11 Metáfora de la superficie adaptativa • Uno de los efectos de este fenómeno es que las poblaciones pueden “descender” las colinas, e ingresar en valles de bajos valores de fitness – Lo cual puede conducir a una convergencia prematura hacia regiones localmente óptimas Genética • La disciplina “genética molecular” ofrece una vista microscópica de la evolución natural – Nos explica como ocurren los procesos por debajo del nivel de los atributos fenotípicos visibles (en particular como ocurre la herencia) • La observación fundamental de la genética es que cada individuo es una entidad dual – Sus propiedades fenotípicas (visibles) son representadas a un nivel genotípico (interno) 12 Genes y Genotipo • El genotipo (ADN) de un individuo codifica su fenotipo – Los genes son las unidades funcionales de herencia que codifican las características fenotípicas • En los sistemas naturales, dicha codificación no es uno a uno – Un gen puede afectar varias características fenotípicas – Una característica fenotípica puede ser determinada por más de un gen • Las variaciones fenotípicas son siempre causadas por variaciones genotípicas – Estas últimas son las consecuencias de mutaciones de genes o recombinación de genes mediante la reproducción sexual • Otra forma de pensar sobre esto es la siguiente … Genes y Genotipo • El genotipo (ADN) contiene toda la información genética necesaria para construir el fenotipo del individuo • El término genoma se refiere a la información genética completa de un ser vivo (existente en su genotipo) la cual define su composición total • Este material genético (todos los genes de un organismo) esta organizado en varios cromosomas – Los cromosomas son secuencias de ADN que codifican a los genes y se encuentran en el núcleo de las células 13 Ejemplo: Homo Sapiens – Existen 46 cromosomas en los seres humanos – Las células del cuerpo humano contienen 23 pares de cromosomas que juntos definen los atributos físicos del individuo Células Reproductivas • Los gametos (células del esperma y del huevo) contienen 23 cromosomas individuales más que 23 pares • Mediante la fusión de tales gametos (durante la fertilización) se combinan los atributos paternos y maternos en el hijo – La célula esperma del padre se fusiona con la célula huevo de la madre, y se genera una célula denominada zigoto 14 Células Reproductivas Célula Esperma del Padre Célula Huevo de la Madre Zigoto (célula de una nueva persona) Células Reproductivas • En el zigoto, cada pareja de cromosomas está formada por una mitad paterna y otra materna • El nuevo organismo se desarrolla a partir del zigoto mediante un proceso llamado ontogenesis – A partir del zigoto se crean todas las células del cuerpo, las cuales contienen la misma información genética que el zigoto 15 Cruzamiento • En computación evolutiva, la combinación de atributos de dos individuos en un hijo es llamada cruzamiento • Es importante notar que dicho cruzamiento no es análogo al proceso de cruzamiento que ocurre en los organismos naturales – La diferencia radica en el momento en que el cruzamiento se desarrolla • En los organismos naturales, el cruzamiento no se desarrolla durante la fusión de los gametos sino que pasa durante la formación de los gametos mediante un proceso llamado meiosis Cruzamiento durante la meiosis • Meiosis es un tipo especial de división de células que asegura que los gametos van a contener sólo una copia de cada cromosoma • Como se mencionó, una célula del cuerpo contiene parejas de cromosomas – Una mitad de la pareja es idéntica a un cromosoma paterno de la célula esperma – La otra mitad es idéntica a un cromosoma materno de la célula huevo • Durante la meiosis ocurre lo siguiente … 16 Cruzamiento durante la meiosis • Las parejas de cromosomas se alinean físicamente y se duplican • Las parejas internas de cromosomas duplicados se enlazan en un punto aleatorio e intercambian sus partes • El resultado es una copia del cromosoma paterno, una copia del cromosoma materno, y dos nuevas combinaciones de material paterno y materno • Esto provee suficiente material genético para formar cuatro gametos diferentes Cruzamiento durante la meiosis • En los nuevos gametos creados el genoma se compone de cromosomas que son: – Idénticos a alguno de los cromosomas padres, ó – Recombinaciones de los cromosomas padres • Los cuatro gametos resultantes son diferentes de los genomas de los padres originales • De esta manera, se facilita la variación genotípica en el hijo 17 Mutación • Es una alteración o cambio en la información genética (genotipo) de un ser vivo – Cualquier cambio en la secuencia del ADN • Por lo tanto, produce un cambio en las características fenotípicas – Desde grandes cambios hasta pequeñas diferencias tan sutiles que es necesario emplear técnicas muy elaboradas para su detección • Se puede transmitir o heredar a la descendencia – En los seres multicelulares, las mutaciones sólo pueden ser heredadas cuando afectan a las células reproductivas • La unidad genética capaz de mutar es el gen que es la unidad de información hereditaria que forma parte del ADN Genética • Uno de los principales dogmas de la genética molecular es que: – La información genotípica es decodificada y se obtienen atributos fenotípicos – Los atributos fenotípicos no pueden influir sobre la información genotípica • Esto refuta las teorías más tempranas (por ej.: la teoría de Lamarck) que aseguraban que los atributos adquiridos durante la vida de un individuo podrían ser pasados a sus hijos vía la herencia 18 Genética • Una consecuencia del dogma mencionado es que los cambios en el material genético de una población … – pueden solamente provenir de variaciones aleatorias y de la selección natural, – y definitivamente no provienen del aprendizaje individual • Es importante entender que … – todas las variaciones (cruzamiento y mutación) ocurren a nivel genotípico, – mientras que la selección ocurre a nivel fenotípico, se basa sobre el desempeño real en un ambiente dado Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación 19 Motivaciones para la CE: parte 1 • El desarrollo de algoritmos es uno de los temas centrales de las ciencias de la computación • En este sentido, la observación de las soluciones de la Naturaleza siempre ha sido una fuente de inspiración para los científicos – La simulación de los “solucionadores naturales de problemas” es una línea dentro de esta disciplina Motivaciones para la CE: parte 1 • Los “solucionadores de problemas” más poderosos de la Naturaleza son: – El cerebro humano (que ha creado infinitas soluciones artificiales hasta hoy) – El proceso evolutivo (que ha creado al cerebro humano) • El diseño de algoritmos basado sobre: – El cerebro humano Æ Neurocomputación – El proceso evolutivo Æ Computación Evolutiva 20 Motivaciones para la CE: parte 2 • Otra motivación puede ser identificada desde una perspectiva técnica • En la segunda mitad del siglo 20, la computación ha generado una gran demanda para automatizar la resolución de problemas • El rango de crecimiento de la capacidad de investigación y desarrollo no ha cubierto todas las necesidades existentes hasta hoy Motivaciones para la CE: parte 2 • Por lo tanto … – El tiempo disponible para el análisis de los problemas y para el diseño de algoritmos específicos ha sido, y sigue siendo, decreciente – Se ha incrementado la complejidad de los problemas a ser resueltos • Estas dos observaciones generan una necesidad urgente de algoritmos robustos que tengan un desempeño satisfactorio – Algoritmos que sean aplicables a un amplio rango de problemas (que no necesiten demasiada adaptación para problemas específicos), y que brinden buenas soluciones (no necesariamente óptimas) en un tiempo aceptable • Algoritmos evolutivos satisfacen la necesidad mencionada 21 Agenda • Posicionamiento de la CE y la metáfora de la CE • Perspectiva histórica • Inspiración biológica – Teoría de evolución Darwiniana – Genética • Motivación para la CE • Que puede hacer la CE? – Ejemplos sobre distintas áreas de aplicación Tipos de problemas abordables por la CE • Existen tres tipos de problemas que pueden ser abordados por enfoques evolutivos: – Problemas de optimización – Problemas de modelamiento – Problemas de simulación • Esta clasificación surge al analizar los problemas desde una perspectiva de análisis de sistemas – Desde esta perspectiva se identifican tres componentes principales de un sistema: entradas, salidas y el modelo interno que conecta a estas dos • En base a la perspectiva mencionada, se pueden distinguir los tipos de problemas mencionados dependiendo de cual de los tres componentes del sistema es desconocido 22 Problemas de optimización • Se conoce el modelo y se tiene una descripción de la salida deseada – La tarea es encontrar la entrada que lleve a dicha salida • Ejs.: – Problema del viajante – Horarios para universidades, hospitales, o “call centers” – Especificaciones de diseño Ejemplo de problemas de optimización: Horarios de las clases Universitarias • Un ejemplo de un problema que ha sido resuelto mediante algoritmos evolutivos es el diseño de los horarios de las clases universitarias • Los eventos en una universidad requieren de un día, un horario, y una sala • La primer tarea de optimización es producir horarios válidos (horarios que no tengan conflictos) – Ejs. de conflictos: • Un estudiante necesita estar en dos lugares a la vez • Una sala ha sido asignada a dos materias diferentes a la misma hora • Esta tarea no es trivial porque la gran mayoría del espacio conformado por todos los horarios posibles está constituida por soluciones inválidas • La segunda tarea es producir horarios válidos que sean óptimos en relación a ciertos objetivos predefinidos que compiten entre sí – Ejs. de objetivos: • Los estudiantes pueden desear no tener más de dos clases seguidas • Los profesores pueden estar más interesados en tener días completos, días libres de clases, para realizar investigación • El espacio de búsqueda asociado a este problema es extremadamente grande 23 Ejemplo de problemas de optimización: Estructura Satelital • Las aplicaciones de CE para optimización de diseños industriales pueden ser ilustradas con el siguiente caso • Se requería diseñar la barra que sostiene la antena de un satélite – Esta construcción conecta el cuerpo del satélite con la antena necesaria para la comunicación • Es esencial que esta barra sea estable (resistente a las vibraciones) – Esto se debe a que en el espacio no existe aire que disminuya las vibraciones lo cual podría romper la construcción completa Ejemplo de problemas de optimización: Estructura Satelital • Esta construcción fue optimizada mediante un algoritmo evolutivo • La estructura obtenida fue 20.000% mejor que las estructuras tradicionales • Pero para las personas la estructura lucía muy extraña – No exhibía simetría – No tenía un diseño intuitivo (el diseño final lucía como un diseño aleatorio) • La asimetría de la estructura le otorgó a esta última un excelente desempeño – Vibraciones son ondas que atraviesan la barra a lo largo de los travesaños. Si los travesaños son de diferentes longitudes, luego estas ondas se encuentran en una fase diferente y se cancelan entre sí. Esta pequeña teoría parece trivial, pero fue necesario tener la solución asimétrica evolucionada para llegar a ella. 24 Ejemplo de problemas de optimización: Estructura Satelital • Este caso ilustra el poder de la evolución como un diseñador – No está limitada: • por convenciones • por consideraciones estéticas • por preferencias superficiales de simetría – Es puramente guiada por la calidad • Por lo tanto, puede proponer soluciones que caen fuera del alcance del pensamiento humano (con sus limitaciones implícitas e inconscientes) Problemas de modelamiento • Se tiene conocimiento sobre conjuntos de entradas y salidas que se corresponden – La tarea es encontrar un modelo que permita obtener la salida correcta para cada entrada conocida • Ejs.: – Problemas abordados en Machine learning – Problemas abordados en Data mining 25 Ejemplo de problemas de modelamiento: Solicitante de préstamos • Las tareas de modelamiento ocurren típicamente en ambientes que son muy ricos en cuanto a datos – Se tienen muchos ejemplos de un cierto evento o fenómeno que no tienen una descripción formal • Un banco puede tener un millón de registros sobre sus clientes – Los registros contienen datos socio-geográficos, un panorama financiero de las hipotecas, préstamos y seguros, detalles del uso de las tarjetas, etc. • En este contexto, es razonable asumir que … – El perfil (hechos y datos conocidos del pasado) está relacionado con el comportamiento (eventos futuros) • Para estimar el futuro comportamiento de un cliente … – Es necesario un modelo que relacione las entradas de un perfil con los patrones de comportamiento conocidos (salidas) – Este modelo tendría capacidad predictiva, y podría ser usado para decidir sobre nuevos solicitantes de préstamos Ejemplo de problemas de modelamiento: Solicitante de préstamos • La CE es una tecnología que ha sido utilizada para diseñar modelos que predicen el comportamiento de pago de nuevos solicitantes – Los modelos de predicción evolucionan a través del tiempo – La calidad de un modelo es determinada por la precisión del modelo sobre datos históricos 26 Problemas de simulación • Se conoce el modelo y las entradas – La tarea es calcular las salidas correspondientes a dichas entradas • En este tipo de problemas, la CE puede ser aplicada para resolver preguntas del tipo “que pasa si …?” en ambientes dinámicos que poseen entidades que están evolucionando • Ejs.: – Problemas en Economía Evolutiva – Problemas en Vida Artificial Ejemplo de problemas de simulación: Evolución de sociedades artificiales • Simulación del comercio, de la competencia económica, etc. para calibrar modelos • Permite optimizar estrategias y políticas • Economía evolutiva – Es un área de investigación muy bien establecida – Se basa sobre la idea de que el juego y los jugadores en el escenario socioeconómico tienen mucho en común con el juego de la vida – El principio de supervivencia de los mejores es también fundamental en el contexto económico – Existen muchas maneras de configurar las variables de un sistema evolutivo con una interpretación socio-económica, y de realizar experimentos de simulación 27 Ejemplo de problemas de simulación: Interpretaciones biológicas • Es interesante desarrollar experimentos de CE para obtener una interpretación biológica de la evolución • Existen dos enfoques en base a los que se desarrollan estos experimentos: – Tratar características biológicas existentes – Tratar características biológicas no existentes Ejemplo de problemas de simulación: Interpretaciones biológicas • Cuando se tratan características biológicas existentes … • Se quiere simular un fenómeno natural conocido • Esto puede estar motivado por : – Una expectativa respecto de que la estrategia natural también funcionará para la resolución algorítmica de problemas – La necesidad de entender si los efectos conocidos en la naturaleza también ocurrirán a nivel algorítmico • Un ejemplo de este tipo de fenómenos es el incesto – Evidencias científicas señalan que el incesto lleva a una degeneración de la población – Distintos estudios pertenecientes al área de CE, muestran que la CE también se beneficia de la prevención del incesto – Esto confirma que los efectos negativos del incesto son inherentes al proceso evolutivo, independientemente del medio en el que se desarrolle este último 28 Ejemplo de problemas de simulación: Interpretaciones biológicas • Cuando se tratan características biológicas no existentes … • Se quiere simular un fenómeno que no existe en la biología, pero que puede ser implementado en una computadora • Un ejemplo de este tipo de fenómenos es la reproducción “multipadre” – Más de dos padres son requeridos para la reproducción – El hijo hereda material genético de cada uno de ellos – Distintos estudios pertenecientes al área de CE, indican que este tipo de reproducción tiene efectos beneficiosos bajo muchas circunstancias diferentes ¿Preguntas? 29