model:
sets:
point/1..16/:u;
road(point,point):W,X;
endsets
data:
W=0,3,0,0,6,0,0,0,0,0,0,0,0,0,0,0,
9,0,8,0,0,11,0,0,0,0,0,0,0,0,0,0,
0,3,0,7,0,0,13,0,0,0,0,0,0,0,0,0,
0,0,8,0,0,0,0,4,0,0,0,0,0,0,0,0,
9,0,0,0,0,11,0,0,10,0,0,0,0,0,0,0,
0,3,0,0,6,0,13,0,0,1,0,0,0,0,0,0,
0,0,8,0,0,11,0,4,0,0,2,0,0,0,0,0,
0,0,0,7,0,0,13,0,0,0,0,2,0,0,0,0,
0,0,0,0,6,0,0,0,0,1,0,0,1,0,0,0,
0,0,0,0,0,11,0,0,10,0,2,0,0,7,0,0,
0,0,0,0,0,0,13,0,0,1,0,2,0,0,5,0,
0,0,0,0,0,0,0,4,0,0,2,0,0,0,0,30,
0,0,0,0,0,0,0,0,10,0,0,0,0,7,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,1,0,5,0,
0,0,0,0,0,0,0,0,0,0,2,0,0,7,0,30,
0,0,0,0,0,0,0,0,0,0,0,2,0,0,5,0,
enddata
max=@sum(road(i,j):w(i,j)*x(i,j)); !最短路;
n=@size(point);
@for(point(i)|i#ne#1#and#i#ne#16:@sum(point(k):x(k,i))=@sum(point(j):x(i,j)));
@sum(point(j)|j#ne#13:x(13,j))=1; !起始点要出去;
@sum(point(k)|k#ne#12:x(k,12))=1; !要到达目标点;
@for(road(i,j):u(i)-u(j)+n*x(i,j)<=n-1); !不出现圈;
@for(road(i,j):x(i,j)<=W(i,j)); !不能到达的路不考虑;
@for(road(i,j):@bin(x(i,j)));
end
求助这 lingo 程序那里错了?怎么改?
最新推荐文章于 2024-07-10 19:42:44 发布