CN116561386A - 一种基于dag图实体上下位关系判别方法、装置及电子设备 - Google Patents
一种基于dag图实体上下位关系判别方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116561386A CN116561386A CN202310847702.2A CN202310847702A CN116561386A CN 116561386 A CN116561386 A CN 116561386A CN 202310847702 A CN202310847702 A CN 202310847702A CN 116561386 A CN116561386 A CN 116561386A
- Authority
- CN
- China
- Prior art keywords
- node
- attribute information
- depth attribute
- father
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013507 mapping Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 238000012850 discrimination method Methods 0.000 claims 6
- 238000012545 processing Methods 0.000 abstract description 3
- 238000003745 diagnosis Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 3
- 238000001356 surgical procedure Methods 0.000 description 3
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/20—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于DAG图实体上下位关系判别方法、装置及电子设备,涉及数据处理技术领域。所述方法包括:建立有向无环图,添加并初始化设置有向无环图中所有节点的深度属性信息;从根节点开始,更新所述当前节点的深度属性信息;分别获取有向无环图中第一节点对应的第一深度属性信息和第二节点对应的第二深度属性信息;当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果;根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。本发明能够降低对实体上下位关系进行判别的资源消耗,提升实体上下位判定的执行速度。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于DAG图实体上下位关系判别方法、装置及电子设备。
背景技术
病案首页数据是医院管理的基础,通过分析病案首页的数据,可以了解医院的诊疗技术水平。目前,病案首页数据不仅用于卫生统计分析,对DRG(Diagnosis RelatedGroups;疾病诊断相关分组)、医院等级评审、医院病种分析、医院绩效考核等也有重要作用。病案诊断和病案手术作为病案首页的重要内容,其数据质量会严重影响后续业务的准确性。现在的病案首页填报由病案员填写,其书写和临床医生做出的诊断可能会存在分歧或遗漏,导致病案首页数据填报质量下降。
在病案首页质控业务中,很重要的一部分属于诊断和手术上下位的判断。 由于诊断和手术可以描述为一个大的DAG(Directed Acyclic Graph;有向无环图),在诊断和手术的分类中,可以认为类似于一颗非常宽的多叉树,外加额外的较少的上下位连线,构成了一张巨大的DAG图,其数据特点为较少的父节点和较多的子节点。对于DAG图上的节点,如果需要对其任意两节点进行上下位的判定,通常都需要使用深度优先或广度优先算法对其进行遍历。通常情况下,如果这两个节点存在上下位关系,则有1/2的概率可以选择到上位节点进行遍历。如果两个节点不存在上下位关系,则需要对两个节点都需要进行深度或广度优先遍历后才可以得出结论,其算法时间复杂度为O(n),空间复杂度为O(log(n))。其中,上述节点上下位关系的判断算法存在大量的回溯、资源消耗和执行效率浪费的问题。
发明内容
为至少在一定程度上克服相关技术中存在的技术问题,本发明提供了一种基于DAG图实体上下位关系判别方法、装置及电子设备。
第一方面,本发明实施例提供的一种基于DAG图实体上下位关系判别方法,包括以下步骤:
建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息,所述深度属性信息为从根节点到当前节点的深度值,所述节点分为父节点和子节点;
从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息;
对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息;
当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果;
根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
进一步地,所述执行父子关系匹配算法,得到父子关系匹配结果的步骤,具体包括以下步骤:
根据所述有向无环图中的子节点和父节点构建父子关系确定模型;
当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系;
分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系;
当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系;
当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型,如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系。
进一步地,所述方法还包括以下步骤:
当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
进一步地,所述对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息的步骤,具体包括:
获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息;
如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息;否则,将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
进一步地,所述添加并初始化设置所述有向无环图中所有节点的深度属性信息的步骤之后,所述方法还包括:
对所述所有节点建立映射关系表,所述映射关系表包括节点名称,节点序号、父节点、子节点和深度属性信息。
进一步地,所述更新所述当前节点的深度属性信息的步骤之后,所述方法还包括:
删除所述父节点向所述子节点的引用信息。
第二方面,本发明实施例提供的一种基于DAG图实体上下位关系判别装置,包括:
添加设置模块,用于建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息,所述深度属性信息为从根节点到当前节点的深度值,所述节点分为父节点和子节点;
遍历更新模块,用于从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息;
深度属性信息获取模块,用于对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息;
父子关系匹配模块,用于当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果;
上下位关系确定模块,用于根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
进一步地,所述父子关系匹配模块,具体包括:
构建子模块,用于根据所述有向无环图中的子节点和父节点构建父子关系确定模型;
判断子模块,用于当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系;
所述判断子模块,还用于分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系;
所述判断子模块,还用于当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系;
遍历递归子模块,用于当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型;
所述判断子模块,还用于如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系;
所述判断子模块,还用于当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
进一步地,所述遍历更新模块,还包括:
获取子模块,用于获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息;
对比更新子模块,用于如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息;否则,将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
第三方面,本发明实施例提供的一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行上述基于DAG图实体上下位关系判别方法。
本发明的实施例提供的技术方案具备以下有益效果:
本发明实施例首先在建立的有向无环图中添加所有节点的深度属性信息,然后进行深度优先遍历并更新当前节点的深度属性信息,对于有向无环图中的第一节点和第二节点,基于第一节点的第一深度属性信息和第二节点对应的第二深度属性信息执行父子关系匹配算法,根据父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
由于该有向无环图中的父节点较少、子节点较多,通过有向无环图的特殊拓扑结构以及基于节点的深度属性信息和父子关系匹配算法,能够有效降低对实体上下位关系进行判别的资源消耗,提升实体上下位判定的执行速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本发明实施例提供的基于DAG图实体上下位关系判别方法的流程示意图。
图2是本发明实施例提供的有向无环图的拓扑结构示意图。
图3是本发明实施例提供的对有向无环图进行深度优先遍历和更新深度属性信息的拓扑结构示意图。
图4是本发明实施例提供的基于DAG图实体上下位关系判别装置的功能模块框图。
图5是本发明实施例提供的应用于图4中父子关系匹配模块的功能模块框图。
图6是本发明实施例提供的应用于图4中遍历更新模块的功能模块框图。
图7是本发明实施例提供的电子设备的结构示意图。
图中附图标记为:
添加设置模块100; 遍历更新模块200; 深度属性信息获取模块300;
父子关系匹配模块400; 上下位关系确定模块500; 获取子模块201;
对比更新子模块202; 构建子模块401; 判断子模块402;
遍历递归子模块403; 处理器600; 存储器700;
总线800。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的实施例作进一步详细描述。
实施例1
如图1所示,是本发明实施例提供的基于DAG图实体上下位关系判别方法的流程示意图。其中,所述方法可以包括以下步骤:
步骤S100:建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息。
需要说明的是,有向无环图(DAG;Directed Acyclic Graph)是一种图论数据结构,如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就是有向无环图。
本实施例中,在建立有向无环图后,对所述有向无环图中的所有节点添加相应的深度属性信息。其中,所述深度属性信息为从根节点到当前节点的深度值。所述根节点为入度为零的节点。另一方面,所述节点又分为父节点和子节点。
在对节点添加深度属性信息的同时,还初始化设置每个节点的深度属性信息。在一种实施方式中,将所述每个节点的深度属性信息设置为零。
为了方便查找所述节点的相关信息,在添加并初始化设置所述有向无环图中所有节点的深度属性信息的步骤之后,所述方法还包括:对所述所有节点建立映射关系表,所述映射关系表包括节点名称(NodeName),节点序号(NodeId)、父节点(Parents)、子节点(Childs)和深度属性信息(depth)。具体地,可以使用树或者hashmap的方式进行映射关系表的建立。
所述有向无环图的拓扑结构,如图2所示。实施时,假设存在节点组:
NodeId:0, Parents:[], Childs:[1];
NodeId:1, Parents:[0], Childs: [4];
NodeId:2, Parents[], Childs:[4, 5];
NodeId:3, Parents[], Childs: [6,7];
NodeId:4, Parents[1, 2], Childs: [7];
NodeId:5, Parents[2], Childs: [8];
NodeId:6, Parents[3], Childs: [];
NodeId:7, Parents[3, 4], Childs:[9, 10];
NodeId:8, Parents[5], Childs:[10];
NodeId:9, Parents[7], Childs:[];
NodeId:10, Parents[7,8], Childs:[]。
其中,以节点NodeId:4为例进行说明,NodeId:4表示节点序号为4的节点;Parents[1, 2]表示该节点NodeId:4的父节点为节点序号1的节点和节点序号2的节点;Childs:[7]表示该节点NodeId:4的子节点为节点序号7的节点。另外,节点NodeId:0、节点NodeId:2和节点NodeId:3为根节点,其父节点为空。其余节点的含义以此类推。
步骤S200:从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息。
实施时,首先获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息;然后,对所述当前节点的深度属性信息和当前节点对应的父节点的深度属性信息进行大小判断。
如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息。如果所述父节点的深度属性信息加一后小于或等于所述当前节点的深度属性信息,则将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
可以理解的是,以上对所述子节点的深度属性信息进行更新的步骤可以按照ChildNode.depth = max(ChildNode.depth, ParentNod.depth +1)更新节点深度属性信息。
本实施例通过利用父节点和子节点的不对称性,从高深度节点向低深度节点进行深度优先搜索。其中,在建立DAG图的时候可以使用双向链接进行建立,但基于诊断和手术的数据分布选择了反转DAG图的方向。
为了降低数据存储开销,在更新所述当前节点的深度属性信息的步骤之后,可以删除所述父节点向所述子节点的引用信息。
步骤S300:对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息。
其中,所述第一节点和第二节点为所述有向无环图中的任意两个节点,该两个节点可能是同一个节点,也可能是不同的节点。另外,获取的所述第一深度属性信息和第二深度属性信息可以用于判断所述第一节点和第二节点的相互关系。
步骤S400:当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果。
在一种实施方式中,首先根据所述有向无环图中的子节点和父节点构建父子关系确定模型。
当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系。
然后,分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系。
当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系。
当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型,如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系。
另一种实施方式中,当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
步骤S500:根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
需要说明的是,所述实体上下位关系例如可以是,诊断和手术的关系。
本实施例中,可以将以上步骤S300-S500的实现逻辑通过如下程序语言进行表示:
主函数流程:
对于DAG图上的任意两个节点Node1和Node2,按照索引查出其在DAG图上对应的Depth信息。
如果Node1 == Node2,则返回是同一个节点,算法结束。
如果Node1.depth == Node2.depth,则可判定为 Node1,Node2不为上下位节点,算法结束。
如果Node1.depth > Node2.depth,则返回函数isParent(Node1,Node2)的返回值;
如果Node1.depth < Node2.depth,则返回函数isParent(Node2,Node1)的返回值。
父子关系匹配算法的实现流程为:
定义函数isParent(childNode, parentNode) bool;
如果childNode == parentNode,返回true;
如果childNode.depth == parentNode.depth 且childNode != parentNode,则返回false;
如果childNode.depth < parentNode.depth,则返回false;
如果childNode.depth > parentNode.depth,则遍历child.parents,对于其每个节点递归调用isParent(childNode, parentNode),如果函数值返回为true,则返回true;
其它情况,返回false。
其中,函数值返回为true,表示childNode是parentNode的子节点,该两个节点存在父子关系。函数值返回为false ,表示childNode不是parentNode的子节点,该两个节点不存在父子关系。
具体地,请参阅图3所示:
一、对于两个节点Node10 和Node0
1.取得Node10.depth= 4, Node0.depth=0,遍历Node10的所有父节点Node8,Node7;
2. Node8.depth =2 > Node0.depth,遍历Node8的父节点Node5;
3. Node5.depth = 1 > Node0.depth,遍历Node5的父节点Node2;
4. Node2.depth = 0 == Node0.depth 且Node2 != Node0,回溯节点Node7;
5. Node7.depth = 3 < Node0.depth,遍历Node7的父节点Node3,Node4;
6. Node3.depth = 0 == Node0.depth 且Node3 != Node0,回溯节点Node4;
7. Node4.depth = 2 > Node0.depth 遍历Node4的父节点Node2,Node1;
8. Node2.depth = 0 == Node0.depth 且Node2 != Node0,回溯节点Node1;
9. Node1.depth = 1 > Node0.depth,遍历Node1的父节点Node0;
10. Node0.depth == Node0.depth且Node0 == Node0,返回true;
11. Node10是Node0的子节点。
二、对于两个节点对Node6 和Node5
Node6.depth == Node5.depth, Node6 != Node5,返回Node5,Node6不是父子节点。
三、对于两个节点Node6 和Node4
Node4.depth = 2,Node6.depth = 1,遍历Node4的所有父节点Node1,Node2;
Node1.depth = 1 == Node6.depth 且Node1 != Node6,回溯节点Node2;
Node2.depth = 0 < Node5.depth 回溯;
输出Node6和Node4 不是父子节点。
通过分析,对于DAG图上的节点, 如果需要对其任意两节点进行上下位的判定通常都需要使用深度优先算法对其进行遍历。通常情况下,如果这两个节点存在上下位关系,则有1/2的概率可以选择到上位节点进行遍历,如果两个节点不存在上下位关系,则需要对两个节点都需要进行深度优先遍历后才可以得出结论,其算法时间复杂度为O(n),空间复杂度为O(log(n)) ,其中带来了大量的回溯和执行效率的浪费。
本实施例中,对于任意两个节点,可以通过一次搜索查询到其相对位置关系,从而确定相对子节点。而由于诊断手术知识构建的有向无环图中,大多数节点的父节点不超过3个,而子节点平均多达10个以上。所以,对于大多数节点,父子节点判断的操作数为abs(depth1 - depth2),而这种类似多叉树的数据结构中,最大深度往往为log(n),所以本算法的时间复杂度为O(log(n))。而对于空间复杂度,由于需要遍历父节点列表,而在诊断和手术构成的有向无环图中父节点一般较少,所以回溯需要保存的状态数更少,最差为O(log(n))(存在大量父节点的节点) ,而大多数情况下,空间需求为O(1) (单一父节点)。相比于通用的有向无环图父子节点判断算法来说,可以节约大量的时间和空间,从而能够有效降低对实体上下位关系进行判别的资源消耗,提升实体上下位判定的执行速度。
实施例2
如图4所示,本发明实施例所提供的一种基于DAG图实体上下位关系判别装置,可以包括添加设置模块100、遍历更新模块200、深度属性信息获取模块300、父子关系匹配模块400和上下位关系确定模块500。
具体地,所述添加设置模块100,用于建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息。
其中,所述深度属性信息为从根节点到当前节点的深度值,所述节点分为父节点和子节点。
所述遍历更新模块200,用于从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息。
在一种实施方式中,如图5所示,所述遍历更新模块200还包括获取子模块201和对比更新子模块202。
其中,所述获取子模块201,用于获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息。
所述对比更新子模块202,用于如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息;否则,将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
所述深度属性信息获取模块300,用于对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息。
所述父子关系匹配模块400,用于当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果。
在一种实施方式中,如图6所示,所述父子关系匹配模块400,具体包括构建子模块401、判断子模块402和遍历递归子模块403。
所述构建子模块401,用于根据所述有向无环图中的子节点和父节点构建父子关系确定模型。
所述判断子模块402,用于当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系;
所述判断子模块402,还用于分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系;
所述判断子模块402,还用于当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系。
所述遍历递归子模块403,用于当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型。
所述判断子模块402,还用于如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系;
所述判断子模块402,还用于当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
所述上下位关系确定模块500,用于根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
可以理解的是,本实施例中未详细说明的内容可以参见方法实施例中相同或相似的内容。
实施例3
如图7所示,为本发明实施例所提供的一种电子设备的结构示意图。其中,所述电子设备包括处理器600、存储器700和总线800。所述存储器700存储有所述处理器600可执行的机器可读指令,当电子设备运行时,所述处理器600与所述存储器700之间通过总线800通信,所述机器可读指令被所述处理器600执行时,可以执行如上述图所示方法实施例中的基于DAG图实体上下位关系判别方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
综上所述,本发明实施例首先在建立的有向无环图中添加所有节点的深度属性信息,然后进行深度优先遍历并更新当前节点的深度属性信息,对于有向无环图中的第一节点和第二节点,基于第一节点的第一深度属性信息和第二节点对应的第二深度属性信息执行父子关系匹配算法,根据父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
由于该有向无环图中的父节点较少、子节点较多,通过有向无环图的特殊拓扑结构以及基于节点的深度属性信息和父子关系匹配算法,能够有效降低对实体上下位关系进行判别的资源消耗,提升实体上下位判定的执行速度。
需要说明的是,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路和现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于DAG图实体上下位关系判别方法,其特征在于,所述方法包括以下步骤:
建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息,所述深度属性信息为从根节点到当前节点的深度值,所述节点分为父节点和子节点;
从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息;
对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息;
当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果;
根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
2.根据权利要求1所述的基于DAG图实体上下位关系判别方法,其特征在于,所述执行父子关系匹配算法,得到父子关系匹配结果的步骤,具体包括以下步骤:
根据所述有向无环图中的子节点和父节点构建父子关系确定模型;
当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系;
分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系;
当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系;
当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型,如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系。
3.根据权利要求1所述的基于DAG图实体上下位关系判别方法,其特征在于,所述方法还包括以下步骤:
当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
4.根据权利要求1所述的基于DAG图实体上下位关系判别方法,其特征在于,所述对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息的步骤,具体包括:
获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息;
如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息;否则,将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
5.根据权利要求1所述的基于DAG图实体上下位关系判别方法,其特征在于,所述添加并初始化设置所述有向无环图中所有节点的深度属性信息的步骤之后,所述方法还包括:
对所述所有节点建立映射关系表,所述映射关系表包括节点名称,节点序号、父节点、子节点和深度属性信息。
6.根据权利要求1所述的基于DAG图实体上下位关系判别方法,其特征在于,所述更新所述当前节点的深度属性信息的步骤之后,所述方法还包括:
删除所述父节点向所述子节点的引用信息。
7.一种基于DAG图实体上下位关系判别装置,其特征在于,所述装置包括:
添加设置模块,用于建立有向无环图,添加并初始化设置所述有向无环图中所有节点的深度属性信息,所述深度属性信息为从根节点到当前节点的深度值,所述节点分为父节点和子节点;
遍历更新模块,用于从所述根节点开始,对所述有向无环图进行深度优先遍历,更新所述当前节点的深度属性信息;
深度属性信息获取模块,用于对于所述有向无环图中的第一节点和第二节点,分别获取所述第一节点对应的第一深度属性信息和所述第二节点对应的第二深度属性信息;
父子关系匹配模块,用于当所述第一节点和第二节点不为同一个节点且所述第一深度属性信息不等于第二深度属性信息时,执行父子关系匹配算法,得到父子关系匹配结果;
上下位关系确定模块,用于根据所述父子关系匹配结果确定所述第一节点和第二节点的实体上下位关系。
8.根据权利要求7所述的基于DAG图实体上下位关系判别装置,其特征在于,所述父子关系匹配模块,具体包括:
构建子模块,用于根据所述有向无环图中的子节点和父节点构建父子关系确定模型;
判断子模块,用于当所述子节点和父节点为同一个节点时,判定所述子节点和父节点存在父子关系;
所述判断子模块,还用于分别获取所述子节点的第三深度属性信息和所述父节点的第四深度属性信息,当所述第三深度属性信息等于第四深度属性信息且所述子节点和父节点不为同一个节点时,判定所述子节点和父节点不存在父子关系;
所述判断子模块,还用于当所述第三深度属性信息小于所述第四深度属性信息时,判定所述子节点和父节点不存在父子关系;
遍历递归子模块,用于当所述第三深度属性信息大于所述第四深度属性信息时,遍历所述子节点对应的所有父节点,并递归执行所述父子关系确定模型;
所述判断子模块,还用于如果判定出所述所有父节点中有父节点与所述子节点存在父子关系,则判定所述子节点和父节点存在父子关系;否则,判定所述子节点和父节点不存在父子关系;
所述判断子模块,还用于当所述第一节点和第二节点为同一个节点或者所述第一深度属性信息等于第二深度属性信息时,判定所述第一节点和第二节点不存在实体上下位关系。
9.根据权利要求7所述的基于DAG图实体上下位关系判别装置,其特征在于,所述遍历更新模块,还包括:
获取子模块,用于获取所述当前节点的深度属性信息与所述当前节点对应的父节点的深度属性信息;
对比更新子模块,用于如果所述父节点的深度属性信息加一后大于所述当前节点的深度属性信息,则将所述父节点的深度属性信息加一后更新为当前节点的深度属性信息;否则,将所述当前节点的深度属性信息继续作为当前节点的深度属性信息。
10.一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,其特征在于,所述机器可读指令被所述处理器执行时执行如权利要求1至6中任一项所述的基于DAG图实体上下位关系判别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310847702.2A CN116561386B (zh) | 2023-07-12 | 2023-07-12 | 一种基于dag图实体上下位关系判别方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310847702.2A CN116561386B (zh) | 2023-07-12 | 2023-07-12 | 一种基于dag图实体上下位关系判别方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561386A true CN116561386A (zh) | 2023-08-08 |
CN116561386B CN116561386B (zh) | 2023-11-21 |
Family
ID=87503929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310847702.2A Active CN116561386B (zh) | 2023-07-12 | 2023-07-12 | 一种基于dag图实体上下位关系判别方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561386B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110421A1 (en) * | 2014-10-20 | 2016-04-21 | Xerox Corporation | Matching co-referring entities from serialized data for schema inference |
CN109241355A (zh) * | 2018-06-20 | 2019-01-18 | 中南大学 | 有向无环图的可达性查询方法、系统及可读存储介质 |
CN113222468A (zh) * | 2021-06-02 | 2021-08-06 | 中国电子科技集团公司第五十四研究所 | 一种基于深度强化学习的成像卫星资源调度方法 |
CN116127667A (zh) * | 2023-02-15 | 2023-05-16 | 平安科技(深圳)有限公司 | 有向图的层次布局方法、装置、电子设备及存储介质 |
-
2023
- 2023-07-12 CN CN202310847702.2A patent/CN116561386B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110421A1 (en) * | 2014-10-20 | 2016-04-21 | Xerox Corporation | Matching co-referring entities from serialized data for schema inference |
CN109241355A (zh) * | 2018-06-20 | 2019-01-18 | 中南大学 | 有向无环图的可达性查询方法、系统及可读存储介质 |
CN113222468A (zh) * | 2021-06-02 | 2021-08-06 | 中国电子科技集团公司第五十四研究所 | 一种基于深度强化学习的成像卫星资源调度方法 |
CN116127667A (zh) * | 2023-02-15 | 2023-05-16 | 平安科技(深圳)有限公司 | 有向图的层次布局方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
HOOLY2000: "算法精解:DAG有向无环图", Retrieved from the Internet <URL:https://blog.csdn.net/hooly2000/article/details/130777995> * |
陈若愚 等: "面向泛娱乐文本的层次多标签分类方法", 《计算机应用与软件》, vol. 40, no. 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN116561386B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110060263B (zh) | 医学图像的分割方法、分割装置、分割系统及计算机可读介质 | |
CN110276442B (zh) | 一种神经网络架构的搜索方法及装置 | |
CN107391512B (zh) | 知识图谱预测的方法和装置 | |
CN114448087A (zh) | 一种辐射型配电网络动态拓扑可视化方法和系统 | |
US10360672B2 (en) | Automated separation of binary overlapping trees | |
US20100161532A1 (en) | Determination of graph connectivity metrics using bit-vectors | |
CN113722314B (zh) | 一种空间连接查询方法、装置、电子设备及存储介质 | |
Rosenberg | Data encodings and their costs | |
CN111681204B (zh) | 基于图神经网络的ct肋骨骨折病灶关系建模方法及装置 | |
CN111639191A (zh) | 一种新型冠状病毒知识图谱模拟疫情发展趋势的预测方法 | |
CN116561386B (zh) | 一种基于dag图实体上下位关系判别方法、装置及电子设备 | |
Srinivasan et al. | Application of graph sparsification in developing parallel algorithms for updating connected components | |
CN111899117A (zh) | 应用于社交网络的k边连通分量挖掘系统及挖掘方法 | |
CN115996169A (zh) | 一种网络故障分析方法、装置、电子设备及存储介质 | |
CN113064934B (zh) | 电力传感网感知层故障关联规则挖掘方法及系统 | |
Strobl et al. | Estimating and controlling the false discovery rate for the PC algorithm using edge-specific p-values | |
CN115206434A (zh) | 一种基于De Bruijn图的多序列比对方法 | |
CN114611990A (zh) | 一种网络信息体系要素体系贡献率评估方法和装置 | |
CN109635281B (zh) | 业务导图中更新节点的方法和装置 | |
CN111709846A (zh) | 基于线图的局部社区发现算法 | |
CN117521567B (zh) | 电路的混合逻辑综合优化方法、装置及电子设备 | |
CN117874984B (zh) | 基于cim模型的配网拓扑图形生成方法及装置 | |
CN117632747A (zh) | 基于度惩罚的知识图谱补全模型缺陷检测方法和装置 | |
Mohammed et al. | Graph Neural Networks for Anomaly Detection in Internet of Medical Things | |
Pinto | Subgraph Patterns in Colored Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |