[发明专利]一种考虑多类型约束的k最短路径求解方法有效
申请号: | 201710535060.7 | 申请日: | 2017-07-04 |
公开(公告)号: | CN107196858B | 公开(公告)日: | 2020-06-23 |
发明(设计)人: | 谢国;杜许龙;张永艳;钱富才;胡绍林;焦尚彬 | 申请(专利权)人: | 西安理工大学 |
主分类号: | H04L12/751 | 分类号: | H04L12/751;H04L12/721 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 杨洲 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 考虑 类型 约束 路径 求解 方法 | ||
1.一种考虑多类型约束的k最短路径求解方法,其特征在于,包括以下步骤:
步骤1、根据节点拓扑图构建邻接矩阵,过程如下:
步骤(1.1)、根据给定的节点数目N,设置大小为N×N全0矩阵AM;
步骤(1.2)、设置步骤(1.1)中AM(i,j)=wij,式中wij为节点拓扑图中的第i个节点至第j个节点的连接权值,1≤i≤N,1≤j≤N,假如第i个节点至第j个节点没有直接相连的路径,则设置AM(i,j)=∞,其中∞表示无穷大;设置对角线元素AM(i,i)=0,1≤i≤N,1≤j≤N;进而得到邻接矩阵AM;
步骤2、结合必经节点、必经路径、禁止节点、禁止路径需求,更新邻接矩阵,过程如下:
步骤(2.1)、在禁止节点约束下,最短路径起点与终点之间的中间节点选择过程中不能选取任何禁止的节点,因此设置与禁止节点i相连接的所有权值为无穷大,即AM(i,:)=∞,AM(:,i)=∞,AM表示邻接矩阵,对所有禁止节点执行此操作;
步骤(2.2)、在禁止路径约束下,禁止路径不能作为最短路径中间路径出现,因此设置禁止路径(i,j)的连接权值为无穷大,即AM(i,j)=∞,(i,j)表示由节点i与节点j之间的有向边,如果网络拓扑图是无向图,则设置禁止线路(i,j)与(j,i)均为无穷大,即AM(i,j)=∞,AM(j,i)=∞,其中(i,j)和(j,i)分别表示无向图中节点i与节点j之间的两条无向边,AM表示邻接矩阵,对所有禁止路径进行此操作;
步骤3、简化必经路径为虚拟节点,综合考虑必经节点,构造问题可行解集合,过程如下:
步骤(3.1)、首先针对必经路径,将其两端点退化为一个虚拟节点,并存储于虚拟节点集合Slv中,对所有的必经路径进行此操作;
步骤(3.2)、将所有必经节点集合Sn中的元素与虚拟节点集合Slv中的元素合并成一个新的集合Snlv,并对该集合中的所有元素进行全排列,得到所有可行解的集合Ssv;
根据必经节点与必经路径的要求,每条满足约束条件的可行解路径,必须顺序依次通过所有必经节点与虚拟节点,因此,根据组合数学的排列组合理论可知,对必经节点与虚拟节点进行全排列,便可得到指定起点与中点之间的所有满足约束条件的可行解;从而,将必经节点集合Sn与虚拟节点集合Slv合并为新的集合Snlv,进而对集合Snlv中的元素进行全排列,得到多约束类型条件下的最短路径问题可行解数目为并把每种可行解记录于集合Ssv中,其中Nl表示必经路径集合Sl中的元素的数目,Nc表示必经节点集合Sn中元素的数目;
步骤(3.3)、根据节点拓扑图是否有向,对可行解集Ssv进行修正;
在无向图中,两个端点均可作为必经路径的入口,假设必经路径为节点l与节点m之间的无向边,即必须通过无向边(l,m)或无向边(m,l)其中之一;将步骤(3.2)得到的可行解集合Ssv中所有的虚拟节点替换为相对应的两个无向边,并在每个可行解的首节点之前插入最短路径起始节点,尾节点之后插入最短路径终止节点;所以修正后的集合Ssv中的可行解数目变为其中Nl表示必经路径集合Sl中的元素的数目,Nc表示必经节点集合Sn中元素的数目;
在有向图中,假设必经路径为由节点l至节点m之间的有向边,必须要经过l,m这两个点,仅有一种路径,即必须通过有向边(l,m);将步骤(3.2)得到的可行解集合Ssv中所有虚拟节点替换为相对应的有向边,并在每个可行解的首节点之前插入最短路径起始节点,尾节点之后插入最短路径终止节点;修正后的集合Ssv中的可行解数目变为其中Nl表示必经路径集合Sl中的元素的数目,Nc表示必经节点集合Sn中元素的数目;
步骤(3.4)、计算修正后的可行解集Ssv中每个可行解相邻节点之间的最短路径,形成中间子路径,使用最短路径算法,搜索得到相邻节点间的最短路径;对于必经路径的两个节点,直接使用该路径替代两点间的最短路径,生成中间子路径最后按照每个可行解中节点的排列顺序,将上述中间子路径组成问题的可行解,并添加至集合Sp;
步骤4、筛选符合节点数目要求的最短路径,过程如下:
对步骤(3.4)得到集合Sp中的可行解路径进行筛选,舍弃节点数目超过约束条件的路径,并对剩余的可行解按照路径消耗大小进行升序排列,筛选出消耗最少的前k个路径,将符合要求的最短路径存储到集合Path中;
若要求最短路无环,则删除集合Path中形成环的路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710535060.7/1.html,转载请声明来源钻瓜专利网。