在cplex中输出一个二维变量数组
Output a two-dimensonal variable array in cplex
目前我正在尝试在 CPLEX 中输出一个二维变量数组。数组定义如下:
IloNumVar[][] y = new IloNumVar[numJobs][];
for(int j=0; j<numJobs; j++){
y[j]= cplex.numVarArray(numJobs,0, 1, IloNumVarType.Int);//ILP
}
求解 ILP 后应打印这些变量。我尝试通过以下方式打印它们:
for (int i = 0; i < numJobs; i++) {
for(int j=0; j < y[i].length; j++){
System.out.println(cplex.getValues(y[i][j])+ ", ");
}
}
我收到一个错误 "CPLEX Error: object is unknown to IloCplex"
如果我设置 j=1,则仅打印 i=0 的值..
有人知道如何解决这个问题吗?
非常感谢!
CPLEX Error: object is unknown to IloCplex
此错误通常在您未向模型添加对象时出现(即,特定的 IloNumVar
未出现在任何约束中,也未出现在 objective 中)。您可能希望使用 exportModel 方法将模型导出为 LP 格式,以检查其公式是否正确(即,如您所料)。
一种可能的解决方法是在调用 solve()
之前将所有变量显式添加到模型中。例如:
for (IloNumVar[] v : y)
cplex.add(v);
有了这个,您应该能够查询 y
中的所有 IloNumVar
,错误应该不会再发生了。
目前我正在尝试在 CPLEX 中输出一个二维变量数组。数组定义如下:
IloNumVar[][] y = new IloNumVar[numJobs][];
for(int j=0; j<numJobs; j++){
y[j]= cplex.numVarArray(numJobs,0, 1, IloNumVarType.Int);//ILP
}
求解 ILP 后应打印这些变量。我尝试通过以下方式打印它们:
for (int i = 0; i < numJobs; i++) {
for(int j=0; j < y[i].length; j++){
System.out.println(cplex.getValues(y[i][j])+ ", ");
}
}
我收到一个错误 "CPLEX Error: object is unknown to IloCplex"
如果我设置 j=1,则仅打印 i=0 的值..
有人知道如何解决这个问题吗?
非常感谢!
CPLEX Error: object is unknown to IloCplex
此错误通常在您未向模型添加对象时出现(即,特定的 IloNumVar
未出现在任何约束中,也未出现在 objective 中)。您可能希望使用 exportModel 方法将模型导出为 LP 格式,以检查其公式是否正确(即,如您所料)。
一种可能的解决方法是在调用 solve()
之前将所有变量显式添加到模型中。例如:
for (IloNumVar[] v : y)
cplex.add(v);
有了这个,您应该能够查询 y
中的所有 IloNumVar
,错误应该不会再发生了。