我试图用CPLEX用Java编写代码,但是我遇到了问题。我也是CPLEX和Java的新手。
我已经研究了几天,我可以理解非常简单的CPLEX示例,但我现在必须处理更困难的事情。
我试图编写像1000*(k-Sigma y^k(k from 1))
这样的表达式,但我无法使其工作,所以我搜索了这个主题,但我无法找到解决这个问题的方法。
到目前为止我所理解的是我需要一个像这样的数组
IloNumVar[] y = cplex.numVarArray(?, ?, Double.MAX_VALUE?);
我从IBM网站上阅读了该手册,但我仍然不明白我应该在括号内放置哪些变量。
我需要一个for循环来进行求和,所以我写了
for(int k = 1; k <= bus; k++) {
objective.addTerm(1000, k-y[k]);
}
当然它没有用。我猜想&#39; k&#39;但不知道如何解决这个问题。
答案 0 :(得分:0)
请查看以下页面:
您可以看到以下方法标题:
IloNumVar[] numVarArray(int n, double lb, double ub)
其中params是:
n - number of variables
lb - lower bound
ub - upper bound
如果你这样使用它:
IloNumVar[] y = cplex.numVarArray(5, 0, Double.MAX_VALUE);
您将创建一个包含5个元素(变量)的数组。每个都必须是非负数。
请更清楚地说明问题的第二部分。