Programación Genética + Población + Aislamiento
La generación de ecuaciones en forma aleatoria (conocido como Programación Genética) la abordé en el Capítulo 1 pero faltaban ciertas pruebas. Gracias a una oportunidad por un trabajo que debí desarrollar en Inteligencia Artificial en el tema de Computación Evolutiva, abordé el tema de la Programación Genética nuevamente y estos fueron los cambios:
1. Se reescribió completamente el evaluador de expresiones para que fuese compatible con entornos Windows y Linux en lenguaje C++ y optimizado.
2. Se replanteó completamente la generación de expresiones algebraicas en forma aleatoria:
Se permiten expresiones mucho más largas.
Se permiten que las expresiones tengan funciones trigonométricas o matemáticas.
3. Uso de población y aislamiento
Ahora se generan N ecuaciones que compiten entre si en cada ciclo, los mejores engendran hijos con leves cambios (mutaciones) y esos hijos reemplazan a los peores de la generación anterior.
El concepto de islas donde da origen a una gran variedad de ecuaciones que se adaptan a un mismo ambiente.
Ambiente de entrada y salida con soporte para números flotantes.
4. Mejor administración de resultados
Los resultados ahora se emiten por consola, son mucho mas completos y pueden guardarse en archivos planos para futuros análisis.
5. Mejor marco teórico
El profesor en la Maestría me mostró diversas técnicas que dan como resultado mejores adaptaciones.
Descargue el informe de esta nueva simulación (como se hizo, como funciona).
Descargue el código fuente de esta aplicación (compatible con Windows y Linux)