Algoritmos Evolutivos
Introducción
Desde los albores de la humanidad, con su aguda observación el ser humano se ha inspirado en la naturaleza para idear las soluciones técnicas a sus problemas cotidianos. A pesar de ser muy trillada hoy en día la expresión sabia naturaleza, ésta no deja de ser muy cierta.
Actualmente la biomímesis es la disciplina encargada de, mediante las modernas técnicas que dispone se disponen hoy en día (ejemplos: genética, nanotecnología, etc), adaptar las las invenciones naturales logradas a lo largo de millones de años de evolución a la cotidianeidad del ser humano, por ejemplo:
Teoría de la evolución
La teoría de la evolución explica como los seres vivos (plantas, animales, hongos, bacterias, etc) que viven en el mundo contemporáneo aparecieron: Cuáles son sus orígenes, quiénes van a habitar el mundo en el futuro, como un organismo tan simple como una célula se llegó a convertir en el ser humano, cómo el planeta Tierra ha evolucionado junto a la vida, desde un primitivo planeta muy escaso en oxígeno hasta el planeta en que vivimos ahora, cómo terraformar un planeta para colonizarlo, etc.
Para entender la evolución, hay algunos conceptos que son claves, como
En pocas palabras, la evolución consiste en que el medio ambiente va seleccionando los individuos que mejor se adaptan a este. Estos individuos tienen mayores probabilidades de reproducirse. Los descendientes de estos individuos (parecidos a sus progenitores), se mezclaran con la población y a largo plazo la población entera se irá pareciendo a los individuos mejor adaptados.
La evolución es un proceso que no tiene un objetivo fijo, y que siempre va cambiando dependiendo de como cambia el medio (que también cambia constantemente). Es esta dúctil propiedad la que ha proporcionado tanto éxito a este natural mecanismo: La obra maestra de la naturaleza
Algoritmos Evolutivos (AE)
Por supuesto que el desarrollo de algoritmos no se podía quedar atrás con los aportes proporcionados por la teoría de la evolución: Esto se ha plasmado en los algoritmos evolutivos.
Los AE siguen el mismo algoritmo de la evolución: Dado un problema, se investiga un genotipo puede representar el universo de posibles soluciones al problema en cuestión. Esta es la etapa más difícil de la solución.
Una vez que se ha encontrado esta representación, se genera una población de individuos con genotipos inicializados aleatoriamente. Acto seguido se entra a un loop en donde se evalúa que tan bien se adapta la solución proporcionada por cada individuo al problema, los individuos con mejor adaptación al problema generando nuevos descendientes, se seleccionan individuos aleatoriamente (favoreciendo a que se escoja una mayor cantidad de individuos que presenten una mejor adaptación) y luego se vuelve al primer paso.
Estos pasos se repiten hasta que se cumpla alguna condición de finalización (ya sea que haya pasado un determinado número de generaciones, que se haya alcanzado cierta calidad de solución, etc.)
A veces los AE no alcanzan la mejor solución, pero si sirven para encontrar una solución decente utilizando una cantidad baja de recursos. Además, para muchos problemas donde se ocupan AE, es demasiado difícil encontrar una solución decente, y no existe un método clásico para encontrar una solución óptima. Es por eso que los AE son un gran aporte.