![]() |
SG++-Doxygen-Documentation
|
Gradient-free Differential Evolution method. More...
#include <DifferentialEvolution.hpp>
Static Public Attributes | |
static constexpr double | DEFAULT_AVG_IMPROVEMENT_THRESHOLD = 1e-6 |
default stopping criterion parameter 2 | |
static constexpr double | DEFAULT_CROSSOVER_PROBABILITY = 0.5 |
default crossover probability | |
static const size_t | DEFAULT_IDLE_GENERATIONS_COUNT = 20 |
default stopping criterion parameter 1 | |
static constexpr double | DEFAULT_MAX_DISTANCE_THRESHOLD = 1e-4 |
default stopping criterion parameter 3 | |
static constexpr double | DEFAULT_SCALING_FACTOR = 0.6 |
default crossover scaling factor | |
![]() | |
static const size_t | DEFAULT_N = 1000 |
default maximal number of iterations or function evaluations | |
Protected Attributes | |
double | avgImprovementThreshold |
stopping criterion parameter 2 | |
double | crossoverProbability |
crossover probability | |
size_t | idleGenerationsCount |
stopping criterion parameter 1 | |
double | maxDistanceThreshold |
stopping criterion parameter 3 | |
size_t | populationSize |
number of individuals | |
double | scalingFactor |
crossover scaling factor | |
![]() | |
std::unique_ptr< base::ScalarFunction > | f |
objective function | |
std::unique_ptr< base::ScalarFunctionGradient > | fGradient |
objective function gradient | |
std::unique_ptr< base::ScalarFunctionHessian > | fHessian |
objective function Hessian | |
base::DataVector | fHist |
search history vector (optimal values) | |
double | fOpt |
result of optimization (optimal function value) | |
size_t | N |
maximal number of iterations or function evaluations | |
base::DataVector | x0 |
starting point | |
base::DataMatrix | xHist |
search history matrix (optimal points) | |
base::DataVector | xOpt |
result of optimization (location of optimum) | |
Gradient-free Differential Evolution method.
sgpp::optimization::optimizer::DifferentialEvolution::DifferentialEvolution | ( | const base::ScalarFunction & | f, |
size_t | maxFcnEvalCount = DEFAULT_N , |
||
size_t | populationSize = 0 , |
||
double | crossoverProbability = DEFAULT_CROSSOVER_PROBABILITY , |
||
double | scalingFactor = DEFAULT_SCALING_FACTOR , |
||
size_t | idleGenerationsCount = DEFAULT_IDLE_GENERATIONS_COUNT , |
||
double | avgImprovementThreshold = DEFAULT_AVG_IMPROVEMENT_THRESHOLD , |
||
double | maxDistanceThreshold = DEFAULT_MAX_DISTANCE_THRESHOLD |
||
) |
Constructor.
f | objective function |
maxFcnEvalCount | maximal number of function evaluations |
populationSize | number of individuals (default: \(10d\)) |
crossoverProbability | crossover probability |
scalingFactor | crossover scaling factor |
idleGenerationsCount | stopping criterion parameter 1 |
avgImprovementThreshold | stopping criterion parameter 2 |
maxDistanceThreshold | stopping criterion parameter 3 |
sgpp::optimization::optimizer::DifferentialEvolution::DifferentialEvolution | ( | const DifferentialEvolution & | other | ) |
Copy constructor.
other | optimizer to be copied |
|
override |
Destructor.
|
overridevirtual |
[out] | clone | pointer to cloned object |
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References clone().
Referenced by clone().
double sgpp::optimization::optimizer::DifferentialEvolution::getAvgImprovementThreshold | ( | ) | const |
References avgImprovementThreshold.
double sgpp::optimization::optimizer::DifferentialEvolution::getCrossoverProbability | ( | ) | const |
References crossoverProbability.
size_t sgpp::optimization::optimizer::DifferentialEvolution::getIdleGenerationsCount | ( | ) | const |
References idleGenerationsCount.
double sgpp::optimization::optimizer::DifferentialEvolution::getMaxDistanceThreshold | ( | ) | const |
References maxDistanceThreshold.
size_t sgpp::optimization::optimizer::DifferentialEvolution::getPopulationSize | ( | ) | const |
References populationSize.
double sgpp::optimization::optimizer::DifferentialEvolution::getScalingFactor | ( | ) | const |
References scalingFactor.
|
overridevirtual |
Pure virtual method for optimization of the objective function.
The result of the optimization process can be obtained by member functions, e.g., getOptimalPoint() and getOptimalValue().
Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.
References sgpp::base::DataVector::append(), sgpp::base::DataMatrix::appendRow(), avgImprovementThreshold, sgpp::base::ScalarFunction::clone(), crossoverProbability, sgpp::base::ScalarFunction::eval(), sgpp::optimization::optimizer::UnconstrainedOptimizer::f, sgpp::optimization::optimizer::UnconstrainedOptimizer::fHist, sgpp::optimization::optimizer::UnconstrainedOptimizer::fOpt, sgpp::base::Printer::getInstance(), sgpp::base::RandomNumberGenerator::getInstance(), sgpp::base::RandomNumberGenerator::getUniformIndexRN(), sgpp::base::RandomNumberGenerator::getUniformRN(), idleGenerationsCount, maxDistanceThreshold, sgpp::optimization::optimizer::UnconstrainedOptimizer::N, populationSize, sgpp::base::Printer::printStatusBegin(), sgpp::base::Printer::printStatusEnd(), sgpp::base::Printer::printStatusUpdate(), sgpp::base::DataMatrix::resize(), scalingFactor, sgpp::optimization::optimizer::UnconstrainedOptimizer::xHist, and sgpp::optimization::optimizer::UnconstrainedOptimizer::xOpt.
void sgpp::optimization::optimizer::DifferentialEvolution::setAvgImprovementThreshold | ( | double | avgImprovementThreshold | ) |
avgImprovementThreshold | stopping criterion parameter 2 |
References avgImprovementThreshold.
void sgpp::optimization::optimizer::DifferentialEvolution::setCrossoverProbability | ( | double | crossoverProbability | ) |
crossoverProbability | crossover probability |
References crossoverProbability.
void sgpp::optimization::optimizer::DifferentialEvolution::setIdleGenerationsCount | ( | size_t | idleGenerationsCount | ) |
idleGenerationsCount | stopping criterion parameter 1 |
References idleGenerationsCount.
void sgpp::optimization::optimizer::DifferentialEvolution::setMaxDistanceThreshold | ( | double | maxDistanceThreshold | ) |
maxDistanceThreshold | stopping criterion parameter 3 |
References maxDistanceThreshold.
void sgpp::optimization::optimizer::DifferentialEvolution::setPopulationSize | ( | size_t | populationSize | ) |
populationSize | number of individuals |
References populationSize.
void sgpp::optimization::optimizer::DifferentialEvolution::setScalingFactor | ( | double | scalingFactor | ) |
scalingFactor | crossover scaling factor |
References scalingFactor.
|
protected |
stopping criterion parameter 2
Referenced by getAvgImprovementThreshold(), optimize(), and setAvgImprovementThreshold().
|
protected |
crossover probability
Referenced by getCrossoverProbability(), optimize(), and setCrossoverProbability().
|
staticconstexpr |
default stopping criterion parameter 2
|
staticconstexpr |
default crossover probability
|
static |
default stopping criterion parameter 1
|
staticconstexpr |
default stopping criterion parameter 3
|
staticconstexpr |
default crossover scaling factor
|
protected |
stopping criterion parameter 1
Referenced by getIdleGenerationsCount(), optimize(), and setIdleGenerationsCount().
|
protected |
stopping criterion parameter 3
Referenced by getMaxDistanceThreshold(), optimize(), and setMaxDistanceThreshold().
|
protected |
number of individuals
Referenced by getPopulationSize(), optimize(), and setPopulationSize().
|
protected |
crossover scaling factor
Referenced by getScalingFactor(), optimize(), and setScalingFactor().