GAMS-不受控制的集合输入为常量

问题描述

请考虑GAMS中的以下问题。我有两个不相交的集合: ij。这些是子集k的适当子集,其中ij的并集完全等于k的元素。我希望构造一个新变量X({k)(用于适当的子集),它是A({i)和B(j)的串联。直观地说,我想声明:

parameter 
X(k);

X(k)=A(i)+B(j);

当然,此操作是不合法的,因为i和j不符合要求。但是,想法是从A(i)取X(k)的i个元素的值,其余取自B(j)。在这方面的任何帮助都非常感谢!

解决方法

这听起来像是隐式集合定义的完美示例。因此,您可以执行以下操作:

Set
   k
   i(k<)    / i1*i3  /
$onMulti
   j(k<)    / j1*j3  /;
   
parameter X(k);

检查此以获取更多信息:

https://www.gams.com/32/docs/UG_SetDefinition.html#UG_SetDefinition_ImplicitSetDefinition