如何在Cplex中使用'IloOplOutputFile'写多个索引的变量?

How to use 'IloOplOutputFile' in Cplex to write variables with more than one index?

我正在尝试将结果数据写入外部文件,因为我在 运行 代码 16 小时后遇到错误。

我找到上面的代码,它适用于具有一个索引的变量,但我的变量没有一个索引。甚至还有带有 4 个索引的变量。我怎样才能使这段代码适应我的情况?

execute{
  var ofile = new IloOplOutputFile("modelRun.txt");
  ofile.writeln("Data:");
  for(var i in thisOplModel.r){
     ofile.writeln("d["+i+"+"]="+thisOplModel.d[i]]);
  }
  ofile.writeln("Optimal objective value="+cplex.getObjValue());
  ofile.writeln("Optimal variable values:");
  for(i in thisOplModel.r){
     ofile.writeln("x["+i+"]="+thisOplModel.x[i]);
  }
  ofile.close();
}

感谢您的帮助!

如果 x 是 4D 数组而不是:

for(i in thisOplModel.r){
     ofile.writeln("x["+i+"]="+thisOplModel.x[i]);
  }

你可以直接写:

ofile.writeln("x="+thisOplModel.x);

关于显示 4 维数组:

range r=1..2;
int x[i in r][j in r][k in r][l in r]=i+j+k+l;

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

这给出了

x= [[[[4 5]
                 [5 6]]
             [[5 6]
                 [6 7]]]
         [[[5 6]
                 [6 7]]
             [[6 7]
                 [7 8]]]]