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”.