Los movimientos de las hormigas, los patrones de vuelo de las aves, el proceso de evolución natural planteado por Charles Darwin o el funcionamiento del sistema inmune, entre otros conceptos biológicos, están ayudando a encontrar soluciones a problemas complejos y desafiantes en ciencias de la computación.
A este método empleado por los expertos en el área de computación, de física o hasta de matemáticas aplicadas, que toma su inspiración de ciertos fenómenos biológicos para crear reglas que hagan más eficientes la búsqueda de soluciones se le llama metaheurísticas bioinspirada.
De acuerdo con Carlos Coello Coello, investigador del Departamento de Computación del Cinvestav, este no es sólo un término científico abstracto. Se ha aplicado en la solución de problemas muy complejos de optimización y clasificación que han ayudado, por ejemplo, a mejorar la detección de cáncer de mama, a incrementar la velocidad del tren bala de Japón, al mejoramiento de redes de distribución de potencia eléctrica y para resolver problemas de ingeniería aeroespacial, incluyendo un proyecto en el que participa el mismo Coello con la Japan Aerospace Exploration Agency (JAXA), en el que se pretende enviar un avión a fotografiar la superficie de Marte en el 2020.
Para entenderlo mejor, dice el también Premio Nacional de Ciencias y Artes 2012, hay que tener en mente que una heurística es una técnica que busca soluciones buenas a un costo computacional razonable (dispuestos a esperar minutos, horas o días por una respuesta). A cambio de estas ventajas, no se garantiza que la solución a encontrar sea óptima, válida o factible, y en algunos casos, ni siquiera puede determinarse qué tan cerca se encuentra de la mejor solución posible.
Pese a esta limitante, existen muchos problemas de optimización en el mundo en los que es imposible usar un método exacto que garantice encontrar siempre el óptimo. Además, el rápido crecimiento de la velocidad de los procesadores y el abaratamiento de las memorias de las computadoras que experimentamos hacia finales del siglo XX han contribuido a popularizar el uso de las metaheurísticas, término acuñado por Fred Glover en 1986, que se refiere a procedimientos de búsqueda de alto nivel, en los que se combinan varias reglas heurísticas para resolver un problema.
La flexibilidad y facilidad de uso que ofrecen las metaheurísticas, las han vuelto una opción recurrente para resolver problemas (sobre todo de optimización) de alta complejidad. Sin embargo, debe evitarse su uso indiscriminado, pues no son adecuadas para todo tipo de problemas. Como dice el propio Coello “no se debe intentar matar una mosca usando una escopeta”.
Para los que trabajamos en computación, destaca el investigador del Cinvestav, este siglo es el de las metaheurísticas, ya que construir mejores algoritmos (pasos que seguimos para resolver una tarea en particular), permite abrir un abanico de posibilidades y retos, desde optimizar los sistemas de control (robótica, estructuras, etcétera), programación de horarios, bioinformática, minería de datos (sobre todo con grandes volúmenes de datos), calibración de modelos y redes hidráulicas, ingeniería aeronáutica, clasificación y reconocimiento de patrones, problemas de transporte, hasta algoritmos para resolver la sincronización de semáforos en una avenida.
Hay varios ejemplos de metaheurísticas bioinspiradas: los algoritmos evolutivos, los cúmulos de partículas, los sistemas inmunes artificiales, y la colonia de hormigas.
De entre las metaheurísticas bioinspiradas, las más usadas son los algoritmos evolutivos, que se basan en el principio de “supervivencia del más apto” de Charles Darwin. Dentro de éstos existen tres paradigmas principales: la programación evolutiva, las estrategias evolutivas y los algoritmos genéticos. Estos últimos son los más populares en la actualidad.