标签: deoptimization

多次运行 DEoptim 的可重现结果

我正在尝试以DEoptim下列方式在 R 中使用

fit <- DEoptim(fn = .obj, lower=lower, upper = upper, 
                control = list(itermax = 100, trace = 1, parallelType = 1, 
                               steptol = 25, reltol = 1e-9, strategy = 6))
Run Code Online (Sandbox Code Playgroud)

但是,DEoptim在并行设置中使用不会在多次运行中重现结果。使用parallelType = 0. 我尝试在集群中设置种子clusterSetRNGStream以及在代码中使用,set.seed但这也无济于事。

有没有人在尝试DEoptim并行运行时遇到过类似的问题。下面是sessionInfo

sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252 …
Run Code Online (Sandbox Code Playgroud)

r mathematical-optimization deoptimization

6
推荐指数
0
解决办法
117
查看次数

DEOptim 不断告诉:目标函数的 NaN 值

我用 C++ 编写了一个模拟程序,并且喜欢使用 DEoptim 在 R 中查找参数。有时一切都运行良好,有时 DEoptim 会停下来并告诉我们:

Error in DEoptim(simulate, lower = lb, upper = ub, control = opt) : 
  NaN value of objective function! 
Perhaps adjust the bounds.
Run Code Online (Sandbox Code Playgroud)

我的 R 脚本定义了一个调用外部二进制文件的函数。参数附加到命令中。我测试了我的 C++ 程序,但从未见过 NaN 返回。此外,为了进行调查,我检查 R 函数中是否存在 NaN simulate(),这样它就会停止并告知实际上存在一个 NaN 值。然而,它永远不会停在那里 - 但后来在 DEoptim 中。问题是什么?这是一个 DEoptim-Bug 吗?

library("DEoptim")
setwd("some-path")

simulate <- function(theta)
{
  strcom <- paste(c("./ExternalBinary", theta),collapse=" ")
  ret <- as.numeric(system(strcom, intern=T)) #will return a couple of integer numbers
  ret <- mean(ret) #average those numbers
  if(any(is.nan(ret))){ …
Run Code Online (Sandbox Code Playgroud)

c++ parameters optimization r deoptimization

5
推荐指数
1
解决办法
925
查看次数