|
Unfit
3.1.1
Data fitting and optimization software
|
#include <Options.hpp>
Public Member Functions | |
| Options () | |
| void | ResetOptions () |
| double | GetCostTolerance () const noexcept |
| void | SetCostTolerance (double tolerance) |
| double | GetDegenerateTolerance () const noexcept |
| void | SetDegenerateTolerance (double tolerance) |
| double | GetGeometricTolerance () const noexcept |
| void | SetGeometricTolerance (double tolerance) |
| double | GetAlpha () const noexcept |
| void | SetAlpha (double alpha) |
| double | GetBeta () const noexcept |
| void | SetBeta (double beta) |
| double | GetDelta () const noexcept |
| void | SetDelta (double delta) |
| double | GetGamma () const noexcept |
| void | SetGamma (double gamma) |
| double | GetEpsilon () const noexcept |
| void | SetEpsilon (double epsilon) |
| void | SetTau (double tau) |
| double | GetTau () const noexcept |
| unsigned | GetMaxFunctionEvaluations () const noexcept |
| void | SetMaxFunctionEvaluations (unsigned max_func_evals) |
| unsigned | GetMaxIterations () const noexcept |
| void | SetMaxIterations (unsigned max_iters) |
| void | GetNelderMeadStepSizes (double &alpha, double &beta, double &delta, double &gamma) |
| void | SetNelderMeadStepSizes (double alpha, double beta, double delta, double gamma) |
| unsigned | GetOutputLevel () const noexcept |
| void | SetOutputLevel (unsigned output_level) |
| unsigned | GetCostNormType () const noexcept |
| void | SetCostNormType (unsigned cost_norm_type) |
| bool | GetUseAdaptiveParameters () const noexcept |
| void | SetUseAdaptiveParameters (bool adaptive) |
| unsigned | GetPopulationSize () const noexcept |
| void | SetPopulationSize (unsigned pop_size) |
| bool | GetUserSetPopulationSize () const noexcept |
| unsigned | GetRandomSeed () const noexcept |
| void | SetRandomSeed (unsigned seed) |
| unsigned | GetStrategy () const noexcept |
| void | SetStrategy (unsigned strategy) |
| double | GetCrossOver () const noexcept |
| void | SetCrossOver (double cross_over) |
| double | GetWeightingFactor () const noexcept |
| void | SetWeightingFactor (double weighting_factor) |
| bool | GetAddInitialToPopulation () const noexcept |
| void | SetAddInitialToPopulation (bool add_initial) |
| bool | GetUseBroydenUpdates () const noexcept |
| void | SetUseBroydenUpdates (bool use_broyden) |
| unsigned | GetElitism () const noexcept |
| void | SetElitism (unsigned elite) |
| double | GetSurvivalRate () const noexcept |
| void | SetSurvivalRate (double rate) |
| bool | GetUseHardBounds () const noexcept |
| void | SetUseHardBounds (bool use_hard_bounds) |
| bool | GetUserSetPopulation () const noexcept |
| void | SetUserSetPopulation (bool has_set_population) |
| bool | GetUseMultiThreaded () const noexcept |
| void | SetUseMultiThreaded (bool use_multi_threaded) |
| double | GetTemperature () const noexcept |
| void | SetTemperature (double temperature) |
| double | GetStepReductionFactor () const noexcept |
| void | SetStepReductionFactor (double step_factor) |
| double | GetTemperatureReductionFactor () const noexcept |
| void | SetTemperatureReductionFactor (double temperature_factor) |
| int | GetNumberOfCycles () const noexcept |
| void | SetNumberOfCycles (int num_cycles) |
| int | GetNumberOfTemperatureLoops () const noexcept |
| void | SetNumberOfTemperatureLoops (int num_temperature_loops) |
Private Attributes | |
| unsigned | max_function_evaluations_ |
| unsigned | max_iterations_ |
| unsigned | output_level_ |
| unsigned | cost_norm_type_ |
| double | cost_tolerance_ |
| double | degenerate_tolerance_ |
| double | geometric_tolerance_ |
| double | alpha_ |
| double | beta_ |
| double | delta_ |
| double | gamma_ |
| double | epsilon_ |
| double | tau_ |
| bool | use_adaptive_ |
| unsigned | population_size_ |
| unsigned | seed_ |
| unsigned | strategy_ |
| double | weighting_factor_ |
| double | cross_over_ |
| unsigned | elitism_ |
| double | survival_rate_ |
| bool | user_has_set_population_size_ |
| bool | user_has_set_population_ |
| bool | use_broyden_updates_ |
| bool | add_initial_to_population_ |
| bool | use_hard_bounds_ |
| bool | use_multi_threaded_ |
| double | temperature_ |
| double | step_reduction_factor_ |
| double | temperature_reduction_factor_ |
| int | num_cycles_ |
| int | num_temperature_loops_ |
Static Private Attributes | |
| static constexpr unsigned | default_max_function_evaluations_ = 100000 |
| static constexpr unsigned | default_max_iterations_ = 10000 |
| static constexpr unsigned | default_output_level_ = 0 |
| static constexpr unsigned | default_cost_norm_type_ = 2 |
| static constexpr double | default_cost_tolerance_ = 1e-12 |
| static constexpr double | default_degenerate_tolerance_ = 1e-8 |
| static constexpr double | default_geometric_tolerance_ = 1e-4 |
| static constexpr double | default_alpha_ = 1.0 |
| static constexpr double | default_beta_ = 2.0 |
| static constexpr double | default_delta_ = 0.5 |
| static constexpr double | default_epsilon_ = 1e-12 |
| static constexpr double | default_gamma_ = 0.5 |
| static constexpr double | default_tau_ = 1e-3 |
| static constexpr bool | default_use_adaptive_ = false |
| static constexpr unsigned | default_population_size_ = 20 |
| static constexpr unsigned | default_seed_ = 0 |
| static constexpr unsigned | default_strategy_ = 1 |
| static constexpr double | default_weighting_factor_ = 0.8 |
| static constexpr double | default_cross_over_ = 0.9 |
| static constexpr unsigned | default_elitism_ = 1 |
| static constexpr double | default_survival_rate_ = 0.5 |
| static constexpr bool | default_user_has_set_population_size_ = false |
| static constexpr bool | default_user_has_set_population_ = false |
| static constexpr bool | default_use_broyden_updates_ = true |
| static constexpr bool | default_add_initial_to_population_ = false |
| static constexpr bool | default_use_hard_bounds_ = false |
| static constexpr bool | default_use_multi_threaded_ = false |
| static constexpr double | default_temperature_ = 1000.0 |
| static constexpr double | default_step_reduction_factor_ = 0.9 |
| static constexpr double | default_temperature_reduction_factor_ = 0.5 |
| static constexpr int | default_num_cycles_ = 20 |
| static constexpr int | default_num_temperature_loops_ = 5 |
This class is designed to handle all of the optimization options for Unfit. The model is that all options should be here, so as to provide a uniform interface to setting an option from any optimization method. The drawback is that some options may not be valid for some methods, but if someone sets an option that is not relevant, it will have no effect. In the future it may be a good idea to warn the user if an option will do nothing for their chosen optimization algorithm.
| Unfit::Options::Options | ( | ) |
Set all of the optimization options to their default values
|
noexcept |
Returns whether or not the initial coordinates should form part of the initial population for Differential Evolution. The default is no (false).
|
noexcept |
Get the value of the alpha parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the reflect operation.
|
noexcept |
Get the value of the beta parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the expand operation.
|
noexcept |
Gets the current norm type used for calculating the cost of the current parameter estimate. The default is the L2 norm (sum of squared error) because that is what Levenberg-Marquardt requires. The other option is the L1 norm (sum of absolute errors).
|
noexcept |
Get the value of the cost tolerance which controls the termination of the optimization based on the value of the user-supplied cost function.
|
noexcept |
Get the cross over probability (CR) used by the differential evolution algorithm
|
noexcept |
Get the value of the degenerate tolerance. At the moment this is only used in the Nelder-Mead algorithm to check the size of the simplex. If all of the points become colinear then we need to restart with a new simplex. This parameter controls how colinear the vertices can be before a restart is required.
|
noexcept |
Get the value of the delta parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the shrink operation. This is the size of the finite difference step used to approximate the jacobian matrix in the LevenbergMarquardt algorithm.
|
noexcept |
Elite chromosomes are immune from the mutation process associated with the Genetic Algorithm optimisation technique. This returns the number of elite chromosomes.
|
noexcept |
This method returns the value of epsilon, which is used in the Levenberg Marquardt algorithm as a convergence measure for the gradients at each iteration. If none of the gradients are larger than epsilon we have convergence.
|
noexcept |
Get the value of the gamma parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the contract operations.
|
noexcept |
Get the value of the geometric tolerance which controls the termination of the optimization based on a metric related to the size of the problem space. It will be algorithm specific as to whether this is used and as to what it actually checks.
|
noexcept |
Get the maximum number of function evaluations (calls to the cost function) for the optimization problem. The optimization will terminate if the maximum number of function evaluations is reached before convergence.
|
noexcept |
Get the maximum number of iterations for the optimization problem. The optimization will terminate if the maximum number of iterations is reached before convergence.
| void Unfit::Options::GetNelderMeadStepSizes | ( | double & | alpha, |
| double & | beta, | ||
| double & | delta, | ||
| double & | gamma | ||
| ) |
Get the step sizes for the NelderMead algorithm. The alpha parameter scales the reflect operation, the beta parameter scales the expand operation, the delta parameter scales the shrink operation and the gamma parameter scales the contract operations. The design of the interface is such that you can get the parameters, change one or more, then pass them back in to set them without having to expose the user to the added complexity of something like a tuple.
| alpha | Scales the reflect operation (default 1.0) |
| beta | Scales the expand operation (default 2.0) |
| delta | Scales the shrink operation (default 0.5) |
| gamma | Scales the contract operation (default 0.5) |
|
noexcept |
Returns the number of cycles to be used in Simulated Annealing. The default value is 20
|
noexcept |
Returns the number of temperature loops to be used in Simulated Annealing. The default value is 5
|
noexcept |
Gets the current level of output. This may be algorithm specific, but in general 0 = no output; 1 = iteration counter only; 2 = iteration by iteration information; 3+ = same as 2, plus additional output (e.g. final result).
|
noexcept |
Returns the size of the population used in the GeneticAlgorithm or DifferentialEvolution solution method.
|
noexcept |
Gets the seed to be used by the random number engine used by Genetic Algorithm and Differential Evolution.
|
noexcept |
Returns the step reduction factor to be used to reduce the step size after each temperature loop in Simulated Annealing. The default value is 0.9
|
noexcept |
Get the current strategy used by the differential evolution algorithm (range = 1-10).
|
noexcept |
For Genetic Algorithms, in each generation, part of the population survives and part is replaced. This method gets the proportion of chromosomes that survive at each generation.
|
noexcept |
Set the value of the tau parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the Levenberg Marquardt algorithm tau scales the initial damping parameter mu.
|
noexcept |
Returns the initial temperature (in Kelvin) to be used in the first iteration for Simulated Annealing algorithm. The default initial temperature is 1000.
|
noexcept |
Returns the temperature reduction factor to be used to reduce temperature after each temperature loop in Simulated Annealing. The default value is 0.5
|
noexcept |
Get a boolean which states whether or not the algorithm is currently using adaptive parameters.
|
noexcept |
Returns whether or not we are using Broyden rank one updates for the Levenberg Marquart algorithm. The default is yes (true).
|
noexcept |
For Differential Evolution, this returns whether or not the specified bounds are strictly enforced. If false, the solution can be outside the specified bounds.
|
noexcept |
Returns whether or not the algorithms in Unfit run multi-threaded or on a single thread (parallel or serial execution).
|
noexcept |
Returns whether or not the user has provided a population to the optimizer.
|
noexcept |
For both GeneticAlgorithm and DifferentialEvolution, the default population size is determined by the code. If a user wants to override this then we need to set a flag. Call this method to determine if the user has set their own population size.
|
noexcept |
Get the differential weighting factor (F) used by the differential evolution algorithm
| void Unfit::Options::ResetOptions | ( | ) |
Resets all of the optimization options to their default values
| void Unfit::Options::SetAddInitialToPopulation | ( | bool | add_initial | ) |
Choose whether or not the initial coordinates should form part of the initial population for Differential Evolution. The default is no (false).
| add_initial | true if the passed in coordinates should be included in the population |
| void Unfit::Options::SetAlpha | ( | double | alpha | ) |
Set the value of the alpha parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the reflect operation. If you are using NelderMead you should use SetNelderMeadStepSizes as this does not check the input is in keeping with the NelderMead constraints.
| alpha | The value of alpha |
| void Unfit::Options::SetBeta | ( | double | beta | ) |
Set the value of the beta parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the expand operation. If you are using NelderMead you should use SetNelderMeadStepSizes as this does not check the input is in keeping with the NelderMead constraints.
| beta | The value of beta |
| void Unfit::Options::SetCostNormType | ( | unsigned | cost_norm_type | ) |
Sets the desired norm type for for calculating the cost of the current parameter estimate. The default is the L2 norm (sum of squared error) because that is what Levenberg-Marquardt requires. The other option is the L1 norm (sum of absolute errors). Although the other optimisers will use the L1 norm if you ask them to, Levenberg-Marquardt always has to use L2.
| cost_norm_type | Set to 1 to use the L1 norm, or 2 for the L2 norm |
| void Unfit::Options::SetCostTolerance | ( | double | tolerance | ) |
Set the value of the cost tolerance which controls the termination of the optimization based on the value of the user-supplied cost function. The tolerance must be positive, and anything else will be ignored.
| tolerance | The value of cost tolerance |
| void Unfit::Options::SetCrossOver | ( | double | cross_over | ) |
Set the cross over probability (CR) to be used by the differential evolution algorithm. This determines how likely it is that a population member will evolve.
| cross_over | the cross over probability |
| void Unfit::Options::SetDegenerateTolerance | ( | double | tolerance | ) |
Set the value of the degenerate tolerance. At the moment this is only used in the Nelder-Mead algorithm to check the size of the simplex. If all of the points become colinear then we need to restart with a new simplex. This parameter controls how colinear the vertices can be before a restart is required. The tolerance must be positive, and anything else will be ignored.
| tolerance | The value of degenerate tolerance |
| void Unfit::Options::SetDelta | ( | double | delta | ) |
Set the value of the delta parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the shrink operation. If you are using NelderMead you should use SetNelderMeadStepSizes as this does not check the input is in keeping with the NelderMead constraints. This is the size of the finite difference step used to approximate the jacobian matrix in the LevenbergMarquardt algorithm.
| delta | The value of delta |
| void Unfit::Options::SetElitism | ( | unsigned | elite | ) |
Elite chromosomes are immune from the mutation process associated with the Genetic Algorithm optimisation technique. This sets the number of elite chromosomes.
| elite | The number of elite chromosomes |
| void Unfit::Options::SetEpsilon | ( | double | epsilon | ) |
This method sets the value of epsilon, which is used in the Levenberg Marquardt algorithm as a convergence measure for the gradients at each iteration. If none of the gradients are larger than epsilon we have convergence.
| epsilon | the intended value of epsilon |
| void Unfit::Options::SetGamma | ( | double | gamma | ) |
Set the value of the gamma parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the NelderMead algorithm this scales the contract operations. If you are using NelderMead you should use SetNelderMeadStepSizes as this does not check the input is in keeping with the NelderMead constraints.
| gamma | The value of gamma |
| void Unfit::Options::SetGeometricTolerance | ( | double | tolerance | ) |
Set the value of the geometric tolerance which controls the termination of the optimization based on a metric related to the size of the problem space. It will be algorithm specific as to whether this is used and as to what it actually checks. The tolerance must be positive, and anything else will be ignored.
| tolerance | The value of geometric tolerance |
| void Unfit::Options::SetMaxFunctionEvaluations | ( | unsigned | max_func_evals | ) |
Set the maximum number of function evaluations (calls to the cost function) for the optimization problem. The optimization will terminate if the maximum number of function evaluations is reached before convergence.
| max_func_evals | Maximum number of function evaluations |
| void Unfit::Options::SetMaxIterations | ( | unsigned | max_iters | ) |
Set the maximum number of iterations for the optimization problem. The optimization will terminate if the maximum number of iterations is reached before convergence.
| max_iters | Maximum number of iterations |
| void Unfit::Options::SetNelderMeadStepSizes | ( | double | alpha, |
| double | beta, | ||
| double | delta, | ||
| double | gamma | ||
| ) |
Set the step sizes for the NelderMead algorithm. If you are not using the NelderMead algorithm then setting these options will have no effect. The alpha parameter scales the reflect operation, the beta parameter scales the expand operation, the delta parameter scales the shrink operation and the gamma parameter scales the contract operations. To ensure normal operations, it is enforced that 0 < gamma, delta < 1, and that gamma < alpha < beta. If this is not the case then the set operation will fail and the parameters will remain unchanged.
| alpha | Scales the reflect operation (default 1.0) |
| beta | Scales the expand operation (default 2.0) |
| delta | Scales the shrink operation (default 0.5) |
| gamma | Scales the contract operation (default 0.5) |
| void Unfit::Options::SetNumberOfCycles | ( | int | num_cycles | ) |
Sets the number of cycles to be used in Simulated Annealing.
| num_cycles | The number of cycles |
| void Unfit::Options::SetNumberOfTemperatureLoops | ( | int | num_temperature_loops | ) |
Sets the number of temperature loops to be used in Simulated Annealing.
| num_temperature_loops | The number of temperature loops |
| void Unfit::Options::SetOutputLevel | ( | unsigned | output_level | ) |
Set the desired level of output. This may be algorithm specific, but in general 0 = no output; 1 = iteration counter only; 2 = iteration by iteration information; 3+ = same as 2, plus additional output (e.g. final result).
| output_level | The selected level of output |
| void Unfit::Options::SetPopulationSize | ( | unsigned | pop_size | ) |
Set the size of the population used by GeneticAlgorithm and DifferentialEvolution. The minimum population size is three for GA and six for DE, and if you try to set a number less than this these minimums will be imposed. The default is to use 10x the number of unknowns.
| pop_size | The intended size of the population |
| void Unfit::Options::SetRandomSeed | ( | unsigned | seed | ) |
Sets the seed to be used by the random number engine used by Genetic Algorithm and Differential Evolution. Note that value of 0 and 1 generates the same set of values.
| seed | The seed for the random number generator |
| void Unfit::Options::SetStepReductionFactor | ( | double | step_factor | ) |
Sets the step reduction factor to be used to reduce the step size after each temperature loop in Simulated Annealing.
| step_factor | The factor to reduce step size |
| void Unfit::Options::SetStrategy | ( | unsigned | strategy | ) |
Choose amongst the 10 strategies (numbered 1-10) for the vector combinations at each iteration for the differential evolution algorithm. Different strategies can work better or worse for different problems. The default is 1, which seems to work for our test problems.
| strategy | the strategy to adopt for differential evolution |
| void Unfit::Options::SetSurvivalRate | ( | double | rate | ) |
For Genetic Algorithms, in each generation, part of the population survives and part is replaced. This method sets the proportion of chromosomes that survive at each generation. This should be between zero and one, with the caveat that a minimum of two chromosomes must survive in any given generation, to produce offspring for the next. Therefore, if you set the value to zero, two will still survive. If you set it to one, then the only change between one generation and the next will be the mutation component.
| rate | The fraction of the population that survives in a generation |
| void Unfit::Options::SetTau | ( | double | tau | ) |
Set the value of the tau parameter. It will be algorithm specific as to whether this is used and as to what it actually checks. In the Levenberg Marquardt algorithm tau scales the initial damping parameter mu. Here tau must be positive and any negative input will be ignored.
| tau | The value of tau |
| void Unfit::Options::SetTemperature | ( | double | temperature | ) |
Sets the initial temperature (in Kelvin) to be used in the first iteration for Simulated Annealing algorithm.
| temperature | The initial temperature (>0) |
| void Unfit::Options::SetTemperatureReductionFactor | ( | double | temperature_factor | ) |
Sets the temperature reduction factor to be used to reduce temperature after each temperature loop in Simulated Annealing.
| temperature_factor | The factor to reduce temperature |
| void Unfit::Options::SetUseAdaptiveParameters | ( | bool | adaptive | ) |
Set the maximum number of iterations for the optimization problem. The optimization will terminate if the maximum number of iterations is reached before convergence.
| adaptive | Set to true if adaptive parameters are wanted, or turn them off by passing false |
| void Unfit::Options::SetUseBroydenUpdates | ( | bool | use_broyden | ) |
Choose whether or not we are using Broyden rank one updates for the Levenberg Marquart algorithm. The default is yes (true).
| use_broyden | true if using Broyden rank one updates, otherwise false |
| void Unfit::Options::SetUseHardBounds | ( | bool | use_hard_bounds | ) |
For Differential Evolution, this sets whether or not the specified bounds are strictly enforced. If false, the solution can be outside the specified bounds (bounds are then essentially only used to generate the initial populations). If true, the solution must lie within the same bounds that were used to generate the population.
| use_hard_bounds | Whether or not hard bounds are in use |
| void Unfit::Options::SetUseMultiThreaded | ( | bool | use_multi_threaded | ) |
Sets whether or not the algorithms in Unfit run multi-threaded or on a single thread (parallel or serial execution).
| use_multi_threaded | True if using multi-threaded code, false otherwise |
| void Unfit::Options::SetUserSetPopulation | ( | bool | has_set_population | ) |
Sets whether or not the user has provided a population to the optimizer.
| has_set_population | True if a population is given, false otherwise |
| void Unfit::Options::SetWeightingFactor | ( | double | weighting_factor | ) |
Set the differential weighting factor (F) to be used by the differential evolution algorithm. This is used as a weight when combining different population vectors.
| weighting_factor | the differential weighting factor |
|
private |
If true, the initial coordinates passed in to FindMin are included in the initial population. If false, all population members are randomly generated. (Currently only implemented for Differential Evolution)
|
private |
Used as a scale for the reflect operation for the NelderMead algorithm. Used as initial guess for the step size in the steepest descent algorithm
|
private |
Used as a scale for the expand operation in the NelderMead algorithm. Used as Armijo rule factor in the steepest descent algorithm.
|
private |
Specify the norm type, L2 (default) or L1, for cost calculations
|
private |
The tolerance for the convergence of the cost function. This represents the epsilon parameter in the Levenberg-Marquardt algorithm.
|
private |
Sets the cross over for the DE algorithm (sometimes called CR)
|
staticprivate |
By default, the program will generate the whole population for DE
|
staticprivate |
Default value of the parameter alpha
|
staticprivate |
Default value of the parameter beta
|
staticprivate |
Default norm type for cost calculation, L2
|
staticprivate |
Default tolerance for the convergence of the cost function
|
staticprivate |
Default cross over for the DE algorithm (sometimes called CR)
|
staticprivate |
Default tolerance for Nelder-Mead to check vertex colinearity
|
staticprivate |
Default scale the shrink operation for the NelderMead algorithm
|
staticprivate |
Sets the number of chromosomes immune from mutation
|
staticprivate |
Default convergence tolerance for the increment vector in LM
|
staticprivate |
Default scale the contract operation for the NelderMead algorithm
|
staticprivate |
Default tolerance for the convergence of the solution space
|
staticprivate |
Default maximum number of function evaluations before termination
|
staticprivate |
Default maximum number of iterations before termination
|
staticprivate |
Default number of cycles for the SA algorithm
|
staticprivate |
Default number of temperature loops for the SA algorithm
|
staticprivate |
Default output level for the optimization
|
staticprivate |
Default size of the population for the GA and DE algorithms
|
staticprivate |
Default seed for the random number generators in GA and DE
|
staticprivate |
Default step reduction factor for the SA algorithm
|
staticprivate |
Default strategy for the DE algorithm
|
staticprivate |
Sets the proportion of chromosomes that survive each generation
|
staticprivate |
Default scale the initial damping parameter (mu) in LevenbergMarquardt
|
staticprivate |
Default initial temperature for the SA algorithm
|
staticprivate |
Default temperature reduction factor for the SA algorithm
|
staticprivate |
Default is to not use adaptive parameters
|
staticprivate |
By default, the program will use Broyden rank one updates for LM
|
staticprivate |
By default, the program allows solutions outside the set bounds for DE
|
staticprivate |
By default, the program will run everything on one thread
|
staticprivate |
By default, the program will generate a population
|
staticprivate |
By default, the program will try to choose a population size
|
staticprivate |
Default weighting factor for the DE algorithm (sometimes called F)
|
private |
A tolerance for Nelder-Mead to check the colinearity of the vertices
|
private |
Scales the shrink operation for the NelderMead algorithm. This is the size of the finite difference step used to approximate the jacobian matrix in the LevenbergMarquardt algorithm.
|
private |
Sets the number of chromosomes immune from mutation
|
private |
Sets the convergence tolerance for the increment vector in LM
|
private |
Scales the contract operation for the NelderMead algorithm
|
private |
A tolerance for the convergence of the solution space
|
private |
Maximum number of function evaluations permitted before termination
|
private |
Maximum number of iterations permitted before termination
|
private |
Sets the number of cycles for the SA algorithm
|
private |
Sets the number of temperature loops for the SA algorithm
|
private |
Specify the amount of output to write out during the optimization
|
private |
Sets the size of the population for the GA and DE algorithms
|
private |
Sets the seed for the random number generators in GA and DE
|
private |
Sets the step reduction factor for the SA algorithm
|
private |
Sets the strategy for the DE algorithm (1-10)
|
private |
Sets the proportion of chromosomes that survive each generation
|
private |
Scales the initial damping parameter (mu) in LevenbergMarquardt
|
private |
Sets the initial temperature for the SA algorithm
|
private |
Sets the temperature reduction factor for the SA algorithm
|
private |
Sets whether or not adaptive parameters are to be used
|
private |
If true, the Levenberg Marquardt algorithm will use Broyden rank one updates to minimise cost-function calls. If false gradients are always calculated using finite differences.
|
private |
Whether or not the solution can lie outside the specified bounds. Currently only implemented for Differential Evolution.
|
private |
Whether or not to use a multi-threaded implementation of the algorithms, where available.
|
private |
True if the user has set the population themselves, otherwise false
|
private |
True if the user has set the population size themselves, otherwise false
|
private |
Sets the weighting factor for the DE algorithm (sometimes called F)
1.8.13