22 #ifndef UNFIT_INCLUDE_GENERICOPTIMIZER_HPP_ 23 #define UNFIT_INCLUDE_GENERICOPTIMIZER_HPP_ 29 #include "Options.hpp" 33 class GenericCostFunction;
68 std::vector<double> &coordinates) = 0;
74 virtual void Reset() = 0;
98 virtual double GetCost(std::size_t index = 0)
const noexcept;
130 virtual std::vector<std::vector<double>>
GetPopulation()
const;
148 virtual std::vector<double>
GetSolution(std::size_t index = 0)
const;
163 const std::vector<std::vector<double>> &population);
190 std::vector<double> &x);
205 std::size_t dimensions);
248 virtual bool IsConverged(
const std::vector<double> &best_member,
249 std::size_t truncated_index = 0)
const;
313 std::vector<
std::uniform_real_distribution<
double>> &distributions,
314 std::
size_t dimensions,
std::
size_t mem);
void GenerateRandomEngines()
Definition: GenericOptimizer.cpp:172
bool is_population_based_
Definition: GenericOptimizer.hpp:295
virtual bool IsConverged(const std::vector< double > &best_member, std::size_t truncated_index=0) const
Checks to see if the population has converged.
Definition: GenericOptimizer.cpp:184
void GeneratePopulation(GenericCostFunction &CostFunction, std::size_t dimensions)
Definition: GenericOptimizer.cpp:127
Definition: GenericOptimizer.hpp:41
Definition: Bounds.hpp:27
std::atomic< std::size_t > function_evaluations_
Definition: GenericOptimizer.hpp:291
virtual std::size_t GetNumberOfFunctionEvaluations() const noexcept
Definition: GenericOptimizer.cpp:77
std::atomic< std::size_t > iterations_
Definition: GenericOptimizer.hpp:293
virtual void PrintFinalOutput() const
Definition: GenericOptimizer.cpp:259
std::vector< std::vector< double > > population_
Definition: GenericOptimizer.hpp:287
void ResetGenericOptimizer()
Definition: GenericOptimizer.cpp:50
Unfit::Bounds bounds
Definition: GenericOptimizer.hpp:168
virtual void SetPopulation(const std::vector< std::vector< double >> &population)
Definition: GenericOptimizer.cpp:97
Definition: GenericCostFunction.hpp:36
virtual void SortPopulation() noexcept
Definition: GenericOptimizer.cpp:284
Unfit::Options options
Definition: GenericOptimizer.hpp:174
virtual double GetCost(std::size_t index=0) const noexcept
Definition: GenericOptimizer.cpp:61
virtual std::size_t GetNumberOfIterations() const noexcept
Definition: GenericOptimizer.cpp:72
virtual void PrintInitialOutput(double best_cost) const
Definition: GenericOptimizer.cpp:230
std::vector< double > GeneratePopulationMember(GenericCostFunction &CostFunction, std::vector< std::uniform_real_distribution< double >> &distributions, std::size_t dimensions, std::size_t mem)
Definition: GenericOptimizer.cpp:292
virtual bool CalculateCost(GenericCostFunction &CostFunction, std::vector< double > &x)
Definition: GenericOptimizer.cpp:105
virtual void PrintIterationOutput(double best_cost) const
Definition: GenericOptimizer.cpp:243
virtual ~GenericOptimizer()
Definition: GenericOptimizer.cpp:47
virtual int FindMin(GenericCostFunction &cost_function, std::vector< double > &coordinates)=0
GenericOptimizer()
Definition: GenericOptimizer.cpp:37
virtual std::vector< double > GetSolution(std::size_t index=0) const
Definition: GenericOptimizer.cpp:87
virtual std::vector< std::vector< double > > GetPopulation() const
Definition: GenericOptimizer.cpp:82
Definition: Bounds.hpp:39
virtual bool GetIsPopulationBased() const noexcept
Definition: GenericOptimizer.cpp:67
Definition: Options.hpp:36
std::vector< std::mt19937 > random_engines_
Definition: GenericOptimizer.hpp:289