La Singularidad Desnuda

Un universo impredecible de pensamientos y cavilaciones sobre ciencia, tecnología y otros conundros

Archive for the ‘Computación Evolutiva’ Category

Cooking + Genetic Algorithms = Evolutionary Recipe Programming

Posted by Carlos en marzo 31, 2010

Que los algoritmos genéticos no se echan a temblar cuando los arrojas a explorar un espacio de búsqueda complejo es bien sabido. Claro que también es cierto que su rendimiento final dependerá de cómo de bien hayamos incorporado en el algoritmo el conocimiento que del problema tenemos a priori, tal como el celebérrimo Teorema de No Free Lunch (NFLT) nos explica. Y qué mejor ilustración del NFLT que la aplicación de algoritmos genéticos a la generación de recetas de cocina.

Quizás en este caso sería más apropiado hablar del Teorema de No Free Tasteful Lunch, innovación teórica por la que hay que darle las gracias a Randall. Por otra parte, sabemos que el NFLT no necesariamente se cumple en subconjuntos arbitrarios de funciones (así que en realidad puede haber al menos un aperitivo gratis). No está clara la situación en relación a esto para la clase de funciones definida por los gustos culinarios de un conjunto finito de personas…

Posted in Comic, Computación Evolutiva, Gastronomía | Etiquetado: , , | 2 Comments »

Realidad Virtual y Vida Artificial: de la Biomecánica a la Inteligencia

Posted by Carlos en julio 14, 2009

Las charlas plenarias de las conferencias suelen navegar por la procelosa frontera que separa el tema central de la reunión con otros temas relacionados (y en ocasiones transcurren directamente al otro lado de la frontera). Suele ser una buena política, ya que en las zonas de confluencia las cosas se ponen divertidas, y de hecho este ha sido el caso de la primera de las charlas invitadas que hemos disfrutado. El orador era Demitri Terzopoulos, que estuvo involucrado en los comités de programa de estos saraos tiempo ha pero que nunca ha llegado a aplicar computación evolutiva a su área de trabajo. Era pues un gran desconocido a priori para el grueso de la audiencia -salvedad hecha de los que trabajan en visión por computador- a pesar de tener un currículo investigador talla XXL, y hay que decir que después de su charla los allí presentes recordaremos bien su nombre, pues fue una hora y media extremadamente interesante y entretenida.

El título de su charla fue “Artificial Life Simulation of Humans and Lower Animals: From Biomechanics to Intelligence”, y durante la misma intentó explicarnos algunas de las claves de la emergente fusión entre realidad virtual y vida artificial, cuyo objetivo final es la construcción de agentes biomiméticos autónomos. En sus diapositivas iniciales nos mostró lo que no es uno de dichos agentes, como por ejemplo los dinosaurios de Parque Jurásico, o los protagonistas de Toy Story por citar un par de ejemplos. Las cosas empezaron a calentarse un poco con los ejércitos de El Señor de los Anillos, que podríamos englobar dentro de la categoría de enjambres (animar manualmente cada uno de los miles de personajes en el ejercito es inasumible, por lo que cada uno de ellos está dotado de un sistema simple basado en reglas para determinar su comportamiento). En este punto fue donde nos presentó los diferentes niveles en los que hay que intervenir para construir un sistema biomimético autónomo, y que se organizan jerárquicamente como sigue:

Niveles para la simulación de un sistema biomimético. Credit: Demitri Terzopoulos

Niveles para la simulación de un sistema biomimético. Credit: Demitri Terzopoulos

La ilustración inicial de estas ideas corrió a cargo de una fauna submarina sintética que el propio Demitri desarrolló con sus colaboradores. El nivel más bajo de la jerarquía estaba definido en este caso por un armazón de cada uno de los peces, construido a partir de partículas unidas mediante una combinación de muelle y amortiguador. Algunos de los segmentos del pez hacen las veces de músculos, y en ellos la longitud natural del muelle puede modificarse a voluntad. El modelo resultante queda descrito por una colección de ecuaciones diferenciales que determinan la respuesta dinámica al movimiento del pez en el medio líquido. La locomoción del pez se optimizó mediante una técnica de búsqueda local (no entró en muchos detalles al respecto) para que resultara en el movimiento más fluido y energéticamente económico. En este punto, el movimiento de natación de peces y morenas resultante era extremadamente realista.

Para simular la percepción, los peces estaban dotados de sensores visuales que permitían cubrir un cierto ángulo en la dirección de orientación de la criatura. La información así obtenida era procesada según técnicas estándar de visión por computador, para proporcionar la entrada al siguiente nivel, el comportamiento. Éste es esencialmente reactivo, y está determinado por una red neuronal que determina la acción correspondiente a un determinado estímulo. Para la simulación de los animales marinos se incluyó un registro de memoria con capacidad unidad. Esto permite que el animal desarrolle un comportamiento básico -seguir un objeto, alimentarse, ..- que pueda ser interrumpido cuando por ejemplo se entre en modo huida al detectar un depredador, y luego reanudado cuando cese el peligro.

En el ejemplo del mundo submarino no había mucho lugar para el nivel más alto de la pirámide y que entronca plenamente con la inteligencia artificial. En el siguiente ejemplo que abordó -seres humanos sintéticos- sí que era más relevante, aunque no entró en él. Sí describió unos modelos muy interesantes relativos a la simulación de rostros humanos (quien haya visto Final Fantasy recordará el fotorrealismo de algunos de los personajes). Los niveles más bajos de la pirámide se abordan de la misma manera que en el caso de los peces, aunque más arriba se introduce un elemento más interesante: redes bayesianas para la determinación del comportamiento. Resultaba curioso ver cómo un rostro humano sintético era capaz de reaccionar a estímulos visuales, siguiendo la trayectoria de un objeto o mostrando enfado o satisfacción dependiendo de su patrón de movimiento.

La charla terminó con algunas ideas sobre lo que podemos esperar en el futuro. Alguien planteó si quizás en algunos años una versión virtual de Demitri podría dar esa misma charla ante una audiencia igualmente virtual. Él estuvo de acuerdo en que eso será factible, aunque no cree vivir para verlo (hay que decir que no es muy mayor, cuarenta y tantos según mi ojo de buen cubero). Yo soy sin embargo más optimista que él.

Posted in Aprendizaje Automático, Computación Evolutiva, Inteligencia Artificial, Vida Artificial | Etiquetado: , , , , | 6 Comments »

Evolución de Algoritmos Cuánticos

Posted by Carlos en julio 10, 2009

Una de sesiones más interesantes de lo que llevamos de conferencia ha sido la referida a evolución de algoritmos cuánticos. El ponente de la misma ha sido Lee Spector (uno de cuyos trabajos sobre inteligencia artificial comentamos aquí in ilo tempore), y durante aproximadamente 2 horas nos desgranó un tutorial sobre algoritmos cuánticos que desembocó en la interrelación de los mismos con la programación genética. Antes de llegar a este último punto, comenzamos recordando uno de los experimentos más clásicos (y no por ello menos sorprendente) de la mecánica cuántica, esto es, el interferómetro de Mach-Zehnder.

Interferómetro de MAch-Zender (credit: Danielmader)

Interferómetro de Mach-Zender (credit: Danielmader)

En este experimento se emplean dos espejos semi-reflectantes (abajo a la izquierda, y arriba a la derecha) que con una probabilidad del 50% dejan pasar un fotón incidente o lo reflejan en dirección perpendicular. La intuición clásica indica que dado que hay dos bifurcaciones, cada una de las cuales es equiprobable, un fotón tendría un 50% de probabilidades de llegar al segundo espejo semi-reflectante por el camino superior y un 50% de hacerlo por el camino inferior. Una vez en el mismo, tendría un 50% de probabilidades de ser reflejado y un 50% de atravesarlo. Sumando el 25% de probabilidad de que el fotón llegue por el camino superior y se refleje y el 25% de que llegue por el camino inferior y atraviese el espejo, llegamos a que un 50% de los fotones llegarían al detector 2. Sin embargo, esta intuición no es correcta ya que la realidad indica que el 100% de los fotones llegan al detector 1. Esto es debido a que al ser reflejado un fotón se produce un cambio de fase de media longitud de onda en el mismo. De resultas del mismo se produce una interferencia destructiva al superponer los estados que desembocan en el detector 2, por lo que ningún fotón puede llegar al mismo. La única posibilidad factible son los caminos que llevan al detector 1.

Este experimento admite una vuelta de tuerca muy interesante: imaginemos que tenemos bombas cuya espoleta se activa en el momento que detectan un fotón. Dada una de estas bombas, podemos saber si funciona correctamente (o por el contrario es defectuosa) simplemente exponiéndola a la luz, aunque obviamente esto conduciría a la pérdida de todas las bombas plenamente funcionales. Un procedimiento más astuto hace uso del montaje anterior, y da lugar a lo que se conoce como comprobador de bombas de Elitzur-Vaidman. Básicamente, sustituimos el reflector inferior derecho por la bomba. Ahora, si la bomba es defectuosa se comportará como un espejo y el sistema será equivalente al anterior, es decir, todos los fotones llegarán al detector 1. Sin embargo, si la bomba funciona correctamente el fotón no puede seguir en estado superpuesto camino superior/camino inferior, ya que la explosión de la bomba supone un proceso de medida, y la función de onda debe colapsar a uno de los dos estados. Por lo tanto, puede pasar que la bomba explote (si el estado al que el fotón colapsa es el camino inferior), o que no lo haga (si el estado es el camino superior). En este segundo caso, al llegar al segundo espejo semi-reflectante no se produce interferencia destructiva, y hay un 50%-50% de posibilidades de que llegue a un detector o al otro. Si llega al detector 2 estamos seguros de que la bomba es buena. En otro caso hay que repetir el experimento hasta que eventualmente la bomba explote, el fotón llegue al detector 2, o tengamos una certeza razonable de que la probabilidad de que la bomba sea defectuosa es despreciable.

Dándole otra vuelta más de tuerca al sistema, podemos sustituir la bomba por un computador que ejecutará un algoritmo y producirá o no un fotón de salida. Nuevamente, inspeccionando los detectores podemos determinar cuál sería la salida del algoritmo, sin necesariamente ejecutarlo. Este montaje fue propuesto por Onus Hosten et al. en un artículo titulado

publicado en Nature (véase también este comunicado de prensa). Toda esta discusión constituyó un punto de entrada para ilustrar el concepto de superposición de estados y -tras una breve disgresión sobre la mente humana, la consciencia y su computabilidad- entrar en la noción de qubits y puertas lógicas cuánticas.Estas últimas las vimos a través de su notación matricial. Por ejemplo, si tenemos un qubit con valor \alpha|0\rangle + \beta|1\rangle, la siguiente matriz representa un NOT:

\left(\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array} \right)

ya que al multiplicarla por el vector columna (\alpha,\beta) obtenemos el vector columna (\beta,\alpha) (puede verse por ejemplo que en el caso clásico en el que \alpha=1, \beta=0 o viceversa se obtiene el resultado complementario). Más interesante es la puerta lógica SNR (square root of NOT):

1/\sqrt{2}\left(\begin{array}{cc} 1 & -1 \\ 1 & 1 \end{array} \right)

Al aplicarla una vez a un qubit que es 1 ó 0 se obtiene una suerte de aleatorización, ya que se pasa a un estado de superposición equiprobable entre ambos valores. Al aplicarla por segunda vez, se obtiene sin embargo el complemento:

\left(\begin{array}{c} 1 \\ 0 \end{array} \right) \Rightarrow \left(\begin{array}{c} 1/\sqrt{2} \\ 1/\sqrt{2} \end{array} \right) \Rightarrow \left(\begin{array}{c} 0 \\ 1 \end{array} \right).

Una de las posibilidades para la aplicación de técnicas de programación genética es tratar de buscar puertas cuánticas ad hoc, mediante la evolución de las matriz que la define. Yendo más allá, se puede pensar en programación genética para combinar puertas lógicas preexistentes y obtener un circuito que desarrolla un cierto propósito buscado. Un ejemplo de esto nos lo dio con un trabajo (que hay que decir ya tiene unos años) en el que se consiguió una solución nueva y eficiente a un problema simple (pero por algo hay que empezar). El trabajo en cuestión es

del propio Lee Spector et al., y que apareció en las actas del CEC 1999. Otras líneas de desarrollo apuntan a la construcción de algoritmos híbridos que combinan elementos clásicos con elementos cuánticos. Un área apasionante sin duda.

Posted in Computación Evolutiva, Física | Etiquetado: , , | Comentarios desactivados

Montreal, nous sommes ici!

Posted by Carlos en julio 8, 2009

Este año la “Gran Cosa Científica” (Prof. Frink dixit) del área de la computación ev olutiva tiene lugar en Montreal (Quebec, Canadá), y para allá que hemos liado el petate y agarrado un avión.

Rue Saint Antoine

El verano por estos lares es como los programas culturales en televisión: todo el mundo ha oído hablar de ellos, pero pocos los disfrutan. Unos suaves 15C y una menos suave lluvia nos ha recibido a nuestra llegada. La sede del congreso está en un lugar céntrico, y desde el que se puede dar una pequeño e interesante paseo.

Notre Dame of Montreal

En cuanto el ritmo de sesiones lo permita, intentaremos seguir explorando le Vieux-Montreal. Stay tuned…

Posted in Computación Evolutiva, Lugares, Viajar | Etiquetado: , , , | 5 Comments »

Jugando con Darwin a la Evolución – ¿Quién quiere vivir un millón de años?

Posted by Carlos en enero 13, 2009

En este año 2009 se cumple el segundo centenario del nacimiento de Charles Darwin, y el 150º aniversario de la publicación de su obra “El Origen de las Especies“. Con motivo de esta efemérides, la Unión Internacional de Historia y Filosofía de la Ciencia ha declarado este año el “Año Mundial de la Biología”, y la Unión Internacional de Ciencias Biológicas lo ha declarado el “Año de Darwin”. Hay varias webs en las que se recopila información sobre (aquí, aquí y aquí, por ejemplo). 

Glosar la contribución de Darwin a la biología en particular y a la ciencia en general es a estas alturas innecesario, a pesar de que por motivos ideológicos haya aún quién intenta negar lo evidente. En cualquier caso, no está de más resaltar una vez más la belleza y elegancia del proceso evolutivo, ya tenga lugar a nivel biológico, cultural, o computacional. Precisamente en relación a esto último, puede ser divertido dedicar un rato a jugar con una pequeña aplicación flash que con motivo de la celebración del Año de Darwin ha publicado en su web Science Channel (¡gracias Pablo por el aviso!)

Darwin's Evolution Game (click para jugar)

Se trata de un juego a caballo entre los algoritmos genéticos y la vida artificial, en la línea (simplificada) de aquel famoso SimLife. El objetivo es contribuir a que un pequeño grupo de animales similares a aves perdure durante un millón de años, adaptándose a los cambios ambientales que se suceden. En la misma aplicación se puede acceder a información biográfica de Darwin, y a un juego tipo test sobre Darwin y la evolución. Que se diviertan Vds.

Posted in Evolución, Vida Artificial, Computación Evolutiva, Juegos | Etiquetado: , | 7 Comments »

Jornadas de Inteligencia Computacional Aplicada al Negocio en Valencia

Posted by Carlos en julio 24, 2008

Los próximos 25-26 de septiembre (jueves-viernes) tendrán lugar en Valencia unas Jornadas de Inteligencia Computacional Aplicada al Negocio. Si lo tuyo son los algoritmos evolutivos, las redes neuronales, o los sistemas complejos, o si deseas aprender sobre el tema de boca de figuras como Zbigniew Michalewicz o JJ Merelo, y por supuesto, disfrutar del encanto inigualable de la bella ciudad de Valencia, es una gran oportunidad.

Posted in Computación Evolutiva | Etiquetado: , , | 1 Comment »

Próximo destino…

Posted by Carlos en mayo 29, 2008

…durante los siguientes siete días, si el tiempo y la Autoridad lo permite:

Vista aérea

Pasaremos calor, tomaremos comida étnica, y hablaremos de hormigas y otras metáforas bioinspiradas en un marco incomparable. Stay tuned.

Posted in Ciencia, Computación Evolutiva, Lugares | 7 Comments »

Aprendizaje evolutivo en bacterias

Posted by Carlos en mayo 15, 2008

La capacidad de aprendizaje (esto es, de predicción del estado próximo del entorno) es patente en organismos dotados de sistemas nerviosos más o menos complejos. El campo de las redes neuronales artificiales se basa precisamente en la utilización de ideas basadas en el proceso de reajuste de las interconexiones entre neuronas durante la vida de un organismo. Más sorprendente es sin embargo observar capacidades predictivas en organismos mucho más simples como las bacterias. Dada la ausencia de sistema nervioso en las mismas, el comportamiento de este tipo de organismos se explica mediante mecanismos físico-químicos de homeostasis, presentes en la célula gracias a la acción de la selección natural. Siendo esto así, no hay que dejar de lado en cualquier caso que toda célula contiene un sistema enormemente complejo en su interior, en la forma de redes genómicas, proteómicas y metabólicas, y que un sistema de estas características es capaz de dar muchas sorpresas.

Una de estas sorpresas es la capacidad que ciertas bacterias tienen de asociar cambios ambientales inmediatos con cambios ambientales que ocurrirán con posterioridad. Un ejemplo de este comportamiento es el que exhibe la conspicua Escherichia coli. Esta bacteria es capaz de asociar incrementos rápidos de temperatura (como los que ocurrirían al pasar de un entorno abierto al interior de la boca de una persona) con posteriores decrementos del nivel de oxígeno (como los que ocurrirían posteriormente al llegar al tracto intestinal). Un estudio al respecto ha sido publicado por Ilias Tagkopoulos, Yir-Chung Liu, y Saeed Tavazoie, de la Universidad de Princeton, en un trabajo titulado

recién aparecido en Science. Tagkopoulos et al. han realizado en primer lugar un estudio computacional, empleando técnicas de computación evolutiva y de vida artificial. En sus simulaciones se mantiene una población de organismos, cada uno de los cuales contiene una red metabólica en su interior. Esta red metabólica evoluciona mediante la aplicación de ciertos operadores de mutación al llegar a la fase reproductiva. El entorno se simula mediante una serie de señales más o menos correlacionadas con la aparición de ciertos eventos. Concretamente, consideran un evento consistente en la aparición de un recurso del que es posible extraer energía siempre que la célula exprese una cierta proteína. La energía que se gana de esta forma se ve reducida por el propio coste de mantenimiento de la red metabólica, dando lugar a un saldo energético final. En un grupo de simulaciones este saldo energético se usaba para seleccionar los individuos que pasaban a la siguiente generación, mediante el clásico procedimiento de ruleta. En otro grupo de simulaciones el proceso de reproducción era asíncrono, y se producía individualmente en cada individuo cuando acumulaba suficiente energía.

Escherichia coli at 10000x

Este tipo de simulaciones (realizadas en supercomputadores) permitieron demostrar la viabilidad en principio de que a escala evolutiva pueda producirse aprendizaje a nivel de interacción bioquímica. El siguiente experimento se realizó con ejemplares de E. coli bajo condiciones controladas en las que se realizaban cambios de temperatura entre 25ºC y 37ºC y cambios en la concentración de oxígeno entre 0% y 18%. No sólo se observó el efecto mencionado anteriormente en relación a la predicción de las condiciones del tracto digestivo, sino otro más interesante. Concretamente se realizaron experimentos con las condiciones inversas a las naturales, es decir, se evolucionó una población de E. coli en un entorno en el que el incremento de temperatura iba seguido de un incremento de la concentración de oxígeno. Se obtuvo de esta manera una cepa que era capaz de anticipar este escenario ecológicamente incoherente, mostrando así un aprendizaje genuinamente asociativo.

Según afirman los autores del trabajo, este tipo de estudios puede conducir a una mejor comprensión de la dinámica adaptativa de las bacterias y la aparición de resistencia a los tratamientos, lo que puede resultar de gran utilidad.

Posted in Biología Molecular, Computación Evolutiva, Evolución, Vida Artificial | Etiquetado: , | 4 Comments »

Guía de Campo de la Programación Genética

Posted by Carlos en abril 9, 2008

La programación genética es uno de los cuatro paradigmas principales de la computación evolutiva. Básicamente consiste en el empleo de un enfoque evolutivo para la generación de programas que resuelven una cierta tarea. Tradicionalmente, estos programas se representan mediante árboles sintácticos a través de los que es posible expresar funciones complejas e incluso programas, dependiendo del conjunto de símbolos disponible (no es extraño en cualquier caso encontrar también representaciones lineales de programas, o representaciones basadas en grafos). Para construir dichos árboles es preciso especificar el conjunto de símbolos terminales que se emplearán como hojas de los árboles (variables, constantes, etc.), así como los símbolos no terminales (funciones básicas) que se emplearán en los nodos internos, y si es preciso las reglas sintácticas y semánticas de indican qué árboles son correctos.

Genetic Programming Tree

A partir de ahí, se emplean los mecanismos de selección, reproducción y reemplazo para hacer evolucionar una población de programas en pos de la solución de un cierto problema (ya sea de tipo supervisado, en el que se desea producir una cierta salida conocida ante ciertas entradas, o no supervisado, en el que típicamente se desea un cierto comportamiento de un sistema controlado por el programa, pero no se dispone explícitamente de las salidas precisas que hay que producir para ello). Lo mejor de todo es que este enfoque funciona, y es posible resolver satisfactoriamente problemas de diferente índole (clasificación, síntesis de circuitos, control de sistemas, etc.). A modo de muestra, pinchando en la imagen inferior se puede acceder a un applet de java que emplea programación genética para realizar regresión simbólica, esto es, encontrar la curva que mejor se ajusta a unos datos sin conocer no ya los parámetros de la misma (eso sería simple regresión numérica), sino la propia forma funcional de ésta (que puede ser sumamente compleja).

Symbolic Regression with Genetic Programming

Hay disponibles diferentes libros de texto o colecciones de artículos más o menos avanzados sobre el tema, y desde hace unas semanas una guía de campo introductoria. Los autores de esa guía son Riccardo Poli, William B. Langdon (ganador por cierto este año de la tercera edición del premio a la contribución sobresaliente a la computación evolutiva, ex aequo con Marc Schoenauer; Poli y Wolfgang Banzhaf lo ganaron el año pasado, y Jennifer Willies antes que ellos), y Nicholas McPhee, y durante la conferencia de hace dos semanas acudieron con una caja de ejemplares que fueron regalando a cambio de la voluntá (y que firmaron a quien quiso). Quien esté interesado en el área puede encontrar interesante que el libro está bajo una licencia CC y puede bajarse gratuitamente de aquí.

Posted in Libros, Computación Evolutiva | Etiquetado: , | 1 Comment »

La visión de un pionero de la computación evolutiva

Posted by Carlos en abril 5, 2008

Hans-Paul Schwefel during his keynote speech (picture taken by JJ)Uno de los mejores momentos del multicongreso de la semana pasada fue la charla plenaria que impartió el profesor Hans-Paul Schwefel. Para quien no esté muy familiarizado con el área de los algoritmos evolutivos, hay que aclarar que los antecedentes más recientes de la computación evolutiva surgieron de manera independiente y casi simultánea en tres lugares, dando lugar a otros tantos paradigmas clásicos: los algoritmos genéticos, la programación evolutiva, y las estrategias de evolución. Estas últimas se originaron en Alemania, allá por los años 70, y el Prof. Schwefel fue uno de los creadores -junto con el Prof. Ingo Rechenberg- del enfoque tal como lo conocemos hoy en día. El profesor Schwefel es pues uno de los pioneros del área, y precisamente la charla que impartió se titulaba “A pioneer’s view onto evolutionary optimization“. La charla fue realmente enriquecedora, no tanto por lo aspectos técnicos (que no eran el foco de la charla) sino por la perspectiva personal que el Prof. Schwefel aportó.

Una charla de este tipo es normal estructurarla de manera temporal: pasado, presente y futuro, y ésta fue precisamente la estructura de la misma pero con una original variación: empezamos por el futuro, seguimos con el presente y acabamos con el pasado. Las dos primeras partes fueron bastante rápidas. En relación al futuro, el Prof. Schwefel expresó su esperanza en lo que la tecnología evolutiva puede conseguir, pero fue prudente al no hacer predicciones muy precisas. De hecho, ilustró esta parte con algunas citas que para algunos debieron ser realmente sonrojantes. La primera es un comentario de un revisor de su trabajo seminal sobre estrategias de evolución en 1970:

No hay necesidad para otra técnica adicional [al seguimiento del gradiente] de optimización.

Todo un ejemplo de revisor con perspectiva cuyas palabras están cubiertas de gloria. La segunda cita provenía de un portavoz de IBM en 1974:

La computación paralela no estará disponible antes del año 2000.

Así le ha ido a IBM ultimamente. A la luz de estos ejemplos de visión de futuro, solo cabe afirmar que en los años venideros habrá grandes sopresas en relación con la capacidad y aplicaciones de los algoritmos evolutivos, en particular en campos emergentes con problemas de gran complejidad como la biotecnología.

La parte de la charla dedicada al presente fue también breve, y se limitó a constatar el crecimiento exponencial de la comunidad y de la producción científica del área. Entramos entonces en la parte de la charla dedicada al pasado, en la que el Prof. Schwefel relató su experiencia en primera persona de los inicios de las estrategias de evolución, los desafíos encontrados, y las lecciones aprendidas. La primera de todas fue “espera lo inesperado”, y se obtuvo a partir de los experimentos que realizó para encontrar el diseño óptimo de una tobera. Esta tobera se concebía como dos embudos enfrentados: por una de las bocas anchas entraba un fluido compuesto de gas y líquido a alta velocidad, se pasaba por un cuello de botella, y se producía la expulsión por la otra boca. El objetivo era conseguir el máximo impulso, y para ello había que jugar con parámetros tales como la amplitud de boca de entrada, de la boca de salida, del cuello de botella, y la distancia de dicho cuello de botella en relación a las bocas. El Prof. Schwefel tuvo la primera de las “ideas locas” al pensar que no necesariamente era ésa la forma óptima, y que podría ser que entre la boca de entrada y la boca de salida hubiera otro tipo de ensanches y estrecheces. Aplicando la incipiente tecnología de las estrategias de evolución, obtuvo el siguiente (sorprendente) resultado:

Nozzle optimization

La animación muestra la evolución de la forma de la tobera, desde su configuración inicial a la final. En su momento fue todo una sorpresa el entender por qué ese diseño era bueno, y motivó un interesante estudio por parte de físicos e ingenieros. Por su parte, el Prof. Schwefel estudió también los aspectos algorítmos de la estrategia de evolución, lo que dio lugar a diferentes generalizaciones tales como la generación de múltiples descendientes, el empleo de estrategias no elitistas (la estrategia ‘coma’), y el empleo de recombinación además de mutación para construir la descendencia. La siguiente parte de la charla se ocupó de algunos de los temas que abordó en años posteriores, en relación al gap que separa la computación evolutiva de la evolución natural (objetivos normalmente estáticos, un único criterio de optimización, codificación fija, evolución síncrona, etc.). Entre otros aspectos, el Prof. Schewefel habló de estrategias de evolución con estructura espacial, con simulación de procesos depredador/presa, con introducción de sexos, y con codificación diploide.

En resumen fue todo un placer asistir a esta charla, tanto por su contenido, como por el orador, una persona sencilla y afable con la que da gusto conversar. Charlas como ésta son las que hacen que una conferencia se recuerde al cabo del tiempo.

Posted in Citas, Computación Evolutiva, Personajes | Etiquetado: , | 8 Comments »