我正在尝试使用集合操作(在我的情况下为“-”操作)动态定义一些集合。但是,“-”操作似乎只适用于执行阶段,并且在定义其他集合时使用此集合时,gams 失败并出现以下错误:644 set.ident or #.ident has undefined data。我认为问题在于使用减号操作定义的集合直到执行阶段才会创建。
我找不到在编译阶段创建集合的解决方案。任何帮助表示赞赏,下面有一个最小的可重复示例。
set alphabet /
"a"
"b"
"c"
/;
set a(alphabet) /
"a"
/;
sets bc(alphabet);
bc(alphabet) = alphabet(alphabet) - a(alphabet);
set test1(alphabet)
/
#a
/;
set test2(alphabet)
/
#a
#bc
/;
set test3(alphabet)
/
set.a
/;
set test4(alphabet)
/
set.a
set.bc
/;