如何定义并集、交集、对称差?

How can define Union, intersection, symmetric difference?

我已经设置了 i ,j 以及来自 i 和 j 的子集 k。我想要并集,交集和对称差异。

我的学习集很大。但为了澄清这个问题,让我们 I=1*3, j=6*12 .

 Set i /1*3/
        j/6*12/
        K(i ,j) 
         1.(6,9,11)
         2.(7,11)
         3.(8,9,10,12) ;

我想在 k(i ,j) 上有并集、交集和对称差集。

例如 k(1,j) 和 k(2,j)。交集为“11”,对称差为“6,7,9”,并集为“6,7,9,11”

我必须计算 k( i ,j) 中所有可能组合的交集、并集和对称差,我如何在 GAMS 中执行此操作?我该如何编码?

我知道集合 I 和 j 上的联合,我可以写

  Set  i-u-j /#i,#j/;   or /i+j/

但在这种情况下,k(i ,j) 是具有二维的子集,我不知道如何获得 Union ?我怎样才能得到交集或对称差异?

谢谢

试试这个:

Set i /1*3/
    j/6*12/
    K(i ,j) /
         1.(6,9,11)
         2.(7,11)
         3.(8,9,10,12) / ;

Alias (i,ia);

Set intersect(i,ia,j)
    symDiff(i,ia,j)
    union(i,ia,j);

intersect(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) and k(ia,j);
symDiff(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) xor k(ia,j);
union(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) or k(ia,j);