SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::optimization::optimizer::DifferentialEvolution Class Reference

Gradient-free Differential Evolution method. More...

#include <DifferentialEvolution.hpp>

Inheritance diagram for sgpp::optimization::optimizer::DifferentialEvolution:
sgpp::optimization::optimizer::UnconstrainedOptimizer

Public Member Functions

void clone (std::unique_ptr< UnconstrainedOptimizer > &clone) const override
 
 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.
 
 DifferentialEvolution (const DifferentialEvolution &other)
 Copy constructor.
 
double getAvgImprovementThreshold () const
 
double getCrossoverProbability () const
 
size_t getIdleGenerationsCount () const
 
double getMaxDistanceThreshold () const
 
size_t getPopulationSize () const
 
double getScalingFactor () const
 
void optimize () override
 Pure virtual method for optimization of the objective function.
 
void setAvgImprovementThreshold (double avgImprovementThreshold)
 
void setCrossoverProbability (double crossoverProbability)
 
void setIdleGenerationsCount (size_t idleGenerationsCount)
 
void setMaxDistanceThreshold (double maxDistanceThreshold)
 
void setPopulationSize (size_t populationSize)
 
void setScalingFactor (double scalingFactor)
 
 ~DifferentialEvolution () override
 Destructor.
 
- Public Member Functions inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
const base::DataMatrixgetHistoryOfOptimalPoints () const
 
const base::DataVectorgetHistoryOfOptimalValues () const
 
size_t getN () const
 
base::ScalarFunctiongetObjectiveFunction () const
 
base::ScalarFunctionGradientgetObjectiveGradient () const
 
base::ScalarFunctionHessiangetObjectiveHessian () const
 
const base::DataVectorgetOptimalPoint () const
 
double getOptimalValue () const
 
const base::DataVectorgetStartingPoint () const
 
void setN (size_t N)
 
virtual void setObjectiveFunction (const base::ScalarFunction &f)
 
virtual void setObjectiveGradient (const base::ScalarFunctionGradient *fGradient)
 
virtual void setObjectiveHessian (const base::ScalarFunctionHessian *fHessian)
 
void setStartingPoint (const base::DataVector &startingPoint)
 
 UnconstrainedOptimizer (const base::ScalarFunction &f, const base::ScalarFunctionGradient *fGradient, const base::ScalarFunctionHessian *fHessian, size_t N=DEFAULT_N)
 Constructor.
 
 UnconstrainedOptimizer (const UnconstrainedOptimizer &other)
 Copy constructor.
 
virtual ~UnconstrainedOptimizer ()
 Destructor.
 

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 Public Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
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
 
- Protected Attributes inherited from sgpp::optimization::optimizer::UnconstrainedOptimizer
std::unique_ptr< base::ScalarFunctionf
 objective function
 
std::unique_ptr< base::ScalarFunctionGradientfGradient
 objective function gradient
 
std::unique_ptr< base::ScalarFunctionHessianfHessian
 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)
 

Detailed Description

Gradient-free Differential Evolution method.

Constructor & Destructor Documentation

◆ DifferentialEvolution() [1/2]

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.

Parameters
fobjective function
maxFcnEvalCountmaximal number of function evaluations
populationSizenumber of individuals (default: \(10d\))
crossoverProbabilitycrossover probability
scalingFactorcrossover scaling factor
idleGenerationsCountstopping criterion parameter 1
avgImprovementThresholdstopping criterion parameter 2
maxDistanceThresholdstopping criterion parameter 3

◆ DifferentialEvolution() [2/2]

sgpp::optimization::optimizer::DifferentialEvolution::DifferentialEvolution ( const DifferentialEvolution other)

Copy constructor.

Parameters
otheroptimizer to be copied

◆ ~DifferentialEvolution()

sgpp::optimization::optimizer::DifferentialEvolution::~DifferentialEvolution ( )
override

Destructor.

Member Function Documentation

◆ clone()

void sgpp::optimization::optimizer::DifferentialEvolution::clone ( std::unique_ptr< UnconstrainedOptimizer > &  clone) const
overridevirtual
Parameters
[out]clonepointer to cloned object

Implements sgpp::optimization::optimizer::UnconstrainedOptimizer.

References clone().

Referenced by clone().

◆ getAvgImprovementThreshold()

double sgpp::optimization::optimizer::DifferentialEvolution::getAvgImprovementThreshold ( ) const
Returns
stopping criterion parameter 2

References avgImprovementThreshold.

◆ getCrossoverProbability()

double sgpp::optimization::optimizer::DifferentialEvolution::getCrossoverProbability ( ) const
Returns
crossover probability

References crossoverProbability.

◆ getIdleGenerationsCount()

size_t sgpp::optimization::optimizer::DifferentialEvolution::getIdleGenerationsCount ( ) const
Returns
stopping criterion parameter 1

References idleGenerationsCount.

◆ getMaxDistanceThreshold()

double sgpp::optimization::optimizer::DifferentialEvolution::getMaxDistanceThreshold ( ) const
Returns
stopping criterion parameter 3

References maxDistanceThreshold.

◆ getPopulationSize()

size_t sgpp::optimization::optimizer::DifferentialEvolution::getPopulationSize ( ) const
Returns
number of individuals

References populationSize.

◆ getScalingFactor()

double sgpp::optimization::optimizer::DifferentialEvolution::getScalingFactor ( ) const
Returns
crossover scaling factor

References scalingFactor.

◆ optimize()

◆ setAvgImprovementThreshold()

void sgpp::optimization::optimizer::DifferentialEvolution::setAvgImprovementThreshold ( double  avgImprovementThreshold)
Parameters
avgImprovementThresholdstopping criterion parameter 2

References avgImprovementThreshold.

◆ setCrossoverProbability()

void sgpp::optimization::optimizer::DifferentialEvolution::setCrossoverProbability ( double  crossoverProbability)
Parameters
crossoverProbabilitycrossover probability

References crossoverProbability.

◆ setIdleGenerationsCount()

void sgpp::optimization::optimizer::DifferentialEvolution::setIdleGenerationsCount ( size_t  idleGenerationsCount)
Parameters
idleGenerationsCountstopping criterion parameter 1

References idleGenerationsCount.

◆ setMaxDistanceThreshold()

void sgpp::optimization::optimizer::DifferentialEvolution::setMaxDistanceThreshold ( double  maxDistanceThreshold)
Parameters
maxDistanceThresholdstopping criterion parameter 3

References maxDistanceThreshold.

◆ setPopulationSize()

void sgpp::optimization::optimizer::DifferentialEvolution::setPopulationSize ( size_t  populationSize)
Parameters
populationSizenumber of individuals

References populationSize.

◆ setScalingFactor()

void sgpp::optimization::optimizer::DifferentialEvolution::setScalingFactor ( double  scalingFactor)
Parameters
scalingFactorcrossover scaling factor

References scalingFactor.

Member Data Documentation

◆ avgImprovementThreshold

double sgpp::optimization::optimizer::DifferentialEvolution::avgImprovementThreshold
protected

stopping criterion parameter 2

Referenced by getAvgImprovementThreshold(), optimize(), and setAvgImprovementThreshold().

◆ crossoverProbability

double sgpp::optimization::optimizer::DifferentialEvolution::crossoverProbability
protected

crossover probability

Referenced by getCrossoverProbability(), optimize(), and setCrossoverProbability().

◆ DEFAULT_AVG_IMPROVEMENT_THRESHOLD

constexpr double sgpp::optimization::optimizer::DifferentialEvolution::DEFAULT_AVG_IMPROVEMENT_THRESHOLD = 1e-6
staticconstexpr

default stopping criterion parameter 2

◆ DEFAULT_CROSSOVER_PROBABILITY

constexpr double sgpp::optimization::optimizer::DifferentialEvolution::DEFAULT_CROSSOVER_PROBABILITY = 0.5
staticconstexpr

default crossover probability

◆ DEFAULT_IDLE_GENERATIONS_COUNT

const size_t sgpp::optimization::optimizer::DifferentialEvolution::DEFAULT_IDLE_GENERATIONS_COUNT = 20
static

default stopping criterion parameter 1

◆ DEFAULT_MAX_DISTANCE_THRESHOLD

constexpr double sgpp::optimization::optimizer::DifferentialEvolution::DEFAULT_MAX_DISTANCE_THRESHOLD = 1e-4
staticconstexpr

default stopping criterion parameter 3

◆ DEFAULT_SCALING_FACTOR

constexpr double sgpp::optimization::optimizer::DifferentialEvolution::DEFAULT_SCALING_FACTOR = 0.6
staticconstexpr

default crossover scaling factor

◆ idleGenerationsCount

size_t sgpp::optimization::optimizer::DifferentialEvolution::idleGenerationsCount
protected

stopping criterion parameter 1

Referenced by getIdleGenerationsCount(), optimize(), and setIdleGenerationsCount().

◆ maxDistanceThreshold

double sgpp::optimization::optimizer::DifferentialEvolution::maxDistanceThreshold
protected

stopping criterion parameter 3

Referenced by getMaxDistanceThreshold(), optimize(), and setMaxDistanceThreshold().

◆ populationSize

size_t sgpp::optimization::optimizer::DifferentialEvolution::populationSize
protected

number of individuals

Referenced by getPopulationSize(), optimize(), and setPopulationSize().

◆ scalingFactor

double sgpp::optimization::optimizer::DifferentialEvolution::scalingFactor
protected

crossover scaling factor

Referenced by getScalingFactor(), optimize(), and setScalingFactor().


The documentation for this class was generated from the following files: