model:
sets:
Sizeset/1/:L,W,li,wi;
M/1..1000/:p;
N/1..1000/:q;
link(M,N):i;
A/1..1000/:x;
B/1..1000/:y;
endsets
data:L=1200; W=1000;
li=56; wi=23;
enddata
@for(A:xi+li*p+wi*q<=xj+(1-lij)*10000);
@for(A:xj+li*p+wi*q<=xi+(1-rij)*10000);
@for(B:yi+li*q+wi*p<=yj+(1-bij)*10000);
@for(B:yj+li*q+wi*p<=yi+(1-tij)*10000);
@for(A:x(i)+li*p(i)+wi*q(i)<=L);
@for(B:y(i)+li*q(i)+wi*p(i)<=W);
@bin(lij);@bin(rij);@bin(bij);@bin(tij);
@for(A|(xi-xj)#le#(li*p+wi*q):lij=0;rij=0);
@for(B|(yi-yj)#le#(i*p+li*q):bij=0;tij=0);
max=@sum(link:p(i)+q(i));
end
sets:
Sizeset/1/:L,W,li,wi;
M/1..1000/:p;
N/1..1000/:q;
link(M,N):i;
A/1..1000/:x;
B/1..1000/:y;
endsets
data:L=1200; W=1000;
li=56; wi=23;
enddata
@for(A:xi+li*p+wi*q<=xj+(1-lij)*10000);
@for(A:xj+li*p+wi*q<=xi+(1-rij)*10000);
@for(B:yi+li*q+wi*p<=yj+(1-bij)*10000);
@for(B:yj+li*q+wi*p<=yi+(1-tij)*10000);
@for(A:x(i)+li*p(i)+wi*q(i)<=L);
@for(B:y(i)+li*q(i)+wi*p(i)<=W);
@bin(lij);@bin(rij);@bin(bij);@bin(tij);
@for(A|(xi-xj)#le#(li*p+wi*q):lij=0;rij=0);
@for(B|(yi-yj)#le#(i*p+li*q):bij=0;tij=0);
max=@sum(link:p(i)+q(i));
end
