Algoritmos basados en poblaciones de expresiones
|
Este repositorio contiene mi implementación del varios algoritmos de Programación Genética (PG, GA_P) en C++, utilizados en mi Trabajo de Fin de Grado en Ingeniería Informática en la UGR.
El código se estructura en diversos ficheros para realizar el preprocesado, así como un espacio de nombres propio donde se han implementado los algoritmos basados en una población de expresiones.
También existe una clase Random
que utilizo como generador de números aleatorios utilizando aritmética modular.
Este espacio de nombres está compuesto por:
algoritmos_poblacion_expresiones::AlgoritmoPoblacion
: Clase abstracta con los elementos comunes de un algoritmo con una población.algoritmos_poblacion_expresiones::Poblacion
: Clase que representa un conjunto de individuos que conforman una población.algoritmos_poblacion_expresiones::Expresion
: Clase que representa una expresión de Programación Genética.algoritmos_poblacion_expresiones::Nodo
: Clase que representa un nodo de una expresión de Programación Genética.algoritmos_poblacion_expresiones::AlgoritmoPG
: Clase que implementa el algoritmo Programación Genética.algoritmos_poblacion_expresiones::Expresion_GAP
: Clase que implementa una expresión de GA-P.algoritmos_poblacion_expresiones::AlgoritmoGA_P
: Clase que implementa el algoritmo GA-P.En cada una de estas clases encontrarás más información sobre sus componentes y operadores.
Puedes compilar la documentación ejecutando:
Puedes consultarla abriendo docs/index.html
en tu navegador.
También es posible consultarla en el siguiente enlace: Documentación
Existen diversas formas de compilar, todas ellas utilizando el comando make
.
make
): Compilar con optimización y utilizando OpenMP para añadir paralelismo.test
(make test
): Compilar los test de GTest.doc
(make doc
): Compilar la documentación.clean
(make clean
): Limpiar los objetos tras una compilación.OPTIMIZACION
(make OPTIMIZACION=3
): Por defecto 3, asignar un nivel de compilación. Los posibles valores son 0, 1, 2, 3 y g.OPENMP
(make OPENMP=1
): Por defecto 1. Activar o desactivar la compilación con OpenMP, 0 desactivado, 1 activado.DEBUG
(make DEBUG=0
): Por defecto 0. Activar o desactivar la compilación con símbolos de depuración.GPROF
(make GPROF=0
): Por defecto 0. Activar o desactivar la compilación con GPROF de cara a hacer profiling al software.Siempre que se compile se recompilará la documentación, de cara a posibles cambios.
Todas las variables se pueden combinar, por ejemplo, es posible cambiar el nivel de optimización y a la vez desactivar OpenMP.
Puedes consultar todas las opciones del Makefile con el target help