best: Optimize a board using simulated annealing

Description Usage Arguments Details Note Author(s) See Also Examples

Description

Uses simulated annealing to find the ‘best’ permissible board, using any objective function

Usage

1
best(x, func = NULL, n = 100, ...)

Arguments

x

A board

func

The objective function, with default NULL meaning to use -prob(x)

n

Maximum number of attempts (passed to candidate())

...

Further arguments passed to optim()

Details

The help page for optim() gives an example of simulated annealing being used to solve the travelling salesman problem and best() uses the same technique in which the gr argument specifies a function used to generate a new candidate point (candidate()).

Note

Function randomprobs() also takes a func argument and can be used to find an optimal board, by generating random permissible boards and finding the best one. But these two functions are very different: best() uses optim() which incorporates highly specific optimization algorithms to find a global maximum, while randomprobs() creates a Markov chain and reports the board with the most desirable objective function.

Author(s)

Robin K. S. Hankin

See Also

optim,prob

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 a <- matrix(0,5,5)
 diag(a) <- NA
 a[cbind(1:5 , c(2:5,1))] <- 4
## Not run: 
 best(a,control=list(maxit=10))   ## Answer should be all ones except the diagonal

## End(Not run)

# Now a non-default function; SANN should be able to get func(x) down to
#  zero pretty quickly:
## Not run: 
 best(a,func=function(x){x[1,2]},control=list(maxit=100))

## End(Not run)
# The 'dontrun' is needed because sometimes the method needs a bigger n

aylmer documentation built on May 29, 2017, 1:12 p.m.