Fundamentos


Algoritmos Genéticos

Un algoritmo genético corresponde a un algoritmo de optimización para problemas de tipo np-completo. Para utilizar un algoritmo genético, es necesario construir una forma de parametrizar el dominio de la función objetivo a optimizar, hacia un vector de bits los cuales representan el cromosoma del valor del dominio. 

Se denomina población al conjunto de individuos (vectores de bits) los cuales se someten a un proceso de selección, cruzamiento y mutación. Se denomina generación al conjunto de soluciones presentadas en cada iteración.

Un diagrama del proceso se muestra a continuación:


Diagrama de bloques
para algoritmos genéticos

Algoritmos Meméticos

Un algoritmo memético puede verse como un algoritmo genético con un paso extra al proceso de cruzamiento y mutación, el cual corresponde a una búsqueda local de cada individuo. Cada generación, al terminar la iteración, realiza una búsqueda local para ver si existe alguna solución más apta a la representada por si misma dentro de un rango local. De este modo, se introduce un “bias” al algoritmo genético.

El diagrama para estos algoritmos se presenta a continuación:


Diagrama de bloques
para algoritmos meméticos