关于#set#的问题,如何解决?

证券设置营业网点问题
model:
sets:
d/1..4/a,b,c;
d1/4..13/a,b,c;
d2/13..20/a,b,c;
links(1,d):x;
links(2,d):x;
links(3,d):x;
endsets
data:
a=2500 2400 2300 2200 2000 2000 1800 1800 1750 1700 1700 1600 1600 1500 1400 1400 1350 1300 1300 1200;
b=800 700 700 650 450 500 380 400 330 300 320 220 200 220 200 170 180 150 130 120;
c=1.25 1.22 1.20 1.00 0.96 0.98 0.92 0.92 0.90 0.92 0.88 0.82 0.84 0.86 0.82 0.75 0.78 0.75 0.72 0.70;
enddata
max=@sum(d(j):x(1,j)*b(j))+@sum(d1(j):x(2,j)*b(j))+@sum(d2(j):x(3,j)*b(j));
@bin(x);
@sum(d(j):x(1,j))>=3;
@sum(d1@(j):x(2,j))>=4;
@sum(d2(j):x(3,j))<=5;
@sum(d(j):x(1,j))+@sum(d1(j):x(2,j))+@sum(d2(j):x(3,j))<=12;
@sum(d(j):x(1,j)*4)+@sum(d1(j):x(2,j)*3)+@sum(d2(j):x(3,j)*2)<=40;
@sum(d(j|):x(1,j)*a(j))+@sum(d1(j):x(2,j)*a(j))+@sum(d2(j):x(3,j)*a(j))<=22000;
@sum(d(j):x(1,j)*c(j))+@sum(d1(j):x(2,j)*c(j))+@sum(d2(j):x(3,j)*c(j))>=10;
end

运行时显示sets有问题,

我的解答思路和尝试过的方法

我想知道怎么累加分段求和(分范围)