2017-11-10 48 views
0

一组的情况是:我在GAMS定义一组,如:如何决定一个元素是在GAMS

组n/N * N100 /;

而后来在代码中,我想找到一种方法来确定一个元素是否在一个集合中。例如,我想要有一个函数f,如果一个元素在一个集合中,它返回true(或'1')。 (2)如果一个元素不在一个集合中,它返回false(或'0')。如果一个元素不在集合中,它返回false(或'0')。 like,f('n111',n)= false(或'0')

有没有人知道是否存在这个功能的纽结?另外,如果存在,它是否也适用于多维集?

回答

1

这个问题有点不清楚,你想做什么。话虽这么说,子集似乎一做你想要什么,例如:

set m /n1*n100/; 
set n(m) /n1*n50/; 
parameter test(m); 
test(m)=0; 
test(n)=1; 
display test; 

这是过于露骨,比如,你不需要test(m)=0;为GAMS默认值为0

所以您可以使用param(m)$test(m) = 3;来设置测试结果为正的值。 当然,它更易于使用param(n) = 3

最后,严格来说,这些指令:sameas(set1,set2)sameas(set1,"n101")做你想做的。

没有更清晰的问题,超出这一点很难提供帮助。

+0

嗨,谢谢你的帮助。我认为我的意思是使用'sameas'这样的函数来决定一个项目是否是现有集合的一个元素。 –

相关问题