[Rd] Buglet in optim() SANN
Prof. John C Nash
nashjc at uottawa.ca
Tue Oct 20 22:47:43 CEST 2009
I think SANN method in optim() is failing to report that it has not
converged. Here is an example
genrose.f<- function(x, gs=NULL){ # objective function
## One generalization of the Rosenbrock banana valley function (n
parameters)
n <- length(x)
if(is.null(gs)) { gs=100.0 }
fval<-1.0 + sum (gs*(x[1:(n-1)]^2 - x[2:n])^2 + (x[2:n] - 1)^2)
return(fval)
}
xx<-rep(pi,10)
test<-optim(xx,genrose.f,method="SANN",control=list(maxit=1000,trace=1))
print(test)
Output is:
> source("tsann.R")
sann objective function values
initial value 40781.805639
iter 999 value 29.969529
final value 29.969529
sann stopped after 999 iterations
$par
[1] 1.0135254 0.9886862 1.1348609 1.0798927 1.0327997 1.1087146 1.1642130
[8] 1.3038754 1.8628391 3.7569285
$value
[1] 29.96953
$counts
function gradient
1000 NA
$convergence
[1] 0 <------ THIS SHOULD BE 1 ACCORDING TO THE DOCS
$message
NULL
Note terribly important, but maybe fixable.
Cheers,
John Nash
More information about the R-devel
mailing list