2007年第28卷第2期中北大学学报(自然科学版)Vol.28 No.2 2007(总第112期)JOURNALOFNORTHUNIVERSITYOFCHINA(NATURALSCIENCEEDITION)(SumNo.112)文章编号:1673-3193(2007)02-0104-04用分支定界算法求解旅行商问题管 琳,白艳萍(中北大学理学院,山西太原030051)摘 要: 在0-1整数规划的基础上建立了数学模型,利用MATLAB6.5优化工具箱中的linprog函数进行求解,再经过分支定界算法计算,求出了只含有0和1的解.实验结果表明,该算法可以求解小规模旅行商问题.关键词: 旅行商问题;分支定界;linprog函数中图分类号: O29 文献标识码:AABranchandBoundAlgorithmforTravelingSalesmanProblemGUANLin,BAIYan-ping(SchoolofScience,NorthUniversityofChina,Taiyuan030051,China)Abstract:Basedon0-1integerlinearprogramming,mathematicsmodelissetandsolvedbylinprogfunctioninoptimistictoolboxofMATLAB6.5.Thesolutiononlycontainingzerosandonesisacquiredusingbranchandboundalgorithm.TheexperimentalresultsindicatethatthisalgorithmissuitableforsmallTSP(travelingsalesmanproblem).Keywords:travelingsalesmanproblem;branch-and-boundalgorithm;linprogfunction1 旅行商问题简介所谓“旅行商问题”,即TSP(TravelingSalesmanProblem)问题是一个十分有名的难以求解的优化问题,其要求很简单:在个城市的集合中,找出一条经过每个城市各一次,最终回到起点的最短路径.如果用dij表示从城市i到城市j的距离,则路径的总长度d=∑dij.TSP的最优解是求长度d为最短的一条有效的路径.因为对于n个城市的全排列共有n!种,而TSP没有限定路径的方向,即为全组合,所以其旅行方案数为n!2n(n≥4)种[1]122.若采用穷举搜索法,则需要考虑所有可能的情况,再进行比较,找出最短路经.因其计算复杂度随城市数目的增加呈指数增长,可能无法计算.这类问题称为完全非确定性多项式问题(NondeterministicPolynomialComplete),简称NP完全问题.TSP问题在组合优化中是一个求最小的带权哈密顿回路问题[1]219,哈密顿圈是一个完全无向图,每个顶点的度为2.因此,假设n个城市为n个顶点,顶点集合V={1,2,…,n},各个城市之间有路连接就称两个顶点间有一条边,用E={Xij│(i,j),i,j=1,2,…,n}表示边的集合,且Xii=0.用D(dij)表示距离矩阵,D是一个对称阵.xij是一个0-1型变量,且xij=1,点i与点j之间有边0,否则.由上述假设对磁收稿日期:2006-05-22 基金项目:山西省自然科学基金资助项目(20051006) 作者简介:管琳(1981-),女,硕士生.主要从事神经网络算法与应用研究.白艳萍(1962-),女,教授,博士.硕士生导师.TSP问题建立如下数学模型minz=∑i∈v∑j∈vxijdij,s.t.∑j∈vxij=2对所有i∈V,∑i∈S,j∈v-sxij≥2对所有S炒V,3≤S≤[V2],xij∈{0,1}ij∈E. 以4个城市的TSP问题为例,用上述模型求TSP的最短路径.随机地取距离矩阵D=07821137801114211109131390,求解得到三组解,这三组解分别构成A,B,C三个邻接矩阵(A,B,C的邻接矩阵图如图1~图3所示).A=0110100110010110,B=0011001111001100,C=0101101001011010. 由计算可知,最优目标函数值z倡=59.显然,这是一个0-1的整数规划问题,可以用分支定界法求解.Fig.1Aadjacentmatrixfigure图1A的邻接矩阵图Fig.2Badjacentmatrixfigure图2B的邻接矩阵图Fig.3Cadjacentmatrixfigure图3C的邻接矩阵图3241324143212 分支定界算法分支定界算法(BranchandBoundMethod,B&B)由LandDoig等人于20世纪60年代提出,其算法思想不仅适用于表达成整数线性规划(或混合整数线性规划)的问题,也适用于几乎任何组合优化问题[3].它采用了类似分而治之的算法策略,在分析一个组合最优化问题一切可行解的过程中,采取了必要的限制条件,设法排除可行域中大量非最优解区域,从而能够求解一些规模较大的问题[2].设有最小化整数规划问题P,相应的松弛问题P0.P:minz=c′x,Ax≤b,x≥0,xi为整数; P0:minz=c′x,Ax≤b,x≥0. 先求解P的松弛问题P0.P0的最优解不符合P的整数条件,则取其中一个非整数解分量xi=ai,在约束条件的基础上增加一个整数约束xi≥[ai]+1或xi≤[ai],得到P1层的两个线性规划问题.分支定界法就是将P0的可行域F通过每次增加一个整数约束,分成两个子区域F1,F2,F1炒F,F2炒F,称为分支的方法.若子线性规划问题的解仍然不满足整数条件,则重复上述过程;若找到一个满足整数条件的解,则得到一个可行解,那么它的目标函数值就是一个“界限”,可作为衡量其他分支的一个依据,称之为“定界”.因为整数规划问题的可行解集是它的松弛问题可行解集的一个子集,前者最优解的目标函数值不会优于后者[1]20,所以对于那些目标函数值比上述“界限”差的后继问题可以不再考虑了.当然,如果在以后的分支过程中出现了更好的“界限”,则以它取代原来的.分支定界算法可以等价于在一个深度为n的二叉树上的搜索,在二叉树的每一个节点上求解一个线性规划问题.每一个子节点都是在其父节点线性规划问题基础上增加一个约束xi≥[ai]+1或xi≤[ai]的线性规划问题.因此,子节点的解不优于父节点[4],其叶节点中的最优者是原问题P的最优解.可以看到,随着问题规模的增加,要进行约20+21+22+…+2n个线性规划问题的求解,并且求解过501(总第112期)用分支定界算法求解旅行商问题(管 琳等)程中要存储大量的数据,进行多次比较,因此对于较大规模的TSP问题此算法效率不高.经验表明,在可能的情况下,根据对实际问题的了解,事先选择一个合理的“界限”,可以提高分支定界法的搜索效率[1]120.文献[3]对上述分支定界法作了改进,使得求解效率进一步提高.将P0的最优值作为P的目标函数值的一个上界,记为z珔;而P的任意可行解的目标函数值将是的z一个下界,记为Z-.在搜索过程中,还可以逐步减小z珔和增大z-.因此,该方法应设法找到最优解的上下界,在上下界之外的节点不再考虑,称之为剪枝.一般遇到下列情况时需要剪枝:1)Pi无可行解;2)Pi的最优解符合整数约束,则不必再分支;3)Pi的最优值f珚i≥f珚,通过比较,若子问题不剪枝则继续分支[7].当所有子问题都剪枝了,即没有需要处理的子问题时,达到当前上界的可行解即原问题的最优解,算法结束.由于子节点的解不优于父节点,因此确定下界意义不大,确定上界是一项十分有意义的工作[8].3 实验结果与分析本文利用MATLAB6.5优化工具箱中的linprog函数对TSP问题进行求解.实验数据由文献[11]给出,如表1所示.表1 分支定界算法实验结果与最优解对比Tab.1 ComparisonbetweenB&Bsolutionandthebestsolution实验数据分支定界最优解最优解Text163.23.2Text244.3994.399Ulysses162.15352.126Att484.40963.892Eil1017.06817.811图4 16个城市最优路径图Fig.4 Besttourof16cities图5 24个城市最优路径图Fig.4 Besttourof24cities 从图4和图5中可以看到,分支定界算法对于解决小规模城市分布对称的问题是非常有效的.图6是用分支定界算法求出的路径,不是最优解.图7是该问题的最优路径.可以看到,随着问题规模的增大以及城市分布任意性的增加,运算复杂度呈指数性增长,运算量较大,迭代过程中产生的误差也较大,运算结果不理想.Eil101运算结果偏小,主要原因在于约束条件不足,使得路径中形成了多个圈.根据实际问题,可以考虑加入必要的约束条件,避免形成奇数圈和偶数圈.601中北大学学报(自然科学版)2007年第2期图6 16个不对称城市B&B算法路径图Fig.6 Tourof16asymmetrycitiesbyB&B图7 16个不对称城市最优路径图Fig.7 Besttourof16asymmetrycities参考文献:[1] 胡运权.运筹学教程[M].北京:清华大学出版社,1998:209-219.[2] 汪祖柱,程家兴.求解组合优化问题的一种方法分支定界法[J].安徽大学学报(自然科学版),2004,28(1):10-14.WangZuzhu,ChengJiaxing.Analgorithmonsolvingcombinatorialoptimizationproblemsbranch-and-boundmethod[J].JournalofAnhuiUniversityNaturalScienceEdition,2004,28(1):10-14.(inChinese)[3] MattiasElf,CarstenGutwenger,MichaelJünger.GiovannniRinaldi:Branch-and-CutAlgorithmsforCombinatorialOptimizationandTheirImplementationinABACUS[M],2000:163-172.[4] 杜江,孟香惠.一种改进的分支定界算法[J].数学杂志,1998,18:55-58.DuJiang,MengXianghui.Animprovedalgorithmforbranch-and-boundmethod[J].JanuaryofMath,1998,18:55-58.(inChinese)[5] PEMShutler.Animprovedbranchingruleforthesymmetrictravelingsalesmanproblem[J].OperationalResearchSociety,2001,52:169-175.[6] 全惠云.求解TSP的演化算法[J].湖南师范大学自然科学学报,1999,22(2):27-34.QuanHuiyun.AnevolutionaryalgorithmforTSP[J].ActaScienceNatralUniversityNormHunan,1999,22(2):27-34.(inChinese)[7] 吴祈宗.运筹学与最优化方法[M].北京:机械工业出版社,2003:180-191.[8] 袁亚湘,孙文瑜.最优化理论与方法[M].北京:科学出版社,1997:467-473,608-614.[9] 白艳萍,胡红萍.一个改进的弹性网络算法求解TSP问题[J].中北大学学报,2005,26(4):235-238.BaiYanping,HuHongping.Amodifiedelasticnetalgorithmfortravelingsalesmanproblem[