Algoritmos genéticos: condición de terminación
La condición de terminación de un algoritmo genético es importante para determinar cuándo terminará una ejecución de GA. Se ha observado que inicialmente, el GA progresa muy rápido con mejores soluciones en cada pocas iteraciones, pero esto tiende a saturarse en las últimas etapas donde las mejoras son muy pequeñas. Por lo general, queremos una condición de terminación tal que nuestra solución esté cerca de la óptima, al final de la ejecución.
Por lo general, mantenemos una de las siguientes condiciones de terminación:
- Cuando no ha habido mejora en la población para X iteraciones.
- Cuando llegamos a un número absoluto de generaciones.
- Cuando el valor de la función objetivo ha alcanzado un cierto valor predefinido.
Por ejemplo, en un algoritmo genético mantenemos un contador que realiza un seguimiento de las generaciones para las que no ha habido ninguna mejora en la población. Inicialmente, ponemos este contador a cero. Cada vez que no generamos descendientes que sean mejores que los individuos de la población, incrementamos el contador.
Sin embargo, si la aptitud de alguno de los resortes es mejor, restablecemos el contador a cero. El algoritmo termina cuando el contador alcanza un valor predeterminado.
Al igual que otros parámetros de una GA, la condición de terminación también es muy específica del problema y el diseñador de GA debería probar varias opciones para ver cuál se adapta mejor a su problema particular.