我是GAMS的新手,我想创建一个参数,该参数返回集合中的项而不是实数:
sets
A / A1, A2, A3, A4, A5 /
B / B1, B2, B3, B4, B5 /;
parameters
C(A)
/
A1 B5,
A2 B4,
A3 B3,
A4 B2,
A5 B1
/
D(B)
/
B1 A3,
B2 A4,
B3 A2,
B4 A1,
B5 A5
/;
display C, D;
当我尝试编译此代码时,出现以下错误:Real number expected
。
我在Google上进行了搜索,是否有一种方法可以实现我想要的结果,我发现了允许使用非数字值的数据类型Acronym
。但是,与Acronym
不同,set
不能用作参数的索引。我尝试将acronym
和set
都设置为相同的值(例如,将A
替换为SetA
,将AcroA
和B
替换为{{1 }}和SetB
),但是我没有找到有关如何将值从AcroB
到set
以及反之亦然的任何信息。
有无实现acronym
的方法?
答案 0 :(得分:3)
我相信,首字母缩写在这里不会有用。我不知道您打算如何使用C和D,但我想您可能想将它们定义为二维集,而不是这样:
sets
A / A1, A2, A3, A4, A5 /
B / B1, B2, B3, B4, B5 /;
Set
C(A,B)
/
A1. B5,
A2. B4,
A3. B3,
A4. B2,
A5. B1
/
D(B,A)
/
B1. A3,
B2. A4,
B3. A2,
B4. A1,
B5. A5
/;
display C, D;