GAMS-包含设置值的参数

时间:2018-09-24 13:38:57

标签: gams-math

我是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不能用作参数的索引。我尝试将acronymset都设置为相同的值(例如,将A替换为SetA,将AcroAB替换为{{1 }}和SetB),但是我没有找到有关如何将值从AcroBset以及反之亦然的任何信息。

有无实现acronym的方法?

1 个答案:

答案 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;