r - R 中 optim/SANN 的停止标准不起作用
问题描述
问题 1
我有一个目标函数,gFun(modelOutput,l,u)
如果模拟输出在区间内,则返回 0 [l,u]
,否则返回正数(!)。
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有关。
任何建议将不胜感激。
解决方案
推荐阅读
- android - 推送通知始终打开 MainActiviy
- java - Java 返回 javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接。和 PHP cURL - 错误号 35
- oauth-2.0 - 如何在 localhost 测试环境中测试 oAuth2?
- dymola - 如何在 Dymola 的文本编辑器中显示行号?
- algorithm - 序列化整数数组而不重复的算法(即一组)
- javascript - 将子集和算法从 JavaScript 转换为 Python
- wordpress - 带有标题滑块的 WordPress 插件
- elasticsearch - Logstash - HTTP 插件,证书颁发机构验证不起作用
- python - 根据项目中的编号对列表中的项目进行排序
- svg - 使用 svg 的饼图并做出反应