[发明专利]用于验证有向无环图的环的方法及装置、电子设备、存储介质在审
申请号: | 202110963189.4 | 申请日: | 2021-08-20 |
公开(公告)号: | CN113672369A | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 王培梁 | 申请(专利权)人: | 北京明略软件系统有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F16/901;G06F16/903 |
代理公司: | 北京康盛知识产权代理有限公司 11331 | 代理人: | 陶俊洁 |
地址: | 100000 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 验证 无环图 方法 装置 电子设备 存储 介质 | ||
本申请涉及有向无环图技术领域,公开一种用于验证有向无环图的环的方法,通过获取有向无环图中未入栈的多个节点,从中选取一个节点为起始节点,并对起始节点对应的多条路径依次进行遍历,对待遍历路径执行第一预设操作,即从待遍历路径中的第一个待遍历节点开始依次对待遍历路径中的节点执行第二预设操作,在各节点均执行完第二预设操作且未确定出有向无环图存在闭环的情况下,将待遍历路径中的待遍历节点均出栈;在各路径均执行完第一预设操作且未确定出有向无环图存在闭环的情况下,确定有向无环图不存在闭环。这样,能够提高判断有向无环图是否存在闭环的效率。本申请还公开一种用于验证有向无环图的环的装置、电子设备、存储介质。
技术领域
本申请涉及有向无环图技术领域,例如涉及一种用于验证有向无环图的环的方法及装置、电子设备、存储介质。
背景技术
有向无环图指的是一个无回路的有向图,其被越来越多的运用于工作中,例如:在调度系统的任务可视化界面,需要用户在任务可视化界面连线作为两个任务之间的依赖关系,这些任务之间即构成有向无环图。在添加依赖关系时,需要先判断该连线是否与已存在的依赖关系形成闭环,如果存在闭环,就会使调度系统陷入死循环,任务不能正常执行。因此,判断有向无环图是否存在闭环至关重要。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
现有技术中通常采用邻接矩阵的方式来判断有向无环图是否有环,这种判断有向无环图是否存在闭环的方法的效率较低。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于验证有向无环图的环的方法及装置、电子设备、存储介质,以提高判断有向无环图是否存在闭环的效率。
在一些实施例中,用于验证有向无环图的环的方法,包括:获取有向无环图中的多个节点,各所述节点的入栈状态均为未入栈;从各所述节点中选取一个节点为起始节点,并对所述起始节点进行入栈操作;获取所述起始节点对应的多条路径;所述路径中的节点包括起始节点和待遍历节点,所述路径中各节点通过有向边顺序连接;所述待遍历节点为起始节点外的其他节点;从多条所述路径中依次选取一条路径确定为待遍历路径,对所述待遍历路径执行第一预设操作;所述第一预设操作为确定所述待遍历路径中的第一个待遍历节点,并从所述第一个待遍历节点开始根据所述待遍历路径的有向边依次对所述待遍历路径中的节点执行第二预设操作,在所述待遍历路径中的节点均执行完第二预设操作且未确定出所述有向无环图存在闭环的情况下,将所述待遍历路径中的待遍历节点均出栈;所述第二预设操作为判断节点的入栈状态,在入栈状态为未入栈的情况下对节点进行入栈操作,在入栈状态为已入栈的情况下确定所述有向无环图存在闭环;在各所述路径均执行完第一预设操作且未确定出所述有向无环图存在闭环的情况下,则确定所述有向无环图不存在闭环。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明略软件系统有限公司,未经北京明略软件系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110963189.4/2.html,转载请声明来源钻瓜专利网。