|
GALib-Parallel
Header-only C++ library for parallel evolutionary algorithms
|
A high-level factory for instantiating GA algorithms from YAML configurations. More...
#include <AlgorithmBuilder.h>
Static Public Member Functions | |
| static std::unique_ptr< Algorithm< GeneType > > | build (const std::string &config_path, FitnessFunction< GeneType > &ff, MPI_Comm mpi_comm=MPI_COMM_NULL) |
| Unified entry point to build an algorithm from a config file. | |
| static std::unique_ptr< Algorithm< GeneType > > | buildStandardGA (const YAML::Node &config, FitnessFunction< GeneType > &ff) |
| Builds a StandardGA instance. | |
| static std::unique_ptr< Algorithm< GeneType > > | buildCellularGA (const YAML::Node &config, FitnessFunction< GeneType > &ff) |
| Builds a CellularGA instance. | |
| static std::unique_ptr< Algorithm< GeneType > > | buildDifferentialEvolutionGA (const YAML::Node &config, FitnessFunction< GeneType > &ff) |
| Builds a DifferentialEvolutionGA instance. | |
| static std::unique_ptr< Algorithm< GeneType > > | buildIslandGA (const YAML::Node &config, FitnessFunction< GeneType > &ff, MPI_Comm mpi_comm) |
| Builds an IslandGA instance. | |
A high-level factory for instantiating GA algorithms from YAML configurations.
AlgorithmBuilder simplifies the setup process by parsing a YAML file and automatically assembling the requested algorithm with its corresponding operators, parameters, and logging observers.
| GeneType | The numeric type of each gene (default: double). |
Definition at line 54 of file AlgorithmBuilder.h.
|
inlinestatic |
Unified entry point to build an algorithm from a config file.
Automatically detects the algorithm type (standard, cellular, island, etc.) and configures it with the provided fitness function.
| config_path | Path to the YAML configuration file. |
| ff | The fitness function to optimize. |
| mpi_comm | (Optional) MPI communicator for Island model. |
| std::invalid_argument | if the config is missing required sections or uses unknown types. |
Definition at line 102 of file AlgorithmBuilder.h.
References galib::utils::AlgorithmBuilder< GeneType >::build(), galib::utils::AlgorithmBuilder< GeneType >::buildCellularGA(), galib::utils::AlgorithmBuilder< GeneType >::buildDifferentialEvolutionGA(), galib::utils::AlgorithmBuilder< GeneType >::buildIslandGA(), and galib::utils::AlgorithmBuilder< GeneType >::buildStandardGA().
Referenced by galib::utils::AlgorithmBuilder< GeneType >::build().
|
inlinestatic |
Builds a CellularGA instance.
| config | Full YAML configuration node. |
| ff | Fitness function. |
Definition at line 225 of file AlgorithmBuilder.h.
References galib::internal::OperatorBuilder< GeneType >::buildCrossover(), galib::internal::OperatorBuilder< GeneType >::buildLocalSelection(), galib::internal::OperatorBuilder< GeneType >::buildMutation(), galib::AlgorithmConfig::crossover_rate, galib::FitnessFunction< GeneType >::getLowerBound(), galib::FitnessFunction< GeneType >::getUpperBound(), galib::AlgorithmConfig::max_generations, galib::AlgorithmConfig::mutation_rate, galib::AlgorithmConfig::threads, galib::CellularGAParams::use_local_elitism, and galib::utils::AlgorithmBuilder< GeneType >::Defaults::Cellular::USE_LOCAL_ELITISM.
Referenced by galib::utils::AlgorithmBuilder< GeneType >::build().
|
inlinestatic |
Builds a DifferentialEvolutionGA instance.
| config | Full YAML configuration node. |
| ff | Fitness function. |
Definition at line 263 of file AlgorithmBuilder.h.
References galib::utils::AlgorithmBuilder< GeneType >::Defaults::DE::CR_RATE, galib::AlgorithmConfig::crossover_rate, galib::DEParams::f_weight, galib::utils::AlgorithmBuilder< GeneType >::Defaults::DE::F_WEIGHT, galib::AlgorithmConfig::max_generations, and galib::AlgorithmConfig::threads.
Referenced by galib::utils::AlgorithmBuilder< GeneType >::build().
|
inlinestatic |
Builds an IslandGA instance.
| config | Full YAML configuration node. |
| ff | Fitness function. |
| mpi_comm | MPI communicator. |
Definition at line 294 of file AlgorithmBuilder.h.
References galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::BUFFER_CAPACITY, galib::internal::OperatorBuilder< GeneType >::buildCrossover(), galib::internal::OperatorBuilder< GeneType >::buildDemeReplacer(), galib::internal::OperatorBuilder< GeneType >::buildDemeSelector(), galib::internal::OperatorBuilder< GeneType >::buildMutation(), galib::internal::OperatorBuilder< GeneType >::buildSelection(), galib::AlgorithmConfig::crossover_rate, galib::FitnessFunction< GeneType >::getLowerBound(), galib::FitnessFunction< GeneType >::getUpperBound(), galib::IslandGAParams::immigration_quota, galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::IMMIGRATION_QUOTA, galib::AlgorithmConfig::max_generations, galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::MAX_GENERATIONS, galib::IslandGAParams::migration_interval, galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::MIGRATION_INTERVAL, galib::IslandGAParams::migration_size, galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::MIGRATION_SIZE, galib::AlgorithmConfig::mutation_rate, galib::AlgorithmConfig::num_threads, galib::FitnessFunction< GeneType >::size(), and galib::utils::AlgorithmBuilder< GeneType >::Defaults::Island::TOPOLOGY.
Referenced by galib::utils::AlgorithmBuilder< GeneType >::build().
|
inlinestatic |
Builds a StandardGA instance.
| config | Full YAML configuration node. |
| ff | Fitness function. |
Definition at line 165 of file AlgorithmBuilder.h.
References galib::internal::OperatorBuilder< GeneType >::buildCrossover(), galib::internal::OperatorBuilder< GeneType >::buildMutation(), galib::internal::OperatorBuilder< GeneType >::buildSelection(), galib::AlgorithmConfig::crossover_rate, galib::FitnessFunction< GeneType >::getLowerBound(), galib::FitnessFunction< GeneType >::getUpperBound(), galib::AlgorithmConfig::max_generations, galib::AlgorithmConfig::mutation_rate, galib::AlgorithmConfig::threads, galib::utils::AlgorithmBuilder< GeneType >::Defaults::Standard::USE_CUDA, and galib::AlgorithmConfig::use_elitism.
Referenced by galib::utils::AlgorithmBuilder< GeneType >::build().