Unidad 7 > Algoritmos genéticos > Introducción

7.1. Introducción

Esta última unidad tratará sobre una herramienta de programación que ha ido tomando terreno en los últimos años debido a las posibilidades que ofrece, los algoritmos genéticos. Lo interesante será entender cómo, mediante estas herramientas, se puede dotar a los programas de Processing de comportamientos basados en las respuestas biológicas, en este caso, más ligados a las teorías de evolución y genética.

En términos generales, los algoritmos genéticos son algoritmos de búsqueda inspirados en procesos de selección natural con base en la teoría de la evolución de Darwin.

Se puede decir que estos algoritmos establecen una analogía entre el conjunto de soluciones de un problema (todas las posibles formas de resolverlo) y el conjunto de individuos de una población (de qué forma o cuál de esos individuos pueden aportar a la resolución del problema).

Estos algoritmos se aplican en problemas de optimización y se comportan de un modo muy eficaz en resoluciones de dificultad alta. Sin embargo, el uso de estos algoritmos en procesamiento de imagen y comportamientos de sistemas generativos son de suma utilidad y puede generar un valor agregado al desarrollo final de una posible obra digital.

Según el texto de Pazos et al. (2007), los fundamentos de los algoritmos genéticos se encuentran detrás de la idea de que la naturaleza utiliza potentes medios para impulsar la evolución satisfactoria de los distintos tipos de organismos.

Los organismos que son poco aptos para un determinado ambiente mueren, en tanto que los que están bien adaptados para vivir, se reproducen. Ocasionalmente, se producen mutaciones al azar, y aunque la mayor parte de estas, implican el pronto deceso del individuo mutado, algunos dan como resultado nuevas y satisfactorias especies. Así, los algoritmos genéticos se encuentran dentro de las llamadas técnicas de Computación Evolutiva.

Los algoritmos genéticos trabajan sobre poblaciones de individuos que representan soluciones a un problema. Para ello, utilizan las operaciones de selección, cruce y mutación, propias de la genética. De esta manera, mediante estos individuos, se codifican diferentes soluciones al problema, inicialmente aleatorias. Luego, los individuos se agrupan en una población y se van combinando entre sí, de forma que a medida que pasan las generaciones, se van ajustando más a la solución final. Los individuos de una generación genética compiten entre sí para ofrecer la mejor solución al problema que se está tratando de resolver.

Para entender los procedimientos y nociones en los que se basan los algoritmos genéticos, se comenzará por estudiar y entender las nociones básicas que propone la teoría de la evolución.