В чем проблема со следующим кодом? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть множество объектов.Я хочу иметь индексы объекта, который выбран и выделен.В конце я хочу получить вывод CSV, в котором будут показаны все возможности.Но вместо того, чтобы показывать их как [24 15 30 ...], я хочу разделить их как: [24,25,30, ...].Следующий код дает мне ошибку.Можно ли дать мне знать, в чем проблема?Ошибка 1. Элемент «строка» отсутствует в модели OPL.2.элементный концентратор никогда не использовался.(но, как вы видите, я использовал его)

{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();
}

1 Ответ

0 голосов
/ 09 июня 2019
{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]
...