Introducción


Los algoritmos genéticos pertenecen a un campo relativamente nuevo, la computación evolutiva, que han demostrado ser una alternativa más que aceptable para cierto tipo de problemas.

Luego de haber irrumpido con fuerza en los últimos años, la memética se ha incorporado a este tipo de soluciones como una "extensión" de los algoritmos genéticos (en primera instancia, es posible modelarlos como un algoritmo genético más un procedimiento de búsqueda local).

A modo de prueba y enseñanza, se ha decidido crear una aplicación que permita comparar gráficamente ambos tipos de algoritmos en la optimización de una función sencilla.

Como agregado, se ha tomado la opción de crear clases bases para modelar algoritmos genéticos y meméticos y permitir implementaciones propias para otros casos.

La aplicación


La aplicación consiste en una interfaz mediante la cual es posible ejecutar un algoritmo genético y un algoritmo memético aplicados a una función numérica de variable independiente flotante, graficando sus respuestas a lo largo de sus iteraciones.

La aplicación contiene campos para ingresar la función objetivo, los rangos de la variable independiente, así como la precisión de la misma, es decir, la cantidad de dígitos después de la coma flotante, además de especificar si es un problema de maximización o minimización.

Además, se deben configurar los parámetros de los algoritmos, estos son, el número de generaciones, es decir, el número de individuos iniciales que se harán competir para alcanzar una solución final; número de iteraciones, probabilidad de mutación, tipo de selección, y la probabilidad de victoria en caso de seleccionarse el tipo de selección “torneo”.