¿Qué son los algoritmos genéticos? 

El término Algoritmo Genético (AG) se originó en los 70, gracias a John Henry Holland, para referirse a principios de la evolución biológica aplicados con inteligencia artificial, donde se simula la teoría de Charles Darwin sobre la supervivencia del más fuerte o apto. 

En términos sencillos, recordemos que un algoritmo es un proceso que enumera una serie de pasos para encontrar una solución a determinado problema, mientras que un algoritmo genético emplea mecanismos que imitan la evolución de las especies de la biología para descubrir la respuesta más acertada a una problemática específica.  

Cabe aclarar que el conjunto de soluciones que se emplean son aleatorias, ya que analizar cada uno de los posibles resultados sería una labor complicada y larga en algunos tipos de problemas. Al partir de un grupo de soluciones aleatorias se logra el resultado óptimo en poco tiempo. 

Lo anterior se refiere a que cada solución a un problema se debe convertir en un vector matemático. Los algoritmos genéticos toman un conjunto de soluciones (vectores matemáticos) de forma aleatoria, plantean el problema y buscan la solución más adecuada, mientras las otras soluciones se van descartando, hasta llegar a la función objetivo o la que ofrece el mejor resultado.  

Cuando las soluciones ya están ordenadas según sus resultados, con los algoritmos genéticos se busca reproducir las mejores soluciones, aquí se involucran tres mecanismos: la reproducción, el cruzamiento (combinar soluciones) y la mutación. Conforme las mejores soluciones se simulan y combinan se mutan (de forma matemática) y las peores van desapareciendo. 

El paso siguiente es volver a calcular la función objetivo, con lo que se hace una nueva evaluación de las mejores soluciones, las cuales son las que más se reproducen, al implementar el cruzamiento y las mutaciones.  

Las fases en las que funciona un algoritmo genético a grandes rasgos son:  

  1. Se crea un grupo de soluciones aleatorias (población). 
  1. Se ponen a prueba para detectar las que tienen mejores resultados. 
  1. Se combinan las mejores respuestas.  
  1. Mutan las respuestas para encontrar los mejores resultados.  
  1. Se crea un nuevo grupo de respuestas más óptimas. 
     
      

Este tipo de algoritmos se puede usar para buscar solución a todo tipo de función, pero se recomienda en funciones no derivables.