BurStMisc (version 1.1)

genopt: Genetic Optimization

Description

Approximately minimizes the value of a function using a simple heuristic optimizer that uses a combination of genetic and simulated annealing optimization.

Usage

`genopt(fun, population, lower = -Inf, upper = Inf, scale = dcontrol["eps"], add.args = NULL, control = genopt.control(...), ...)`

Arguments

fun
function that returns a numerical value.
population
a matrix or a list.

If a matrix, then the rows correspond to the parameters and the columns are different parameter vectors.

If a list, then it should have a component named "population" and optionally a component named "objective" -- in particular, it can be the result of a call to `genopt`. If the "objective" component exists, then it is assumed to be the function values of the population and the function will not be evaluated on the members of the population.

lower
vector giving the lower bound for parameter values. This is replicated to be as long as the number of parameters.
upper
vector giving the upper bound for parameter values. This is replicated to be as long as the number of parameters.
scale
vector of scales to use when doing local search with a solution. This is replicated to be as long as the number of parameters.
add.args
list of additional arguments to `fun`.
control
an object like the output of `genopt.control` containing control parameters for the optimization.
...
arguments for `genopt.control` if the `control` argument is not given explicitly.

Value

a list of class `genopt` with the following components:

Details

There is a `summary` method for class `genopt` which shows the call, a summary of the set of objectives found, and the best solution (set of parameters).

References

The original version of this function appeared in "S Poetry".

See Also

`genopt.control`, `summary.genopt`.

Examples

```  # two parameters, population size 5
go1 <- genopt(function(x, other) sum(x, other),
population=matrix(rexp(10), nrow=2, ncol=5),
lower=0, add.arg=list(other=3), trace=FALSE)
summary(go1)

go2 <- genopt(function(x, other) sum(x, other), population=go1,
lower=0, add.arg=list(other=3), trace=FALSE)

```