急求!!!!在lingo中编程

model:sets:time/1..51/:t;capacity/1..51/:c;order/1..25/:m,n;links(order,time):x;endse... model:
sets:
time/1..51/:t;
capacity/1..51/:c;
order/1..25/:m,n;
links(order,time):x;
endsets
data:
t=10 16 9 21 16 14 8 10 12 10 9 11 14 8 13 17 17 9 10 13 14 8 17 20 15 16 12 8 10 9 18 10 13 11 21 16 15 17 24 22 26 12 18 11 15 16 9 14 12 19 13;
c=12 9 15 10 20 16 10 12 17 24 14 6 9 10 7 19 21 12 9 16 8 5 17 16 8 9 12 14 11 19 24 14 12 16 9 6 21 15 10 14 9 22 16 8 14 15 16 9 14 23 16;
enddata
min=@sum(order(i):@max(time(j):x(i,j)*t(j));
@for(order(i):m(i)=@max(time(j):x(i,j)*t(j)));
@for(order(i):n(i)=@min(time(j):x(i,j)*t(j)));
@for(order(i):m(i)-n(i)<=5);
@for(order(i):@sum(capacity(j):x(i,j)*c(j))<=40);
@for(links(i,j):@bin(x(i,j)));
end
不能运行出来!!一直说for函数错误运用!!求解答!!
展开
 我来答
jimowang5
2012-07-27
知道答主
回答量:14
采纳率:0%
帮助的人:12.2万
展开全部
你的目标函数的最后差一个反括号!min=@sum(order(i):@max(time(j):x(i,j)*t(j)));
最好是在lingo11中运行,lingo 9.0中会提示你的变量超过范围!
结果是:
Local optimal solution found.
Objective value: 0.000000
Objective bound: 0.000000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 4

如果你的程序的限制条件是对的话,就是这个结果了!!你可以看看。。。
追问
这个结果不对,我又修改了一下,前面的没变,
min=@sum(order(i):@max(time(j):x(i,j)*t(j)));
@for(links(i,j):@bin(x(i,j)));
@for(time(j):@sum(order(i):x(i,j))=1);
@for(order(i):@sum(capacity(j):x(i,j)*c(j))<=40);
@for(order(i):m(i)=@max(time(j):x(i,j)*t(j)));
@for(order(i):n(i)=@min(time(j)|x(i,j)#eq#1:x(i,j)*t(j)));
@for(order(i):m(i)-n(i)<=5);
end
还是不能运行!第6行模型定义不正确
追答
x(i,j)#eq#1:这是错误的!
在删除某些项中,只能对循环的量进行限制不能是具体的数值!!!
至于怎么改,如果想用这个的话,你可以用@if(time(j):x(i,j),1,0)这样就可以避免这个问题,你自己试试吧!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式