同一个lingo旅行商程序为什么对小矩阵可以 矩阵变大之后就会报错?

同一个lingo旅行商程序为什么对小矩阵可以 矩阵变大之后就会报错?
model:
sets:
city / 1..5/:u;
link( city,city):
dist, 距离矩阵;
x;
endsets
n = @size( city);
data: 距离矩阵,它并不需要是对称的;
dist=0 7 4 5 8 6 12 13 11 18
7 0 3 10 9 14 5 14 17 17
4 3 0 5 9 10 21 8 27 12
5 10 5 0 14 9 10 9 23 16
8 9 9 14 0 7 8 7 20 19
6 14 10 9 7 0 13 5 25 12
12 5 21 10 8 13 0 23 21 18
13 14 8 9 7 5 23 0 18 12
11 17 27 23 20 25 21 18 0 16
18 17 12 16 19 12 18 12 16 0;
enddata
目标函数;
min = @sum( link:dist * x);
@FOR( city( K):
进入城市K;
@sum( city( I)| I #ne# K:x( I,K)) = 1;
离开城市K;
@sum( city( J)| J #ne# K:x( K,J)) = 1;
);
保证不出现子圈;
@for(city(I)|I #gt# 1:
@for( city( J)| J#gt#1 #and# I #ne# J:
u(I)-u(J)+n*x(I,J)<=n-1);
);
限制u的范围以加速模型的求解,保证所加限制并不排除掉TSP问题的最优解;
@for(city(I) | I #gt# 1:u(I)<=n-2 );
定义X为01变量;
@for( link:@bin( x));
End
程序报错

但是将距离矩阵换为
dist=0 70 115 90 95
70 0 46 21 50
115 46 0 30 32
90 21 30 0 48
95 50 32 48 0;程序反倒可以运行 对于10行10列 的矩阵该怎么求?
小梅飘雪 1年前 已收到1个回答 举报

joanneluo 幼苗

共回答了16个问题采纳率:93.8% 举报

city / 1..5/:u; 这个地方要改成city / 1..10/:u;才可以啊

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.038 s. - webmaster@yulucn.com