R中停止优化/ SANN的条件不起作用

时间:2019-03-14 10:24:55

标签: r optimization

问题1 我有一个目标函数gFun(modelOutput,l,u),如果模拟输出在间隔[l,u]中,则该函数返回0,否则返回正数(!)。

OFfun <- function(params) {
  out <- simulate(params)
  OF <- gFun(out,0,5)
  return(OF)
}

具有某些公差设置的optim函数将调用目标函数。

fitval=optim(par=parms,fn=OFfun,method="SANN",control = list(abstol = 1e-2))
summary(fitval)

我的问题是,如果OFfun == 0,优化不会停止。 我已经尝试过以下条件:

  if (OF == 0){ 
    opt <- options(show.error.messages=FALSE) 
    on.exit(options(opt)) 
    stop()
  } 

它可以工作,但不会将OF返回到optim,因此我无法获得带有估计参数的fitval信息。

问题2

另一个问题是,求解器有时会崩溃并中止整个优化过程。我想针对不同的初始猜测收获许多解决方案集-因此我需要处理失败的模拟。可能与问题1有关。

任何建议将不胜感激。

0 个答案:

没有答案