在DEoptim中如何将参数固定为下限和上限的整数 opt< - DEoptim(函数,lower = c(0.03, 17 , 5 ,0.002),upper = c(0.12, 30 ,的 15 下, - 0.5))
在下面的例子中,第二个,第三个参数应该是整数,但优化器将它作为浮点数,最多6位小数。
如何将它们整理为整数?
答案 0 :(得分:2)
这里我们需要创建一个Mapping函数来映射每个参数类型。在上面的例子中,我们必须创建以下函数,
Mapfun< - function(x){
x [1]< - round(x [1],2)#你可以通过在这里明确定义数字来决定要进行优化的十进制小数,我需要2位数
x [2:3]< - round(x [2:3])#表示它们是整数
x [4]< - round(x [4],3)#here我需要3位数
}
opt< - Deoptim(函数,lower = c(0.03,17,5,0.002),upper = c(0.12,30,15,-0.5),fnMap = Mapfun)