objective 函数中的 CEIL CPLEX C++

CEIL in objective function CPLEX C++

据我所知,有一个教程显示 ILOG 可以使用 ceil 函数 (here)。但是,当我尝试实现它以在 CPLEX C++(音乐会)中计算我的 objective 函数时,它失败了。我正在寻找的是如下所示:

for (i=0; i<I; i++){
  for (j=0; j<J; j++){
      TO += ceil(DecisionVariable[i][j]/parameter[j]);
  }
}

如有任何建议,我们将不胜感激。非常感谢。

此致,

在 OPL 中我们有 ceil,但在 C++ 中,等效函数是 IloCeil。

但是我们需要记住这个函数不是线性的。

How to with OPL ? we can read How to use ceil of a decision variable in a CPLEX constraint ?

range r=1..4;

float x[r]=[1.5,4.0,2.0001,5.9999];

dvar int y[r];
dvar float f[r] in 0..0.9999999;

subject to
{
forall(i in r) y[i]==x[i]+f[i];


}

execute
{
writeln(x," ==> ",y);
}

assert forall(i in r) y[i]==ceil(x[i]);

你提到的文档内容太多了。我无法快速找到您引用的内容。请指出他们的位置。但据我所知,ceil是一个舍入函数,请检查:

  1. 代码中是否包含ceil函数需要的头文件?

  2. ceil函数的参数设置是否正确?

  3. 如果使用函数作为参数,请确保函数的return值为double。