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.

Curso de eventos:


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.

Curso de eventos: