数学建模社区-数学中国
标题:
在LINGO中,data与init的用法有什么区别吗
[打印本页]
作者:
如鱼
时间:
2013-11-13 06:59
标题:
在LINGO中,data与init的用法有什么区别吗
本帖最后由 wujianjack2 于 2013-11-13 22:33 编辑
最近学习LINGO遇到一个例子,将数据放到init里面,感觉不能理解,按照以前的思路,都会在data中定义.但如果将inti中的数据放在data中,运行就会报错。(放在data中的数据不会改变,但感觉x,y为定值,应该也能计算的呀,我理想的结果是计算出两个固定运输点的运输量)
sets:
!c表示运量,a、b表示坐标,d表示需求量,e表示存储量;
demand/1..6/:a,b,d;
supply/p,q/:x,y,e;
link(demand,supply):c;
endsets
min=@sum(link(I,J):c(I,J)*((x(J)-a(I))^2+(y(J)-b(I))^2)^(1/2));
@for(demand(i):@sum(supply(j):c(i,j))=d(i););
@for(supply(j):@sum(demand(i):c(i,j))<=e(j););
data:
a=1.25 8.75 0.5 5.75 3 7.25;
b=1.25 0.75 4.75 5 6.5 7.75;
d=3 5 4 7 6 11;
e=20 20;
enddata
init:
x=5 2;
y=1 7;
endinit
作者:
qlb061
时间:
2013-11-13 18:01
sets:
demand/1..6/:a,b,d;
supply/p,q/:x,y,e;
link(demand,supply):c;
endsets
min=@sum(link(I,J):c(I,J)*((x(J)-a(I))^2+(y(J)-b(I))^2)^(1/2));
@for(demand(i):@sum(supply(j):c(i,j))=d(i););
@for(supply(j):@sum(demand(i):c(i,j))<=e(j););
data:
a=1.25 8.75 0.5 5.75 3 7.25;
b=1.25 0.75 4.75 5 6.5 7.75;
d=3 5 4 7 6 11;
e=20 20;
x=5 2;
y=1 7;
enddata
复制代码
即使把 x, y 放在数据部分也没发现错误。
作者:
如鱼
时间:
2013-11-13 18:46
qlb061 发表于 2013-11-13 18:01
即使把 x, y 放在数据部分也没发现错误。
是我看错了,一开始定义派生集出错
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5