2013年第4期 文章编号:1009—2552(2013)04—0147—04 中图分类号:TP301.6 文献标识码:A 分支限界算法在导游系统路径优化中的应用 薛东伟,李东新,周黎明 (河海大学计算机与信息学院,南京211100) 摘要:为解决游客出行时选取最短旅行线路的困扰,在导游系统中加入了路径分析的功能。 将分支限界算法应用于最短路径分析中,通过获取不同景点的ID号以及地理位置找到一条通过 每个景点且只通过一次的最短旅行路线,通过仿真,其结果达到了预期的目标。 关键词:最短路径;限界函数;分支限界算法 Application of branch and bound algorithm in tour guide system for path optimization XUE Dong—wei,LI Dong—xin,ZHOU Li—ming (CoRege of Computer and Information of Hohai University,Nanjing 21 1 100,China) Abstract:In order to solve the problem that tourists select the shortest route when travelling,path analysis function is added in tour guide system.The branch and bound algorithm is applied to the shortest path analysis,finding the shortest route along which each spot is passed and only once through access to ID number and location of different spots.Through the simulation,the result has achieved the anticipated target. Key words:the shortest path;bounding function;branch and bound algorithm 0 引言 景点只能通过一次的情况下走过的最短距离d= 路径分析问题是导游系统中必不可少的部分, 其主要作用是为游客提供一个遍历多个景点最短行 id,∑d , 。 1.2分支限界算法的解空间树模型 程的方案,这是一个典型的旅行商问题 (Traveling 设有最小值化问题:min F( ), ∈Z,其中,F Saleman Problem,TSP),目前用来解决TSP问题的 算法很多,例如蛮力算法-2]、回溯算法 J、遗传算 是问题的目标函数,X=[ ,, :,…, ]是问题的n 法 ]、蚁群算法L4 和粒子群优化算法 等。本文采 维决策变量,Z=[ ] 是决策空间。如图1所示, 用分支限界算法-6j,该算法是一类求解最优化问题 解空间树的第i层共有m 个节点,i=1,2,…,n+ 的重要算法,它将问题的解空间表示为解空间树,通 1,整棵解空间树的节点数目为(1+m+m +…+ 过巧妙地设计限界函数,在搜索解空间树的过程中 m )=(m 一1)/(m一1)。分支限界算法在根节 动态地剪除不可能找到最优解的子树,并不断地调 点处算出目标函数值的一个最差边界∞,在扩展根 整搜索方向来尽快找到最优解。 节点后,通过限界函数估计出节点1的子树所含最 1 问题分析 好解的目标将差于 ,因此对节点1实行剪枝。这 1.1路径分析的数学模型 样,算法避免了无用搜索,提高了搜索效率。 设游客一次需要游览Ⅳ个景点,这些景点的集 收稿日期:2012一l1—15 合M=[ID。ID。ID:…ID ],ID号表示游客走过景 作者简介:薛东伟(1987一),男,硕士研究生,研究方向为智能算 点的代号。对于任意两点IDi、ID ,d 表示两地之间 法、计算机应用技术。 的最短距离。所要做的是求出经过这些景点在每个 m”个节点 图1 分支限界算法的解空间树模型 分支限界算法首先确定目标函数F的一个最 差边界,在最小值优化问题中可以利用贪心算法 确定目标函数值的下界 。同时,设计一个限界函 数,该函数可用于估计解空间树中每一个分支点 其中, ①若i∈{ , },那么瓦( )已确定到达(或离 开)景点i的人边(或出边), 为该确定边及与景 点i相邻的未访问边中最短边的长度之和。 的子树所包含解的最好函数值,表示为f( ),然后 算法以宽度优先的方式搜索解空间树。当f( )> 时,r( )溢出目标函数的最差边界,算法认为任 何经过 的路径所对应的解都不可能是最优解,对 ②若 ∈{ :, ,…, 一 },那么 ( )已确定 景点i的人边和出边, 之和。 为人边与出边的长度 ③若i隹 ( ),那么景点i的入边和出边均未 确定, 为景点i相邻边中两条最短边的长度 之和。 节点 进行剪枝,不再搜索从 生长出的子树。 2 导游系统中路径优化的实现 2.1 限界函数的设定 2.2求解过程 导游系统路径优化问题属于最小值优化问题, 用分支限界算法求解该问题时,需要使用限界函数 定义部分解目标函数值的下界。 设有17,个景点,景点间的距离矩阵为D= 以5个景点为例,分别编码为1、2、3、4、5,它们 的相邻关系映射为加权图,如图2所示,要求解的是 从任何一个景点出发,经过其它景点且每个景点只 经过一次又回到出发点的最短路径,即求加权图中 的最小哈密顿回路 J。根据加权图,获得景点间的 距离矩阵D。 0 3 1 5 8 3 O 6 7 9 [d ,其中,d 表示景点i和 的距离且d =略 (i, =1,2,…,17,)。在该问题的合法解中,每个景点 都有且仅有两条相邻边(离开该景点的出边和到达 该景点的入边)。因此在理想情况下,该问题的最 优解为距离矩阵D中每一行的两个最小元素之和 除以2,即: ' n D=[d ]5 5= 16 O 4 2 5 7 4 0 3 8 9 2 3 0 F ≥寺 [ 哩 ( + )] 这一结论可用于辅助设计限界函数。 (1) 由于该问题的解是一个回路,求解时出发景点 的选择不影响解的质量,因此设定景点1为出发景 点。算法的部分求解过程如表1所示。 表1中按算法搜索解空间树的顺序列出了节点 编号i,节点对应的部分解 。( ),限界函数值 设解空间树中的节点 对应的部分解为 ( )= [ , :,…, ],其中 ∈{1,2,…,r,/}表示第i位访 问的景点,i=1,2,…,m(1≤m<n)。那么在最好情 况下,每一个景点(包括已访问和未访问景点)所缺 少的出边或人边都正好是与该景点相邻的未访问边 中的最短边。由此,限界函数可定义为: f( )以及算法当前状态下的最差边界 和待扩展 列表 。根据这几项数据,可以跟踪观察算法的搜 索行为: f(u)=÷∑ ● n i=1 ...——(2) ①令贪心算法从景点1出发并总选择相邻未访 问边中的最短者可得解[1,3,5,4,2,1],其目标函 148--—— ②在根节点处(i=1),部分解只包含出发景点 1( ( )=1)。根据式(2)计算距离矩阵中所有行 中两个最小元素之和,可得根节点处的限界函数值 f( 1)=14< ,将/,11力Ⅱ入 。 ③从 中取出根节点并将其扩展,可得4个子 节点2,3,4,5,分别对应部分解[1,2],[1,3],[1, 4],[1,5]。按式(2),可得4个节点的限界函数值 为r( 2)=14,r( 3)=14,/-( )=15.5, r(/,t )=19。注意在该例问题中,所有边的权值均为 整数,不可能得到带小数的目标函数值,且限界函数 图2相邻关系加权图 求的是部分解目标函数值的下界,因此可以把 的 数值作为分支限界算法最差边界的初值,即 =16。 限界函数值调整为大于15.5的第一个整数,即 为了提高搜索效率,尽快找到最优解,将剪枝条件设 f( )=16。这样根据剪枝条件r( )≥∞,将节点 为r(/,P)≥ ,即当F( )< 时,节点被加人待扩展 /J2, 加入£,而把 ,/.P 的子树剪去,如图3所示。 列表 中。 表1分支限界算法求最短路径的部分过程 ④按上述方式继续搜索,算法在节点 处找到 解[1,3,4,5,2,1],该解的目标函数值为20。由此 第一个叶节点,得到解[1,3,5,4,2,1],该解的目标 可知[1,3,5,4,2,1]是问题的一个最优解。 函数值为16;在节点 。,处找到另一个叶节点,得到 图3分支限界算法求最短路径的解空间树 图3给出了算法搜索过的解空间树,树中边上 园、莫愁湖、中山陵、总统府,通过检索GIS数据库可 的权值为对应路径的长度,记号“×”标示发生了剪 以获得它们的ID号分别为:1035、2126、1078、3079、 枝的节点。 2260。在获得ID号后,通过Esupermap提供的类 3 实验与仿真 CsePathAnalyse,获得各景点两两之间驾车游最短路 实验中假定从河海大学出发,经过白鹭洲公 径的矩阵: ——-——149...—— 0 7246 3517 9999 4476 4 结束语 7246 0 5686 7970 4484 分支限界算法采用限界函数来对解空间树进行 D= 3517 5686 0 9724 4389 剪枝,缩小了搜索范围;同时它也根据限界函数来自 9999 7970 9724 0 6958 适应地调整搜索方向,优先搜索可能含有最优解的 4476 4484 4389 6958 0 分支。通过实验表明,该算法应用于导游系统中,能 通过分支限界算法获得经过各景点的最短路径 较快的求得最佳解,给游客提供一条最短旅行路径, 优化结果为:1035—1078—2126—3079—2260— 节省了时间,也减少了差旅费用,具有较好的应用 1035,将ID号转换为地点以后很明了最短路径所经 前景。 过的最优路线是:河海大学一莫愁湖一白鹭洲公 参考文献: 园一中山陵一总统府一河海大学。程序运行后如图 [1]戴宗瑞.TSP问题在物流配送车辆运行路线中的应用分析[J]. 4所示,最短路径长度为28607,结果表明,通过分 软件导刊,2012,11(6):93—95. 支限界算法所求的最短路径是满足导游系统路径分 [2]张军,钟竞辉,龚月娇,等.算法设计与分析[M].北京:清华大学 析要求的,且效果明显。 出版社,2011. [3]Rudolph G.Convergence properties of canonical genetic algoirthms [J].IEEE Trans Neural N 0 s,1994,5(1):96—101. [4]Dorigo M,Gambardella L M,Middendorf M,et a1.Guest editorial: special section special section on ant colony optimization[J].IEEE Transaction on Evolutionary Computation,2002,6(4):317—319. [5]高尚,韩斌,吴小俊,等.求解旅行商问题的混合粒子群优化算 法[J].控制与决策,2004,19(11):1286—1289. [6]陈涛,张思发.分支限界算法求解实际TSP问题[J].计算机工 程与设计,2009,30(10):2431—2434. [7]常友渠,肖贵元,曾敏.贪心算法的探讨与研究[J].重庆电力高 等专科学校学报,2008,13(3):40-43. 图4最短路径求解结果 [8]陈萍,申红莲.求哈密顿回路的若干技巧[J].衡水学院学报, 2012,14(1):26—29. 责任编辑:刘新影 (上接第146页) 特性进行了分析,通过分析和计算,可以看出矢量有 董秘I 限元法可以有效地减少电场和磁场的冗余模。当 螂zl#嘲} g.自娃赫墒瞻 d/b取值0.2时,单模带宽和截止波长可以达到理 .#瓣,#瑚 5 黟粥 #触 想情况。同时主模TEl0的场图也可以明显改进。 舔未 鼬瓤‘黼 参考文献: le啪 '.钠游t-鼬§ [1]Qifeng Sun,Mal Lu,Xi ̄qinag Chen.Analysis ofTransfer Charae— § 霜豁酶 日喜 teristic of Double—Ridge Position on the Short Side of Waveguide 缸 船嘲§ Z 豹蜥幛孵 : 2007,32(6):29-31. ’薅2§碗盼 =====奠:冀 [J].Journal of Microwaves,[2]Utsumi Y.Variational analysis of irdged waveguide modes[J].IEEE .gil孵婶酶 l 毒l孽l瞻嗡孽霉 Trans Microwave Theory Tech,1985,33(2):111—119. l,嚣辜 碡咚辜 裨 ※ 誊§瞬 0 [3]Sun Q F,Lu M,Chen X Q.Analysis of Transfer Characteristic of . 嘛 Double—Ridge Position on the Short Side of Waveguide[J].Journal .懒嘲 错戆 of Microwaves,2007,23(6):29—31. [4]Ni G Z,Yang Z Y.Engineeirng electromagnetic field numerical cal— culation[M].Mechanical Industry Press,2004. 圈5高次模TEll电场图 [5]Mckay M,Helszajn J.Voltage—current definition of impedance of 稀少。高次模TEl1的电场则被分隔成两个对称的 singleridge waveguide[J].IEEE Microwave and Guided Wave Let— ters,1999,9(2):66—68. 区域。 责任编辑:肖滨 3 结束语 本文通过矢量有限元法对窄边双脊波导的传输 ...——150・--——