R GenSA:是否可以将par数组强制为二进制变量(1/0)?

时间:2018-10-22 23:37:28

标签: r simulated-annealing

使用以下代码,最终参数的解变为1/0 ...但是从中间步骤中,我可以看到有些中间步骤中的参数是非二进制的。

library(GenSA)

myFunction <- function(x) {

    A <- matrix(c(4,-3,1,2),nrow=2)
    return(-(x %*% A %*% x))
}

set.seed(1234) # The user can use any seed.
dimension <- 2
lower <- rep(0, dimension)
upper <- rep(1, dimension)
out <- GenSA(
    lower = lower, upper = upper, fn = myFunction,
        control=list(threshold.stop=NULL,
                 verbose=TRUE,
                 smooth = FALSE
    ))

out

我可以看到以下输出:

Initializing par with random data inside bounds
It: 1, obj value: -3.999999928
.................................................................................................
It: 1193, obj value: -3.999999992

是否有某种方法可以强制GenSA遍历仅二进制解决方案?如果需要说明的话,我是否可以为此目的实现其他一些元启发式算法?

0 个答案:

没有答案