有什么方法可以在 CPLEX 中迭代二维数组
is there any way to iterate in 2-D array in CPLEX
我想在 CPLEX OPL 的图中对这些 Constraints 建模,但 CPLEX 不提供在多维数组中迭代的机会。 Cst 和 Tst 是二进制矩阵,其思想是只对非零元素求和。
请问我该怎么做。
我在community.ibm.com
中回答的内容
range S=1..3;
range T=1..3;
int Cst[S][T] = [[0, 0 ,1],
[1 ,0, 1],
[0 ,1 ,0]];
dvar boolean x[S][T];
dvar int su; // sum all x such as Cst is 1
maximize su;
subject to
{
su==sum(s in S,t in T:Cst[s][t]==1) x[s][t];
}
工作正常并给出 su=4
我想在 CPLEX OPL 的图中对这些 Constraints 建模,但 CPLEX 不提供在多维数组中迭代的机会。 Cst 和 Tst 是二进制矩阵,其思想是只对非零元素求和。 请问我该怎么做。
我在community.ibm.com
中回答的内容range S=1..3;
range T=1..3;
int Cst[S][T] = [[0, 0 ,1],
[1 ,0, 1],
[0 ,1 ,0]];
dvar boolean x[S][T];
dvar int su; // sum all x such as Cst is 1
maximize su;
subject to
{
su==sum(s in S,t in T:Cst[s][t]==1) x[s][t];
}
工作正常并给出 su=4