基于无序节点约束的路由确定方法、装置以及存储介质与流程

文档序号:17003339发布日期:2019-03-02 01:54阅读:232来源:国知局
基于无序节点约束的路由确定方法、装置以及存储介质与流程

本发明涉及网络通信技术领域,尤其涉及一种基于无序节点约束的路由确定方法、装置以及存储介质。



背景技术:

路由算法的目的是找到一条从源节点到目的节点的满足约束的路径,目前已提出多种经典路由算法,现有的路由算法主要以最短路径、最小费用、最小时延等相关代价值为约束,较少涉及节点的约束。在光传送网领域中,考虑到单点/多点故障以及必经节点的需求,经常会在节点约束的前提下进行路由计算,但现有的经典路由算法往往不再适用。目前,在非通信学科分支虽然有关于节点约束路由算法的研究,但算法过于复杂,且均未考虑通信网络领域对路由的无环路、无自环等要求。因此,需要一种在具有节点约束的情况下确定路由的方法。



技术实现要素:

有鉴于此,本发明要解决的一个技术问题是提供一种基于无序节点约束的路由确定方法、装置以及存储介质。

根据本发明的一个方面,提供一种基于无序节点约束的路由确定方法,包括:基于网络节点以及网络节点之间的链路建立第一邻接矩阵;根据节点约束条件确定所述网络节点中的排除节点和必经节点;将第一邻接矩阵中的所述排除节点以及所述排除节点相关联的链路去除;对经过去除处理的所述第一邻接矩阵进行重构,获得第二邻接矩阵;在所述第二邻接矩阵中确定位于源节点和目的节点之间、并经过所述必经节点的最短路径。

可选地,所述在所述第二邻接矩阵中确定位于源节点和目的节点之间、并经过所述必经节点的最短路径包括:获取必经节点集合,对所述必经节点集合中的所有必经节点进行全排列组合,获得必经节点的全排列集合;对所述全排列集合中的必经节点排列进行遍历,根据所述必经节点排列对位于源节点和目的节点之间、并经过所有必经节点的路径进行分段,确定与每个分段路径所对应的分段最短路径;根据所述分段最短路径确定位于源节点和目的节点之间、并经过所有必经节点的最短路径。

可选地,所述对所述全排列集合中的必经节点排列进行遍历、根据所述必经节点排列对位于源节点和目的节点之间、并经过所有必经节点的路径进行分段、确定与每个分段路径对应的分段最短路径包括:获取所述全排列集合中的所述必经节点排列为<a1,a2,…,an-1,an>,其中,a1,a2,…,an-1,an为必经节点;根据所述必经节点排列中的必经节点的排列顺序生成n+1个节点对,确定每个节点对所包含的两个节点之间的最短路径;其中,所述n+1个节点对包括:由相邻的两个必经节点组成的n-1个节点对、由第一个必经节点与所述源节点组成的节点对、由最后一个必经节点与所述目的节点组成的节点对。

可选地,所述确定每个节点对所包含的两个节点之间的最短路径包括:获取所述n+1个节点对中的一个节点所对所包含的必经节点,从所述第二邻接矩阵中去除其余必经节点以及与所述其余必经节点相关联的链路;对经过了去除处理的所述第二邻接矩阵进行重构,获得第三邻接矩阵;在所述第三邻接矩阵中确定此节点对所包含的两个节点之间的最短路径。

可选地,如果能够确定所述节点对所包含的两个节点之间的最短路径,则将此最短路径作为与所述节点对相对应的分段最短路径并存储。如果不能确定所述节点对所包含的两个节点之间的最短路径,则停止确定与其余节点对所对应的最短路径,并且,在进行所述遍历时,如果确定根据一个必经节点排列所生成的n+1个节点对中包含有此节点对,则停止对此必经节点排列的所有处理,并进行对下一个必经节点排列的遍历。

可选地,在所述遍历结束后,基于分段最短路径拼接成位于源节点和目的节点之间、并经过所有必经节点的最短路径。

根据本发明的另一发明,提供一种基于无序节点约束的路由确定装置,包括:拓扑建立模块,用于基于网络节点以及网络节点之间的链路建立第一邻接矩阵;约束确定模块,用于根据节点约束条件确定所述网络节点中的排除节点和必经节点;排除节点处理模块,用于将第一邻接矩阵中的所述排除节点以及所述排除节点相关联的链路去除;拓扑重构模块,用于对经过去除处理的所述第一邻接矩阵进行重构,获得第二邻接矩阵;最短路径确定模块,用于在所述第二邻接矩阵中确定位于源节点和目的节点之间、并经过所述必经节点的最短路径。

可选地,所述最短路径确定模块,包括:节点排列单元,用于获取必经节点集合,对所述必经节点集合中的所有必经节点进行全排列组合,获得必经节点的全排列集合;路径分段单元,用于对所述全排列集合中的必经节点排列进行遍历,根据所述必经节点排列对位于源节点和目的节点之间、并经过所有必经节点的路径进行分段;路径计算单元,用于确定与每个分段路径所对应的分段最短路径,根据所述分段最短路径确定位于源节点和目的节点之间、并经过所有必经节点的最短路径。

可选地,所述路径分段单元,用于获取所述全排列集合中的所述必经节点排列为<a1,a2,…,an-1,an>,其中,a1,a2,…,an-1,an为必经节点;根据所述必经节点排列中的必经节点的排列顺序生成n+1个节点对;所述路径计算单元,用于确定每个节点对所包含的两个节点之间的最短路径;其中,所述n+1个节点对包括:由相邻的两个必经节点组成的n-1个节点对、由第一个必经节点与所述源节点组成的节点对、由最后一个必经节点与所述目的节点组成的节点对。

可选地,所述路径计算单元,用于获取所述n+1个节点对中的一个节点所对所包含的必经节点,从所述第二邻接矩阵中去除其余必经节点以及与所述其余必经节点相关联的链路;对经过了去除处理的所述第二邻接矩阵进行重构,获得第三邻接矩阵;在所述第三邻接矩阵中确定此节点对所包含的两个节点之间的最短路径。

可选地,所述路径计算单元,用于如果能够确定所述节点对所包含的两个节点之间的最短路径,则将此最短路径作为与所述节点对相对应的分段最短路径并存储。如果不能确定所述节点对所包含的两个节点之间的最短路径,则停止确定与其余节点对所对应的最短路径;所述路径分段单元,用于在进行所述遍历时,如果确定根据一个必经节点排列所生成的n+1个节点对中包含有此节点对,则停止对此必经节点排列的所有处理,并进行对下一个必经节点排列的遍历。

可选地,所述路径计算单元,用于在所述遍历结束后,基于分段最短路径拼接成位于源节点和目的节点之间、并经过所有必经节点的最短路径。

根据本发明的又一方面,提供一种基于无序节点约束的路由确定装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的基于无序节点约束的路由确定方法。

根据本发明的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上所述的基于无序节点约束的路由确定方法。

本发明的基于无序节点约束的路由确定方法、装置以及存储介质,上述实施例中提供的基于无序节点约束的路由确定方法、装置以及存储介质,将邻接矩阵中的排除节点以及排除节点相关联的链路去除,重构后获得新的邻接矩阵,在新的邻接矩阵中确定位于源节点和目的节点之间、并经过必经节点的最短路径;在对排除节点作取出处理后,采用分治思想规避局部最优问题,确保符合条件的最短路径存在的前提下一定能收敛至全局最优,可以在搜索最短路径的过程中利用已有信息不断缩小搜索空间,降低路由计算开销,确保能收敛至全局最优,对于大规模网络复杂度低。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明的基于无序节点约束的路由确定方法的一个实施例的流程示意图;

图2为根据本发明的基于无序节点约束的路由确定方法的另一个实施例的流程示意图;

图3为根据本发明的基于无序节点约束的路由确定方法的一个实施例中对必经节点处理的算法流程示意图;

图4a至4i为根据本发明的基于无序节点约束的路由确定方法的一个实施例的分段拼接路由的示意图;

图5为根据本发明的基于无序节点约束的路由确定装置的一个实施例的模块示意图;

图6为根据本发明的基于无序节点约束的路由确定装置的一个实施例中的最短路径确定模块的模块示意图;

图7为根据本发明的基于无序节点约束的路由确定装置的另一个实施例的模块示意图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为根据本发明的基于无序节点约束的路由确定方法的一个实施例的流程示意图,如图1所示:

步骤101,基于网络节点以及网络节点之间的链路建立第一邻接矩阵。

步骤102,根据节点约束条件确定网络节点中的排除节点和必经节点。节点约束可以分为排除节点和必经节点两种方式,约束节点可能为单一节点,也可能是多个节点。

步骤103,将第一邻接矩阵中的排除节点以及排除节点相关联的链路去除。

步骤104,对经过去除处理的第一邻接矩阵进行重构,获得第二邻接矩阵。

步骤105,在第二邻接矩阵中确定位于源节点和目的节点之间、并经过必经节点的最短路径。

本发明中的无序节点约束的“无序”是指在指定节点时并不约束节点的先后顺序。可以采用多种方法获取最短路径。例如,获取必经节点集合,对必经节点集合中的所有必经节点进行全排列组合,获得必经节点的全排列集合。对全排列集合中的必经节点排列进行遍历,根据必经节点排列对位于源节点和目的节点之间、并经过所有必经节点的路径进行分段,确定与每个分段路径所对应的分段最短路径。根据分段最短路径确定位于源节点和目的节点之间、并经过所有必经节点的最短路径。

上述实施例中的基于无序节点约束的路由确定方法,当基于节点约束条件确定必须排除/经过一个或多个节点时,针对不同节点约束条件采用不同处理分支,对拓扑图进行重构和分解,采用分治思想减少路由问题的搜索空间,在满足节点约束条件的基础上,有效选出符合要求的无环最短路径。

图2为根据本发明的基于无序节点约束的路由确定方法的另一个实施例的流程示意图。网络节点的拓扑图为g=(v,e),其中v表示节点集合,e表示链路集合。源节点记为s,宿节点(目的节点)记为d。如图2所示:

步骤201,根据拓扑图g构造邻接矩阵w。

步骤202,判断是否有排除节点的约束,如果有,进入步骤203,如果没有,进入步骤204。

步骤203,如果约束条件中涉及排除节点,则对邻接矩阵w进行剪枝处理,去除所有的排除节点以及和排除节点相关联的链路,然后重构得到邻接矩阵w1。

步骤204,判断是否有必经节点约束,如果有,则进入步骤205,如果没有,则进入步骤206。

步骤205,如果约束条件中涉及必经节点,则执行必经节点处理算法。

步骤206,利用最短路径算法求解s和d之间的最短路径p。最短路径算法包括:dijkstra算法、floyd算法等。

步骤207,判断是否存在符合要求的路径,如果是,则进入步骤208。

步骤208,如果最短路径p存在,则返回结果,否则不存在符合约束要求的路由。

在一个实施例中,必经节点处理算法可以有多种。例如,获取全排列集合中的必经节点排列为<a1,a2,…,an-1,an>,a1,a2,…,an-1,an为必经节点。根据必经节点排列中的必经节点的排列顺序生成n+1个节点对,确定每个节点对所包含的两个节点之间的最短路径。n+1个节点对包括:由相邻的两个必经节点组成的n-1个节点对、由第一个必经节点与源节点组成的节点对、由最后一个必经节点与目的节点组成的节点对。

获取n+1个节点对中的一个节点所对所包含的节点,从第二邻接矩阵中去除其余节点以及与其余节点相关联的链路。对经过了去除处理的第二邻接矩阵进行重构,获得第三邻接矩阵。在第三邻接矩阵中确定此节点对所包含的两个节点之间的最短路径。

如果能够确定节点对所包含的两个节点之间的最短路径,则将此最短路径作为与节点对相对应的分段最短路径并存储。如果不能确定节点对所包含的两个节点之间的最短路径,则停止确定与其余节点对所对应的最短路径。在进行遍历时,如果确定根据一个必经节点排列所生成的n+1个节点对中包含有此节点对,则停止对此必经节点排列进行处理,并进行对下一个必经节点排列的遍历。在遍历结束后,基于分段最短路径拼接成位于源节点和目的节点之间、并经过所有必经节点的最短路径。

图3为根据本发明的基于无序节点约束的路由确定方法的一个实施例中对必经节点处理的算法流程示意图。设必经节点共有n个,记必经节点集合为x。必经节点集合x与源宿节点s、d共同构成新集合x1。如图3所示:

步骤301,构造邻接矩阵w,必经节点集合x,源宿节点对<s,d>。

步骤302,对必经节点集合x中的所有节点进行全排列组合,得到排列集合y。

步骤303,对集合y中的排列进行遍历,判断是否完成对集合y中的排列的遍历,如果是,则进入步骤306,如果否,进入步骤304。

步骤304,从集合y中取出一个未遍历过的排列。

步骤305,根据取出的必经节点排列,进行路径分段;

步骤306,不存在符合约束的最短路径。

步骤307,判断是否完成所有分段的路径计算,如果是,进入步骤315,如果否,进入步骤308。

步骤308,从上述所有分段中取出一个未计算过的分段。

步骤309,对邻接矩阵w进行剪枝处理,剔除分段端点以外的必经节点和源宿节点,重构邻接矩阵。

步骤310,执行最短路径算法。

步骤311、判断该段最短路径是否存在,如果是,则进入步骤314,如果否,则进入步骤312。

步骤312,按顺序记录已经遍历过的节点对,将记录结果表示为ri。

步骤313,剔除排列集合y中所有包含ri的排列结果,更新集合y。

步骤314,记录分段计算结果。

步骤315,拼接成最短路径p。

在一个实施例中,对集合y中的排列进行遍历的处理流程为:对于集合y中的任意第i种排列,排列结果为ti=<a1,a2,…,an-1,an>。按顺序计算节点对<s,a1>,<a1,a2>,…,<an-1,an>,<an,d>之间的最短路径。

在计算过程中,对于任意节点对,需要先对拓扑图进行剪枝处理,记这对节点构成的集合为z,则进行剪枝处理后的节点集合为vnew={v|v∈v-x1+z},在剔除节点的过程中,同时也去掉与之相关联的链路,构成新的拓扑图,然后再利用最短路径算法计算该节点对之间的路径,并记录。

在上述对集合y中的排列进行遍历的处理流程中,对于存在最短路径的节点对,记录分段计算结果。如里出现找不到最短路径的节点对,则终止遍历,并按顺序记录已经遍历过的节点对,将记录结果表示为ri。

剔除排列集合y中所有包含ri的排列结果,跳转到上述对集合y中的排列进行遍历的处理流程继续进行遍历。如果遍历过程结束后,得到了所有分段计算的结果,则将其拼接成最短路径p,作为输出结果。

图4a至4i为根据本发明的基于无序节点约束的路由确定方法的一个实施例的分段拼接路由的示意图。如图4a所示,计算从a到g的约束路由。确定排除/必经组合约束为:排除节点为c、必经节点为b、e、f,必经节点b、e、f三点无序。

如图4b所示,对拓扑图进行剪枝处理,将c点去掉,同时去掉与c相连的所有边,处理结果如图4c所示。必经节点集合x为{b,e,f},确定必经节点的全排列集合y={feb,fbe,bef,bfe,ebf,efb},y集合即构成搜索空间,最终最短路径的必经节点顺序必定在此集合内。

对集合y进行遍历:计算feb的情况,路由计算的拆分结果为:a-f,f-e,e-b,b-g;进行逐段计算。计算a-f:计算时先排除ebg(对于此排序,不允许经过的点),得到非连通图,如图4d所示,路由不可达。因为不可能先经f点,所以剔除不可能的排序“f*”,“f*”表示所有f开头的排列。

排列集合y更新为y={bef,bfe,ebf,efb}。计算bef的情况,路由计算的拆分结果为:a-b,b-e,e-f,f-g;进行逐段计算,如存在不可达,继续更新排列集合y,分段路由结果:{a,b},{b,e},{e,f},(f,g}。图4e为剔除efg,计算a-b的最短路由;图4f为剔除afg,计算b-e的最短路由;图4g为剔除abg,计算e-f的最短路由;图4h为剔除abe,计算f-g的最短路由。拼接得到符合条件的约束路由:a-b-e-f-g,如图4i所示。

上述实施例中提供的基于无序节点约束的路由确定方法,可以处理包括排除节点和必经节点的组合约束问题,支持无序必经节点的约束,不需要预先指定必经节点的顺序,采用分治思想大幅减少路由问题的搜索空间,采用先剪枝或动态剪枝的方法处理所有不可能经过的节点,避免无效计算,降低路由计算开销,确保能收敛至全局最优,对于大规模网络复杂度低。

在一个实施例中,如图5所示,本发明提供一种基于无序节点约束的路由确定装置50,包括:拓扑建立模块51、约束确定模块52、排除节点处理模块53、拓扑重构模块54和最短路径确定模块55。

拓扑建立模块51基于网络节点以及网络节点之间的链路建立第一邻接矩阵。约束确定模块52根据节点约束条件确定网络节点中的排除节点和必经节点。排除节点处理模块53将第一邻接矩阵中的排除节点以及排除节点相关联的链路去除。拓扑重构模块54对经过去除处理的第一邻接矩阵进行重构,获得第二邻接矩阵。最短路径确定模块55在第二邻接矩阵中确定位于源节点和目的节点之间、并经过必经节点的最短路径。

在一个实施例中,如图6所示,最短路径确定模块55包括:节点排列单元551、路径分段单元552和路径计算单元553。节点排列单元551获取必经节点集合,对必经节点集合中的所有必经节点进行全排列组合,获得必经节点的全排列集合。

路径分段单元552对全排列集合中的必经节点排列进行遍历,根据必经节点排列对位于源节点和目的节点之间、并经过所有必经节点的路径进行分段。路径计算单元553确定与每个分段路径所对应的分段最短路径,根据分段最短路径确定位于源节点和目的节点之间、并经过所有必经节点的最短路径。

路径分段单元552获取全排列集合中的必经节点排列为<a1,a2,…,an-1,an>,其中,a1,a2,…,an-1,an为必经节点。路径分段单元552根据必经节点排列中的必经节点的排列顺序生成n+1个节点对。路径计算单元553确定每个节点对所包含的两个节点之间的最短路径,其中,n+1个节点对包括:由相邻的两个必经节点组成的n-1个节点对、由第一个必经节点与源节点组成的节点对、由最后一个必经节点与目的节点组成的节点对。

路径计算单元553获取n+1个节点对中的一个节点所对所包含的必经节点,从第二邻接矩阵中去除其余必经节点以及与其余必经节点相关联的链路。路径计算单元553对经过了去除处理的第二邻接矩阵进行重构,获得第三邻接矩阵,在第三邻接矩阵中确定此节点对所包含的两个节点之间的最短路径。

如果能够确定节点对所包含的两个节点之间的最短路径,则路径计算单元553将此最短路径作为与节点对相对应的分段最短路径并存储。如果不能确定节点对所包含的两个节点之间的最短路径,则路径计算单元553停止确定与其余节点对所对应的最短路径。路径分段单元552在进行遍历时,如果确定根据一个必经节点排列所生成的n+1个节点对中包含有此节点对,则停止对此必经节点排列的所有处理,并进行对下一个必经节点排列的遍历。路径计算单元553在遍历结束后,基于分段最短路径拼接成位于源节点和目的节点之间、并经过所有必经节点的最短路径。

图7为根据本发明的基于无序节点约束的路由确定装置的另一个实施例的模块示意图。如图7所示,该装置可包括存储器71、处理器72、通信接口73以及总线74。存储器71用于存储指令,处理器72耦合到存储器71,处理器72被配置为基于存储器71存储的指令执行实现上述的基于无序节点约束的路由确定方法。

存储器71可以为高速ram存储器、非易失性存储器(non-volatilememory)等,存储器71也可以是存储器阵列。存储器71还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器72可以为中央处理器cpu,或专用集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明的基于无序节点约束的路由确定方法的一个或多个集成电路。

在一个实施例中,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的基于无序节点约束的路由确定方法。

上述实施例中提供的基于无序节点约束的路由确定方法、装置以及存储介质,将邻接矩阵中的排除节点以及排除节点相关联的链路去除,重构后获得新的邻接矩阵,在新的邻接矩阵中确定位于源节点和目的节点之间、并经过必经节点的最短路径,在对排除节点作取出处理后,采用分治思想规避局部最优问题,确保符合条件的最短路径存在的前提下一定能收敛至全局最优,可以在搜索最短路径的过程中利用已有信息不断缩小搜索空间,降低路由计算开销。

上述实施例中提供的基于无序节点约束的路由确定方法、装置以及存储介质,可以处理包括排除节点和必经节点的组合约束问题,支持无序必经节点的约束,不需要预先指定必经节点的顺序,采用分治思想大幅减少路由问题的搜索空间,采用先剪枝或动态剪枝的方法处理所有不可能经过的节点,避免无效计算,降低路由计算开销,不存在陷入局部最优的问题,确保能收敛至全局最优,找到符合条件的路径,且对于大规模网络复杂度低。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1