Solución
Se utilizaron como herramientas externas: la librería JEP, para parsear funciones desde un texto plano a una representación matemática de la misma, y la librería JFreeChart para poder realizar los gráficos.
La aplicación y el código fuente se encuentran en la sección de "Descargas".
A continuación se presenta el diagrama de clases de la aplicación:Las clases de la interfaz gráfica son:
- GMapp: contiene el main y posee como clase interna el frame principal de la aplicación.
- GPanel: contiene los gráficos.
Las clases que trabajan el procesamiento son:
- GAFunction: Representa un algoritmo genético caracterizado en resolver funciones matemáticas en una dimensión y con variable real acotada.
- MAFunction: Representa un algoritmo memético caracterizado en resolver funciones matemáticas en una dimensión y con variable real acotada.
- Individuo: Representa las soluciones de la variable independiente codificadas como una cadena de bits y con cierto valor de "adaptación al medio".
- Ruleta: Se encarga de los tiros con probabilidad y los sorteos de individuos más aptos en forma de "ruleta".
- Sorter: Clase que implementa el algoritmo de quick sort empleado en uno de los métodos de selección.
Tarjetas CRC:
Caso de uso 1:
-
Nombre: Configurar algoritmos.
-
Propósito: Setear parámetros de los algoritmos.
-
Actor: El usuario.
-
Pre-condición: ninguna.
-
Evento: El usuario hace click en la pestaña de configuración.
-
Post-condición: Los algoritmos quedan con sus parámetros definidos.
-
Tipo: Manual.
Caso de uso 2:
-
Nombre: Iniciar algoritmos.
-
Propósito: Fijar parámetros de la función a optimizar y ejecutar los algoritmos.
-
Actor: El usuario.
-
Pre-condición: Los algoritmos están configurados.
-
Evento: El usuario configura los algoritmos.
-
Post-condición: Los algoritmos quedan con sus parámetros definidos.
-
Tipo: Manual.