数学建模常用Matlab/Lingo/c代码总结系列——旅行商TSP问题
2011-11-17 13:06
477 查看
Lingo代码: MODEL: SETS: CITY / 1.. 6/: U; ! U( I) = sequence no. of city; LINK( CITY, CITY): DIST, ! The distance matrix; X; ! X( I, J) = 1 if we use link I, J; ENDSETS DATA: !Distance matrix, it need not be symmetric; DIST =0 56 35 21 51 60 56 0 21 57 78 70 35 21 0 36 68 68 21 57 36 0 51 61 51 78 68 51 0 13 60 70 68 61 13 0; ENDDATA !The model:Ref. Desrochers & Laporte, OR Letters, Feb. 91; N = @SIZE( CITY); MIN = @SUM( LINK: DIST * X); @FOR( CITY( K): ! It must be entered; @SUM( CITY( I)| I #NE# K: X( I, K)) = 1; ! It must be departed; @SUM( CITY( J)| J #NE# K: X( K, J)) = 1; ! Weak form of the subtour breaking constraints; ! These are not very powerful for large problems; @FOR( CITY( J)| J #GT# 1 #AND# J #NE# K: U( J) >= U( K) + X ( K, J) - ( N - 2) * ( 1 - X( K, J)) + ( N - 3) * X( J, K))); ! Make the X's 0/1; @FOR( LINK: @BIN( X)); ! For the first and last stop we know...; @FOR( CITY( K)| K #GT# 1: U( K) <= N - 1 - ( N - 2) * X( 1, K); U( K) >= 1 + ( N - 2) * X( K, 1)); END
matlab代码: function main clc,clear global a % a=zeros(6); % a(1,2)=56;a(1,3)=35;a(1,4)=21;a(1,5)=51;a(1,6)=60; % a(2,3)=21;a(2,4)=57;a(2,5)=78;a(2,6)=70; % a(3,4)=36;a(3,5)=68;a(3,6)=68; a(4,5)=51;a(4,6)=61; % a(5,6)=13; a=a+a'; load cost a=Muti_Cost;%边权矩阵 L=size(a,1); c1=1:53; %初始圈 [circle,long]=modifycircle(c1,L); c2=[1 53 2:52];%改变初始圈,该算法的最后一个顶点不动 [circle2,long2]=modifycircle(c2,L); if long2<long long=long2; circle=circle2; end circle,long %******************************************* %修改圈的子函数 %******************************************* function [circle,long]=modifycircle(c1,L); global a flag=1; while flag>0 flag=0; for m=1:L-3 for n=m+2:L-1 if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<... a(c1(m),c1(m+1))+a(c1(n),c1(n+1)) flag=1; c1(m+1:n)=c1(n:-1:m+1); end end end end long=a(c1(1),c1(L)); for i=1:L-1 long=long+a(c1(i),c1(i+1)); end circle=c1;
相关文章推荐
- 数学建模常用Matlab/Lingo/c代码总结系列——整数规划问题
- 数学建模常用Matlab/Lingo/c代码总结系列——最小费用最大流问题
- 数学建模 TSP(旅行商问题) Lingo求解
- 数学建模常用Matlab/Lingo/c代码总结系列——floyd最短路径
- 数学建模常用Matlab/Lingo/c代码总结系列——参数估计
- 数学建模常用Matlab/Lingo/c代码总结系列——层次分析法
- 数学建模常用Matlab/Lingo/c代码总结系列——插值拟合
- python 回溯法 子集树模板 系列 —— 9、旅行商问题(TSP)
- 数学建模常用Matlab/Lingo/c代码总结系列——非线性拟合
- 遗传算法 求解旅行商 TSP 问题,matlab代码
- 数学建模常用Matlab/Lingo/c代码总结系列——Matlab图形绘制函数汇总
- 数学建模常用Matlab/Lingo/c代码总结系列——hamilton回路
- 搜索引擎solr系列---高亮配置及问题总结
- (C语言)分支界限法求解旅行商(TSP)问题
- 数学之美(系列十七) 之 闪光的不一定是金子 谈谈搜索引擎作弊问题(Search Engine Anti-SPAM)
- 蚁群算法实现TSP(旅行商)问题(java)
- 基础算法系列总结:回溯算法(解火力网问题)
- 对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)
- 【ionic App问题总结系列】ionic登录拦截机制-使用Modal作为登录框
- 三进制状态压缩DP(旅行商问题TSP)HDU3001