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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to