数学建模社区-数学中国

标题: 不是很麻烦的lingo程序,望高手指点错误,只有语法也好 [打印本页]

作者: ktnightman    时间: 2009-7-21 08:07
标题: 不是很麻烦的lingo程序,望高手指点错误,只有语法也好
model:
sets:
    producer/1...7/:ability,price;
    spot/1...15/,R,distance;
    links(producer,spot):C,X;
endsets
data:
C=
200.3  188.3  178.6  103.6   43     23.6    3.1   21.2   74.2 113  143   165   176.2   193   212
255.3  243.3  235.2  197.7  137.1  117.7   97.2   76.2  129.2 168  198   220   231.2   248   267   
275.3  263.3  255.2  217.7  157.1  137.7  117.2   96.2   49.2  88  118   140   151.2   168   187
331.3  319.3  311.2  273.7  213.1  193.7  173.2  152.2  105.2  72   66    86    95.2   112   131
336.3   24.3  316.2  278.7  218.1  198.7  178.2  157.2  110.2  63   33    55    76     105.2 124.2
364.3  352.3  344.2  306.7  246.1  226.7  206.2  185.2  138.2 105   83.2  61.2  40.2    11    36
376.3  364.3  356.2  318.7  258.1  238.7  218.2  197.2  150.2 117   95.2  73.2  52.2    29     4;
ability=800,800,1000,2000,2000,2000,3000;
price=150,155,155,160,155,155,165;
distance=0,120,301,750,606,194,205,210,680,480,300,220,210,420,500;
L(1)=0;
R(15)=0;
X=0
  0
  0
  0
  0
  0
  0;
enddata
[obj]min=@sum(links(i,j):price(i)*X(i,j)+C(i,j)*X(i,j)+0.1*((1+L(j))*L(j)+(1+R(j))*R(j))/2;
@for(spot(j): @sum(producer(i):X(i,j))=L(j)+R(j););
@for(spot(j):[spot_con] L(j+1)+R(j)=distance(j+1););
@for(producer(i):  @sum(spot(j):X(i)(j))<=ability(i););
@for(producer(i):  @sum(spot(j):X(i)(j))>=500;);
end
作者: ktnightman    时间: 2009-7-21 15:48
难道没有一个人可以解决吗?
转换成matlab也行啊
作者: xiaoguo    时间: 2009-9-7 13:01
可以再试试看~~哈哈
作者: zwb1030    时间: 2009-9-8 08:52
X(i)(j)
这个表达式有问题
作者: zwb1030    时间: 2009-9-8 08:52
另外你的x赋值感觉比较奇怪
作者: xiaoguo    时间: 2009-9-8 16:04
??????????????????????




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5