在文字集中声明GLPK->语法错误中的3组

时间:2016-04-19 22:57:33

标签: set glpk mathprog

我有这个小代码:

 param n, integer, > 0; # number of clients
param m, integer, > 0; # number of facilities
param g, integer, > 0;

set I := 1..n;
set J := 1..m;
set G := 1..g;

param d{i in I, j in J};/* distance for client i to factory j*/
param w{i in I, j in J};/* distance for client i to factory j*/
param l{j in J}; # distance from factory j to factory 1
param F{j in J}; # cost of open a factory in J
param s{i in I, g in G};

问题出现在s上,它总是说drdrd.mod:13:文字集中的语法错误,如果我在G中为j改变g中的g,一切都好。不可能有3个不同的集合吗?

另一个我无法解决的问题,如果我把I而不是i,2 in I(因为我想考虑前两个数字),它也说同样的错误信息。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

g被定义为

中的参数
param g, integer, > 0;

因此您无法在

中将其用作索引名称
param s{i in I, g in G};

要解决此问题,请重命名索引(或参数):

param s{i in I, gg in G};