Se necesitan simulaciones computacionales que permitan entender mejor las complejas interacciones de los seres vivos: Carlos Coello Coello

Sostuvo que los algoritmos genéticos se utilizan en acciones que van desde el descubrimiento de los exoplanetas hasta la planeación urbana, pasando por la optimización de terapias radiológicas

Desde el descubrimiento de exoplanetas hasta la predicción de incidencia criminal en una ciudad, pasando por el diseño de autos de carreras, la detección de tumores en radiografías, el análisis de comportamientos en redes sociales, el procesamiento de lenguaje natural como la generación de traducción automática y la optimización de terapias radiológicas, son parte de las aplicaciones en el mundo que utilizan algoritmos genéticos, así lo expuso Carlos Coello Coello, miembro de El Colegio Nacional, en la quinta y última sesión del curso Una introducción a la computación evolutiva: conceptos básicos y aplicaciones.

Recordó que, entre las aplicaciones más antiguas de la computación evolutiva, se encontraron la de 1998, en la que un equipo de la empresa Unilever Research usó algoritmos genéticos combinados con redes neuronales para diseñar nuevos péptidos bactericidas y usarlos en limpiadores anti-bacterianos y preservativos de alimentos. “El resultado fue la generación de más de 400 bactericidas virtuales potencialmente activos, de los cuales cinco fueron sintetizados, es decir, producirlos en laboratorio”.

Por su parte, la empresa holandesa Cap Hemini y la británica KiQ Ltd desarrollaron un sistema llamado Omega el cual usa algoritmos genéticos para resolver problemas de mercadotecnia, crédito y aplicaciones financieras relacionadas. “Omega usa como punto de partida un portafolio de comportamiento previo de un cliente, a partir del cual genera un modelo matemático que puede usarse posteriormente para predecir comportamientos de clientes que se encuentren fuera de los portafolios conocidos. En países como Estados Unidos, cuando las personas van al súper mercado y pagan con tarjeta de crédito, esa información, el súper mercado la vende a las empresas, así se crean los patrones de consumo”.

En Eslovenia, un grupo de investigadores del Jozef Stefan Institute desarrollaron un sistema de programación de horarios basado en técnicas evolutivas. El sistema ha reducido sustancialmente los costos de energía en la planta de prensado de una fábrica de automóviles. En Canadá, se realizó una optimización de una red hidráulica, el objetivo era extender y reforzar la infraestructura de suministro de agua para la región de York, en Ontario. Trabajaron con GAnet, una biblioteca de clases para desarrollar un algoritmo genético específicamente para redes hidráulicas, el algoritmo genético dio una solución con un costo de 102 millones de dólares, lo que significó una propuesta 35% más económica que la diseñada por humanos. El ahorro estimado fue de 54 millones de dólares.

Otro ejemplo de la aplicación de la computación evolutiva en la vida real fue el diseño de la parte frontal del tren bala japonés (Shinkansen) de la serie N700 que, en palabras del colegiado, fue optimizada con un algoritmo genético. Esto permitió generar un diseño con propiedades aerodinámicas óptimas. El tren lanza velocidades de hasta 300 km por hora, el diseño permite también un ahorro de energía del 19% con respecto a la serie 700, simplemente por la optimización de su frente.

En 2012, Carlos Coello Coello asesoró a Akira Oyama en torno a la optimización de un avión que fue diseñado para sobrevolar la superficie de Marte, esto en el Institute of Space and Astronautical Science de la Japan Aerospace Exploration Agency (Agencia Japonesa de Exploración Aeroespacial). Se trató de un avión construido con un metal especial, que pasaba un kilo, y en su punta tenía una cámara para fotografiar la superficie del planeta, estaba súper optimizado y tenía 12 funciones objetivo, pero la pandemia por COVID-19 impidió su lanzamiento.

En 2005, Investigadores de la Universidad de Satanford utilizaron un micro-algoritmo genético, diseñado en el Centro de Investigación y de Estudios Avanzados del IPN (Cinvestav), hibridizado con un método de gradiente, es decir, con derivadas, para optimizar el diseño de un jet supersónico de negocios. Este mismo algoritmo se utilizó en Chile, particularmente en Valparaíso, para reconfigurar redes de distribución de potencia eléctrica minimizando dos objetivos: las pérdidas del sistema de potencia y los índices de confiabilidad.

El colegiado detalló que, entre las aplicaciones más recientes de los algoritmos evolutivos, se encontró en 2023 una llamada acoplamiento molecular (molecular docking) en China, se trató de una herramienta computacional capaz de predecir las posibles interacciones entre dos moléculas, lo que tiene un papel fundamental en el descubrimiento de nuevos medicamentos. En colaboración con investigadores del país asiático, se desarrolló el programa llamado AutoDock Koto, que se basó en el uso de un algoritmo evolutivo hibridizado con un método de gradiente. Este enfoque mejoró sustancialmente el desempeño de los algoritmos existentes y se usó para identificar posibles medicamentos contra COVID-19.

Algoritmos culturales

De acuerdo con el doctor en Ciencias de la Computación por la Universidad Tulane, los algoritmos culturales son una técnica no muy conocida que propuso Robert Reynolds, quien desarrolló un modelo computacional en el que la evolución cultural es vista como un proceso hereditario que opera a dos niveles: el nivel micro-evolutivo y a nivel macro-evolutivo. Se basó en los estudios de algunos sociólogos que sugirieron que la cultura puede ser codificada simbólicamente y que puede transmitirse entre poblaciones, como si se tratara de otro mecanismo de herencia.

En el nivel micro-evolutivo, los individuos se describen por medio de “características de comportamiento”, que pueden ser estables o inaceptables. Estas características se pasan de generación en generación usando varios operadores inspirados en cuestiones sociales. En el nivel macro-evolutivo, los individuos son capaces de generar “mappa”, es decir, descripciones generalizadas de sus experiencias. Los mappas individuales pueden mezclarse y modificarse a fin de formar mappas grupales. Ambos niveles comparten un nivel de comunicación.

“En realidad, lo que hace el algoritmo cultural es extraer información durante el proceso de búsqueda, por ejemplo, de un genético, y esa información la usa para afectar el funcionamiento de los operadores, de la cruza y la mutación, para que funcionen de manera súper eficiente, por lo que es necesario tener mucha información almacenada”.

El colegiado aseguró que Reynolds propuso el uso de algoritmos genéticos para modelar el proceso micro-evolutivo y los espacios de versiones para modelar el proceso macro-evolutivo de un algoritmo cultural. “Cada individuo tiene su propio conjunto de creencias, pero éstas se ajustan en el tiempo usando el “mapa de grupo”, o sea las experiencias generales de la población. Cada individuo contribuye a este mapa a final de cada generación”.

Explicó que, cuando un individuo mezcla su mapa individual con el del grupo, hay una cierta combinación de creencias. Si un individuo tiene un mapa combinado menor que cierto valor aceptable, se le poda del espacio de creencias. Se usa entonces un proceso de selección para elegir los padres que serán evolucionados en la siguiente generación. “El proceso evolutivo se efectúa con ciertos operadores que tienden a ser específicos del dominio. Las interacciones entre el espacio de creencias y el de la población dependen del canal de comunicación que se utilice, así como de sus protocolos”.

Algoritmo memético

El informático mexicano sostuvo que, en 1989, el investigador Pablo Moscato introdujo el concepto de algoritmo memético, para denotar el uso de buscadores locales combinados con estrategias poblacionales. El término memético tiene sus raíces en la palabra “meme” la cual fue traducida por Richard Dawkins como una “unidad de imitación” en la transmisión cultural. Se trata de un concepto inventado y no hay evidencia de que esto exista. Por lo tanto, un algoritmo memetico se puede ver como un enfoque que intenta imitar la evolución cultural, en vez de la evolución biológica.

La diferencia principal entre los algoritmos meméticos y los evolutivos es la forma en la que se transmite la información. Mientras que los genes pasan intactos, los memes suelen adoptar los individuos que los transmiten. Entre las preguntas que se plantean para usar estos tipos de algoritmos meméticos se encuentran ¿qué tan frecuente debe usarse la búsqueda local con base en una probabilidad? Y ¿sobre qué soluciones debe aplicarse la búsqueda local dado un vecindario? Por tanto, un algoritmo memético puede verse como un enfoque que intenta imitar la evolución cultural, en vez de la evolución biológica. “La diferencia principal entre los algoritmos meméticos y los algoritmos evolutivos es en la forma en la que se transmite la información”.

Entre las preguntas que se deben contestar para diseñar algoritmos meméticos se encuentran: ¿Sobre qué k soluciones debe aplicarse la búsqueda local dado un vecindario N(x), donde x es una solución actual? ¿Qué tan eficiente debe ser el buscador local, con respecto a su efectividad? y ¿Cómo deben relacionarse los operadores de recombinación y mutación de un algoritmo evolutivo con un buscador local?

En relación a la coevolución, el colegiado comentó que en la naturaleza existen organismos que tienen una relación simbiótica con otros organismos. La simbiosis se define como “el fenómeno mediante el cual dos organismos disimilares viven íntimamente juntos en una relación mutuamente benéfica”. En la comunidad de computación evolutiva, se han desarrollado algoritmos que adoptan simbiosis, aunque son relativamente escasos. “Llamamos coevolución a un cambio en la composición genética de una especie como respuesta a un cambio genético de otra. En un sentido más general, la coevolución se refiere a un cambio evolutivo recíproco entre especies que interactúan entre sí”.

Agregó que existen dos modelos fundamentales en coevolución en la literatura especializada: el primero, es la coevolución competitiva, aquellos basados en relaciones de competencia. En este caso, la aptitud de un individuo es el resultado de “encuentros” con otros individuos. Este tipo de esquema coevolutivo se ha adoptado normalmente para juegos; el segundo, es la coevolución cooperativa, en este caso, la aptitud del individuo es el resultado de una colaboración con individuos de otras especies o poblaciones. Este tipo de esquema coevolutivo se ha adaptado normalmente para resolver problemas de optimización con muchas variables. “Los algoritmos más poderosos que tenemos resuelven 5 o 10 mil variables, casi todos se basan en coevolución cooperativa”.

El futuro de la computación evolutiva

Según Carlos Coello Coello, hace veinte años existía el temor de estancarse en la computación evolutiva, entonces, se plantearon los temas del siglo en las áreas que valía la pena hacer investigación en los siguientes años, algunos de estos temas son todavía válidos.

El metamerismo, es el proceso en el cual una unidad estructural es duplicada un cierto número de veces y durante ese proceso se optimiza, mejorando para otros usos. “Todavía, no he visto a alguien que lo haya logrado”. La autoadaptación, ya casi no se utiliza, significa que la computación evolutiva ajusta sus parámetros, pero no existe un mecanismo de adaptación para los organismos genéticos y es casi imposible hacerlo. El paralelismo es un tema que viene y va con el paso del tiempo, se piensa que siempre va a estar ahí. Es importante explorar al máximo las arquitecturas paralelas mediante nuevos algoritmos evolutivos, esto traerá importantes ganancias en términos de esfuerzo computacional, sobre todo, al lidiar con problemas del mundo real.

Respecto a las computadoras cuánticas, “si llegan a ser una realidad a gran escala, se tendrán que diseñar evolutivos diferentes a los que tenemos ahora, los tenemos que adaptar a la tecnología”.

Para el científico mexicano, la teoría matemática de los evolutivos es importante. “Se necesita entender mejor la evolución natural y hacer simulaciones computacionales que permitan entender mejor las complejas interacciones que ocurren entre los seres vivos. Lo anterior es una de las cosas que más le entusiasma a la gente de computación evolutiva, cuando llega una persona con un trabajo que se basa en un estudio biológico”.

Subrayó que el algoritmo genético sin parámetros es, sin lugar a dudas, el sueño de los expertos en computación evolutiva. Y hasta ahora se han planteado tres grandes preguntas que no se han podido resolver. La primera, ¿A qué tipo de problemas deben aplicarse los algoritmos evolutivos? “esto no lo sabemos, no sabemos lo suficiente del comportamiento de esta técnica a pesar de todo el tiempo que la hemos estudiado”. La segunda, ¿cómo podemos mejorar nuestra comprensión del funcionamiento de los algoritmos evolutivos?; y la tercera, ¿qué nuevas ideas se pueden aplicar a la computación evolutiva a fin de extender el paradigma?, concluyó el colegiado.

Fuente: El Colegio Nacional