首页 > 解决方案 > GAMS - 包含设定值的参数

问题描述

我是 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.

我在谷歌上搜索是否有办法实现我想要的,我找到了Acronym允许使用非数字值的数据类型。但是,Acronym与 不同,an 不能用作参数的索引set。我试图同时拥有acronym相同set的值(例如用AandSetAAcroAby BandSetB替换AcroB),但我没有找到任何关于如何将值从 a 放入setan 的信息acronym,反之亦然。

有没有办法实现我想做的事情,有或没有Acronyms

标签: gams-math

解决方案


我相信,首字母缩略词在这里不会有用。我不知道您打算如何使用 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;

推荐阅读