Skip to content

Optimization algorithms available in the d2d framework

Max Schelker edited this page Sep 8, 2016 · 3 revisions

The default parameter estimation procedure of the d2d-framework uses a deterministic optimisation algorithm (LSQNONLIN) based on evaluated sensitivities, which are integrated together with the ODE system. This approach is justify in [1] to be the most efficient and reliable for typical problems in Systems Biology. The initial parameters in a multi-start setup are taken from a Latin hypercube sampling.

However, plenty of other optimisation algorithms which are described in [1] can be utilised, too. These comprise stochastic methods, e.g. different realisations of particle swarm optimisation, evolutionary strategies and hill climbing strategies. They are accessible via

arFitEvA2(optimizer_index)

with the index ranging from one to thirteen for the different methods described in EvA2 Optimization Framework.

In addition, several deterministic optimisation procedures and functions are available. Currently, seven optimizers are available:

>> ar.config.optimizers
ans = 
    'lsqnonlin'    'fmincon'    'PSO'    'STRSCNE'    'arNLS'    'fmincon_as_lsq'    'arNLS_SR1'    'NL2SOL'    'TRESNEI'    'Ceres'

The default optimizer lsqnonlin is chosen by

ar.config.optimizer = 1;

Matlab's fmincon is chosen by

ar.config.optimizer = 2;

An implementation of particle-swarm optimization is available via

ar.config.optimizer = 3;

Custom self-written optimization routines like STRSCNE, arNLS, fmincon_as_lsq, arNLS_SR1 can be chosen by setting ar.config.optimizer to 4,5,6 or 7. These examples also show how users implement their own optimization techniques (see arFit.m).

ar.config.optim coincides with Matlab's optimization struct which is specified by the standard Matlab function optimset or returned by optimget.

Third party optimization routines with self-written interfaces include NL2SOL, TRESNEI, and Ceres. They can be chosen by setting ar.config.optimizer to 8,9, and 10.

The optimization struct for Googles Ceres non-linear solver is specified in ar.config.optimceres. When encountering problems while compiling or running Ceres check out the wiki page [Solving issues with Ceres](Solving issues with Ceres)

[1] Raue A., et al. Lessons Learned from Quantitative Dynamical Modeling in Systems Biology. PLOS ONE, 8(9), e74335, 2013.

Clone this wiki locally