我要在CPLEX中声明一个元组数组。元组内部声明了一个2D数组,并且元组数组的每个元素的长度都不相同。但是CPLEX显示错误。我附上了代码片段。谁能帮我这个?
int n=...;
range N=1..n;
tuple info{
int a;
int b;
int box[1..b];
float d;
}
info tuplearray[N]=...;
答案 0 :(得分:0)
元组集中的所有数组a具有相同的大小。 因此,我将为此使用元组集。
让我给你举个例子:
.mod
int n=4;
range N=1..n;
int m=2;
tuple info{
int a;
int b;
int box[1..m];
float d;
}
info tuplearray[i in N]=...;
execute
{
writeln(tuplearray);
}
tuple boxitem
{
int i;
int j;
int v;
}
{boxitem} boxitems={<1,1,1>,<2,1,3>,<2,2,4>,<3,1,2>,<4,1,2>};
int sizes[i in 1..n]=card({t | t in boxitems : t.i==i});
execute
{
writeln(sizes);
writeln(boxitems);
}
.dat
tuplearray=[<1,2,[1,2],1.5>,<3,4,[3,2],1.5>,<1,2,[4,2],1.5>,<7,8,[6,2],1.5>,];
致谢