将 DEoptim 中的几个参数固定为整数

Fixing few parameters in DEoptim as Integer

在 DEoptim 中如何将参数固定为下限和上限的整数 opt <- DEoptim(function,lower = c(0.03,17,5,0.002),upper = c(0.12,30,15,-0.5))

在下面的示例中,第二个、第三个参数应该是整数,但优化器将其视为最多 6 位小数的浮点数。

如何将它们固定为整数?

这里我们需要创建一个Mapping函数来映射每个参数类型。在上面的示例中,我们必须创建以下函数,

Mapfun <-函数(x){

x[1] <- round(x[1],2) #你可以通过在此处显式定义数字来决定要优化的小数点,我需要 2 位数字

x[2:3] <- round(x[2:3]) #表示它们是整数

x[4] <- round(x[4],3) #这里我需要 3 个数字

}

现在可以在 DeOptim 中使用:

opt <- Deoptim(function,lower = c(0.03,17,5,0.002),upper = c(0.12,30,15,-0.5),fnMap = Mapfun)