数学建模社区-数学中国
标题:
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