LINGO软件判断语句问题

baidu_16143161 2014-12-30 10:57:16
是这样的。。目的是要找经过所有点的最短路径。但是最后输出了这样的结果x(5,3)=1,x(3,5)=1,意思就是在点3和点5之间来回跑,点3和5被孤立在其他点之外了。。不懂LINGO的语法,能不能加一个判断语句使得x(m,n)和x(n,m)不能同时为1?源代码楼下附上。。。
MODEL:
!Traveling salesman problem for the sites of seven site;
Sets:
SITE/1..9/:Y;
LINK(SITE,SITE):DIST,X;
ENDSETS
Data:
DIST=0 3.3 7.04 5.27 8.75 8.5 10.64 6.8 5.62
3.3 0 3.76 2.42 5.65 6.01 8.9 5.45 5.77
7.04 3.76 0 3.71 4.16 6.11 9.43 7.27 8.59
5.27 2.42 3.71 0 3.54 3.63 6.68 3.72 5
8.75 5.65 4.16 3.54 0 2.57 5.68 5 7.39
8.5 6.01 6.11 3.63 2.57 0 3.42 2.93 5.54
10.64 8.9 9.43 6.68 5.68 3.42 0 3.8 6
6.8 5.45 7.27 3.72 5 2.93 3.8 0 2.63
5.62 5.77 8.59 5 7.39 5.54 6 2.63 0;
Enddata
N=@SIZE(SITE);
MIN=@SUM(LINK:DIST*X);
@FOR(SITE(K):
@SUM(SITE(I)|I#NE#K:X(I,K))=1;
@SUM(SITE(J)|J#NE#K:X(K,J))=1;
@FOR(SITE(J)|J#GT#1#AND#J#NE#K:
Y(J)>=Y(K)+X(K,J)-(N-2)*(1-X(K,J)+(N-3)*X(J,K))));
@FOR(LINK:@BIN(X));
@FOR(SITE(K)|K#GT#1:
Y(K)<=N-1-(N-2)*X(1,K);
Y(K)>=1+(N-2)*X(K,1));
END
...全文
401 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧