程序贴出来了,实在奈何不了它,请帮忙看哪里错误,谢谢了哈!
station我取250个,但贴出来时为了简便,只用了5个,相应y(i,j)就只有8行5列了。还是出现“Error code: 1017”,LINGO Solver Status显示Variables只有一个,Model没有显示,State:Unknown。。。
MODEL:
CVaR优化;
SETS:
capital/1..8/: q,x0,e,x,u,v,c;
station/1..5/: z;
points/1,2,3/;
linkI(capital,station): y;
linkII(points,capital): s,r;
ENDSETS
DATA:
n=0.95;
w=0.00294836;
q=25.73 9.38 17.82 38.27 17.4 11.35 22.95 13;
x0=1500 1500 1500 1500 1500 1500 1500 1500;
e=0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2;
y=-0.00930851 -0.00939597 0.07452575 -0.05422446 0.04266667
-0.00172414 -0.04145078 0.01261261 -0.03558719 0.04059041
0.002849 -0.03551136 -0.00589102 -0.04888889 0.04205607
-0.01478953 0.02713626 0.03428893 -0.04728261 0.02909298
0.00712251 -0.00141443 0.03541076 -0.03419973 0.03966006
-0.00879765 0.10059172 0.05645161 -0.08142494 0.08033241
-0.01073826 -0.03663501 -0.01126761 -0.07692308 0.03703704
0.09985735 0.0998703 0.00943396 -0.06308411 0.04738155;
ENDDATA
CALC:
T=@sum(capital(i):q(i)*x0(i));
ENDCALC
MIN=@sum(station(j):z(j))/((1-n)*@size(station))+m;
@for(linkII(k,i)|k#eq#3:r(k,i)=0);
@for(linkII(k,i)|k#ne#3:@bin(r(k,i)));
@for(capital(i):
s(1,i)<=r(1,i);
s(2,i)<=1;
s(3,i)<=r(2,i);
@sum(points(k):s(k,i)=1);
@sum(points(k):r(k,i)=1);
x(i)-x0(i)=u(i)-v(i);
u(i)+v(i)=2500*s(2,i)/q(i)+T*s(3,i)/q(i);
c(i)=5*s(1,i)+15*s(2,i)+6*T*s(3,i)/1000;
q(i)*x(i)<=e(i)*T;
);
T=@sum(capital:c)+@sum(capital:q*x);
@sum(capital(i):@sum(station(j):y(i,j))/@size(station)*q(i)*x(i))-@sum(capital(i):c(i))>=w*T;
@for(station(j):
z(j)+m>=-@sum(capital(i):x(i)*y(i,j)));
END