数学建模社区-数学中国

标题: lingo定义错误,高手能帮忙看看么?谢谢您了 [打印本页]

作者: 林豆豆    时间: 2011-6-17 21:43
标题: lingo定义错误,高手能帮忙看看么?谢谢您了
model:
sets:
areas/1..5/:index;          !Hamilton路径号;
link(areas,areas):distance,x;      !邻接矩阵和决策矩阵;
endsets
data:
distance=0,300,600,0,0, 300,0,300,200,0, 600,300,0,0,500, 0,200,0,0,200, 0,0,500,200,0;         !输入19×19的邻接矩阵(此处没有列出);
enddata
n=@size(areas);
min=@sum(link(i,j)|i#ne#j:distance(i,j)*x(i,j));
@for(areas(i):index(i)>=1;);         !地区编号非约束;
@for(areas(i):
@sum(areas(j)|j#ne#i:x(j,i))=1;      !入度为1约束;
@sum(areas(j)|j#ne#i:x(i,j))=1;);    !出度为1约束;
@for(areas(j)|j#gt#i#and#j#ne#i:index(j)>=index(i)+x(i,j)-n*(1-x(i,j))+(n-1)*x(j,i););    !标号约束(除起始点外标号);
@for(link:@bin(x));                  !0-1约束;
@for(areas(i)|i#gt#1:index(i)<=n-(n-2)*x(1,i);     !起点标号约束;
index(i)>=1+(n-1)*x(i,1););          !终点标号约束;
end
作者: madio    时间: 2011-6-19 09:16
按照错误提示,你只要把@for(areas(i)|i#gt#1:index(i)<=n-(n-2)*x(1,i);     !起点标号约束;这一行的标号i换一下就可以编译通过了,比如换成@for(areas(k)|k#gt#1:index(k)<=n-(n-2)*x(1,k);     !起点标号约束;
但是你的模型肯定有问题,这一句@for(areas(j)|j#gt#i:index(j)>=index(i)+x(i,j)-n*(1-x(i,j))+(n-1)*x(j,i););   肯定有问题,解释不通,你仔细看看原先的模型。




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