CN115062567A - 图数据中邻接节点集合的缩合操作方法、装置及电子设备 - Google Patents
图数据中邻接节点集合的缩合操作方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115062567A CN115062567A CN202210859019.6A CN202210859019A CN115062567A CN 115062567 A CN115062567 A CN 115062567A CN 202210859019 A CN202210859019 A CN 202210859019A CN 115062567 A CN115062567 A CN 115062567A
- Authority
- CN
- China
- Prior art keywords
- node
- array
- nodes
- intersection
- adjacent
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- 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)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及一种图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质。该方法包括:由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。本申请涉及的图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质,能够利用图结构中关联节点间累加操作的可共享性,提高邻接节点间的缩合操作效率。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质。
背景技术
通常,在给定了电路规格与设计要求之后,电路设计工程师会利用硬件描述语言(Hardware Description Language, HDL)对电路的行为进行设计。HDL可以描述数字电路的逻辑功能,这样路设计工程师可以把更多精力投入功能方面的设计,而避免在一开始就研究可能极其复杂的电路连线。通过HDL可将逻辑电路功能转换成电路结构描述,具有实用逻辑功能的电路通常使用多级逻辑网络(multi-level logic networks)来表示。
对于一个确定功能的集成电路而言,由于在编写过程中编写代码不同,其可能对应着不同的实际电路,复杂度也差异很大。由于这个原因,在实际设计阶段,经常会对集成电路对应的逻辑网络进行优化,以减轻实际电路的复杂度。对多层次的逻辑网络中目标节点的邻接节点集合进行缩合操作,是集成电路优化过程中经常使用的步骤。
因此,需要一种新的图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质,能够利用图结构中关联节点间累加操作的可共享性,提高邻接节点间的缩合操作效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种图数据中邻接节点集合的缩合操作方法,该方法包括:由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
在本申请的一种示例性实施例中,还包括:在所述交集节点数组不存在对应的预存值时,对所述交集节点数组中的节点进行缩合操作以生成所述预存值;基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
在本申请的一种示例性实施例中,由所述图数据中确定目标节点之前,还包括:将图数据中的多个节点数据划分为多个节点集合;生成所述多个节点集合中每个节点集合对应的邻接节点集合;生成所述每个节点集合对应的邻接节点集合中的交集节点集合。
在本申请的一种示例性实施例中,生成所述多个节点集合中每个节点集合对应的邻接节点集合,包括:基于图数据中节点之间的连接关系生成所述多个节点集合中每个节点集合对应的多个邻接节点集合。
在本申请的一种示例性实施例中,生成所述每个节点集合对应的邻接节点集合中的交集节点集合,包括:基于索引排序法生成所述每个节点集合对应的多个邻接节点集合中的交集节点集合;将多个节点集合对应的多个交集节点集合中的节点依序存储在节点数组中;将多个节点集合中的非交集节点依序存储在残余节点数组中。
在本申请的一种示例性实施例中,在所述交集节点数组存在对应的预存值,包括:获取所述交集节点数组对应的状态数组;根据所述状态数组对应的逻辑值确定所述交集节点数组是否存在对应的预存值。
在本申请的一种示例性实施例中,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值,包括:由所述交集节点数组对应的交集操作值数组中读取所述预存值;对所述残余节点数组中的节点进行缩合操作生成当前操作值;将所述预存值和所述当前操作值进行合并生成所述邻接节点集合的缩合操作值。
在本申请的一种示例性实施例中,对所述交集节点数组中的节点进行缩合操作以生成所述预存值,包括:提取所述交集节点数组中的多个节点;对所述交集节点数组中多个节点进行缩合操作以生成所述预存值;将所述预存值存储在交集操作值数组。
在本申请的一种示例性实施例中,提取所述交集节点数组中的多个节点,包括:获取所述交集节点数组对应的节点指针数组;基于所述节点指针数组中的指针确定所述交集节点数组对应的节点范围;根据节点范围获取所述多个节点。
根据本申请的一方面,提出一种图数据中邻接节点集合的缩合操作装置,该装置包括:节点模块,用于由所述图数据中确定目标节点;集合模块,用于基于节点集合指针数组确定所述目标节点对应的邻接节点集合;数组模块,用于根据所述邻接节点集合提取交集节点数组和残余节点数组;操作模块,用于在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的图数据中邻接节点集合的缩合操作方法、装置、电子设备及计算机可读介质,通过由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值的方式,能够利用图结构中关联节点间累加操作的可共享性,提高邻接节点间的缩合操作效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据现有技术示出的集成电路网络结构图。
图2是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的流程图。
图3是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的示意图。
图3是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的聚类实例的示意图。
图4是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作中聚类求取交集节点的过程的示意图。
图5是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法中数据存储结构的示意图。
图6是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的流程图。
图7是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
图1是根据现有技术示出的集成电路网络结构图。在集成电路的网络中,每个节点代表一个逻辑门,节点之间用有向边连接。本申请的图数据中邻接节点集合的缩合操作方法,能够应用在集成电力的节点设计中,能够利用图结构中关联节点间累加操作的可共享性,将集成电路中的部分节点进行缩合处理,以便在后续集成电路节点优化时提高算法的计算效率。
图2是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的流程图。图2所示的流程示出了集成电路图数据中邻接矩阵的交集处理方法。
如图2所示,在S202中,将图数据中的多个节点数据划分为多个节点集合。可通过聚类算法将图数据中的多个节点划分为多个节点集合。
图3是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的示意图,如图3所示,可以先用聚类(clustering)算法使具有相似属性的图节点或者按照节点的邻接度聚集图节点。需要说明的是,聚类算法的实现不在本文中讨论,但是聚类算法依据的图结构或者节点特征所产生的不同聚类结果,会对本文讨论的算法产生影响;所以,我们在这里假设采用的聚类算法是合适的。
在其他实施例中,还可通过其他方式将图数据中的多个节点划分为多个节点集合,比如,当图数据为逻辑电路数据中,可在逻辑电路图中,可将节点按照不同的功能属性划为不同的节点集合,还可将节点按照节点特性划为不同的节点集合,本申请不以此为限。
在S204中,生成所述多个节点集合中每个节点集合对应的邻接节点集合。可基于图数据中节点之间的连接关系生成所述多个节点集合中每个节点集合对应的多个邻接节点集合。
借助于图3的实施例,通过任意划分方式将原有的网络划分为多个聚类分布。以其中一个聚类C1={n2,n10, n13, n14}为例进行说明,其中n i 是节点的索引号(indexation),对应的每个节点n i N的邻接节点集合(set of neighboring nodes) L(n i )分别是:
L(n2)= {n4,n6,n10,n12,n14}
L(n10)= {n2,n6,n12,n13,n14}
L(n13)= {n6,n10,n12,n14}
L(n14)= {n2,n6,n10,n12,n13}。
在S206中,生成所述每个节点集合对应的邻接节点集合中的交集节点集合。可基于索引排序法生成所述每个节点集合对应的多个邻接节点集合中的交集节点集合;将多个节点集合对应的多个交集节点集合中的节点依序存储在节点数组中;将多个节点集合中的非交集节点依序存储在残余节点数组中。
取交集节点的过程可如图4所示:可先将所有的邻接节点的集合的元素全部放到一个大集合里面;按这些节点的索引号进行排序;找到每个节点出现的第一个位置;计算每个节点的出现次数;找出出现次数等于邻接节点集合数目的节点,这些节点就是交集所包含的所有节点。需要说明的是每一个节点聚类(clustering)可以得到唯一一个交集(intersection)。
取交集节点过程通过生成所述每个节点集合对应的多个邻接节点集合中的交集节点集合。可基于索引排序法生成所述每个节点集合(intersection)对应的多个邻接节点集合中的交集节点集合。可基于索引排序法搜索,得到上述邻接节点集合的交集节点集合为{n 6 , n 12 }。随后生成所述多个节点集合对应的多个交集节点集合的多个逻辑值。可逐一提取所述多个节点集合对应的多个交集节点集合中的多个节点;对交集节点集合中多个节点对应的数值进行逻辑运算以生成所述交集节点集合对应的逻辑值。
在一个实际的应用中,可多交集节点集合中的节点进行缩合(reductionoperation)计算,缩合计算可包括:求和计算,求积计算,求最大值计算,求最小值计算等等,本申请不以此为限。
如图3的实施例,多个节点集合交集包含节点L∩= {n6,n12},如下划线在各个邻接节点集合中所标记。当有缩合操作hi=reduce(L(ni),op)对每个节点的邻接节点集合作用的时候,那么交集提供的缩合计算可以在各个集合中复用。
更具体的,常见的对集合的缩合操作运算op有add,multiply,min,max等。
比如add对邻接节点集进行运算为
按照现有技术中的方法,h2原来需要5个加法,现在变为4个加法,h10从4个加法变为3个加法;其他hi同理。这样全部运算可从20个加法减少到16个,20%的削减率。
根据本申请的图数据的处理方法,通过将图数据中的多个节点划分为多个节点集合;生成所述多个节点集合中每个节点集合对应的多个邻接节点集合;生成所述每个节点集合对应的多个邻接节点集合中的交集节点集合;生成所述多个节点集合对应的多个交集节点集合的多个逻辑值;基于所述多个逻辑值对所述图数据的计算进行简化处理的方式,能够利用图结构中关联节点间累加操作的可共享性,提高算法的计算效率和减少不必要的开销。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图4是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作中聚类求取交集节点的过程的示意图。如图4所示,可先将所有的邻接节点的集合的元素全部放到一个大集合里面;按这些节点的索引号进行排序;找到每个节点出现的第一个位置;计算每个节点的出现次数;找出出现次数等于邻接节点集合数目的节点,这些节点就是交集所包含的所有节点。需要说明的是每一个节点聚类(clustering)可以得到唯一一个交集(intersection)。后面所提到的交集节点模块可以通过执行下述代码来实现上述步骤:
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
可选择地,为了此后的缩合操作方便,可以基于所述多个逻辑值对所述图数据的计算进行简化处理。可基于所述多个逻辑值对所述图数据的缩合计算进行简化处理。在图数据基于多个节点集合进行逻辑计算时,可在计算的过程中直接调取交集集合中已经存储的逻辑值辅助进行计算。更具体的,可基于所述多个逻辑值对所述图数据的求和计算进行简化处理;和/或基于所述多个逻辑值对所述图数据的求积计算进行简化处理;和/或基于所述多个逻辑值对所述图数据的求最大值计算进行简化处理;和/或基于所述多个逻辑值对所述图数据的求最小值计算进行简化处理。
图5是根据另一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法中数据存储结构的示意图。在本申请中,将图数据中交集节点存储在特定的数据集合中,具体如图5所示。其中,节点数组its:该数组保存了所有交集的所有节点,在图中用不同深浅颜色区分了不同聚类(cluster)的交集(intersection)。
节点指针数组its_ptr:该数组的每个元素为一个指针,指向一个聚类(cluster)的交集(intersection)的第一个元素。所以,比如第三个聚类(cluster)的交集(intersection)就是指针its_ptr[2]到its_ptr[3]所指向的之间的its的元素。
状态数组its_status:该数组标记每一个交集(intersection)的状态,指明是否基于该交集(intersection)的缩合计算已经执行,并且中间计算结果(intersectioncomputation values)已经保存或者更新了在对应的数组(its_vals)的元素中。
交集操作值数组its_vals:一个缓存区(cache)保存交集(intersection)的中间计算结果(intermediate computation values),如果,intersection的节点是多维的,即为元素具有纬度dim=F。
节点集合指针数组nd_its:这个数组是节点指针指向its_vals,表明图节点的邻接节点集合(set of neighboring nodes)包含哪个交集(intersection)。
为了完整的表示图拓扑结构,本申请还引入了“残余邻接节点集合”(residualneighboring node sets)的数据结构,这个结构中保存了每个节点的不属于交集(intersection)的剩余邻接节点的集合。
其中,残余节点数组rsd_ngb_lst:该数组使用和its类似的结构,保存了所有节点的所有残余邻接节点(residual neighboring nodes)。
残余节点指针数组rsd_ngb_lst_ptr:该数组的每个元素为一个指针,指向指向每个节点的残余邻接节点集合的头一个元素。
图6是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作方法的流程图。图数据中邻接节点集合的缩合操作方法60至少包括步骤S602至S608。
如图6所示,在S602中,由所述图数据中确定目标节点。在实际的应用过程中,当需要对图数据中的目标节点进行缩合操作的时候,可先在图数据中确定目标节点。
在S606中,基于节点集合指针数组确定所述目标节点对应的邻接节点集合。由节点集合指针数组中,根据目标节点的标识提取其对应的邻接节点集合所对应的第一个元素。
在S606中,根据所述邻接节点集合提取交集节点数组和残余节点数组。根据邻接节点集合提取该目标节点所对应的交集节点数组和残余节点数组。
在S608中,判断所述交集节点数组是否存在对应的预存值。可获取所述交集节点数组对应的状态数组;根据所述状态数组对应的逻辑值确定所述交集节点数组是否存在对应的预存值。
在S610中,所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
在一个实施例中,可由所述交集节点数组对应的交集操作值数组中读取所述预存值;对所述残余节点数组中的节点进行缩合操作生成当前操作值;将所述预存值和所述当前操作值进行合并生成所述邻接节点集合的缩合操作值。
在S612中,在所述交集节点数组不存在对应的预存值时,对所述交集节点数组中的节点进行缩合操作以生成所述预存值;基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
所述缩合操作方法可以通过执行下面的代码实例来完成。其中,实例使用了函数Aggregate,它可以看作是前述缩合操作hi=reduce(L(ni),op)的别名,Aggregate更常出现在图神经网络(Graph Neural Networks)的结构和运算中。下面的实例算法对应图上每个节点上的信息通过改进过的消息传递机制,完成对每个节点更新操作。另外,值得提到的是,总体上,新的数据结构所占用内存空间要小于邻接矩阵对图的结构的存储,因为交集所共有的节点没有在各个邻接节点集合中重复。
在一个实施例中,可获取所述交集节点数组对应的节点指针数组;基于所述节点指针数组中的指针确定所述交集节点数组对应的节点范围;根据节点范围获取所述多个节点。对所述交集节点数组中多个节点进行缩合操作以生成所述预存值,将所述预存值存储在交集操作值数组。
根据本申请的图数据中邻接节点集合的缩合操作方法,通过由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值的方式,能够利用图结构中关联节点间累加操作的可共享性,提高邻接节点间的缩合操作效率。
根据本申请的图数据中邻接节点集合的缩合操作方法,因为交集所共有的节点没有在各个邻接节点集合中重复,所以新的数据结构所占用内存空间要小于邻接矩阵对图的结构的存储,本申请中的方法也提高了内存利用效率。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7是根据一示例性实施例示出的一种图数据中邻接节点集合的缩合操作装置的框图。如图7所示,图数据中邻接节点集合的缩合操作装置70包括:节点模块702,集合模块704,数组模块706,操作模块707。
节点模块702用于由所述图数据中确定目标节点;
集合模块704用于基于节点集合指针数组确定所述目标节点对应的邻接节点集合;
数组模块706用于根据所述邻接节点集合提取交集节点数组和残余节点数组;
操作模块708用于在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。操作模块708还用于获取所述交集节点数组对应的状态数组;根据所述状态数组对应的逻辑值确定所述交集节点数组是否存在对应的预存值。操作模块708还用于由所述交集节点数组对应的交集操作值数组中读取所述预存值;对所述残余节点数组中的节点进行缩合操作生成当前操作值;将所述预存值和所述当前操作值进行合并生成所述邻接节点集合的缩合操作值。操作模块708还用于在所述交集节点数组不存在对应的预存值时,对所述交集节点数组中的节点进行缩合操作以生成所述预存值;基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
根据本申请的图数据中邻接节点集合的缩合操作装置,通过由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值的方式,能够利用图结构中关联节点间累加操作的可共享性,提高邻接节点间的缩合操作效率。
图8是根据一示例性实施例示出的一种电子设备的框图。
下面参照图8来描述根据本申请的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2,图6中所示的步骤。
所述存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
所述存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备800’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备800交互的设备通信,和/或该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器860可以通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图9所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:由所述图数据中确定目标节点;基于节点集合指针数组确定所述目标节点对应的邻接节点集合;根据所述邻接节点集合提取交集节点数组和残余节点数组;在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (12)
1.一种图数据中邻接节点集合的缩合操作方法,其包括:
由所述图数据中确定目标节点;
基于节点集合指针数组确定所述目标节点对应的邻接节点集合;
根据所述邻接节点集合提取交集节点数组和残余节点数组;
在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述交集节点数组不存在对应的预存值时,对所述交集节点数组中的节点进行缩合操作以生成所述预存值;
基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
3.如权利要求1所述的方法,其特征在于,由所述图数据中确定目标节点之前,还包括:
将图数据中的多个节点数据划分为多个节点集合;
生成所述多个节点集合中每个节点集合对应的邻接节点集合;
生成所述每个节点集合对应的邻接节点集合中的交集节点集合。
4.如权利要求3所述的方法,其特征在于,生成所述多个节点集合中每个节点集合对应的邻接节点集合,包括:
基于图数据中节点之间的连接关系生成所述多个节点集合中每个节点集合对应的多个邻接节点集合。
5.如权利要求3所述的方法,其特征在于,生成所述每个节点集合对应的邻接节点集合中的交集节点集合,包括:
基于索引排序法生成所述每个节点集合对应的多个邻接节点集合中的交集节点集合;
将多个节点集合对应的多个交集节点集合中的节点依序存储在节点数组中;
将多个节点集合中的非交集节点依序存储在残余节点数组中。
6.如权利要求1所述的方法,其特征在于,在所述交集节点数组存在对应的预存值,包括:
获取所述交集节点数组对应的状态数组;
根据所述状态数组对应的逻辑值确定所述交集节点数组是否存在对应的预存值。
7.如权利要求1所述的方法,其特征在于,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值,包括:
由所述交集节点数组对应的交集操作值数组中读取所述预存值;
对所述残余节点数组中的节点进行缩合操作生成当前操作值;
将所述预存值和所述当前操作值进行合并生成所述邻接节点集合的缩合操作值。
8.如权利要求2所述的方法,其特征在于,对所述交集节点数组中的节点进行缩合操作以生成所述预存值,包括:
提取所述交集节点数组中的多个节点;
对所述交集节点数组中多个节点进行缩合操作以生成所述预存值;
将所述预存值存储在交集操作值数组。
9.如权利要求8所述的方法,其特征在于,提取所述交集节点数组中的多个节点,包括:
获取所述交集节点数组对应的节点指针数组;
基于所述节点指针数组中的指针确定所述交集节点数组对应的节点范围;
根据节点范围获取所述多个节点。
10.一种图数据中邻接节点集合的缩合操作装置,其特征在于,包括:
节点模块,用于由所述图数据中确定目标节点;
集合模块,用于基于节点集合指针数组确定所述目标节点对应的邻接节点集合;
数组模块,用于根据所述邻接节点集合提取交集节点数组和残余节点数组;
操作模块,用于在所述交集节点数组存在对应的预存值时,基于所述预存值和所述残余节点数组中的节点生成所述邻接节点集合的缩合操作值。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859019.6A CN115062567B (zh) | 2022-07-21 | 2022-07-21 | 图数据中邻接节点集合的缩合操作方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859019.6A CN115062567B (zh) | 2022-07-21 | 2022-07-21 | 图数据中邻接节点集合的缩合操作方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115062567A true CN115062567A (zh) | 2022-09-16 |
CN115062567B CN115062567B (zh) | 2023-04-18 |
Family
ID=83205568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210859019.6A Active CN115062567B (zh) | 2022-07-21 | 2022-07-21 | 图数据中邻接节点集合的缩合操作方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062567B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228130A1 (en) * | 2018-01-22 | 2019-07-25 | X Development Llc | Method for analyzing and optimizing metabolic networks |
CN110825706A (zh) * | 2018-08-07 | 2020-02-21 | 华为技术有限公司 | 一种数据压缩的方法和相关设备 |
CN112214775A (zh) * | 2020-10-09 | 2021-01-12 | 平安国际智慧城市科技股份有限公司 | 对图数据的注入式攻击方法、装置、介质及电子设备 |
CN112257369A (zh) * | 2020-12-21 | 2021-01-22 | 上海国微思尔芯技术股份有限公司 | 一种逻辑设计分割方法及系统 |
CN113761293A (zh) * | 2021-05-27 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 图数据强连通分量挖掘方法、装置、设备及存储介质 |
-
2022
- 2022-07-21 CN CN202210859019.6A patent/CN115062567B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228130A1 (en) * | 2018-01-22 | 2019-07-25 | X Development Llc | Method for analyzing and optimizing metabolic networks |
CN110825706A (zh) * | 2018-08-07 | 2020-02-21 | 华为技术有限公司 | 一种数据压缩的方法和相关设备 |
CN112214775A (zh) * | 2020-10-09 | 2021-01-12 | 平安国际智慧城市科技股份有限公司 | 对图数据的注入式攻击方法、装置、介质及电子设备 |
CN112257369A (zh) * | 2020-12-21 | 2021-01-22 | 上海国微思尔芯技术股份有限公司 | 一种逻辑设计分割方法及系统 |
CN113761293A (zh) * | 2021-05-27 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 图数据强连通分量挖掘方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115062567B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kantor et al. | Coreference resolution with entity equalization | |
EP3885963A1 (en) | Method and apparatus for determining causality, electronic device and storage medium | |
JP2021111417A (ja) | Spoの抽出方法、装置、電子機器及び記憶媒体 | |
Lee et al. | Improving bug report triage performance using artificial intelligence based document generation model | |
US20170039265A1 (en) | Method and system for distributed latent dirichlet allocation computation using addition of approximate counters | |
US11748305B2 (en) | Suggesting a destination folder for a file to be saved | |
CN112883730B (zh) | 相似文本匹配方法、装置、电子设备及存储介质 | |
CN113228017B (zh) | 攻击树生成装置、攻击树生成方法以及计算机可读取的记录介质 | |
CN111178701A (zh) | 一种基于特征衍生技术的风险控制方法方法、装置和电子设备 | |
CN110888876A (zh) | 生成数据库脚本的方法、装置、存储介质及计算机设备 | |
WO2022142106A1 (zh) | 文本分析方法、装置、电子设备及可读存储介质 | |
CN115062567B (zh) | 图数据中邻接节点集合的缩合操作方法、装置及电子设备 | |
CN111190967B (zh) | 用户多维度数据处理方法、装置及电子设备 | |
CN115204076B (zh) | 集成电路的逻辑优化方法、装置、电子设备及可读介质 | |
CN108830302B (zh) | 一种图像分类方法、训练方法、分类预测方法及相关装置 | |
EP3735659A1 (en) | Optimization of learning network in equivalent class space | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
CN114047926A (zh) | 数组计算表达语言的转换方法、装置、设备及存储介质 | |
CN115203485B (zh) | 图数据的处理方法、装置、电子设备及计算机可读介质 | |
CN114417754A (zh) | 组合逻辑单元的形式化识别方法及相关设备 | |
CN115204077B (zh) | 集成电路的节点优化方法、装置、电子设备及可读介质 | |
CN115293078B (zh) | 集成电路的节点改写方法、装置、电子设备及介质 | |
CN114936220B (zh) | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 | |
CN112328960B (zh) | 数据运算的优化方法、装置、电子设备及存储介质 | |
US20230222579A1 (en) | Method and Apparatus for Iterating Credit Scorecard Model, Electronic Device and Storage Medium |
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 |