47#include <ql/math/optimization/constraint.hpp>
48#include <ql/math/optimization/differentialevolution.hpp>
49#include <ql/math/randomnumbers/mt19937uniformrng.hpp>
56 using Strategy = DifferentialEvolution::Strategy;
64 virtual EndCriteria::Type
minimize(
Problem_MT& p,
const EndCriteria& endCriteria)
override;
76 MersenneTwisterUniformRng
rng_;
82 void getCrossoverMask(std::vector<Array>& crossoverMask, std::vector<Array>& invCrossoverMask,
83 const Array& mutationProbabilities)
const;
95 void crossover(
const std::vector<Candidate>& oldPopulation, std::vector<Candidate>& population,
96 const std::vector<Candidate>& mutantPopulation,
const std::vector<Candidate>& mirrorPopulation,
DifferentialEvolution::Strategy Strategy
Candidate bestMemberEver_
void crossover(const std::vector< Candidate > &oldPopulation, std::vector< Candidate > &population, const std::vector< Candidate > &mutantPopulation, const std::vector< Candidate > &mirrorPopulation, Problem_MT &p) const
const Configuration & configuration() const
void adaptCrossover() const
void getCrossoverMask(std::vector< Array > &crossoverMask, std::vector< Array > &invCrossoverMask, const Array &mutationProbabilities) const
virtual EndCriteria::Type minimize(Problem_MT &p, const EndCriteria &endCriteria) override
minimize the optimization problem P
MersenneTwisterUniformRng rng_
bool checkMaxTime() const
void calculateNextGeneration(std::vector< Candidate > &population, Problem_MT &p) const
Array currGenSizeWeights_
Array getMutationProbabilities(const std::vector< Candidate > &population) const
DifferentialEvolution::Configuration Configuration
DifferentialEvolution::Candidate Candidate
DifferentialEvolution::CrossoverType CrossoverType
Array rotateArray(Array inputArray) const
void fillInitialPopulation(std::vector< Candidate > &population, const Problem_MT &p) const
Configuration configuration_
void adaptSizeWeights() const
DifferentialEvolution_MT(Configuration configuration=Configuration(), std::string maxTime="")
void updateCost(std::vector< Candidate > &population, Problem_MT &p) const
Abstract class for constrained optimization method.
Constrained optimization problem.
Abstract multithreaded optimization method class.
Abstract optimization problem class (for multithreaded optimization methods)