[发明专利]一种有向图中的环路检测方法、装置、设备和存储介质有效
申请号: | 201911328366.0 | 申请日: | 2019-12-20 |
公开(公告)号: | CN110968429B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 卢文祥;李玉明;王云龙;周力;蔡歌;汪洋;袁鹏程;李刚 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/901 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 中的 环路 检测 方法 装置 设备 存储 介质 | ||
1.一种有向图中的环路检测方法,其特征在于,包括:
分布式集群中的服务中心获取待检测的有向图;
所述服务中心对所述有向图的至少一个边进行切割,得到多个子图;
所述服务中心将多个子图分发至分布式集群中的多个计算节点,以供每个计算节点检测接收到的子图中的环路和链路;
所述服务中心从多个计算节点获取多个子图中的环路和链路,并根据子图之间的被切边的信息,对获取的环路和/或链路进行拼接,得到所述有向图中的环路;
其中,每个被切边的两个切割点顺序构成切边序列,环路的各顶点顺序构成环序列,链路的各顶点顺序构成链序列;
对于第一切边序列,所述服务中心根据子图之间的被切边的信息,对获取的环路和/或链路进行拼接,得到所述有向图中的环路,包括:
所述服务中心从获取的环序列和链序列中,查找所述第一切边序列的邻接序列;
所述服务中心将所述邻接序列与所述第一切边序列拼接得到新的第一切边序列;
如果新的第一切边序列中不存在重复顶点,所述服务中心判断新的第一切边序列的首尾是否存在有向边;
如果存在,所述服务中心将新的第一切边序列检测为所述有向图中的环路;
如果不存在,所述服务中心从获取的环序列和链序列中剔除所述邻接序列,返回执行邻接序列的查找操作,直到新的第一切边序列包括所述有向图中的全部顶点,或者未找到邻接序列。
2.根据权利要求1所述的方法,其特征在于,所述服务中心从获取的环序列和链序列中,查找所述第一切边序列的邻接序列,包括:
在首次查找所述第一切边序列的邻接序列时,所述服务中心从获取的环序列和链序列中,按照前向序列拼接方向或者后向序列拼接方向查找所述第一切边序列的邻接序列;
在非首次查找所述第一切边序列的邻接序列时,所述服务中心获取前次序列拼接方向,并按照前次序列拼接方向的反方向,查找所述第一切边序列的邻接序列。
3.根据权利要求1所述的方法,其特征在于,所述服务中心对所述有向图的至少一个边进行切割,得到多个子图,包括:
所述服务中心过滤所述有向图中入度或出度为0的顶点;
所述服务中心对过滤后的有向图的至少一个边进行切割,得到多个子图,任两个子图之间的顶点数量之差在预设范围内。
4.一种有向图中的环路检测方法,其特征在于,包括:
分布式集群中的计算节点从服务中心获取至少一个子图,所述至少一个子图是服务中心对有向图的至少一个边进行切割得到的;
所述计算节点遍历至少一个所述子图中的各顶点,检测每个子图中的环路和链路;
所述计算节点将检测出的环路和链路上传至所述服务中心,以供所述服务中心获取到多个计算节点上传的环路和链路之后,根据子图之间的被切边的信息,对获取的环路和/或链路进行拼接,得到所述有向图中的环路;
其中,每个被切边的两个切割点顺序构成切边序列,环路的各顶点顺序构成环序列,链路的各顶点顺序构成链序列;
对于第一切边序列,根据子图之间的被切边的信息,对获取的环路和/或链路进行拼接,得到所述有向图中的环路,包括:
从获取的环序列和链序列中,查找所述第一切边序列的邻接序列;
将所述邻接序列与所述第一切边序列拼接得到新的第一切边序列;
如果新的第一切边序列中不存在重复顶点,判断新的第一切边序列的首尾是否存在有向边;
如果存在,将新的第一切边序列检测为所述有向图中的环路;
如果不存在,所述服务中心从获取的环序列和链序列中剔除所述邻接序列,返回执行邻接序列的查找操作,直到新的第一切边序列包括所述有向图中的全部顶点,或者未找到邻接序列。
5.根据权利要求4所述的方法,其特征在于,所述计算节点遍历至少一个所述子图中的各顶点,检测每个子图中的环路和链路,包括:
所述计算节点按照每个子图中顶点的连接方向,依次访问各顶点;
如果当前访问顶点的后继顶点已被访问过,将本次访问过的顶点及顶点间的有向边检测为环路;
如果当前访问顶点的出度为0,将本次访问过的顶点及顶点间的有向边检测为链路。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911328366.0/1.html,转载请声明来源钻瓜专利网。