CN105141524A - 一种带约束条件的拓扑图最优路径算法 - Google Patents
一种带约束条件的拓扑图最优路径算法 Download PDFInfo
- Publication number
- CN105141524A CN105141524A CN201510589652.8A CN201510589652A CN105141524A CN 105141524 A CN105141524 A CN 105141524A CN 201510589652 A CN201510589652 A CN 201510589652A CN 105141524 A CN105141524 A CN 105141524A
- Authority
- CN
- China
- Prior art keywords
- topological
- topological node
- node
- list
- link
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种带约束条件的拓扑图最优路径算法,包括将电信设备生成拓扑节点、光纤连接生成拓扑链路,组成拓扑矩阵;选择源、宿拓扑节点;按约束条件建立必经拓扑节点和拓扑链路列表,并将必经拓扑链路转化为必经拓扑节点加到必经拓扑节点列表中;按约束条件建立避开拓扑节点和拓扑链路列表,并更新拓扑矩阵;设置当前寻路的起始和终结拓扑节点为Nt和Ne;当Nt连接拓扑链路L<t,e>,将Nt、Ne和L<t,e>加入整体路径,否则寻找Nt、Ne间最优路径加入整体路径中;如果Ne为宿拓扑节点则结束,否则据Nt、Ne间最优路径更新拓扑矩阵,开始下一次迭代。本发明实现了在约束条件下寻找最优路径,并通过改进Dijkstra算法,提高在源拓扑节点度数大时的寻路效率。
Description
技术领域
本发明涉及拓扑图最优路径算法,具体涉及一种带约束条件的拓扑图最优路径算法。
背景技术
在电信传输网中,电信设备为网络的通信节点,光纤连接两台电信设备为通信通道,许多电信设备连接起来组成了整个通信网络。
在工程上,配置电信传输网电路时,需要寻找到从一台电信设备经过指定的电信设备和光纤到另一台电信设备的最优路径。为了方便解决问题,将电信传输网抽象成拓扑图的形式,电信设备作为拓扑节点,光纤作为拓扑链路;这样问题就转变为如何在拓扑图中寻找从源拓扑节点到宿拓扑节点的最优路径,并且满足指定的约束条件。
目前,在拓扑图中寻找两拓扑节点间最优路径的确定性算法是Dijkstra算法,但是该算法存在一下不足:
(1)无法指定最优路径的约束条件,即无法指定最优路径必经的拓扑节点和拓扑链路,也无法指定最优路径避开的拓扑节点和拓扑链路;
(2)无法保证最优路径不重复经过某一拓扑节点或拓扑链路;
(3)定义拓扑节点的度数为拓扑节点连接的拓扑链路的数目,当源拓扑节点的度数较大时,寻找最优路径的时间显著增加,无法满足工程应用对时间的要求。
发明内容
本发明所要解决的技术问题是在指定约束条件下,寻找源、宿拓扑节点间的最优路径的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种带约束条件的拓扑图最优路径算法,包括以下步骤:
步骤S10、将电信传输网中所有电信设备抽象生成拓扑节点,电信设备间的所有光纤连接抽象生成拓扑链路,组成拓扑矩阵;
步骤S20、选择源拓扑节点Ns和宿拓扑节点Nd;
步骤S30、选择路径必须经过的拓扑节点和拓扑链路,按预设顺序建立必经拓扑节点列表和必经拓扑链路列表,并将必经拓扑链路转化为必经拓扑节点,顺序添加到必经拓扑节点列表中;
步骤S40、建立避开拓扑节点列表和避开拓扑链路列表,并更新拓扑矩阵;
步骤S50、设置当前寻路的起始拓扑节点和终结拓扑节点分别为必经拓扑节点Nt和Ne,并判定必经拓扑节点Nt是否连接必经拓扑链路L<t,e>,如果是,执行步骤S60;否则,执行步骤S70;
步骤S60、将必经拓扑节点Nt、Ne和必经链路L<t,e>加入到整体路径中,执行步骤S80;
步骤S70、在必经拓扑节点Nt、Ne间寻找最优路径,加入到整体路径中,执行步骤S80;
步骤S80、判断当前终结拓扑节点Ne是否为宿拓扑节点Nd,如果是,则结束程序;否则,执行步骤S90;
步骤S90、将必经拓扑节点Nt、Ne间最优路径中的拓扑节点设置为避开的拓扑节点,将必经拓扑节点Nt、Ne间的最优路径中的拓扑链路设置为避开的拓扑链路,然后执行步骤S40。
在上述方法中,所述拓扑矩阵为邻接矩阵,每个拓扑节点按序号顺序组成列表,以每个拓扑节点Nk作为起始的拓扑链路列表为L<k,*>,其中,*为与拓扑节点Nk关联的拓扑节点序号;拓扑链路列表的每项包括权值和对应拓扑链路的终结拓扑节点,每个拓扑节点Nk维护与其关联的拓扑链路列表。
在上述方法中,步骤S40到步骤S90的步骤会迭代多次,从源拓扑节点Ns开始,依次向后一个必经拓扑节点寻路,一直到宿拓扑节点Nd为止,依次寻找相邻两个必经拓扑节点间的最优路径,把这些最优路径依次连接组成经过所有必经拓扑节点的最优整体路径;
如果必经拓扑节点列表中IncludeNodeList中的必经拓扑节点有m个,那么第i次迭代从必经拓扑节点IncludeNodeList[i]寻路到必经拓扑节点IncludeNodeList[i+1],其中0<i<m。
在上述方法中,步骤S30具体包括以下步骤:
步骤S31、将源拓扑节点Ns加入到必经拓扑节点列表中;
步骤S32、将其他必经拓扑节点按约束条件顺序要求依次***到必经拓扑节点列表中;
步骤S33、顺序取必经拓扑链路列表中的一条拓扑链路L<i,j>;
步骤S34、判断拓扑节点Ni是否在必经拓扑节点列表中,如果是,执行步骤S35;否则,执行步骤S38;
步骤S35、将拓扑节点Nj***到必经拓扑节点列表中,位置在拓扑节点Ni之后;
步骤S36、判断拓扑节点Nj是否在必经拓扑节点列表中,如果是,则执行步骤S37;否则,执行步骤S38;
步骤S37、将拓扑节点Ni***到必经拓扑节点列表中,位置在拓扑节点Nj之前,然后执行步骤S39;
步骤S38、将拓扑节点Ni和Nj顺序***到必经拓扑节点列表的最后;
步骤S39、判断必经拓扑链路列表是否已经遍历完,如果未遍历完,则执行步骤S33;否则,执行步骤S310;
步骤S310、将宿拓扑节点Nd加入到必经拓扑节点列表最后,作为必经拓扑节点列表中最后一个元素,结束流程。
在上述方法中,步骤S40具体包括以下步骤:
步骤S41、顺序取避开拓扑节点列表的一个拓扑节点Nk;
步骤S42、删除拓扑矩阵中的拓扑节点Nk以及与其关联的拓扑链路列表;
步骤S43、遍历拓扑矩阵的其他拓扑节点,在与其他拓扑节点关联的拓扑链路列表中删除拓扑节点Nk;
步骤S44、判断避开拓扑节点列表是否遍历完,如果没有遍历完,则执行步骤S41;否则,执行步骤S45;
步骤S45、顺序取避开拓扑链路列表中的一条拓扑链路L<i,j>;
步骤S46、找到拓扑矩阵中的拓扑节点Ni,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Nj;
步骤S47、找到拓扑矩阵中的拓扑节点Nj,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Ni;
步骤S48、判断避开拓扑链路列表是否遍历完,如果没有遍历完,则执行步骤S45,否则,结束程序。
在上述方法中,步骤70具体包括以下步骤:
步骤S71、计算当前起始拓扑节点Nt和终结拓扑节点Ne的度数,并比较拓扑节点Nt的度数是否比拓扑节点Ne的大,如果是,则执行步骤S72;否则,执行步骤S73;
步骤S72、设置拓扑节点Ne当前起始拓扑节点,拓扑节点Nt为当前终结拓扑节点;
步骤S73、使用Dijkstra算法计算从起始拓扑节点Ne到终结拓扑节点Nt的最优路径;
步骤S74、判断拓扑节点Nt和Ne是否执行了步骤S72,如果是,执行步骤S75;否则,结束程序;
步骤S75、反转最优路径,结束程序。
本发明通过删除拓扑矩阵中的拓扑节点和拓扑链路的方法,使得寻路中避开了指定的拓扑节点和拓扑链路;再通过将指定的必经拓扑链路L<i,j>的拓扑节点Ni和Nj依次加入到必经拓扑节点列表IncludeNodeList的方法,使得寻得的最优路径一定经过拓扑链路L<i,j>,从而实现在约束条件下寻找最优路径;并且在必经拓扑节点列表IncludeNodeList中的拓扑节点IncludeNodeList[i]和IncludeNodeList[i+1]之间的寻路过程中,选择当前起始拓扑节点Nt和终结拓扑节点Ne中度数小的作为寻路的起始拓扑节点,从而提高源拓扑节点度数较大时的寻路效率。
附图说明
图1为本发明提供的一种带约束条件的拓扑图最优路径算法的流程图;
图2为本发明提供的一种带约束条件的拓扑图最优路径算法中拓扑矩阵示意图;
图3为本发明提供的一种带约束条件的拓扑图最优路径算法中最优路径结构示意图;
图4为本发明中步骤S30的流程图;
图5为本发明中步骤S40的流程图;
图6为本发明中步骤S70的流程图。
具体实施方式
本发明用于在指定约束条件下,寻找源、宿拓扑节点间的最优路径。其中约束条件包括:路径必须经过的拓扑节点和拓扑链路;路径必须避开的拓扑节点和拓扑链路。
为方便下面叙述现作如下定义:
其中,设k,i,j,n都是自然数,*为与拓扑节点Ni或者Nj关联的拓扑节点序号;
1)序号为k的拓扑节点表示为Nk;
2)顺序连接拓扑节点Ni和Nj的拓扑链路记作L<i,j>;
3)以Ni为起始的链路列表记作L<i,*>,即从Ni出发的多条链路,;
4)以Nj为终结的链路列表记作L<*,j>,即在Nj终止的多条链路;
5)必经拓扑节点列表记作IncludeNodeList,其中第n个元素记作IncludeNodeList[n];
6)必经拓扑链路列表记作IncludeLinkList,其中的第n个元素记作IncludeLinkList[n];
7)避开拓扑节点列表表示为AvoidNodeList,其中的第n个元素记作AvoidNodeList[n];
8)避开拓扑链路列表表示为AvoidLinkList,其中的第n个元素记作AvoidLinkList[n]。
下面结合说明书附图和具体实施例对本发明做出详细的说明。
如图1所示,本发明提供的一种带约束条件的拓扑图最优路径算法包括以下步骤:
步骤S10、将电信传输网中所有电信设备抽象生成拓扑节点,电信设备间的所有光纤连接抽象生成拓扑链路,组成拓扑矩阵,这样整个电信传输网网络就抽象成了网络拓扑图。由于大部分电信设备之间是没有光纤连接的,所以此拓扑矩阵可采用邻接矩阵的方式来组织,每个拓扑节点按序号顺序组成列表,以每个拓扑节点Nk作为起始的拓扑链路列表为L<k,*>,其中,*为与拓扑节点Nk关联的拓扑节点序号;拓扑链路列表的每项包括权值和对应拓扑链路的终结拓扑节点,每个拓扑节点Nk维护与其关联的拓扑链路列表;比如,如图2所示,从电信设备N1有两条光纤连接电信设备N2,两条光纤的权值分别是1和2。
步骤S20、选择源拓扑节点Ns和宿拓扑节点Nd。在电信传输网中,电路是电信设备间通信的通道,电路的起始端电信设备即是源,终结端电信设备即是宿,可见,在拓扑矩阵中源拓扑节点就是路径起始的拓扑节点,宿拓扑节点是路径终结的拓扑节点,而寻路的过程,就是从源拓扑节点开始向宿拓扑节点寻找最优路径的过程,即找电路经过的电信设备和光纤的过程,如图3所示,最优路径由拓扑节点和拓扑链路相间连接而成,即表示电信设备和光纤相间连接形成电路经过的通道。在此过程中,需要绕过避开拓扑节点列表AvoidNodeList中的拓扑节点与拓扑链路列表AvoidLinkList中的拓扑链路,需要经过必经拓扑节点列表IncludeNodeList中的拓扑节点与必经拓扑链路列表IncludeLinkList中的拓扑链路。
步骤S30、选择路径必须经过的拓扑节点和拓扑链路,按预设顺序(预设的电路必须经过电信设备的先后顺序)建立必经拓扑节点列表IncludeNodeLis和必经拓扑链路列表IncludeLinkList,并将必经拓扑链路转化为必经拓扑节点,顺序添加到必经拓扑节点列表IncludeNodeList中。在寻找源拓扑节点和宿拓扑节点之间最优路径前,首先指定路由约束条件,即指定电路必须经过的电信设备和光纤,其中,必经拓扑节点列表IncludeNodeList按电路必须经过的电信设备的先后顺序存放拓扑节点;必经拓扑链路列表IncludeLinkList按照电路必须经过的光纤的先后顺序存放拓扑链路;由于光纤连接两台电信设备,因此可以将必经的拓扑链路转换成必经的拓扑节点。
步骤S40、建立避开拓扑节点列表AvoidNodeList和避开拓扑链路列表AvoidLinkList,并根据避开拓扑节点列表AvoidNodeList和避开拓扑链路列表AvoidLinkList更新拓扑矩阵,删除需要避开的拓扑节点和拓扑链路。电路避开的电信设备和光纤是不需要在寻路中经过的,因此在拓扑矩阵中不需要出现与其对应的拓扑节点和拓扑链路,在此更新拓扑矩阵就是从拓扑矩阵中删除这些需要避开的拓扑节点和拓扑链路。
从此步骤开始,本发明将进入了迭代寻路的过程,每次迭代完成,如果未找到宿电信设备(宿拓扑节点)都会返回步骤S40进行下一轮迭代,在寻路开始前,更新寻路使用的拓扑矩阵,都会将上次寻路经过的电信设备对应的拓扑节点和光纤对应的拓扑链路删除,保证路径不经过重复的电信设备和光纤。
步骤S50、设置当前寻路的起始拓扑节点Nt和终结拓扑节点Ne(Nt和Ne为必经拓扑节点列表IncludeNodeList中的两个拓扑节点),并判定拓扑节点Nt是否连接了必经拓扑链路L<t,e>,如果Nt连接了必经拓扑链路L<t,e>,执行步骤S60;否则,执行步骤S70,即如果当前寻路起始的电信设备直接连接了必经的光纤,那么路径直接经过此光纤和光纤的终结端的电信设备,否则就需要使用Dijkstra算法进行寻路。
在本发明中,步骤S50是判断如何寻找两个必经拓扑节点(Nt和Ne)间的最优路径,判断依据是当前寻路的起始拓扑节点Nt是否关联必经拓扑链路L<t,e>,判断的方法是在拓扑矩阵中找到Nt,遍历其关联的拓扑节点列表,判断是否有拓扑节点Ne存在此列表中。
步骤S60、将必经拓扑节点Nt、Ne和必经链路L<t,e>加入到整体路径中,执行步骤S80。
在本发明中,由于在步骤S30中保证了必经的拓扑链路两端的拓扑节点一定在IncludeNodeList中,由步骤S30可知:如果Nt上存在必经拓扑链路L<t,e>,那么Ne必定是紧接Nt的必经拓扑节点;如果拓扑节点Nt、Ne是紧接的两个必经拓扑节点,且Nt上存在必经拓扑链路,那么此拓扑链路必是L<t,e>,所以在步骤S60可以直接将两个必经拓扑节点Nt、Ne和它们之间的必经拓扑链路L<t,e>加入到整体路径中。
步骤S70、在必经拓扑节点Nt、Ne间寻找最优路径,加入到整体路径中,执行步骤S80。
此步骤中,寻找两个必经拓扑节点Nt、Ne间的最优路径的方法是对原有的基本Dijkstra算法进行了改进,解决源拓扑节点Nt度数大导致的寻路效率低的问题。该方法主要是利用步骤S10建立的拓扑矩阵,使用基本的Dijkstra算法找到必经拓扑节点间最小权值的路径,在Dijkstra算法起始点选择时进行优化,使得每次都从最小度数的拓扑节点开始寻路,以保证时间的最小化。
步骤S80、判断当前终结拓扑节点Ne是否为宿拓扑节点Nd,如果是,则结束程序;否则,执行步骤S90。此步骤是判断最优路径是否已经到达宿拓扑节点,即电路的路径已经到达宿端电信设备上。
步骤S90、将必经拓扑节点Nt、Ne间最优路径中的拓扑节点设置为避开的拓扑节点,将必经拓扑节点Nt、Ne间的最优路径中的拓扑链路设置为避开的拓扑链路,以便在执行步骤S40时将此次迭代的Nt到Ne的最优路径中的所有拓扑节点加入到AvoidNodeList,所有拓扑链路加入到AvoidLinkList中,保证在下一迭代寻路时,路径不会与上次迭代的路径重复,然后执行步骤S40。
在本发明中,步骤S40到步骤S90的步骤会迭代多次,从源拓扑节点Ns开始,依次向后一个必经拓扑节点寻路,一直到宿拓扑节点Nd为止;这样保证每段路径都是最优路径,把这些路径依次连接就组成了经过所有必经拓扑节点的最优的整体路径;而每次迭代的目的是在两个必经拓扑节点间寻找最优路径并加入到整体路径中,假设必经拓扑节点列表中IncludeNodeList中的必经拓扑节点有m个,那么第i次迭代从必经拓扑节点IncludeNodeList[i]寻路到必经拓扑节点IncludeNodeList[i+1],其中0<i<m;步骤S40到步骤S90的步骤会迭代次数为m-1。
如图4所示,步骤S30具体包括以下步骤:
步骤S31、将源拓扑节点Ns加入到必经拓扑节点列表IncludeNodeList中,电路源端的电信设备是电路首先必须经过的。
步骤S32、将其他必经拓扑节点按约束条件顺序要求(电路必须经过的电信设备先后顺序)依次***到必经拓扑节点列表IncludeNodeList中(电路在寻找到宿端的电信设备过程中,依次必须经过的电信设备,按顺序***)。
步骤S33、顺序取必经拓扑链路列表IncludeLinkList中的一条拓扑链路L<i,j>,从此步骤开始依次将必经的光纤(拓扑链路)转换成必经的电信设备(拓扑节点)。
步骤S34、判断拓扑节点Ni是否在必经拓扑节点列表IncludeNodeList中,如果是,执行步骤S35;否则,执行步骤S38。此步骤判断拓扑节点Ni是否已经在必经的拓扑节点列表中了,由于拓扑节点Ni是电路必经光纤的起始端电信设备,电路经过此光纤必定会经过拓扑节点Ni。
步骤S35、将拓扑节点Nj***到必经拓扑节点列表IncludeNodeList中,位置在拓扑节点Ni之后。当拓扑节点Ni已经在必经的拓扑节点列表中,表示此必经光纤的起始端电信设备是电路必须经过的,因此光纤的终结端电信设备也应该是电路必须经过的,即拓扑节点Nj必须***到必经的拓扑节点列表的Ni之后。
步骤S36、判断拓扑节点Nj是否在必经拓扑节点列表IncludeNodeList中,如果是,则执行步骤S37;否则执行步骤S38。由于拓扑节点Nj是电路必经光纤的终结端电信设备,电路经过此光纤必定会经过拓扑节点Nj,该步骤判断拓扑节点Nj是否已经在必经拓扑节点列表中,根据判断结果选择不同的处理流程,此步骤是对光纤作反向的判断,以保证电路当以拓扑节点Nj作为起始拓扑节点经过此光纤时必经过拓扑节点Ni。
步骤S37、将拓扑节点Ni***到必经拓扑节点列表IncludeNodeList中,位置在拓扑节点Nj之前,然后执行步骤S39。由于拓扑节点Nj已经在必经拓扑节点列表中,表示此必经光纤的终结端电信设备是电路必须经过的,因此光纤的起始端电信设备也应该是电路必须经过的,即拓扑节点Ni必须***到必经拓扑节点列表中,并在拓扑节点Nj之前。
步骤S38、将拓扑节点Ni和Nj顺序***到必经拓扑节点列表IncludeNodeList的最后。当拓扑节点Ni或者Nj不在必经拓扑节点列表IncludeNodeList中时,说明必经光纤两端的电信设备都不是电路必须经过的,在此情况下,需要在经过所有必经拓扑节点电路后再经过此光纤(拓扑链路),所以将拓扑节点Ni和Nj顺序***到必经拓扑节点列表IncludeNodeList最后。
步骤S39、判断必经拓扑链路列表IncludeLinkList是否已经遍历完,如果未遍历完,则执行步骤S33;否则,执行步骤S310,此步骤用来保证将所有必经拓扑链路都转成必经拓扑节点。
步骤S310、将宿拓扑节点Nd加到必经拓扑节点列表IncludeNodeList最后,由于电路的宿端电信设备是终结点,也是必经的最后一个拓扑节点,所以宿拓扑节点作为必经拓扑节点列表IncludeNodeList中最后一个元素,结束流程。
如图5所示,步骤S40具体包括以下步骤:
步骤S41、顺序取避开拓扑节点列表AvoidNodeList的一个拓扑节点Nk,即开始顺序处理每一个需要避开的电信设备。
步骤S42、删除拓扑矩阵中的拓扑节点Nk以及与其关联的拓扑链路列表。对于拓扑节点Nk,它是需要避开的电信设备对应的拓扑节点,将该拓扑节点及其关联的拓扑链路列表从拓扑矩阵中删除也就是将其对应的电信设备和以该电信设备起始的光纤都删除。
步骤S43、遍历拓扑矩阵的其他拓扑节点,在与其他拓扑节点关联的拓扑链路列表中删除拓扑节点Nk。对于Nk对应的电信设备,在其他的电信设备上遍历起始的光纤,如果光纤的终结是该电信设备,那么此光纤也被删除掉。
步骤S44、判断避开拓扑节点列表AvoidNodeList是否遍历完,如果没有遍历完,则执行步骤S41;否则,执行步骤S45。
步骤S45、顺序取避开拓扑链路列表AvoidLinkList中的一条拓扑链路L<i,j>,即顺序处理每条需要避开的光纤。
步骤S46、找到拓扑矩阵中的拓扑节点Ni,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Nj,即在与拓扑节点Ni关联的拓扑链路列表中删除拓扑链路L<i,j>。光纤的起始端电信设备对应拓扑节点Ni,终结端电信设备对应拓扑节点Nj,从拓扑矩阵中删除与拓扑节点Ni关联的拓扑节点Nj,即删除了此条光纤。
步骤S47、找到拓扑矩阵中的拓扑节点Nj,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Ni;从拓扑矩阵中删除与拓扑节点Nj关联的拓扑节点Ni,即删除了步骤S46删除的光纤的反向光纤。
步骤S48、判断避开拓扑链路列表AvoidLinkList是否遍历完,如果没有遍历完,则执行步骤S45,否则,表明已经处理完所有避开拓扑链路,结束程序。
如图6所示,步骤70具体包括以下步骤:
步骤S71、计算当前起始拓扑节点Nt和终结拓扑节点Ne的度数,并比较拓扑节点Nt的度数是否比拓扑节点Ne的大,如果是,则执行步骤S72;否则,执行步骤S73。此步骤是计算此次迭代中寻路的起始拓扑节点和终结拓扑节点的度数,并根据两者大小选择下一步骤,即在电信传输网中从一台电信设备到下一台电信设备寻路时,选择两台电信设备中连接光纤较少的作为寻路的起始点,这样做的目的是降低Dijkstra算法搜索路径的次数,提高寻路效率。
步骤S72、互换拓扑节点Nt和Ne,即设置拓扑节点Ne当前起始拓扑节点,拓扑节点Nt为当前终结拓扑节点,从而保证起始拓扑节点的度数小于终结拓扑节点的度数。
步骤S73、使用Dijkstra算法计算从起始拓扑节点Ne到终结拓扑节点Nt的最优路径。这里利用步骤S30中的拓扑矩阵,使用标准的Dijkstra算法寻找从起始拓扑节点到终结拓扑节点的最优路径,即在这一迭代中,找到两个必经的电信设备间的最优路径,以保证经过的光纤权值之和最小。
步骤S74、判断拓扑节点Nt和Ne是否执行了步骤S72,如果是,执行步骤S75;否则,结束程序。
步骤S75、反转最优路径,获得以拓扑节点Nt为起始拓扑节点、以拓扑节点Ne为终结拓扑节点的最优路径,结束程序。由于步骤S72互换了拓扑节点起始拓扑节点和终结拓扑节点,因此在该步骤中需要对最优路径进行反转,从而得到正确方向的路径,即步骤S73中计算最优路径的方向和整体路径的方向是相反的,需要在最优路径加入到整体路径中时调整成一致的方向。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种带约束条件的拓扑图最优路径算法,其特征在于,包括以下步骤:
步骤S10、将电信传输网中所有电信设备抽象生成拓扑节点,电信设备间的所有光纤连接抽象生成拓扑链路,组成拓扑矩阵;
步骤S20、选择源拓扑节点Ns和宿拓扑节点Nd;
步骤S30、选择路径必须经过的拓扑节点和拓扑链路,按预设顺序建立必经拓扑节点列表和必经拓扑链路列表,并将必经拓扑链路转化为必经拓扑节点,顺序添加到必经拓扑节点列表中;
步骤S40、建立避开拓扑节点列表和避开拓扑链路列表,并更新拓扑矩阵;
步骤S50、设置当前寻路的起始拓扑节点和终结拓扑节点分别为必经拓扑节点Nt和Ne,并判定必经拓扑节点Nt是否连接必经拓扑链路L<t,e>,如果是,执行步骤S60;否则,执行步骤S70;
步骤S60、将必经拓扑节点Nt、Ne和必经链路L<t,e>加入到整体路径中,执行步骤S80;
步骤S70、在必经拓扑节点Nt、Ne间寻找最优路径,加入到整体路径中,执行步骤S80;
步骤S80、判断当前终结拓扑节点Ne是否为宿拓扑节点Nd,如果是,则结束程序;否则,执行步骤S90;
步骤S90、将必经拓扑节点Nt、Ne间最优路径中的拓扑节点设置为避开的拓扑节点,将必经拓扑节点Nt、Ne间的最优路径中的拓扑链路设置为避开的拓扑链路,然后执行步骤S40。
2.如权利要求1所述的方法,其特征在于,所述拓扑矩阵为邻接矩阵,每个拓扑节点按序号顺序组成列表,以每个拓扑节点Nk作为起始的拓扑链路列表为L<k,*>,其中,*为与拓扑节点Nk关联的拓扑节点序号;拓扑链路列表的每项包括权值和对应拓扑链路的终结拓扑节点,每个拓扑节点Nk维护与其关联的拓扑链路列表。
3.如权利要求1所述的方法,其特征在于,步骤S40到步骤S90的步骤会迭代多次,从源拓扑节点Ns开始,依次向后一个必经拓扑节点寻路,一直到宿拓扑节点Nd为止,依次寻找相邻两个必经拓扑节点间的最优路径,把这些最优路径依次连接组成经过所有必经拓扑节点的最优整体路径;
如果必经拓扑节点列表中IncludeNodeList中的必经拓扑节点有m个,那么第i次迭代从必经拓扑节点IncludeNodeList[i]寻路到必经拓扑节点IncludeNodeList[i+1],其中0<i<m。
4.如权利要求1所述的方法,其特征在于,步骤S30具体包括以下步骤:
步骤S31、将源拓扑节点Ns加入到必经拓扑节点列表中;
步骤S32、将其他必经拓扑节点按约束条件顺序要求依次***到必经拓扑节点列表中;
步骤S33、顺序取必经拓扑链路列表中的一条拓扑链路L<i,j>;
步骤S34、判断拓扑节点Ni是否在必经拓扑节点列表中,如果是,执行步骤S35;否则,执行步骤S38;
步骤S35、将拓扑节点Nj***到必经拓扑节点列表中,位置在拓扑节点Ni之后;
步骤S36、判断拓扑节点Nj是否在必经拓扑节点列表中,如果是,则执行步骤S37;否则,执行步骤S38;
步骤S37、将拓扑节点Ni***到必经拓扑节点列表中,位置在拓扑节点Nj之前,然后执行步骤S39;
步骤S38、将拓扑节点Ni和Nj顺序***到必经拓扑节点列表的最后;
步骤S39、判断必经拓扑链路列表是否已经遍历完,如果未遍历完,则执行步骤S33;否则,执行步骤S310;
步骤S310、将宿拓扑节点Nd加入到必经拓扑节点列表最后,作为必经拓扑节点列表中最后一个元素,结束流程。
5.如权利要求2所述的方法,其特征在于,步骤S40具体包括以下步骤:
步骤S41、顺序取避开拓扑节点列表的一个拓扑节点Nk;
步骤S42、删除拓扑矩阵中的拓扑节点Nk以及与其关联的拓扑链路列表;
步骤S43、遍历拓扑矩阵的其他拓扑节点,在与其他拓扑节点关联的拓扑链路列表中删除拓扑节点Nk;
步骤S44、判断避开拓扑节点列表是否遍历完,如果没有遍历完,则执行步骤S41;否则,执行步骤S45;
步骤S45、顺序取避开拓扑链路列表中的一条拓扑链路L<i,j>;
步骤S46、找到拓扑矩阵中的拓扑节点Ni,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Nj;
步骤S47、找到拓扑矩阵中的拓扑节点Nj,遍历与其关联的拓扑链路列表,删除其中的拓扑节点Ni;
步骤S48、判断避开拓扑链路列表是否遍历完,如果没有遍历完,则执行步骤S45,否则,结束程序。
6.如权利要求1所述的方法,其特征在于,步骤70具体包括以下步骤:
步骤S71、计算当前起始拓扑节点Nt和终结拓扑节点Ne的度数,并比较拓扑节点Nt的度数是否比拓扑节点Ne的大,如果是,则执行步骤S72;否则,执行步骤S73;
步骤S72、设置拓扑节点Ne当前起始拓扑节点,拓扑节点Nt为当前终结拓扑节点;
步骤S73、使用Dijkstra算法计算从起始拓扑节点Ne到终结拓扑节点Nt的最优路径;
步骤S74、判断拓扑节点Nt和Ne是否执行了步骤S72,如果是,执行步骤S75;否则,结束程序;
步骤S75、反转最优路径,结束程序。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589652.8A CN105141524B (zh) | 2015-09-16 | 2015-09-16 | 一种带约束条件的拓扑图最优路径算法 |
PCT/CN2016/098777 WO2017045578A1 (zh) | 2015-09-16 | 2016-09-13 | 一种带约束条件的拓扑图最优路径算法 |
MYPI2018700200A MY194954A (en) | 2015-09-16 | 2016-09-13 | Topological graph optimal path algorithm with constraint conditions |
PH12018500275A PH12018500275A1 (en) | 2015-09-16 | 2018-02-06 | Topological graph optimal path algorithm with constraint conditions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589652.8A CN105141524B (zh) | 2015-09-16 | 2015-09-16 | 一种带约束条件的拓扑图最优路径算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105141524A true CN105141524A (zh) | 2015-12-09 |
CN105141524B CN105141524B (zh) | 2018-06-01 |
Family
ID=54726737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510589652.8A Active CN105141524B (zh) | 2015-09-16 | 2015-09-16 | 一种带约束条件的拓扑图最优路径算法 |
Country Status (4)
Country | Link |
---|---|
CN (1) | CN105141524B (zh) |
MY (1) | MY194954A (zh) |
PH (1) | PH12018500275A1 (zh) |
WO (1) | WO2017045578A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045578A1 (zh) * | 2015-09-16 | 2017-03-23 | 烽火通信科技股份有限公司 | 一种带约束条件的拓扑图最优路径算法 |
CN108680163A (zh) * | 2018-04-25 | 2018-10-19 | 武汉理工大学 | 一种基于拓扑地图的无人艇路径搜索***及方法 |
CN109195192A (zh) * | 2018-08-16 | 2019-01-11 | 全球能源互联网研究院有限公司 | 无线传感网的能量均衡调度方法、装置、***及存储介质 |
CN109238296A (zh) * | 2018-08-16 | 2019-01-18 | 佛山科学技术学院 | 一种高精度室内导航方法及装置 |
CN109361604A (zh) * | 2018-12-18 | 2019-02-19 | 北京格林威尔科技发展有限公司 | Ipran或ptn中必经节点和链路的最短业务路径确定方法和装置 |
CN109412954A (zh) * | 2017-08-18 | 2019-03-01 | 中国电信股份有限公司 | 基于无序节点约束的路由确定方法、装置以及存储介质 |
CN111865627A (zh) * | 2019-04-25 | 2020-10-30 | ***通信集团河北有限公司 | 传输组网评估方法、装置、计算设备及计算机存储介质 |
CN112511230A (zh) * | 2020-11-20 | 2021-03-16 | 国网浙江省电力有限公司宁波供电公司 | 一种最优光纤路径的选择方法和装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111787436A (zh) * | 2020-07-02 | 2020-10-16 | 中国电子科技集团公司第三十四研究所 | 一种光网络通信路径自动搜索规划的方法 |
CN112115567B (zh) * | 2020-08-01 | 2024-04-16 | 富盛科技股份有限公司 | 一种光纤最小消耗路径规划方法 |
CN113297822A (zh) * | 2021-04-26 | 2021-08-24 | 阳光新能源开发有限公司 | 光伏电站集电线路确定方法、装置及存储介质 |
CN114928569B (zh) * | 2022-04-28 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种包含多个必经资源的最短路径实现方法和*** |
CN115242702B (zh) * | 2022-09-22 | 2022-12-13 | 广州优刻谷科技有限公司 | 一种物联网节点最优路径规划方法及*** |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377551B1 (en) * | 1998-08-17 | 2002-04-23 | Nortel Networks Limited | QoS based route determination method for communications networks |
US20020067693A1 (en) * | 2000-07-06 | 2002-06-06 | Kodialam Muralidharan S. | Dynamic backup routing of network tunnel paths for local restoration in a packet network |
US6804199B1 (en) * | 1998-12-10 | 2004-10-12 | Sprint Communications Company, L.P. | Communications network system and method for routing based on disjoint pairs of paths |
CN1798095A (zh) * | 2004-12-24 | 2006-07-05 | 华为技术有限公司 | 带指定服务路径的目标节点集的联通路由搜索方法 |
CN101001102A (zh) * | 2007-01-10 | 2007-07-18 | 北京航空航天大学 | 提高天基信息网络服务质量的路由装置及方法 |
CN101459468A (zh) * | 2007-12-10 | 2009-06-17 | 华为技术有限公司 | 光层波长端到端调度方法和装置 |
CN101621721A (zh) * | 2009-08-06 | 2010-01-06 | 中兴通讯股份有限公司 | K优路径的计算方法及装置 |
CN101788999A (zh) * | 2009-12-30 | 2010-07-28 | 安徽大学 | 一种网络图中最短路径的二分查找追踪方法 |
CN101888572A (zh) * | 2009-05-11 | 2010-11-17 | 中兴通讯股份有限公司 | 一种wson光传送网可替代路由实现方法和*** |
CN103051533A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 一种带保护业务的路由计算方法及装置 |
CN103248571A (zh) * | 2013-05-16 | 2013-08-14 | 湖北邮电规划设计有限公司 | 一种最优第二路由的计算方法 |
US20130315580A1 (en) * | 2012-02-13 | 2013-11-28 | Ciena Corporation | Software defined networking photonic routing systems and methods |
CN104468356A (zh) * | 2014-12-05 | 2015-03-25 | 苏州沃斯麦机电科技有限公司 | 一种多目的节点的消息转发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141524B (zh) * | 2015-09-16 | 2018-06-01 | 武汉烽火技术服务有限公司 | 一种带约束条件的拓扑图最优路径算法 |
-
2015
- 2015-09-16 CN CN201510589652.8A patent/CN105141524B/zh active Active
-
2016
- 2016-09-13 WO PCT/CN2016/098777 patent/WO2017045578A1/zh active Application Filing
- 2016-09-13 MY MYPI2018700200A patent/MY194954A/en unknown
-
2018
- 2018-02-06 PH PH12018500275A patent/PH12018500275A1/en unknown
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377551B1 (en) * | 1998-08-17 | 2002-04-23 | Nortel Networks Limited | QoS based route determination method for communications networks |
US6804199B1 (en) * | 1998-12-10 | 2004-10-12 | Sprint Communications Company, L.P. | Communications network system and method for routing based on disjoint pairs of paths |
US20020067693A1 (en) * | 2000-07-06 | 2002-06-06 | Kodialam Muralidharan S. | Dynamic backup routing of network tunnel paths for local restoration in a packet network |
CN1798095A (zh) * | 2004-12-24 | 2006-07-05 | 华为技术有限公司 | 带指定服务路径的目标节点集的联通路由搜索方法 |
CN101001102A (zh) * | 2007-01-10 | 2007-07-18 | 北京航空航天大学 | 提高天基信息网络服务质量的路由装置及方法 |
CN101459468A (zh) * | 2007-12-10 | 2009-06-17 | 华为技术有限公司 | 光层波长端到端调度方法和装置 |
CN101888572A (zh) * | 2009-05-11 | 2010-11-17 | 中兴通讯股份有限公司 | 一种wson光传送网可替代路由实现方法和*** |
CN101621721A (zh) * | 2009-08-06 | 2010-01-06 | 中兴通讯股份有限公司 | K优路径的计算方法及装置 |
CN101788999A (zh) * | 2009-12-30 | 2010-07-28 | 安徽大学 | 一种网络图中最短路径的二分查找追踪方法 |
CN103051533A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 一种带保护业务的路由计算方法及装置 |
US20130315580A1 (en) * | 2012-02-13 | 2013-11-28 | Ciena Corporation | Software defined networking photonic routing systems and methods |
CN103248571A (zh) * | 2013-05-16 | 2013-08-14 | 湖北邮电规划设计有限公司 | 一种最优第二路由的计算方法 |
CN104468356A (zh) * | 2014-12-05 | 2015-03-25 | 苏州沃斯麦机电科技有限公司 | 一种多目的节点的消息转发方法 |
Non-Patent Citations (4)
Title |
---|
周鹏等: "分段路径寻优算法研究及实现", 《计算机应用研究》 * |
林小玲等: "带限制条件的最短路径算法与实现", 《福州大学学报(自然科学版)》 * |
钱进等: "一种多约束最优路径宽度优先松弛算法", 《计算机应用研究》 * |
黄书力等: "经过指定的中间节点集的最短路径算法", 《计算机工程与应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045578A1 (zh) * | 2015-09-16 | 2017-03-23 | 烽火通信科技股份有限公司 | 一种带约束条件的拓扑图最优路径算法 |
CN109412954A (zh) * | 2017-08-18 | 2019-03-01 | 中国电信股份有限公司 | 基于无序节点约束的路由确定方法、装置以及存储介质 |
CN108680163A (zh) * | 2018-04-25 | 2018-10-19 | 武汉理工大学 | 一种基于拓扑地图的无人艇路径搜索***及方法 |
CN109195192A (zh) * | 2018-08-16 | 2019-01-11 | 全球能源互联网研究院有限公司 | 无线传感网的能量均衡调度方法、装置、***及存储介质 |
CN109238296A (zh) * | 2018-08-16 | 2019-01-18 | 佛山科学技术学院 | 一种高精度室内导航方法及装置 |
CN109195192B (zh) * | 2018-08-16 | 2022-04-01 | 全球能源互联网研究院有限公司 | 无线传感网的能量均衡调度方法、装置、***及存储介质 |
CN109361604A (zh) * | 2018-12-18 | 2019-02-19 | 北京格林威尔科技发展有限公司 | Ipran或ptn中必经节点和链路的最短业务路径确定方法和装置 |
CN111865627A (zh) * | 2019-04-25 | 2020-10-30 | ***通信集团河北有限公司 | 传输组网评估方法、装置、计算设备及计算机存储介质 |
CN111865627B (zh) * | 2019-04-25 | 2023-07-25 | ***通信集团河北有限公司 | 传输组网评估方法、装置、计算设备及计算机存储介质 |
CN112511230A (zh) * | 2020-11-20 | 2021-03-16 | 国网浙江省电力有限公司宁波供电公司 | 一种最优光纤路径的选择方法和装置 |
CN112511230B (zh) * | 2020-11-20 | 2022-07-12 | 国网浙江省电力有限公司宁波供电公司 | 一种最优光纤路径的选择方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
MY194954A (en) | 2022-12-28 |
PH12018500275A1 (en) | 2018-08-13 |
CN105141524B (zh) | 2018-06-01 |
WO2017045578A1 (zh) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105141524A (zh) | 一种带约束条件的拓扑图最优路径算法 | |
Rouskas et al. | Multicast routing with end-to-end delay and delay variation constraints | |
CN111770019A (zh) | 基于Dijkstra算法的Q-learning光片上网络自适应路由规划方法 | |
CN108199955B (zh) | 一种路由建立方法和装置 | |
WO2014003321A1 (ko) | 최단경로를 이용한 출발점 기반의 통행 배정방법 | |
CN100428736C (zh) | 一次路由计算实现层次路由的拓扑方法 | |
CN105721192A (zh) | 实现容量规划的方法和装置 | |
CN102752205B (zh) | 一种路由迭代的方法和装置 | |
CN103532861B (zh) | 基于生成树的域内动态多路径生成方法 | |
CN105407049B (zh) | 基于时间聚合图的延迟容忍网络最大流路由方法 | |
US9166906B2 (en) | Routing method in asymmetric networks | |
CN105634953A (zh) | 一种基于可见光通信的混合数据中心组网与路由方法 | |
CN111800339B (zh) | 混合sdn场景下带有路径数目约束的路由优化方法 | |
CN104202247B (zh) | 基于非线性退火的软件定义网络多约束路由方法 | |
CN101986625B (zh) | 一种路径计算方法及装置 | |
US8649295B2 (en) | Course searching method and node device | |
CN106301643A (zh) | 一种用于配置时钟跟踪的方法及控制设备 | |
CN106453084A (zh) | 一种基于拥塞系数的混合数据中心网络流调度方法 | |
CN108259570A (zh) | 一种分布式消息的传送网络平台、方法和*** | |
US20080117892A1 (en) | Method for Iterative Routing with the Aid of a Path-Dependent Routing Metric | |
CN100518382C (zh) | 自动交换光网络中多约束条件下最短路径查找方法及装置 | |
CN102262687B (zh) | 一种线束网络中的路径查找方法和线长计算方法 | |
US8040893B2 (en) | Method for fast source routed connection setup | |
CN102325039A (zh) | 一种面向电力控制业务的ason网络优化设计方法 | |
JP5595342B2 (ja) | 複数経路探索方法及び装置 |
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 |