0

我有一系列设施。我想要选择和分配的设施的索引。最后,我想要一个 CSV 输出来显示每个设施。但是,我不想像 [24 15 30 ...] 那样显示它们,而是想将它们分开,例如:[24,25,30,...]。以下代码给了我一个错误。有没有可能让我知道是什么问题?错误为 1。元素“字符串”不在 OPL 模型中。从未使用过 2.element 集线器。(但你可以看到我用过)

{int} hub = { s | s in facilities : y[s] == 1 };
//Output in a CSV file
execute{
string hubs="[";
for (var i=0; i<hub.length-1;i++){
  hubs += hub[i]+",";
}
hubs += hub[hub.length-1]+"]";
var f=new IloOplOutputFile("1.csv");
f.writeln("Facilities");
f.writeln(hubs);
f.close();
}
4

1 回答 1

0
{int} facilities=asSet(1..3);

int y[facilities]=[1,0,1];

 {int} hub = { s | s in facilities : y[s] == 1 };
//Output in a CSV file
execute{
var f=new IloOplOutputFile("1.csv");
f.writeln("Facilities =");
var hubs="[";
for (var i in hub){
  hubs += i+",";
}
hubs+="]";


f.writeln(hubs);
f.close();
}

这将给出:

Facilities =
[1,3,]

PS:

{int} facilities=asSet(1..3);

int y[facilities]=[1,0,1];

 {int} hub = { s | s in facilities : y[s] == 1 };
//Output in a CSV file
execute{
var f=new IloOplOutputFile("1.csv");
f.writeln("Facilities =");
var hubs="[";
for (var i in hub){
  hubs += i;
  if (i!=Opl.last(hub)) hubs+=",";
}
hubs+="]";


f.writeln(hubs);
f.close();
}

Facilities =
[1,3]
于 2019-06-09T20:59:42.310 回答