Genetic Algorithm Analyzer Framework


¿Qué es GAAF?


Este proyecto es una herramienta para analizar Algoritmos Genéticos (AG)

Existen muchas formas de implementar un AG, y en muchas ocasiones una implementación funciona mejor que otra para un problema específico. La pregunta es: ¿Como se puede encontrar el mejor tipo de implementacion para un problema en particular?, la teoría puede decir muchas cosas al respecto, pero aun asi es necesaria una forma de comprobarlo. Esta herramienta permite intercambiar los diferentes pasos de un AG, de modo que uno pueda problar el mismo problema usando diferentes tipos de selección, cruzamiento y mutación, aun incluso, debe permitir escoger entre diferentes tipos de codificacion de los datos cuando esto sea posible. Por supuesto que permitirá cambiar los diferentes parámetros de los algoritmos como las probabilidades de mutación, cruzamiento y selección; configuraciones de funcionamiento como elitismo, paralelismo, etc; la semilla para generar secuencias aleatorios dentro del algoritmo; detalles particulares de la implementaciones de los operadores, etc.

GAAF debe permitir llevar un registro de la información interesante, como el ritmo de cambio de la mejor adaptación (fitness) y la adaptación promedio alcanzado por un AG, el numero promedio de generaciones creadas durante un conjunto de corridas, etc.

Debido a que algunos problemas pueden ser muy lentos de resolver incluso aún para computadoras rápidas, GAAF provee un modo para manejar diferentes corridas e informar acerca del status de cada una, de modo que el usuario pueda probar diferentes algoritmos sin tener que esperar a que termine cada corrida.

GAAF no es una librería para programas que necesiten usar AG, sin embargo sería muy útil que una vez que se ha encontrado el algoritmo deseado, se pudiera generar una librería, de modo que, algún día se implementará esa característica.

GAAF no es un programa orientado a la resolución de problemas sino a la evaluacion de AG, aunque evidentemente GAAF es capaz de resolver problemas.

Este proyecto ha sido desarrollado en Java de una forma muy modular, de modo que nuevos procedimientos genéticos como operadores de selección, mutación, etc. Puedan ser incorporados fácilmente. Reflection ha sido muy útil en este sentido.

Se intenta que no solo los diferentes pasos de algoritmos sean intercambiables, sino también incluso los detalles del control principal. Nuevas técnicas e ideas de AG son desarrolladas constantemente, por lo que se procura que nuevas características y modificaciones hechas al conjunto de la herramienta puedan ser incorporadas con un mínimo de dificultades técnicas.

La interfaz de usuario ha sido desarrollada con Swing, sin embargo modificar dicha interfaz o crear un nuevo tipo (tal vez basada en texto) debe poder ser implementada fácilmente.



Estado Actual


La página del proyecto

CVS

Quiero agradecer todo su apoyo y soporte a:

SourceForge Logo