资源路径位置类型CPLEX(默认)无法提取表达式

时间:2016-12-28 21:23:05

标签: cplex opl

我收到此错误,“CPLEX(默认)无法提取表达式”,但是当我删除对象函数中的日志函数时,错误就解决了。我的代码如下:

range k=1..4;
range n=1..4;
//inputs
float p[n][k]=...;
float M=...;
float B=...;


//variables
dvar boolean w[n];
//objective



maximize  (sum(k in  k) log(sum(n in n)(w[n]*exp((-1*p[n][k]))))) ;

//constraints
subject to
{   
  sum (n in n) w[n]<= 2 ;
}

令人困惑;我不知道问题是什么。有谁知道解决方案?

2 个答案:

答案 0 :(得分:0)

CPLEX不支持日志,但CP可以处理。 你能加

吗?
using CP;

在模特的开头? 问候

答案 1 :(得分:0)

你应该有不同的循环名称,即sum(k in k)应该用另一个名称替换第一个k,因为你已经将第二个k声明为一个范围。例如:sum(l in k)