Optimisation

Class: Optimiser

Generic optimiser class, used for polymorphic optimisers. Data for a pointer to an Optimiser has the form:
optimiser_type
parameters
The optimiser type identifier is listed below as the name.

Class: Dumb_optimiser

Alters each parameter in turn by a set amount. Name: dumb. Data format:
maximum_iterations (0 for no limit)
diagnostic_output_level (0 for none)

Class: Steep_optimiser

Method of steepest descent. Name: steepest_descent. Data format:
   double tol; // tolerance of minimum (spatial)
   double stepscale; // scaling factor for gradient Vector
   double stepfac; // factor for increasing step size (greater than 1)
   double stepmin; // minimum stepsize allowed
   int maxits; // maximum iterations (0 for no limit)
   int verbose; // 0/1 for diagnostics off/on
Default values are tol = 1.0e-7; stepscale = 1.0; stepfac = 1.5; stepmin = 1.0e-7;

Class: CG_optimiser

Conjugate gradient method. Name: conjugate_gradient. Data as for Steep_optimiser.

Class: MC_optimiser

Generic Monte-Carlo optimiser class, used for polymorphic MC optimisers. Data for a pointer to a MC_optimiser has the form:
MC_optimiser_type
parameters
The MC optimiser type identifier is listed below as the name. Unless stated otherwise, MC optimisers use a default data format:
   double pseudotemp; // pseudo-temperature
   int nsteps; // global steps to take
   int verbose; // diagnostic options (0=off)
with default values pseudotemp = 0.0; nsteps = 1; verbose = 0;

Class: MC_optimiser_each

Attempts to vary each parameter in turn. Name: monte-carlo_each.

Class: MC_optimiser_all

Attempts to vary all parameters together - better at finding an optimum than by varying each in turn, but generally slower. Name: monte-carlo_all.

Class: MC_optimiser_random

Attempts to vary a random parameter. Name: monte-carlo_random.

Class: MC_optimiser_weighted

Attempts to vary a random parameter, weighting the preference for trying each parameter according to the success rate in moving towards the optimum, with a decay rate to `forget' old weights.

Name: weighted_monte-carlo. Data format: as for MC_optimiser with in addition

   double decay; // decay rate for memory of previous results
Default: decay = 0.1;.

Class: MC_optimiser_random_subset

Attempts to vary a random subset of the parameters. Name: monte-carlo_random_subset. Data format: as for MC_optimiser with in addition
   int nset; // number in random set