Pallas Solver  0.1
C++ Global Optimization Algorithms
Public Member Functions | Public Attributes | List of all members
pallas::DifferentialEvolution::Options Struct Reference

#include <differential_evolution.h>

Public Member Functions

 Options ()
 Default constructor. More...
 

Public Attributes

GradientLocalMinimizer::Options local_minimizer_options
 
MutationStrategyType mutation_strategy
 
CrossoverStrategyType crossover_strategy
 
PopulationInitializationType population_initialization
 
unsigned int max_iterations
 
unsigned int population_size
 
double minimum_cost
 
Vector2d dither
 
Vector upper_bounds
 
Vector lower_bounds
 
double crossover_probability
 
double tolerance
 
bool polish_output
 
bool is_silent
 
unsigned int history_save_frequency
 

Detailed Description

Configurable options for modifying the default behaviour of the differential evolution algorithm.

Constructor & Destructor Documentation

pallas::DifferentialEvolution::Options::Options ( )
inline

Default constructor.

This tries to set up reasonable defaults for optimization. It is highly recommended that the user read and overwrite the defaults based on the cost function.

Member Data Documentation

double pallas::DifferentialEvolution::Options::crossover_probability

The recombination constant, should be in the range [0, 1]. Increasing this value allows a larger number of mutants to progress into the next generation, but at the risk of population stability.

CrossoverStrategyType pallas::DifferentialEvolution::Options::crossover_strategy

The crossover strategy to use. Should be one of BINOMIAL or EXPONENTIAL.

Vector2d pallas::DifferentialEvolution::Options::dither

It should be in the range [0, 2]. Dithering randomly changes the mutation constant on a generation by generation basis. The mutation constant for that generation is taken from U[min, max). Dithering can help speed convergence significantly. Increasing the mutation constant increases the search radius, but will slow down convergence.

unsigned int pallas::DifferentialEvolution::Options::history_save_frequency

Frequency to save the state of the system. Values will be appended to a HistorySeries contained in the optimization summary. Default is 0. If 0 then history is not saved. Otherwise, the state of the system will be appended to the series when i % history_save_frequency == 0. If there are a large number of iterations this can lead to a lot of data being stored in memory.

bool pallas::DifferentialEvolution::Options::is_silent

Whether to log failure information relating the to global optimization algorithm using glog.

GradientLocalMinimizer::Options pallas::DifferentialEvolution::Options::local_minimizer_options

Contains any changes to the default options for the local minimization algorithm. See the documentation for ceres::GradientProblemSolver::Options for relevant options

Vector pallas::DifferentialEvolution::Options::lower_bounds

Lower bounds for variables

unsigned int pallas::DifferentialEvolution::Options::max_iterations

The maximum number of times the entire population is evolved.

double pallas::DifferentialEvolution::Options::minimum_cost

User specified minimum cost. Minimization will halt if minimum_cost is reached.

MutationStrategyType pallas::DifferentialEvolution::Options::mutation_strategy

The mutation strategy to use. Should be one of BEST_1, RAND_1, RAND_TO_BEST_1, BEST_2, or RAND_2.

bool pallas::DifferentialEvolution::Options::polish_output

Whether the global minimum found through differential evolution should be subjected to a local minimization "polishing" step before returning the result.

PopulationInitializationType pallas::DifferentialEvolution::Options::population_initialization

Specify how the population initialization is performed. Should be one of: LATIN_HYPERCUBE or RANDOM. The default is LATIN_HYPERCUBE. Latin Hypercube sampling tries to maximize coverage of the available parameter space. RANDOM initializes the population randomly - this has the drawback that clustering can occur, preventing the whole of parameter space being covered.

unsigned int pallas::DifferentialEvolution::Options::population_size

The total number of individuals in the population.

double pallas::DifferentialEvolution::Options::tolerance

When the mean of the population energies, multiplied by tolerance, divided by the standard deviation of the population energies is greater than 1 the solving process terminates: convergence = mean(pop) * tol / stdev(pop) > 1.

Vector pallas::DifferentialEvolution::Options::upper_bounds

Upper bounds for variables.


The documentation for this struct was generated from the following file: