sannbox: Simulated annealing with box constraints.

Description Usage Arguments Details Value Author(s) See Also

Description

sannbox is a straightforward implementation of simulated annealing with box constraints.

Usage

1
sannbox(par, fn, control = list(), ...)

Arguments

par

Initial values for the parameters to be optimized over.

fn

A function to be minimized, with first argument the vector of parameters over which minimization is to take place. It should return a scalar result.

control

A named list of control parameters. See ‘Details’.

...

ignored.

Details

The control argument is a list that can supply any of the following components:

trace

Non-negative integer. If positive, tracing information on the progress of the optimization is produced. Higher values may produce more tracing information.

fnscale

An overall scaling to be applied to the value of fn during optimization. If negative, turns the problem into a maximization problem. Optimization is performed on fn(par)/fnscale.

parscale

A vector of scaling values for the parameters. Optimization is performed on par/parscale and these should be comparable in the sense that a unit change in any element produces about a unit change in the scaled value.

maxit

The total number of function evaluations: there is no other stopping criterion. Defaults to 10000.

temp

starting temperature for the cooling schedule. Defaults to 1.

tmax

number of function evaluations at each temperature. Defaults to 10.

candidate.dist

function to randomly select a new candidate parameter vector. This should be a function with three arguments, the first being the current parameter vector, the second the temperature, and the third the parameter scaling. By default, candidate.dist is

function(par,temp,scale) rnorm(n=length(par),mean=par,sd=scale*temp)

.

sched

cooling schedule. A function of a three arguments giving the temperature as a function of iteration number and the control parameters temp and tmax. By default, sched is

function(k,temp,tmax) temp/log(((k-1)%/%tmax)*tmax+exp(1))

.

Alternatively, one can supply a numeric vector of temperatures. This must be of length at least maxit.

Value

sannbox returns a list with components:

counts

two-element integer vector. The first number gives the number of calls made to fn. The second number is provided for compatibility with optim and will always be NA.

convergence

provided for compatibility with optim; will always be 0.

final.params

last tried value of par.

final.value

value of fn corresponding to final.params.

par

best tried value of par.

value

value of fn corresponding to par.

Author(s)

Daniel Reuman, Imperial College London and Aaron A. King kingaa at umich dot edu

See Also

traj.match, probe.match.


pomp documentation built on May 2, 2019, 4:09 p.m.

Related to sannbox in pomp...