|
Pallas Solver
0.1
C++ Global Optimization Algorithms
|
#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 |
Configurable options for modifying the default behaviour of the differential evolution algorithm.
|
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.
| 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.
1.8.11