¿Qué son los algoritmos evolutivos y cómo funcionan? La selección natural de Darwin en la IA
Explicado de forma sencilla, un algoritmo evolutivo o genético es una innovación tecnológica de inteligencia artificial que sirve para resolver problemas mediante procesos similares a los de la biología de los seres vivos. Algunos de ellos, por ejemplificar, se asemejan a los procesos encontrados en la reproducción, la selección natural, mutación y recombinación de ADN.
Se trata de un área muy compleja de la inteligencia artificial, ya que para emplear los algoritmos evolutivos hay que tener una base en genética y procesos biológicos, amén de tener un manejo avanzado de técnicas de machine learning.
¿Para qué sirven los algoritmos evolutivos?
Más allá de dilemas genéticos en los que intervienen múltiples variables, los algoritmos evolutivos sirven para despejar incógnitas complejas y encontrar con la mejor solución posible ante un cúmulo de variables.
Como explicaremos más adelante, los algoritmos evolutivos barajan varios candidatos que representan posibles soluciones con características dispares y, hasta cierto punto, aleatorias. El objetivo del algoritmo es ir descartando candidatos hasta aislar al mejor, es decir, dar con la solución más satisfactoria.
Por ejemplo, imaginemos que queremos diseñar un algoritmo para cuadrar un horario escolar. Para ello, los centros escolares deben tener en cuenta una multiplicidad de factores. Un profesor no puede estar en dos aulas a la vez, cada uno imparte una o varias especialidades, cada clase tiene una capacidad de ocupación, entre otros factores. Este problema de combinaciones puede resultar un verdadero rompecabezas para muchos algoritmos, pero es precisamente un caso perfecto para un algoritmo evolutivo.
Procesos biológicos en los algoritmos evolutivos
Con el fin de contextualizar un poco, vamos a refrescarte la memoria y explicar brevemente cuáles son los fenómenos biológicos de los que se sirven los algoritmos evolutivos:
Selección natural
La selección natural es un mecanismo fundamental de la evolución, propuesto por Charles Darwin. Este proceso se basa en la variabilidad existente entre los individuos de una población. Algunos de estos individuos poseen características que les confieren una mayor capacidad para sobrevivir y reproducirse en su entorno específico.
A lo largo del tiempo, estos rasgos beneficiosos se vuelven más comunes en la población porque los individuos que los poseen tienen una mayor probabilidad de sobrevivir y, consecuentemente, transmitirlos a sus descendientes. La selección natural es un factor decisivo de supervivencia que favorece a los individuos con aquellos rasgos que mejoran la adaptación al medio ambiente.
Reproducción
La reproducción es el proceso mediante el cual los organismos generan nuevos individuos, asegurando la continuidad de la especie. En la reproducción sexual, dos progenitores contribuyen con material genético para crear descendientes que portan secuencias de ADN únicas. Este intercambio de material genético se produce a través de la formación de gametos (óvulos y espermatozoides) que se fusionan durante la fertilización.
Cruzamiento
La recombinación o cruzamiento genética es un proceso asociado a la reproducción sexual que incrementa aún más la diversidad genética. Durante la formación de los gametos, se produce un intercambio de segmentos de ADN entre los cromosomas homólogos a través de un proceso conocido como entrecruzamiento o crossing-over. Esto genera nuevas combinaciones de genes en los gametos, lo que resulta en una mayor variabilidad genética en los descendientes.
Mutación
La mutación es otro proceso clave en la generación de diversidad genética. Consiste en cambios aleatorios que se dan en la secuencia del ADN de un organismo. Estos cambios pueden ser causa de algún error durante la replicación del ADN, exposición a mutágenos (como radiación o ciertos químicos) o infecciones virales. Las mutaciones pueden ser neutrales, perjudiciales o beneficiosas, dependiendo del contexto ambiental.
¿Cómo funcionan los algoritmos evolutivos?
Los algoritmos evolutivos no son, ni más ni menos, que una simulación de un escenario de selección natural en la que varios individuos con características determinadas se baten para la supervivencia del más fuerte. A continuación, te contamos cuáles son las fases del funcionamiento de los algoritmos evolutivos y cómo se integra cada proceso biológico anteriormente explicado en él:
Muestreo
Como hemos mencionado anteriormente, en los algoritmos evolutivos se seleccionan un conjunto de candidatos aleatorios. Estos candidatos se componen de valores para cada variable que se expresa en una función. Es importante que los candidatos sean lo suficientemente heterogéneos entre sí para que podamos explorar cuantas posibles soluciones sean posibles.
Función de evaluación
El algoritmo debe evaluar cada candidato en función del problema por resolver y le asigna una calificación llamada fortaleza (en inglés, fitness). El candidato que mayor fortaleza demuestre, más apto será como solución al problema. Para ello, se ha de crear una función de evaluación (fitness function) que acierte a puntuar correctamente a los candidatos para seleccionar a los mejores.
En los algoritmos evolutivos también se pueden emplear varias funciones de evaluación que basen la elección de mejores candidatos con criterios dispares, hasta contradictorios entre sí. Terminaríamos, pues, con un conjunto diverso de soluciones que, a pesar de ser mejores en ciertos valores, no son mucho mejores unos de otros.
Este grupo de plausibles soluciones óptimas recibe el nombre de eficiencia de Pareto. Después se establece un criterio más decisivo para ir descartando y estrechando el círculo de posibles candidatos.
Cruzamiento y mutación
Una vez hemos iterado el algoritmo lo suficiente y hemos obtenido un conjunto de soluciones óptimas, seleccionamos a los principales candidatos según su valor de fortaleza.
Estos candidatos más capaces pasarán a llamarse parentales, y el objetivo en esta fase del algoritmo evolutivo será generar nueva descendencia que combinen las características de sus predecesores mediante el cruzamiento de dichos parentales.
A partir de aquí, podemos volver a poner en marcha el algoritmo evolutivo hasta adquirir el mejor descendiente. Pero esto no basta, ya que es necesario introducir nuevo material genético para asegurar la heterogeneidad de la muestra. Así pues, se modifican aleatoriamente los valores de los hijos, de tal forma que no sean un fiel reflejo fácilmente detectable de sus parentales. Este proceso se llama mutación, y, al igual que ocurre con los seres humanos, actúa por mera cuestión probabilística.
Selección final
En un momento dado a lo largo de este proceso, las iteraciones del algoritmo evolutivo llegarán a su fin. Generalmente, este deja de operar automáticamente cuando ha alcanzado un límite máximo de tiempo o de rendimiento. Una vez finalice, el algoritmo debe devolver un output con una solución definitiva.
Artículos relacionados
Guía técnica de cómo utilizar el algoritmo K-means y elegir el valor de “k”
El algoritmo k-means es uno de los métodos de clustering más utilizados en aprendizaje automático, especialmente debido a su simplicidad y eficiencia.
Voicebot: qué es, beneficios y ejemplos
La inteligencia artificial ha llegado para quedarse en nuestras vidas, puesto que las posibilidades que nos aportan son infinitas.
Protocolo de Kyoto: ¿qué papel juega la tecnología?
El cambio climático no es un aspecto novedoso y actual, sino que conforma un tema que los distintos países vienen trabajando desde 1972.