求助如何正确使用lingo集的问题
程序运行之后就出现这个错误,请问是怎么回事另外我的语法还有什么地方有错误?就拿目标函数来说吧,函数也在附录。上面的程序被挡住了,如果有人能指导一下写方程可以给大佬发红包,穷学生发不了多少但是起码是个心意哈哈。
上面的程序被挡住了,如果有大佬能私聊指导我一下写程序,定当感激不尽
程序被挡住了,这是程序
你把这里的link1(j)改为number(j)试试!
madio 发表于 2020-3-28 18:34 static/image/common/back.gif
你把这里的link1(j)改为number(j)试试!
改完了之后这个地方还是有问题。。。
看得有点乱,最后是不是少了一个右括号?
madio 发表于 2020-3-28 21:38 static/image/common/back.gif
看得有点乱,最后是不是少了一个右括号?
确实是少了一个括号但是加上之后好像还是这个错误
model:
sets:
allpoint/1..8/:ap;!所有点的集合,其中8为初始位置;
number/1..7/:x,y;!待移动货架的集合定义坐标;
agvnumber/1..4/:time,agvx,agvy;!k辆AGV;
link1(number,number,agvnumber):t,serve;!定义货架之间运行时间与服务关系;
link2(number,agvnumber):z;!定义小车与货架的服务关系;
link3(allpoint,allpoint,agvnumber):u;!agv访问货架相关的流变量;
endsets
data:
x=1 2 4 2 4 1 4;
y=1 0 1 2 3 4 4;
agvx=0 5 0 5;
agvy=0 0 5 5;
enddata
min=@max(agvnumber(k):time(k));
@for(agvnumber(k):time(k)=@sum(number(i):@sum(number(j)|j#not#i:serve(i,j,k)*t(i,j,k))));!3-1;
@for(agvnumber(k):@sum(number(j):serve(8,j,k)=1));!3-2;
@for(agvnumber(k):@sum(number(i):serve(i,8,k)=1));!3-3;
@for(agvnumber(k):@sum(number(i):@sum(number(j)|j#not#i:serve(i,j,k)=1);!3-4;
@for(agvnumber(k):@sum(number(j):@sum(number(i)|i#not#j:serve(j,i,k)=1);!3-5;
@for(agvnumber(k):@for(allpoint(h):(@sum(allpoint(i)|i#not#h:serve(i,h,k))-@sum(allpoint(j)|j#not#h:serve(h,j,k))=0)));!3-6;
@for(agvnumber(k):@for(number(i):z(i,k)=@sum(allpoint(j)|j#not#i:serve(j,i,k))));!3-7;
@for(agvnumber(k):@for(number(i):@for(number(j)|j#not#i:t(i,j,k)=@abs(x(i)-x(j))+@abs(y(i)-y(j))));!3-8;
@for(agvnumber(k):@for(number(j):t(8,j,k)=@abs(agvx-x(j))+@abs(agvy-y(j))));!3-9;
@for(agvnumber(k):@for(number(i):t(i,8,k)=@abs(x(j)-agvx)+@abs(y(i)-agvy)));!3-10;
@for(agvnumber(k):@for(number(i):z(i,k)=@sum(allpoint(j):u(i,j,k))-@sum(allpoint(j):u(j,i,k))));!3-14;
@for(agvnumber(k):@for(allpoint(i):@for(allpoint(j):u(i,j,k)<=6*x(i,j,k))));!3-15;
@for(link1:@bin(x));
@for(link2:@bin(z));
end
你这个代码问题太多了,你把原先的数学模型发上来,我把一些行注释了,语法问题已经给你改了,但是这些行是逻辑混乱,也就是和模型不符,有问题,所以出不来结果!model:
sets:
allpoint/1..8/:ap;!所有点的集合,其中8为初始位置;
number/1..7/:x,y;!待移动货架的集合定义坐标;
agvnumber/1..4/:time,agvx,agvy;!k辆AGV;
link1(number,number,agvnumber):t,serve;!定义货架之间运行时间与服务关系;
link2(number,agvnumber):z;!定义小车与货架的服务关系;
link3(allpoint,allpoint,agvnumber):u;!agv访问货架相关的流变量;
endsets
data:
x=1 2 4 2 4 1 4;
y=1 0 1 2 3 4 4;
agvx=0 5 0 5;
agvy=0 0 5 5;
enddata
min=@max(agvnumber(k):time(k));
@for(agvnumber(k):time(k)=@sum(number(i):@sum(number(j)|j#ne#i:serve(i,j,k)*t(i,j,k))));!3-1;
@for(agvnumber(k):@sum(number(j):serve(7,j,k))=1);!3-2;
@for(agvnumber(k):@sum(number(i):serve(i,7,k))=1);!3-3;
@for(agvnumber(k):@sum(number(i):@sum(number(j)|j#ne#i:serve(i,j,k)))=1);!3-4;
@for(agvnumber(k):@sum(number(j):@sum(number(i)|i#ne#j:serve(j,i,k)))=1);!3-5;
!@for(agvnumber(k):@for(allpoint(h):(@sum(allpoint(i)|i#ne#h:serve(i,h,k))-@sum(allpoint(j)|j#ne#h:serve(h,j,k)))=0));!3-6;
!@for(agvnumber(k):@for(number(i):z(i,k)=@sum(allpoint(j)|j#ne#i:serve(j,i,k))));!3-7;
!@for(agvnumber(k):@for(number(i):@for(number(j)|j#ne#i:t(i,j,k)=@abs(x(i)-x(j))+@abs(y(i)-y(j)))));!3-8;
!@for(agvnumber(k):@for(number(j):t(8,j,k)=@abs(agvx-x(j))+@abs(agvy-y(j))));!3-9;
!@for(agvnumber(k):@for(number(i):t(i,8,k)=@abs(x(j)-agvx(k))+@abs(y(i)-agvy(k))));!3-10;
!@for(agvnumber(k):@for(number(i):z(i,k)=@sum(allpoint(j):u(i,j,k))-@sum(allpoint(i):u(i,j,k))));!3-14;
!@for(agvnumber(k):@for(allpoint(i):@for(allpoint(j):u(i,j,k)<=6*x(i,j,k))));!3-15;
@for(link1:@bin(t));
@for(link2:@bin(z));
end
madio 发表于 2020-3-29 08:25 static/image/common/back.gif
你这个代码问题太多了,你把原先的数学模型发上来,我把一些行注释了,语法问题已经给你改了,但是这些行是 ...
这是我的模型,其中一些点的位置就做了一些简化,自己学了一段时间的lingo,实在是麻烦您了。。。
页:
[1]