售货员问题"/>
【LINGO】旅行售货员问题
目录
【LINGO】旅行售货员问题
【LINGO】旅行售货员问题
!旅行售货员问题;
model:
sets:city / 1.. 5/: u;link( city, city):dist, ! 距离矩阵;x;
endsets n = @size( city);
data: !距离矩阵,它并不需要是对称的;dist = @qrand(1); !随机产生,这里可改为你要解决的问题的数据;
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为0\1变量;@for( link: @bin( x));
End
更多推荐
【LINGO】旅行售货员问题
发布评论