使用以下代码,最终参数的解变为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遍历仅二进制解决方案?如果需要说明的话,我是否可以为此目的实现其他一些元启发式算法?