jth804770171 发表于 2020-3-28 17:58

求助如何正确使用lingo集的问题

程序运行之后就出现这个错误,请问是怎么回事另外我的语法还有什么地方有错误?就拿目标函数来说吧,函数也在附录。

jth804770171 发表于 2020-3-28 18:00

上面的程序被挡住了,如果有人能指导一下写方程可以给大佬发红包,穷学生发不了多少但是起码是个心意哈哈。

jth804770171 发表于 2020-3-28 18:01

上面的程序被挡住了,如果有大佬能私聊指导我一下写程序,定当感激不尽

jth804770171 发表于 2020-3-28 18:02

程序被挡住了,这是程序

madio 发表于 2020-3-28 18:34

你把这里的link1(j)改为number(j)试试!

jth804770171 发表于 2020-3-28 19:03

madio 发表于 2020-3-28 18:34 static/image/common/back.gif
你把这里的link1(j)改为number(j)试试!

改完了之后这个地方还是有问题。。。

madio 发表于 2020-3-28 21:38

看得有点乱,最后是不是少了一个右括号?

jth804770171 发表于 2020-3-28 22:33

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


madio 发表于 2020-3-29 08:25

你这个代码问题太多了,你把原先的数学模型发上来,我把一些行注释了,语法问题已经给你改了,但是这些行是逻辑混乱,也就是和模型不符,有问题,所以出不来结果!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

jth804770171 发表于 2020-3-29 11:13

madio 发表于 2020-3-29 08:25 static/image/common/back.gif
你这个代码问题太多了,你把原先的数学模型发上来,我把一些行注释了,语法问题已经给你改了,但是这些行是 ...

这是我的模型,其中一些点的位置就做了一些简化,自己学了一段时间的lingo,实在是麻烦您了。。。
页: [1]
查看完整版本: 求助如何正确使用lingo集的问题