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,

Я искал в Google, если есть способ добиться того, что я хочу, и я нахожу тип данных Acronym что позволяет использовать не числовое значение. Тем не менее, Acronym не может использоваться в качестве индекса для параметров, в отличие от set, Я пытался иметь оба acronym а также set для тех же значений (например, замена A от SetA а также AcroA а также B от SetB а также AcroB) но я не нашел ничего о том, как поставить значения из set для acronym и наоборот.

Есть ли способ достичь того, что я хочу сделать, с или без Acronyms?

1 ответ

Решение

Я считаю, что сокращения здесь не пригодятся. Я не знаю, как вы планируете использовать 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;
Другие вопросы по тегам