Fitting Options

Options that control the benchmarking process are set here.

Software (software)

Software is used to select the fitting software to benchmark, this should be a newline-separated list. Available options are:

Default software options are scipy and scipy_ls

[FITTING]
software: bumps
          dfo
          minuit
          scipy
          scipy_ls
          scipy_go

Warning

Software must be listed to be here to be run. Any minimizers set in Minimizer Options will not be run if the software is not also present in this list.

Number of minimizer runs (num_runs)

Sets the number of runs to average each fit over.

Default is 5

[FITTING]
num_runs: 5

Algorithm type (algorithm_type)

This is used to select what type of algorithm is used within a specific software. For a full list of available minimizers for each algorithm type, see Algorithm Types of Available Minimizers. The options are:

  • all - all minimizers

  • ls - least-squares fitting algorithms

  • deriv_free - derivative free algorithms (these are algorithms that cannot use information about derivatives – e.g., the Simplex method in Mantid), see Derivative Free.

  • general - minimizers which solve a generic min f(x)

  • simplex - derivative free simplex based algorithms e.g. Nelder-Mead, see Simplex

  • trust_region - algorithms which employ a trust region approach, see Trust Region

  • levenberg-marquardt - minimizers that use the Levenberg Marquardt algorithm, see Levenberg-Marquardt.

  • gauss_newton - minimizers that use the Gauss Newton algorithm, see Gauss-Newton

  • bfgs - minimizers that use the BFGS algorithm, see BFGS

  • conjugate_gradient - Conjugate Gradient algorithms, see Conjugate Gradient

  • steepest_descent - Steepest Descent algorithms, see Steepest Descent

  • global_optimization - Global Optimization algorithms

  • MCMC - Markov Chain Monte Carlo algorithms

Default is all

[FITTING]
algorithm_type: all

Warning

Choosing an option other than all may deselect certain minimizers set in the options file

Jacobian method (jac_method)

This sets the Jacobian used. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Current Jacobian methods are:

Default is analytic

[FITTING]
jac_method: analytic

Warning

Currently analytic Jacobians are only available for problems that use the cutest and NIST parsers.

Hessian method (hes_method)

This sets the Hessian used. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Current Hessian methods are:

Default is analytic

[FITTING]
hes_method: analytic

Warning

Currently analytic Hessians are only available for problems that use the cutest and NIST parsers.

Cost function (cost_func_type)

This sets the cost functions to be used for the given data. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Currently supported cost functions are:

  • nlls - This sets the cost function to be non-weighted non-linear least squares, NLLSCostFunc.

  • weighted_nlls - This sets the cost function to be weighted non-linear least squares, WeightedNLLSCostFunc.

  • hellinger_nlls - This sets the cost function to be the Hellinger cost function, HellingerNLLSCostFunc.

  • poisson - This sets the cost function to be the Poisson Deviation cost function, PoissonCostFunc.

Default is weighted_nlls

[FITTING]
cost_func_type: weighted_nlls

Maximum Runtime (max_runtime)

This sets the maximum runtime a minimizer has to solve one benchmark problem num_runs number of times, where num_runs is another option a user can set. If the minimizer is still running after the maximum time has elapsed, then this result will be skipped and FitBenchmarking will move on to the next minimizer / benchmark dataset combination. The main purpose of this option is to get to result tables quicker by limit the runtime.

max_runtime is set by specifying a number in unit of seconds. Please note that depending on platform the time specified with max_runtime may not match entirely with the absolute run-times specified in tables. Hence you may have to experiment a bit with this option to get the cutoff you want.

Default is 600 seconds

[FITTING]
max_runtime: 600