[发明专利]一种高效的融合负载均衡和路由节能的路由计算方法有效
申请号: | 202010841673.5 | 申请日: | 2020-08-20 |
公开(公告)号: | CN112350937B | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 耿海军;高原 | 申请(专利权)人: | 山西大学 |
主分类号: | H04L12/721 | 分类号: | H04L12/721;H04L12/753;H04L12/741 |
代理公司: | 太原晋科知识产权代理事务所(特殊普通合伙) 14110 | 代理人: | 王军 |
地址: | 030006 山*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 融合 负载 均衡 路由 节能 计算方法 | ||
1.一种高效的融合负载均衡和路由节能的路由计算方法,包括以下步骤:
步骤1:在路由计算中,使用Dijkstra算法求得从路径起点start到start可达点的距离,并存储于dis数组,路径存储于path向量容器;其中,一个网络拓扑中,源-目的节点信息转发需要依次经过的节点定义为路径,路径起点定义为start,终点为end, dis数组用于存储可达点的距离,path向量容器用于存储可达点路径;
步骤2:根据步骤1的运算结果构造一颗以路径起点start为根节点的最短路径树;
步骤3:设置v_node向量容器以存储节点组,逆序断开路径起点start到终点end最短路径的每一条边,获取该边连接的子树上的节点的增量组,将节点组置于v_node;
步骤4:设置哈希表update存储节点是否需要更新,初始化为0与1,0代表无需更新,1代表需要更新,将当前v_node内的所有节点在update表中置为1;
步骤5:设置all_path数组存储路径起点start到终点end在去边后的最短路径,顺序枚举路径起点start到终点end最短路径的每一条边,每去除一边,执行一次步骤6、7、8、9;
步骤6:设置fibonacci_max_heap为斐波那契堆, heap_itr为斐波那契堆迭代器,distance数组存储可达点的距离,new_path数组存储路径;修改update表中为1的点在distance数组中的值为极大值,该点在new_path数组中的值为空;修改update表中为0的点在distance数组中的值为dis表中该点值,将该点压入fibonacci_max_heap,该点在new_path数组的值为该点在path中的值;
步骤7:遍历v_node的最后一项,将该项中的点在update中所对应的值置为0,将v_node的最后一项删除;
步骤8:循环进行以下操作,直至fibonacci_max_heap为空:弹出堆顶的点,遍历该点的邻接边,若该点的在(distance数组的值+该边的权值)邻接点在disatnce的值,则对fibonacci_max_heap、distance、new_path中到该邻接点的值进行更新;若该邻接点在update中的值为0,则将该边删去;
步骤9:若distance数组中存储的任意起点到可达点的距离不为∞,则将new_path数组中存储的对应的存储路径添加至all_path。
2.根据权利要求1所述的一种高效的融合负载均衡和路由节能的路由计算方法,其特征在于:步骤3-步骤9所述的获得断开路径起点start到终点end最短路径的一条边后求解源点到目的点路径的方法为:
1.定义以源点为根节点的最短路径树为SPT,构建一个集合,用于记录断开SPT中源点到目的点路径的一条边后,SPT中最短路径改变的节点;
2.逆序遍历SPT中源点到目的点路径,当存在未被断开过的边时,断开该边,停止遍历;找到断开该边后,SPT中最短路径改变且不在集合中的点,将这些点作为增量置于集合末端,重复本步骤,直至SPT中源点到目的点路径均被断开过一次;
3.顺序遍历源点到目的点的最短路径,当存在未被断开过的边时,断开该边,停止遍历;
以不在集合中的点的最短路径为基础求解源点到目的节点的最短路径并保存,将集合末端的值弹出;重复本步骤,直至源点到目的点的最短路径均被断开过一次。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山西大学,未经山西大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010841673.5/1.html,转载请声明来源钻瓜专利网。