为什么我的对称差异不是真的?

why my symmetric difference is not true?

我想计算两个集合 V(i,ip) 和 v(ipp,ippp) 之间的对称差异

我已经设置了 i={1,3,4,6} 和 j={1,2,..,10} 我已经设置了 T(i,j) 和 3 也设置了 V,W,b ,即

     T(1)={2,5,10}
     T (3)={7,10}
     T (4)={2,5,6}
     T (6)={2,5}

并且 V 是 T(i) 的并集,W 是 T 和 V 之间的对称差异,b 是 V(i,ip)

之间的差异

我的b结果不是真的!为什么?

我怎样才能得到 V(i,ip) 之间的差异?

 v(i,ip)=t(i,j)+t(ip,j)    

 w(i,ip,ipp)= (t(i,j)+v(ip,ipp,j))-(t(i,j)*v(ip,ipp,j));

b(i,ip,ipp,ippp)=((v(i,ip,j)+v(ipp,ippp,j))-(v(ip,ipp,j)*v(ipp,ippp,j))) ;




*---- index and sets----*

sets
     i /1,3,4,6/
     j/1*10/

     t(i,j)  /
     1.(2,5,10)
     3.(7,10)
     4.(2,5,6)
     6.(2,5)
       / ;


 alias(i,ip,ipp,ippp);
 *---- parameter----*

 parameter
     MyOrd(i,ip);


*-------------------------------

MyOrd(i,ip)=i.val+(ip.val -1)*4;


set

     v(i,ip,j)'for union only'
     b(i,ip,ipp,ippp,j) 'symmetric diffrence   between v and v'
     w(i,ip,ipp,j) 'symmetric diffrence   between t and v'
     ;



v(i,ip,j)$(i.val<ip.val)=t(i,j)+t(ip,j);

w(i,ip,ipp,j)$(ip.val<ipp.val) =(t(i,j)+v(ip,ipp,j))-(t(i,j)*v(ip,ipp,j));

b(i,ip,ipp,ippp,j)$(i.val<ip.val and ipp.val<ippp.val and MyOrd(i,ip) 

display t,v,w,b;

在您编写的代码中

 MyOrd(i,ip)=i.val+(ip.val -1)*4;

试试

parameter
     MyOrd(i,i1);
scalar
     counter /1/
;

 loop((i,i1)$(vulnerable(i) and vulnerable(i1) and i.val <i1.val ),
     MyOrd(i,i1)=counter;
     counter=counter+1;
 );