CN104579725B - 一种路由遍历搜索方法及装置 - Google Patents
一种路由遍历搜索方法及装置 Download PDFInfo
- Publication number
- CN104579725B CN104579725B CN201310482907.1A CN201310482907A CN104579725B CN 104579725 B CN104579725 B CN 104579725B CN 201310482907 A CN201310482907 A CN 201310482907A CN 104579725 B CN104579725 B CN 104579725B
- Authority
- CN
- China
- Prior art keywords
- route
- point
- depth
- starting
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Navigation (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由遍历搜索方法及装置。其中所述方法包括:搜索与起始点关联的第一路由及与终止点关联的第二路由;比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由。
Description
技术领域
本发明涉及网管技术领域,尤其涉及一种路由遍历搜索方法及装置。
背景技术
在通信运营商为行业客户开通专线业务时,需要为客户调配一条光纤的通路,通过光纤实现客户点到点的信息通信。在光纤通路的调配过程中,需要根据光纤的类型、必经点、路径的深度来遍历搜索所有的路由,由运营商专业网络管理人员选择其中的一条。目前对光路路由的遍历搜索方法是通过单点出发,通过广度优先或深度优先的算法来遍历所有路由。
现有方案主要是在内存中构造光缆网络抽象形成的无向图,对此无向图基于静态最优路由搜索算法如Dijkstra算法、A*算法、Floyd算法等搜索路由,现有方案的缺点是当网络规模庞大时内存中的无向图结构也比较庞大,对内存要求高,算法性能低下,搜索速度慢。
发明内容
为了解决现有技术中路由搜索速度慢、性能低下的技术问题,本发明提出一种路由遍历搜索方法及装置。
本发明的一个方面,提供一种路由遍历搜索方法,包括:
搜索与起始点关联的第一路由及与终止点关联的第二路由;
比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;
当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由。
本发明的另一个方面,提供一种路由遍历搜索装置,包括:
搜索模块,用于搜索与起始点关联的第一路由及与终止点关联的第二路由;
比较模块,用于比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;
组合模块,用于当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由。
本发明的路由遍历搜索方法及装置,通过起始点和终止点进行双向路径搜索再合并的方式,从起始点和终止点同时开始遍历,遍历的层数总和为n。然后查看两个遍历结果中是否有相同的节点,路由搜索的时间复杂度为降低,可以更快的遍历所有路由,提高业务开通的响应速度。
附图说明
图1是本发明路由遍历搜索方法实施例的流程示意图;
图2是本发明路由遍历搜索方法另一实施例的流程示意图;
图3是本发明路由遍历搜索装置实施例的结构示意图;
图4是本发明搜索模块的结构示意图。
具体实施方式
本发明实施例通过从起始点和终止点双向搜索路由,再进行路由匹配的方式,利用了计算机的并发处理能力,极大的提高了搜索的效率,降低搜索需要花费的时间成本。以下结合附图对本发明进行详细说明。
如图1所示,本发明实施例提供一种路由遍历搜索方法,包括以下步骤:
步骤101,搜索与起始点关联的第一路由及与终止点关联的第二路由;
步骤102,比较与起始点关联的第一路由的尾节点和与终止点关联的第二路由的尾节点;
步骤103,当与起始点关联的第一路由的尾节点和与终止点关联的第二路由的尾节点相同时,将与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由。
步骤101中,搜索与起始点关联的第一路由包括:
搜索第一指定路由深度下所有以起始点起始的第一路由,第一指定路由深度i=1,2,3...(n+1)/2,其中,n为最大路由深度。
搜索与起始点关联的第一路由还包括:对于第一路由深度下的以起始点起始的第一路由,查找第一路由的尾节点,查找与尾节点关联的所有边(“边”指的是连接两个节点的线,即光缆段);将在边上但不在第一路由上的节点加入到第一路由,得到第一路由深度下与起始点起始的第一路由。
步骤101中,搜索与终止点关联的第二路由包括:
搜索第二指定路由深度下所有以起始点起始的第二路由,第二指定路由深度j=n,n-1,n-2...n/2,其中,n为最大路由深度。
搜索与终止点关联的第二路由还包括:对于第二路由深度下的以终止点起始的第二路由,查找第二路由的尾节点,查找与尾节点关联的所有边;将在边上但不在第二路由上的节点加入到第二路由,得到第二路由深度下与终止点起始的第二路由。
以下以具体的实例详细描述本发明实施例的路由遍历搜索方法,如图2所示,该方法包括以下步骤:
步骤201,将起始点startNode放入所有以StartNode起始的路径集合startPaths中;
步骤202,将终止点endNode放入所有以EndNode起始的路径集合endPaths中;
步骤203,以第一路由深度i=1,2,3...(n+1)/2搜索所有以StartNode起始的路由Path集合;
步骤203a,如i=1,从startPaths中取出startNode,否则顺序取出startPaths中所有i-1搜索到的Path;
步骤203b,查找该Path的尾节点,查找与该尾节点相关联的所有的边Edge;
步骤203c,查找与该Edge相关联的首尾节点;
步骤203d,将该Edge但不在原Path上的节点加入到Path上;
步骤203e,将该Path加到startPaths中,从而得到当前路由深度下的与startNode相关联的所有Path;
步骤204,以第二路由深度j=n,n-1,n-2...n/2搜索所有以EndNode起始的Path集合;
步骤204a,如j=n,从endPaths中取出endNode,否则顺序取出endPaths中所有j-1搜索到的Path;
步骤204b,查找该Path的最后一个节点,查找与该节点相关联的所有的Edge;
步骤204c,查找与该Edge相关联的首尾节点;
步骤204d,将该Edge和不在原Path上的节点加入到Path上;
步骤204e,将该Path加到endPaths中;从而得到当前深度下的与endNode相关联的所有Path;
步骤205,从与startNode相关联的所有startPaths中,取出一条Path1
步骤206,从与endNode相关联的所有endPaths中,取出一条Path2;
步骤207,用上述所取出Path1的最后一个节点与Path2中的最后一个节点相比较,如果两节点相同,则认为Path1与Path2可以组成一条路由,则算法结束;
步骤208,如果两节点不相同,则从endPahts中取出下一条Path,与Path1相比较;
步骤209,如果endPaths中所有Path与Path1都没有相同的节点,则从startPaths中取出下一条Path,重复步骤206-209。
现有方案比如采用Dijkstra算法,从起始点开始遍历,按照要求的路由深度遍历n层,然后去比较这n层中是否包含终止点,时间复杂度为O(2n)。
本实施例中,通过起始点和终止点进行双向路径搜索再合并的方式,从起始点和终止点同时开始遍历,起始点遍历加一层,然后终止点遍历加一层,遍历的层数总和为n。然后查看两个遍历结果中是否有相同的节点,时间复杂度为O由此可见,本实施例的路由搜索方法时间复杂度大大降低了。
本实施例的方法,通过从起始点和终止点双向搜索路由,再进行路由匹配的方式,利用了计算机的并发处理能力,极大的提高了搜索的效率,降低搜索需要花费的时间成本。
如图3所示,本发明实施例还提供一种路由遍历搜索装置,包括:
搜索模块31,用于搜索与起始点关联的第一路由及与终止点关联的第二路由;
比较模块32,用于比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;
组合模块33,用于当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由。
如图4所示,搜索模块31包括:第一搜索子模块311,用于搜索第一指定路由深度下所有以起始点起始的第一路由,所述第一指定路由深度i=1,2,3...(n+1)/2,其中,n为最大路由深度。
第一搜索子模块311,还用于对于第一路由深度下的以起始点起始的第一路由,查找所述第一路由的尾节点,查找与所述尾节点关联的所有边;将在所述边上但不在所述第一路由上的节点加入到所述第一路由,得到第一路由深度下与所述起始点起始的第一路由。
如图4所示,搜索模块31包括:第二搜索子模块312,用于搜索第二指定路由深度下所有以起始点起始的第二路由,所述第二指定路由深度j=n,n-1,n-2...n/2,其中,n为最大路由深度。
第二搜索子模块312,用于对于第二路由深度下的以终止点起始的第二路由,查找所述第二路由的尾节点,查找与所述尾节点关联的所有边;将在所述边上但不在所述第二路由上的节点加入到所述第二路由,得到第二路由深度下与所述终止点起始的第二路由。
本实施例的装置,通过起始点和终止点进行双向路径搜索再合并的方式,从起始点和终止点同时开始遍历,遍历的层数总和为n。然后查看两个遍历结果中是否有相同的节点,路由搜索的时间复杂度为降低,可以更快的遍历所有路由,提高业务开通的响应速度。
应说明的是:以上实施例仅用以说明本发明而非限制,本发明也并不仅限于上述举例,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
Claims (6)
1.一种路由遍历搜索方法,其特征在于,包括:
搜索与起始点关联的第一路由及与终止点关联的第二路由;
比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;
当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由;
其中,所述搜索与起始点关联的第一路由包括:
搜索第一指定路由深度下所有以起始点起始的第一路由,所述第一指定路由深度i=1,2,3…(n+1)/2,其中,n为最大路由深度,且i为不大于(n+1)/2的整数;
所述搜索与终止点关联的第二路由包括:
搜索第二指定路由深度下所有以起始点起始的第二路由,所述第二指定路由深度j=n,n-1,n-2…n/2,其中,n为最大路由深度,且j为不小于n/2的整数。
2.根据权利要求1所述的方法,其特征在于,所述搜索与起始点关联的第一路由还包括:
对于第一路由深度下的以起始点起始的第一路由,查找所述第一路由的尾节点,查找与所述尾节点关联的所有边;
将在所述边上但不在所述第一路由上的节点加入到所述第一路由,得到第一路由深度下以所述起始点起始的第一路由。
3.根据权利要求1所述的方法,其特征在于,所述搜索与终止点关联的第二路由还包括:
对于第二路由深度下的以终止点起始的第二路由,查找所述第二路由的尾节点,查找与所述尾节点关联的所有边;
将在所述边上但不在所述第二路由上的节点加入到所述第二路由,得到第二路由深度下与所述终止点起始的第二路由。
4.一种路由遍历搜索装置,其特征在于,包括:
搜索模块,用于搜索与起始点关联的第一路由及与终止点关联的第二路由;
比较模块,用于比较所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点;
组合模块,用于当所述与起始点关联的第一路由的尾节点和所述与终止点关联的第二路由的尾节点相同时,将所述与起始点关联的第一路由和终止点关联的第二路由组合后形成从起始点到终止点的路由;
其中,所述搜索模块包括:第一搜索子模块,用于搜索第一指定路由深度下所有以起始点起始的第一路由,所述第一指定路由深度i=1,2,3…(n+1)/2,其中,n为最大路由深度,且i为不大于(n+1)/2的整数;
所述搜索模块还包括:第二搜索子模块,用于搜索第二指定路由深度下所有以起始点起始的第二路由,所述第二指定路由深度j=n,n-1,n-2…n/2,其中,n为最大路由深度,且j为不小于n/2的整数。
5.根据权利要求4所述的装置,其特征在于,所述第一搜索子模块,还用于对于第一路由深度下的以起始点起始的第一路由,查找所述第一路由的尾节点,查找与所述尾节点关联的所有边;将在所述边上但不在所述第一路由上的节点加入到所述第一路由,得到第一路由深度下以所述起始点起始的第一路由。
6.根据权利要求4所述的装置,其特征在于,所述第二搜索子模块,用于对于第二路由深度下的以终止点起始的第二路由,查找所述第二路由的尾节点,查找与所述尾节点关联的所有边;将在所述边上但不在所述第二路由上的节点加入到所述第二路由,得到第二路由深度下与所述终止点起始的第二路由。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310482907.1A CN104579725B (zh) | 2013-10-15 | 2013-10-15 | 一种路由遍历搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310482907.1A CN104579725B (zh) | 2013-10-15 | 2013-10-15 | 一种路由遍历搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579725A CN104579725A (zh) | 2015-04-29 |
CN104579725B true CN104579725B (zh) | 2018-03-23 |
Family
ID=53094999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310482907.1A Active CN104579725B (zh) | 2013-10-15 | 2013-10-15 | 一种路由遍历搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579725B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344208A (zh) * | 2018-08-14 | 2019-02-15 | 北京奇虎科技有限公司 | 路径查询方法、装置及电子设备 |
CN109194578B (zh) * | 2018-10-29 | 2020-12-15 | 中国联合网络通信集团有限公司 | 一种专线业务的开通方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19743361C2 (de) * | 1997-09-30 | 2001-02-01 | Siemens Ag | Verfahren zur Leitwegsuche in Telekommunikationsnetzen |
US8761022B2 (en) * | 2007-12-26 | 2014-06-24 | Rockstar Consortium Us Lp | Tie-breaking in shortest path determination |
CN101572647B (zh) * | 2008-04-30 | 2012-07-04 | 华为技术有限公司 | 一种数据查找的方法及装置 |
CN101924697B (zh) * | 2010-06-30 | 2012-07-11 | 北京科技大学 | 一种基于链路回溯恢复策略的双向启动恢复方法 |
-
2013
- 2013-10-15 CN CN201310482907.1A patent/CN104579725B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104579725A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | Shortest path and distance queries on road networks: towards bridging theory and practice | |
CN101594319B (zh) | 表项查找方法和装置 | |
CN103546378B (zh) | 基于tcam的范围多匹配2级分层查找方法 | |
CN104579725B (zh) | 一种路由遍历搜索方法及装置 | |
CN104252528B (zh) | 基于标识符空间映射的大数据二级索引构建方法 | |
CN103344248B (zh) | 一种车辆导航系统的最佳路径计算方法 | |
CN101159658A (zh) | 虚拟私用网路由查找的方法和装置 | |
De et al. | Traffic grooming, routing, and wavelength assignment in an optical WDM mesh networks based on clique partitioning | |
CN104780101B (zh) | 内容中心网络转发平面fib表结构及其检索方法 | |
US20230291678A1 (en) | Method and system for load-balanced traffic grooming in ip over quasi-cwdm network | |
CN104318025B (zh) | 八角结构Steiner最小树下的VLSI绕障布线器 | |
CN1816000A (zh) | 一次路由计算实现层次路由的拓扑方法 | |
CN110011844A (zh) | 一种网管otn业务快速创建的方法及系统 | |
CN109412954A (zh) | 基于无序节点约束的路由确定方法、装置以及存储介质 | |
CN112985443A (zh) | 路径规划方法、装置及终端设备 | |
CN107995015B (zh) | 获取twamp端到端检测路径的方法和装置 | |
CN101330344B (zh) | 一种波分复用网中单链路故障的子通路保护方法 | |
CN108429681B (zh) | 源端网元至宿端网元间的多层最短路由寻路方法及系统 | |
CN108199893B (zh) | 一种otn传输网络光电混合保护的配置方法及系统 | |
CN106027389A (zh) | 一种基于新型拓扑的p圈保护方法 | |
CN104065522B (zh) | 一种侦测ptn链路可用带宽的方法及装置 | |
JP2013003876A (ja) | 敷設可能経路を考慮したケーブル敷設設計用のプログラム、装置及びシステム | |
CN103220223B (zh) | 网络数据流分类方法和系统 | |
US20130010643A1 (en) | Method and apparatus for loop path search in mesh network | |
CN103200193A (zh) | 网络设备中的会话创建方法及会话创建装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |