Estrategias Evolutivas
EE-(1+1)
Programa de ejemplo
Las estrategias evolutivas forman una de las corrientes de la computación
evolutiva, la cual se utiliza para el problema particular de maximizar(o minimizar) una
función real. Los operadores genéticos que se utilizan son los mismos que
en los algoritmos genéticos, pero la importancia de cada uno de ellos varía.
En las estrategias evolutivas el operador más importante es la mutación.
En este programa de ejemplo muestro la estrategia denominada EE-(1+1), se trata de un caso particular
de la estratecia EE-(M+L), donde M indica el número de padres que participan en la generación
de los L hijos; la generación t+1 se forma con los m mejores individuos de la unión de la
generación t con el conjunto de los L hijos generados a partir de ellos. Esto es, tanto los
padres como los hijos participan en el proceso de selección.
La función a maximizar está definida a partir de la linea 11 del archivo "UestrategiaEvolutiva.cpp"
la aplicación grafica las C curvas de nivel de la función a lo largo de la región
de búsqueda especificada. Por omisión la región de búsqueda es [-10,10]x[-10,10]
y el número C de curvas de nivel es 10. La decisión de parada se da por homeostasis,
cuando la aptitud de las nuevas generaciones mejora en una cantidad menor que la"tolerancia".
En caso de entrar en un máximo local, se aplica otra condición de paro, que es el
máximo número de iteraciones que estamos dispuestos a esperar en un bucle...
La variable de control sigma evoluciona mediante la "regla 1/5" de Rechemberg.