En 1859, Charles Darwin salía la luz unos de los libros más polémicos de la historia en el medio científico “El origen de las especies”.
En base a su teoría, el universo pasaba de ser una creación de Dios estática y perfecta y se planteaba como un conjunto de individuos en constante competición y evolución para poder perpetuar su especie en el tiempo. Las especies se crean, evolucionan y desaparecen si no son capaces de adaptarse de esta manera solo los más capaces serán los que puedan sobrevivir para perpetuar sus aptitudes.
La Computación Evolutiva abarca un gran abanico de técnicas de resolución de problemas complejos, estas técnicas son basadas en la emulación de procesos naturales de evolución. La principal aportación de la Computación Evolutiva a la metodología de resolución de problemas, consiste en el uso de mecanismos de selección de soluciones potenciales y de construcción de nuevos candidatos por recombinación de características de otros ya presentes, de modo parecido a como ocurre en la evolución de los organismos naturales. Entre esas técnicas destacan los Algoritmos Genéticos y la Programación Evolutiva 1.
Los algoritmos evolutivos son técnicas de optimización y búsqueda de soluciones basados en los postulados de la evolución biológica. En ellos se mantiene un conjunto de entidades que representan posibles soluciones, las cuales se mezclan, y compiten entre sí, de tal manera que las más aptas son capaces de prevalecer a lo largo del tiempo, evolucionando hacia mejores soluciones cada vez 2.
Los algoritmos evolutivos, y la computación evolutiva, se desprenden de la inteligencia artificial. Se usan básicamente en situaciones con espacios de búsqueda extensos y no lineales, en donde otros métodos no son capaces de encontrar soluciones en un tiempo razonable 2.
Siguiendo la terminología de la teoría de la evolución, las entidades que representan las soluciones al problema se denominan individuos o cromosomas, y el conjunto de estos, población. Los individuos son modificados por operadores genéticos, principalmente el cruce, que consiste en la mezcla de la información de dos o más individuos; la mutación, que es un cambio aleatorio en los individuos; y la selección, consistente en la elección de los individuos que sobrevivirán y conformarán la siguiente generación. Dado que los individuos que representan las soluciones más adecuadas al problema tienen más posibilidades de sobrevivir, la población va mejorando gradualmente 2.
La característica fundamental de los algoritmos evolutivos esta basado en los métodos de generación de soluciones: A partir de un conjunto de soluciones iniciales se van empleando un conjunto de operadores de búsqueda para ir depurando la solución final.
Para realizar dicho depuración de las soluciones, se pueden utilizar técnicas clásicas como el seguimiento del gradiente (Hill Climbing) complementadas con mecanismos biológicos de exploración: población de soluciones, operadores genéticos.
Se clasifican en:
- Estrategias evolutivas
- Programación evolutiva
- Algoritmos genéticos
- Programación genética
Al final, los algoritmos evolutivos nos proporcionan mayor flexibilidad porque nos permiten modificar y adaptar para resolver los problemas humanos más complejos y cumplir con los objetivos, además de que nos permiten optimizar considerando todas las soluciones posibles, lo cual se traduce a que el algoritmo no se limita a una solución en particular. Las soluciones son ilimitadas comparadas con los métodos clásicos que presentan una única solución, los algoritmos evolutivos incluyen y ofrecen múltiples posibles soluciones a un problema.