将DEoptim中的一些参数修复为整数

时间:2016-10-27 08:25:44

标签: r optimization integer nonlinear-optimization type-constraints

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

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

如何将它们整理为整数?

1 个答案:

答案 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位数

}

现在在DeOptim中使用:

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