sannbox {pomp} | R Documentation

## Simulated annealing with box constraints.

### Description

A straightforward implementation of simulated annealing with box constraints.

### Usage

    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`.

lower,upper

  optional numeric vectors. These describe the lower and upper box constraints, respectively. Each can be specified either as a single scalar (common to all parameters) or as a vector of the same length as `par`. By default, `lower=-Inf` and `upper=Inf`, i.e., there are no constraints.

### 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, Aaron A. King

### See Also

`traj.match`, `probe.match`.

[Package pomp version 2.3 Index]