Introducción a la computación evolutiva

5

Click here to load reader

Transcript of Introducción a la computación evolutiva

Page 1: Introducción a la computación evolutiva

Introducción a la computación evolutiva: las computadoras aprenden de la naturaleza

Doctor Carlos Artemio Coello Coello Originario de Tonalá, -orgullosamente egresado de la Universidad Autónoma de Chiapas como Ingeniero Civil- hizo la maestría y doctorado en ciencias de la computación en la Universidad Tulane, Estados Unidos. Desde 2001, trabaja en el Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional (CINVESTAV-IPN). El Dr. Coello es pionero en un área de la computación que hoy se conoce como “optimización evolutiva multi-objetivo”, que se enfoca a la solución de problemas con dos o más funciones objetivo usando algoritmos con inspiración biológica. Su trabajo gira en torno al diseño de algoritmos, varios de los cuales se han usado para resolver problemas del mundo real en países como Estados Unidos, Chile y Cuba. Cuenta con más de 335 publicaciones, las cuales reportan a la fecha más de 15,000 citas en Google Scholar (su índice h es de 48). Ha dirigido 56 tesis, varias premiadas. Es editor asociado de 10 revistas internacionales, incluyendo las 2 más importantes de su área y pertenece al comité editorial de 6 revistas más. Es el computólogo más joven (37 años) en haber llegado al nivel 3 del Sistema Nacional de Investigadores (SNI) en el área VII y desde 2010, es Investigador Cinvestav 3F (la categoría más alta posible en el CINVESTAV-IPN). Sólo hay 27 investigadores (de 630 con que cuenta el CINVESTAV-IPN) que ostentan esta categoría y él es el único del área de Tecnología. Por su labor ha merecido muchos premios como el Premio Nacional de Investigación 2007 en “ciencias exactas”; recibió la Medalla al Mérito Científico 2009 de parte de la Asamblea Legislativa del Distrito Federal; Premio Ciudad Capital: Heberto Castillo Martínez–Edición 2011, en Ciencias Básicas, en la categoría científicos y científicas mexicanos de 45 años o menos. En junio pasado se le notificó que es el ganador del 2013 IEEE Kiyo Tomiyasu Award. Recibió el Premio Scopus México 2012, en el área de Ingeniería, convirtiéndose en el primer computólogo en recibir este premio. El Premio Nacional de Ciencias y Artes 2012, en el área de Ciencias Físico-Matemáticas y Naturales se le otorgó el año pasado.

Conferencia: Introducción a la computación evolutiva: las computadoras aprenden de la naturaleza

ANTECEDENTES HISTÓRICOS

Durante muchos años, la teoría más aceptada sobre el origen de las especies fue el creacionismo: Dios creó a todas las especies del planeta de forma separada. Y según esta teoría las especies estaban jerarquizadas de tal manera que el hombre ocupaba el rango superior.

Georges Louis Leclerc fue tal vez el primero en especular que las especies se originaron entre sí, oponiéndose al “creacionismo”.Leclerc no sólo notó las similitudes entre el hombre y los simios, sino que incluso especuló sobre la existencia de un posible ancestro común entre estas 2 especies.

Page 2: Introducción a la computación evolutiva

También especuló que era el ambiente el que influía directamente sobre los organismos para que tuvieran un cambio.

El biólogo Jean-Baptiste Lamarck enunció una teoría sobre la evolución a principios del siglo XIX. En la cual aseguraba que el ambiente da pie a los cambios en los animales. Los aspectos más importantes a tener en cuenta sobre la teoría evolutiva de Lamarck son los siguientes:

1. La evolución de los organismos y no en su origen.2. Que los cambios que sufren los organismos para adaptarse eran heredables.3. Su teoría se oponía claramente al creacionismo.4. En el XX se reivindica el trabajo de Lamarck.

El naturalista Charles Darwin presento el 24 de noviembre de 1858 su teoría sobre el origen de las especies. Entendió que toda población consiste de individuos ligeramente distintos entre sí y que estas pequeñas variaciones hacen que puedan adaptarse y reproducirse. También afirmo que la naturaleza selecciona las especies mejor adaptadas para sobrevivir y reproducirse. A este proceso, Darwin lo denominó “selección natural”.

El científico August Weismann formuló en el siglo XIX una teoría denominada del germoplasma, según la cual la información hereditaria se transmite a través de ciertas células (llamadas germinales), mientras que otras células (llamadas somáticas) no pueden transmitir nada.

August Weismann realizó un experimento en el que cortó las colas de un grupo de ratas durante 22 generaciones (1,592 ratas), sin que las nue-vas generaciones de ratas perdieran dicha extremidad, demostrando entonces la falsedad de la hipótesis fundamental del Lamarckismo.

El monje austriaco Johann Gregor Mendel realizó una serie de experimentos con guisantes durante una buena parte de su vida, enunciando a partir de ellos las leyes básicas que gobiernan la herencia.

Neo-Darwinismo

El pensamiento evolutivo actual gira en torno al Neo-Darwinismo, el cual establece que toda la vida en el planeta puede ser explicada a través de sólo 4 procesos:

• Reproducción• Mutación• Competencia• Selección

Historia de la Computación Evolutiva

La evolución natural ha sido vista como un proceso de aprendizaje desde los 1930s, con el trabajo de Walter B. Cannon. El célebre matemático Alan Turing conoció también una conexión “obvia” entre la evolución y el aprendizaje de máquina en un artículo de 1950.A fines de los 1950s y principios de los 1960s, el biólogo Alexander S. Fraser publicó una serie de trabajos sobre la evolución de sistemas biológicos en una computadora digital, dando la inspiración para lo que después se convertiría en el algoritmo genético.

Page 3: Introducción a la computación evolutiva

Algoritmos Evolutivos

Para simular el proceso evolutivo en una computadora se requiere:• Codificar las estructuras que se replicarán.• Operaciones que afecten a los "individuos".• Una función de aptitud.• Un mecanismo de selección.

Tres son los paradigmas principales que conforman la computación evolutiva:• Programación evolutiva• Estrategias Evolutivas• Algoritmos Genéticos

Lawrence J. Fogel concibió el uso de la evolución simulada en la solución de problemas (sobre todo de predicción) hacia mediados de los 1960s. Su técnica se denominó "Programación Evolutiva".

Peter Bienert, Ingo Rechenberg y Hans Paul Schwefel desarrollaron hacia mediados de los 1960s un método de ajustes discretos aleatorios inspirado en el mecanismo de mutación que ocurre en la naturaleza. Su técnica se denominó "estrategias evolutivas".

John H. Holland desarrolló a principios de los 1960s los "planes reproductivos" y "adaptativos" en un intento por hacer que las computadoras aprendan imitando el proceso de la evolución. Esta técnica sería después conocida mundialmente como el "algoritmo genético". Los algoritmos genéticos (denominados originalmente "planes reproductivos") fueron desarrollados por John H. Holland a principios de los1960s. Su motivación principal fue el aprendizaje de máquina.El algoritmo genético enfatiza la importancia de la cruza sexual (operador principal) sobre el de la mutación (operador secundario), y usa selección probabilística (los menos aptos tienen alguna oportunidad de sobrevivir).

Nichael Lynn Cramer (1985) y posteriormente, John R. Koza (1989) propusieron (de forma independiente) el uso de una representación de ´árbol en la que se implementó un operador de cruza para intercambiar sub árboles entre los diferentes programas de una población generada al azar (con ciertas restricciones impuestas por la sintaxis del lenguaje de programación utilizado).

Ventajas de los algoritmos evolutivos

• Simplicidad conceptual• Fáciles de paralelizar• Amplia aplicabilidad • Superiores a las técnicas tradicionales en muchos problemas del mundo real

Aplicaciones interesantes

• Diseño de antenas• Diseño automatizado de robots• Aprendiendo a caminar• Optimización de trayectorias • Japan aerospace exploration agency (JAXA)