Problems#
-
namespace problems#
Implementations of some benchmark functions that can be used to test the genetic algorithms. There are some benchmark problems implemented for every encoding type, and the real-encoded problems can also be used for the binary-encoded GAs.
All of the problems are implemented for maximization.
class BenchmarkFunctionTraits#
#include <problems/benchmark_function.hpp>
-
template<typename T>
class BenchmarkFunctionTraits# Base class that contains the properties of a benchmark function.
Subclassed by gapp::problems::BenchmarkFunction< IntegerGene >, gapp::problems::BenchmarkFunction< PermutationGene >, gapp::problems::BenchmarkFunction< BinaryGene >, gapp::problems::BenchmarkFunction< T >
Public Functions
-
inline const std::string &name() const noexcept#
- Returns:
The name of the benchmark function.
-
inline size_t num_objectives() const noexcept#
- Returns:
The number of objectives.
-
inline const BoundsVector<T> &bounds() const noexcept#
- Returns:
The lower and upper bounds of each variable of the benchmark function.
-
inline const FitnessVector &optimal_value() const noexcept#
- Returns:
The optimal value of the benchmark function.
-
inline const Chromosome<T> &optimum() const noexcept#
- Returns:
The maximum of the benchmark function.
-
inline const FitnessVector &ideal_point() const noexcept#
- Returns:
The ideal point of the pareto front. Same as the optimal value for single objective benchmarks.
-
inline const FitnessVector &nadir_point() const noexcept#
- Returns:
The nadir point of the pareto front. Same as the optimal value for single objective benchmarks.
-
virtual ~BenchmarkFunctionTraits() = default#
Destructor.
-
inline const std::string &name() const noexcept#
class BenchmarkFunction#
#include <problems/benchmark_function.hpp>
-
template<typename T>
class BenchmarkFunction : public gapp::FitnessFunctionBase<T>, public gapp::problems::BenchmarkFunctionTraits<T># Base class used for all of the benchmark functions. Includes some additional properties for each benchmark in addition to what is in a fitness function (eg. known optimum, optimal values).
Public Functions
-
inline size_t num_vars() const noexcept#
- Returns:
The number of variables of the benchmark function.
-
inline size_t num_vars() const noexcept#
-
template<>
class BenchmarkFunction<RealGene> : public gapp::FitnessFunctionBase<RealGene>, public gapp::FitnessFunctionBase<BinaryGene>, public gapp::problems::BenchmarkFunctionTraits<RealGene># Specialization of the benchmark function for the real encoded problems. These are also usable as binary benchmark functions, not just real encoded ones.
Subclassed by gapp::problems::Ackley, gapp::problems::DTLZ1, gapp::problems::DTLZ2, gapp::problems::DTLZ3, gapp::problems::DTLZ4, gapp::problems::DTLZ5, gapp::problems::DTLZ6, gapp::problems::DTLZ7, gapp::problems::Griewank, gapp::problems::Kursawe, gapp::problems::Levy, gapp::problems::Rastrigin, gapp::problems::Rosenbrock, gapp::problems::Schwefel, gapp::problems::Sphere, gapp::problems::ZDT1, gapp::problems::ZDT2, gapp::problems::ZDT3, gapp::problems::ZDT4, gapp::problems::ZDT6
Public Functions
-
inline size_t num_vars() const noexcept#
- Returns:
The number of variables of the benchmark function.
Private Functions
- virtual FitnessVector invoke(
- const Chromosome<RealGene> &chrom,
The implementation of the fitness function. Should be thread-safe.
- inline virtual FitnessVector invoke(
- const Chromosome<BinaryGene> &chrom,
The implementation of the fitness function. Should be thread-safe.
-
inline size_t num_vars() const noexcept#