Algoritmos Evolutivos y Genéticos: Conceptos Clave y Aplicaciones
Algoritmos Evolutivos y Genéticos: Una Introducción
Los algoritmos evolutivos y genéticos son sistemas de resolución de problemas de optimización o búsqueda, inspirados en la evolución biológica. Se basan en principios como la selección natural y la herencia genética.
Historia y Orígenes
Fueron introducidos por John Holland y sus colegas en la Universidad de Michigan en los años 70. Sus objetivos principales eran:
- Abstraer y explicar el proceso adaptativo de los sistemas naturales.
- Diseñar sistemas artificiales que emulasen los mecanismos esenciales de los sistemas naturales.
Conceptos Clave: Lo Natural vs. Lo Artificial
Lo Natural
- Entorno / Ecosistema
- Individuo / Fenotipo
- Cromosoma / Genotipo
- Grado de adaptación al entorno
- Supervivencia / Reproducción / Mutación
Lo Artificial
- Problema
- Solución potencial del problema
- Cadena de símbolos
- Fitness o calidad de la solución
- Operadores de selección / aceptación / cruce / mutación
Funcionamiento de los Algoritmos Evolutivos
Los algoritmos evolutivos trabajan con una población de individuos que representan posibles soluciones a un problema. Esta población se somete a transformaciones y a un proceso de selección que favorece a los mejores. Cada ciclo de transformación y selección constituye una generación (población, selección, muestra).
Tipos de Selección
Selección por Ruleta
A cada individuo de la población se le asigna una parte proporcional a su ajuste en una ruleta, de tal forma que la suma de todos los porcentajes sea la unidad. Los mejores individuos recibirán una porción de la ruleta mayor que la recibida por los peores. Generalmente, la población está ordenada en base al ajuste, por lo que las porciones más grandes se encuentran al inicio de la ruleta.
Selección por Torneo
La idea principal de este método consiste en realizar la selección en base a comparaciones directas entre individuos. Existen dos versiones de selección mediante torneo: Determinística y Probabilística.
Escalamiento
Al incrementarse la aptitud media de la población, la fuerza de la presión selectiva también aumenta y la función de aptitud se hace más discriminadora.
Selección Elitista
En ciertas ocasiones, puede suceder que tras el cruce y la mutación, se pierda el cromosoma con mejor adaptación. Este método de selección copia el mejor cromosoma o alguno de los mejores en la nueva población.
Selección Aleatoria
En esta técnica, cada miembro de la población tiene la misma probabilidad de ser seleccionado como sujeto. Todo el proceso de toma de muestras se realiza en un paso, en donde cada sujeto es seleccionado independientemente de los otros miembros de la población.
Proceso General de un Algoritmo Evolutivo
El algoritmo evolutivo se inicia con la definición de una población. Esta población se somete a criterios de selección (edad, altura, peso, etc.). Se obtiene una muestra de los indicadores que satisfacen el criterio de selección. Se evalúa la selección (fitness) para determinar si maximizar o minimizar el resultado. En caso de no satisfacción, se aplica cruce y mutación, de forma que, después de cierto número de generaciones, se espera que el mejor individuo de la población esté cerca de la solución. Los algoritmos evolutivos combinan la búsqueda aleatoria dada por las transformaciones de la población con una búsqueda dirigida dada por la selección.
Componentes Esenciales de un Algoritmo Evolutivo (AE)
- Un método de codificación de los individuos a soluciones potenciales del problema, por ejemplo, una cadena de bits (codificación binaria).
- Una función de evaluación o fitness.
- Una forma de generar la población inicial.
- Operadores genéticos: selección, cruce, mutación.
- Parámetros: tamaño de la población, número de generaciones.
Representación y Operadores Genéticos
Representación Binaria
La representación de un individuo se puede hacer mediante una codificación binaria (cromosoma).
Operadores de Cruce
- Cruce en un punto (el cruce se traza en el índice que se compare).
- Genera 2 hijos a partir de 2 padres.
- Cada hijo hereda características de los 2 padres.
- Es la componente de explotación.
Operadores de Mutación
- La mutación altera de forma aleatoria cada bit.
- La probabilidad de aplicación debe ser baja.
- Introduce características aleatorias en los cromosomas.
- Es la componente de exploración del AG.
Pseudocódigo del Algoritmo Evolutivo
leer parámetros (pc, pm, nro gen,..);
t <- 0;
iniciar P(t);
evaluar P(t);
mientras (no ultima generación) {
P'(t) = selección(P(t-1));
P''(t) = alternar(P'(t));
evaluar P''(t);
P(t) = aceptar(P'(t), P''(t));
t = t + 1;
}