CN113343040A - 一种图算法的自动增量化方法、装置、设备及存储介质 - Google Patents
一种图算法的自动增量化方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113343040A CN113343040A CN202110681585.8A CN202110681585A CN113343040A CN 113343040 A CN113343040 A CN 113343040A CN 202110681585 A CN202110681585 A CN 202110681585A CN 113343040 A CN113343040 A CN 113343040A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- graph
- batch processing
- batch
- incremental
- 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.)
- Pending
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 350
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 257
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 238000013139 quantization Methods 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims description 128
- 230000008859 change Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010845 search algorithm Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004873 anchoring Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 240000006927 Foeniculum vulgare Species 0.000 description 1
- 235000004204 Foeniculum vulgare Nutrition 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 241001229889 Metis Species 0.000 description 1
- 244000273928 Zingiber officinale Species 0.000 description 1
- 235000006886 Zingiber officinale Nutrition 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008397 ginger Nutrition 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
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/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种图算法的自动增量化方法、装置、设备及存储介质,方法包括:获取批处理图算法;当批处理图算法为不动点计算时,则从批处理图算法的数据结构和逻辑中获取批处理图算法作为不动点计算的步进函数;依据批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将初始范围函数和步进函数进行组合,得到与批处理算法对应的增量处理算法;或;当批处理图算法为不动点计算时,判断批处理图算法是否具备有界增量化性质;当批处理图算法具备有界增量化性质时,则将批处理算法转化为增量处理算法,增量处理算法具备有界增量化性质。本申请能够获得比批处理重新计算更高效的方式进行增量计算。
Description
技术领域
本申请涉及数据处理技术领域,特别是一种图算法的自动增量化方法、装置、设备及存储介质。
背景技术
大图上查询需要消耗大量资源和时间。更复杂的情况是,图数据是经常变化的,例如顶点上的数值或边链接的插入和删除,这使得有些过程需要自动和不断重复查询变化的图数据以获得最新的查询结果。这种过程会消耗大量计算资源,特别实在大图上。
上述情形中,在图数据更新后,批处理查询的复杂度仍然是和图数据本身的大小有关,而与图更新的大小无关。这种方法在图数据较大,更新频率较频繁的时候会变得十分低效。
已有的增量图查询算法都是针对专门问题专门设计的,这种方法缺乏通用性,且需要大量的专业知识,大大提高了增量算法使用的门槛。另一方面,已有的增量算法的主要先进性在于对于单位更新(unit update),相比较与批处理,具有更低的复杂度,但对于批量更新(batch update),这些增量算法的效率往往没有重新使用批处理算法直接计算更新后的图的查询结果更高,而在这种情况下如何能够使用比批处理重新计算更高效的方式进行增量计算仍是一个未解决的问题。
发明内容
鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种图算法的自动增量化方法、装置、设备及存储介质,包括:
一种图算法的自动增量化方法,包括:
获取批处理图算法;
当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法;
或;
当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
优选地,还包括:
判断所述批处理图算法是否为与图、状态、查询结果和范围有关的一个步进函数的迭代;其中,所述图为无向图;所述状态为所述批处理图算法的数据结构在预设轮开始时的状态;所述查询结果为使用所述批处理图算法对所述图查询后获得的查询结果,所述查询结果由所述状态变构成,每个所述状态变量都与所述图中的某个点或者边相关联,每个所述状态变量都有对应的用于更新所述状态变量的值的更新函数,所述更新函数的输入为所述状态变量的集合,每个所述状态变量对应一个逻辑判断语句,满足每次使用所述更新函数更新所述状态变量之后,所述逻辑判断语句为真,且对于最终的不动点状态,所有的所述逻辑判断语句全部为真;所述范围包括在所述预设轮开始时全部对应于所述逻辑判断语句为非的所述状态变量;
若所述批处理图算法为与所述状态、所述查询结果、所述图和所述范围有关的一个步进函数的迭代,则判定所述批处理图算法为不动点计算。
优选地,所述依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数的步骤包括:
获取所述更新函数的输入在不动点状态下的一个子集,作为所述状态变量的锚定集;
依据所述锚定集生成有向无环图,所述有向无环图包含不动点状态下所述图中各个点的拓扑偏序关系,所述拓扑偏序关系用于指导所述批处理图算法的变化传播;
依据所述有向无环图生成基于所述图更新区域的所述初始范围函数。
优选地,在所述将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的所述增量处理算法的步骤之后,还包括:
获取所述查询结果和所述图的更新区域;
使用所述初始范围函数,将所述查询结果的不动点状态修改为对于更新后的图可行的初始状态和所述初始状态上的初始范围;
使用所述步进函数将所述初始状态和所述初始范围迭代至新的不动点,得到所述更新后的图的查询结果。
优选地,还包括:
当所述批处理图算法不具备有界增量化性质时,判断所述批处理图算法是否具备弱可增量化性质;
当所述批处理图算法具备弱可增量化性质时,则对所述批处理图算法的所述步进函数和所述状态进行修改,使所述批处理图算法具备有界增量化性质;将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
优选地,所述将所述批处理算法转化为增量处理算法的步骤包括:
从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;
依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;
将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法。
优选地,所述批处理图算法包括弱联通分量算法、单源最短路径算法、深度优先搜索算法、局部聚类系数算法和图仿真算法中的任意一种。
一种图算法的自动增量化装置,包括:
获取模块,用于获取批处理图算法;
第一处理模块,用于当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法;
或;
第二处理模块,用于当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
一种设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的一种图算法的自动增量化方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的一种图算法的自动增量化方法的步骤。
本申请具有以下优点:
在本申请的实施例中,通过获取批处理图算法;当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法;或;当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质,能够获得比批处理重新计算更高效的方式进行增量计算。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种图算法的自动增量化方法的步骤流程图;
图2是本申请一实施例提供的一种图算法的自动增量化方法中一个产生两路边缘分割的图增长模型的结构示意图;
图3是本申请一实施例提供的一种图算法的自动增量化装置的结构框图;
图4是本申请一实施例提供的一种计算机设备的结构示意图。
12、计算机设备;14、外部设备;16、处理单元;18、总线;20、网络适配器;22、I/O接口;24、显示器;28、内存;30、随机存取存储器;32、高速缓存存储器;34、存储系统;40、程序/实用工具;42、程序模块。
具体实施方式
为使本申请的所述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出了本申请一实施例提供的一种图算法的自动增量化方法,包括:
S110、获取批处理图算法A;
S120、当所述批处理图算法A为不动点计算时,则从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ;
或;
S130、当所述批处理图算法A为不动点计算时,判断所述批处理图算法A是否具备有界增量化性质;当所述批处理图算法A具备有界增量化性质时,则将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
在本申请的实施例中,通过获取批处理图算法;当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的所述增量处理算法;或;当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质,能够获得比批处理重新计算更高效的方式进行增量计算。
下面,将对本示例性实施例中一种图算法的自动增量化方法作进一步地说明。
如所述步骤S110所述,获取批处理图算法A;
所述批处理图算法A(batch algorithms)定义如下:
输入图数据G和查询Q,所述批处理图算法A回答图数据G上的查询Q,并输出A(Q,G)作为查询结果Q(G);
与所述批处理图算法A对应的增量处理算法AΔ(incremental algorithm)定义如下:
输入图数据G、查询Q、查询结果Q(G)和图数据更新ΔG,所述增量处理算法AΔ处理图数据G上的数据更新ΔG,并输出AΔ(Q,G,Q(G),ΔG)作为Q(G⊕ΔG)相对于Q(G)的改变量,也即:Q(G⊕ΔG)=A(Q,G)⊕AΔ(Q,G,Q(G),ΔG)。
如所述步骤S120所述,当所述批处理图算法A为不动点计算时,则从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ。
批处理图算法A在图G上运行时会建立辅助结构DA,辅助结构DA通过与图G中的节点和边相关的状态变量xi以及分割结果Q(G)的部分大小来扩展图G,辅助结构DA记录计算过程,并且在整个计算过程中不断演变,因此,可以将批处理图算法A的分割过程描述为对辅助结构DA的连续更新。
如果一个批处理图算法A符合上述迭代计算模型,则判断它为不动点计算。
需要说明的是,初始范围函数h通过获取上一次迭代的信息,即要更新的辅助结构DA的状态变量来确定更新区域;更新函数则f推导出这些状态变量的实际变化,例如,决定未分配节点和边的部分分配,也即,批处理图算法A的计算过程是由运行时的变化值指导的(即变化传播)。
例1,对于一个产生两路边缘分割的图增长模型,从图中选择一个起始节点,通过宽度优先搜索(breadth-first search,BFS)在其周围一个边缘分割的分割区域进行图增长,直到一半的节点被包含在内,将其余节点放入另一个边缘分割的分割区域。如图2中的图G所示(只考虑实心的边),可以选择w'0作为起始节点,然后把v1,……,v19,u'1,……,u'19,w'0和w0放入V1部分进行图增长,而将G中的其余节点放入V2部分。
上述图增长模型是一个迭代的批处理图算法,它的状态变量包括每个节点的部分ID和部分大小,在每次迭代中,它的更新函数f将一组未分配的顶点、一个待更新的部分ID和对应的部分大小作为输入,它将部分ID分配给这些顶点并相应地更新它们的大小,并通过初始范围函数h获得新分配的节点未分配的邻居节点。
更新函数f和初始范围函数h的应用可以并列进行,例如,在一次并行迭代中同时分配不同的顶点或边。
符合不动点计算的迭代分割算法包括:(1)应用于边缘分割的图增长算法(graphgrowing)、贪婪增长算法(greedy growing)、k路图贪婪增长算法(K-Way Graph GreedyGrowing Partitioning,KGGGP)和气泡法(bubble methods);(2)应用于顶点分割的邻域嵌入算法(neighborhood embedding,NE)和判别邻域嵌入算法(discriminant neighborhoodembedding,DNE);以及(3)应用于流式设置的Fennel算法、高度顶点复制优先算法(High-Degree(are)Replicated First,HDRF)、Ginger算法和贪婪算法(Greedy);虽然流式分割算法仅针对插入开发,它们仍然可以被增量以处理通用更新。
应用于边缘分割的METIS算法和应用于顶点分割的Sheep算法为不符合不动点计算的迭代分割算法,因为它们在分割过程中会改变图的拓扑结构,超出了迭代计算模型的表达能力。
若所述批处理图算法A为不动点计算,将所述批处理算法A转化为增量处理算法AΔ,使得所述增量处理算法AΔ具备两个特性,(1)相对增量有界,(2)保留了批处理图算法A的分割质量,具体如下:
(1)相对增量有界。给定图G,图更新区域ΔG,平衡因子ψ,由批处理图算法A在图G上运行产生的查询结果Q(G),以及批处理图算法A的可能的辅助结构DA;采用增量处理算法AΔ计算图更新区域ΔG得到的ΔO,使得为的一个查询结果。其开销可以表示为|CHANGED|=|ΔG|+|ΔO|,此外,|ΔO|的大小可以表示为|ΔG|的多项式。
(2)保留原有的分割质量。要求新的查询结果保持与Q(G)相同的平衡系数,此外,要求增量处理算法AΔ保持与批处理图算法A相同的对分割尺寸的限制。因此,如果批处理图算法A是广泛使用的,那么增量处理算法AΔ的质量也可以被批处理图算法A的用户所接受。
为了从批处理图算法A中推导出一个有效的增量处理算法AΔ,首先确定与图更新区域ΔG有关的基本变化,然后通过使用批处理图算法A的更新函数f和初始范围函数h来处理这些变化,具体如下:
(a)恢复迭代。给出图更新区域ΔG和批处理图算法A批量运行后的最终状态增量处理算法AΔ首先找到基于图更新区域ΔG的(小)区域变化,然后在状态上执行这些变化以得到新的状态也即,在新的迭代中恢复分割过程。这些被称为与更新有关的基本变化。更具体地,在初始的新的迭代t+1中的基本变化f(HT)是由批处理图算法A的更新函数f计算出来的,其中是一个由批处理图算法A的初始范围函数h修订的范围函数h'决定的更新区域,就像在批处理图算法A中一样,将基本变化f(HT)应用于HT中的状态变量。
基于新的状态批处理图算法A的初始范围函数h再为下一个新的迭代t+2确定另一个更新区域HT+1,并采用上述方法确定与HT+1相关的基本变化;然后,将更新函数f应用于HT+1。将这两个步骤在增量处理算法AΔ中迭代,直到不能再用更新函数f和初始范围函数h按照与批处理图算法A相同的逻辑进行运算,获得这个增量运行的新的最终状态
(b)重新平衡。输入的图更新区域ΔG可能使旧的边缘分割(或顶点分割)的查询结果Q(G)的某些部分变得过重。当这种情况发生时,增量处理算法AΔ需要从每个超重的Vi(或Ei)中移除一组节点(或边),以使其满足平衡约束,然后使用与上述(a)相同的策略重新分配Ui。
事实上,增量处理算法AΔ会重新分配一些顶点或边,这些顶点或边要么被输入的更新所覆盖,要么被挑选出来进行重新平衡。这种方式有助于完善旧的分割,因为增量处理算法AΔ可以利用旧的分割的所有信息。在某些情况下,这种方式产生的分割质量甚至比用批处理图算法A重新分割更好。
例2:继续例1,对于一个图更新区域ΔG,从图G中删除四条边(w0,v1),(w0,v2),(w1,v'18)和(w1,v'19)。
这里,增量处理算法AΔ直接使用修改后的范围函数h'获得初始的新的更新区域,其包含图更新区域ΔG所覆盖的节点集,即{w'0,v1,v2,w1,v'18,v'19};将上述节点集取消分配,更新相应部分的大小,并根据其邻居的分配情况推断出候选部分的ID。接下来,增量处理算法AΔ使用图增长的原始更新和初始范围函数h(例1)以迭代方式重新分配这些节点,将w0(或w1)放入部分V2(或V1),并保持所有其他节点的分配不变。也即,增量处理算法AΔ只交换了两个节点的原始分配。
这是因为,增量处理算法AΔ是采用批处理图算法A的原有逻辑来对DA持续更新,并且只限制与图更新区域ΔG和负载平衡有关的状态变量的变化。
增量处理算法AΔ可以确保增量有界性,当(1)更新函数f和(修改后的)范围函数h和h'可以在更新规模的多项式时间内递增计算,也即,(或可以从f(d)(或h(d),h'(d))和Δd计算出来,而不需要访问整个d;以及(2)从超重部分识别每个集合Ui的开销是|Ui|的多项式。
具体地,一些集合函数,例如sum和avg,是可以递增计算的,但是谱系分割方法中计算特征向量的函数不是。
事实上,增量处理算法AΔ只对涉及变化的区域重新评估更新函数f,当这些函数可以递增计算时,变化大小由|ΔG|和∑i∈[1,k]|Ui|的多项式约束。如果|Ui|≥|ΔG|,i∈[1,k],进行重新平衡后可以获得新的平衡约束;并且∑i∈[1,k]|Ui|可以由O(|ΔG|)约束。需要注意的是,当增量处理算法AΔ开始后即进行重新平衡。因此,当上述两个条件成立时,增量处理算法AΔ的总体开销和大小|ΔO|都只由|ΔG|决定,即,增量处理算法AΔ是增量有界的。
如所述步骤S130所述,当所述批处理图算法A为不动点计算时,判断所述批处理图算法A是否具备有界增量化性质;当所述批处理图算法A具备有界增量化性质时,则将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
所述批处理图算法A具备有界增量化性质的判断方法为:增量计算的开销可以用一个有关图更新、分割大小、分割受到更新影响的区域的大小这三者的一个多项式函数来表达。需要说明的是,本实施例提供了一种有界增量化条件,即在所述批处理图算法A具有该性质时,可以确保通过上述自动增量化方法得到的所述增量处理算法AΔ是增量有界的,即其计算开销只受图更新所影响到的范围代销影响,而与全图大小无关.这确保所述增量处理算法AΔ不会进行冗余计算。
本实施例中,还包括:
其中,所述图G为无向图;所述状态为所述批处理图算法A的数据结构在预设轮(第t轮)开始时的状态;所述查询结果Q(G)为使用所述批处理图算法A对所述图G查询后获得的查询结果,所述查询结果Q(G)由所述状态变量xi构成,每个所述状态变量xi都与所述图G中的某个点或者边相关联,每个所述状态变量xi都有对应的用于更新所述状态变量xi的值的更新函数所述更新函数的输入为所述状态变量xi的集合,每个所述状态变量xi对应一个逻辑判断语句满足每次使用所述更新函数更新所述状态变量xi之后,所述逻辑判断语句为真,且对于最终所有的收敛到的不动点,所有的所述逻辑判断语句全部为真;所述范围为在所述预设轮(第t轮)开始时全部对应于所述逻辑判断语句为非的所述状态变量xi;
本实施例中,所述依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h的步骤包括:
依据所述有向无环图生成基于所述图更新区域ΔG的所述初始范围函数h。
具体地,所述初始范围函数h可以按照下述方式生成:
(1)进行变化传播。由于每个所述状态变量xi都是用其对应的所述更新函数进行更新,因此所述状态变量xi的值取决于所述更新函数的所述输入而且通常最终所述状态变量xi只取决于所述输入的一个子集,而非全部,因此,记录在不动点状态下决定所述状态变量xi的所述输入的一个子集,作为所述状态变量xi的锚定集
(2)不动点调整。下面给出所述初始范围函数h的一个实现:
本实施例中,在所述将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法A对应的所述增量处理算法AΔ的步骤之后,还包括:
获取所述查询结果Q(G)和所述图G的更新区域ΔG;
本实施例中,还包括:
当所述批处理图算法A不具备有界增量化性质时,判断所述批处理图算法A是否具备弱可增量化性质;
当所述批处理图算法A具备弱可增量化性质时,则对所述批处理图算法A的所述步进函数fA和所述状态进行修改,使所述批处理图算法A具备有界增量化性质;将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
需要说明的是,本实施例提供了一种对于所述批处理算法A的所述状态和所述步进函数fA的修改方法,使得将该修改方法应用于一类本来不具备界增量化性质的弱可增量化算法之后,都可以具备有界增量化性质,从而能够转化成为对应的所述增量处理算法AΔ。
本实施例中,所述将所述批处理算法A转化为增量处理算法AΔ的步骤包括:
从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;
依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;
将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ。
本实施例中,所述批处理图算法A包括单源最短路径算法(Single SourceShortest Path,SSSP)、弱联通分量算法(Weakly Connected Component,WCC)、深度优先搜索算法(Depth First Search,DFS)、局部聚类系数算法(Local Clustering Coefficient,LCC)和图仿真算法(Graph Simulation)中的任意一种。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图3,示出了本申请一实施例提供的一种图算法的自动增量化装置,包括:
获取模块210,用于获取批处理图算法A;
第一处理模块220,用于当所述批处理图算法A为不动点计算时,则从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ;
或;
第二处理模块230,用于当所述批处理图算法A为不动点计算时,判断所述批处理图算法A是否具备有界增量化性质;当所述批处理图算法A具备有界增量化性质时,则将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
在本申请一实施例中,所述第一处理模块220,包括:
初始范围函数生成子模块,用于依据所述有向无环图生成基于所述图更新区域ΔG的所述初始范围函数h。
本实施例中,所述第二处理模块230,包括:
第二处理子模块,用于当所述批处理图算法A不具备有界增量化性质时,判断所述批处理图算法A是否具备弱可增量化性质;
当所述批处理图算法A具备弱可增量化性质时,则对所述批处理图算法A的所述步进函数fA和所述状态进行修改,使所述批处理图算法A具备有界增量化性质;将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
本实施例中,还包括:
第三处理模块,用于获取所述查询结果Q(G)和所述图G的更新区域ΔG;使用所述初始范围函数h,将所述查询结果Q(G)的不动点状态修改为对于更新后的图可行的初始状态和所述初始状态上的初始范围使用所述步进函数fA将所述初始状态和所述初始范围迭代至新的不动点,得到所述更新后的图的查询结果
参照图4,示出了本申请的一种图算法的自动增量化的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,内存28,连接不同系统组件(包括内存28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及外围组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
内存28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得操作人员能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图4所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统34等。
处理单元16通过运行存储在内存28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例所提供的一种图算法的自动增量化方法。
也即,上述处理单元16执行上述程序时实现:获取批处理图算法A;当所述批处理图算法A为不动点计算时,则从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ;或;当所述批处理图算法A为不动点计算时,判断所述批处理图算法A是否具备有界增量化性质;当所述批处理图算法A具备有界增量化性质时,则将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
在本申请一实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的一种图算法的自动增量化方法。
也即,给程序被处理器执行时实现:获取批处理图算法A;当所述批处理图算法A为不动点计算时,则从所述批处理图算法A的数据结构和逻辑中获取所述批处理图算法A作为不动点计算的步进函数fA;依据所述批处理图算法A的数据结构和逻辑生成基于图更新区域ΔG的初始范围函数h;将所述初始范围函数h和所述步进函数fA进行组合,得到与所述批处理算法对应的所述增量处理算法AΔ;或;当所述批处理图算法A为不动点计算时,判断所述批处理图算法A是否具备有界增量化性质;当所述批处理图算法A具备有界增量化性质时,则将所述批处理算法A转化为增量处理算法AΔ,所述增量处理算法AΔ具备有界增量化性质。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在操作人员计算机上执行、部分地在操作人员计算机上执行、作为一个独立的软件包执行、部分在操作人员计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到操作人员计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种图算法的自动增量化方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种图算法的自动增量化方法,其特征在于,包括:
获取批处理图算法;
当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法;
或;
当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
2.根据权利要求1所述的自动增量化方法,其特征在于,还包括:
判断所述批处理图算法是否为与图、状态、查询结果和范围有关的一个步进函数的迭代;其中,所述图为无向图;所述状态为所述批处理图算法的数据结构在预设轮开始时的状态;所述查询结果为使用所述批处理图算法对所述图查询后获得的查询结果,所述查询结果由所述状态变构成,每个所述状态变量都与所述图中的某个点或者边相关联,每个所述状态变量都有对应的用于更新所述状态变量的值的更新函数,所述更新函数的输入为所述状态变量的集合,每个所述状态变量对应一个逻辑判断语句,满足每次使用所述更新函数更新所述状态变量之后,所述逻辑判断语句为真,且对于最终的不动点状态,所有的所述逻辑判断语句全部为真;所述范围包括在所述预设轮开始时全部对应于所述逻辑判断语句为非的所述状态变量;
若所述批处理图算法为与所述状态、所述查询结果、所述图和所述范围有关的一个步进函数的迭代,则判定所述批处理图算法为不动点计算。
3.根据权利要求2所述的自动增量化方法,其特征在于,所述依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数的步骤包括:
获取所述更新函数的输入在不动点状态下的一个子集,作为所述状态变量的锚定集;
依据所述锚定集生成有向无环图,所述有向无环图包含不动点状态下所述图中各个点的拓扑偏序关系,所述拓扑偏序关系用于指导所述批处理图算法的变化传播;
依据所述有向无环图生成基于所述图更新区域的所述初始范围函数。
4.根据权利要求3所述的自动增量化方法,其特征在于,在所述将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的所述增量处理算法的步骤之后,还包括:
获取所述查询结果和所述图的更新区域;
使用所述初始范围函数,将所述查询结果的不动点状态修改为对于更新后的图可行的初始状态和所述初始状态上的初始范围;
使用所述步进函数将所述初始状态和所述初始范围迭代至新的不动点,得到所述更新后的图的查询结果。
5.根据权利要求2所述的自动增量化方法,其特征在于,还包括:
当所述批处理图算法不具备有界增量化性质时,判断所述批处理图算法是否具备弱可增量化性质;
当所述批处理图算法具备弱可增量化性质时,则对所述批处理图算法的所述步进函数和所述状态进行修改,使所述批处理图算法具备有界增量化性质;将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
6.根据权利要求1所述的自动增量化方法,其特征在于,所述将所述批处理算法转化为增量处理算法的步骤包括:
从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;
依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;
将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法。
7.根据权利要求1所述的自动增量化方法,其特征在于,所述批处理图算法包括弱联通分量算法、单源最短路径算法、深度优先搜索算法、局部聚类系数算法和图仿真算法中的任意一种。
8.一种图算法的自动增量化装置,其特征在于,包括:
获取模块,用于获取批处理图算法;
第一处理模块,用于当所述批处理图算法为不动点计算时,则从所述批处理图算法的数据结构和逻辑中获取所述批处理图算法作为不动点计算的步进函数;依据所述批处理图算法的数据结构和逻辑生成基于图更新区域的初始范围函数;将所述初始范围函数和所述步进函数进行组合,得到与所述批处理算法对应的增量处理算法;
或;
第二处理模块,用于当所述批处理图算法为不动点计算时,判断所述批处理图算法是否具备有界增量化性质;当所述批处理图算法具备有界增量化性质时,则将所述批处理算法转化为增量处理算法,所述增量处理算法具备有界增量化性质。
9.一种设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110681585.8A CN113343040A (zh) | 2021-06-18 | 2021-06-18 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
PCT/CN2021/102218 WO2022262007A1 (zh) | 2021-06-18 | 2021-06-24 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110681585.8A CN113343040A (zh) | 2021-06-18 | 2021-06-18 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113343040A true CN113343040A (zh) | 2021-09-03 |
Family
ID=77477433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110681585.8A Pending CN113343040A (zh) | 2021-06-18 | 2021-06-18 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113343040A (zh) |
WO (1) | WO2022262007A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934702B (zh) * | 2023-03-14 | 2023-05-23 | 青岛安工数联信息科技有限公司 | 流程工业中数据处理方法、装置、存储介质及处理器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198834B2 (en) * | 2013-04-29 | 2019-02-05 | Microsoft Technology Licensing, Llc | Graph partitioning for massive scale graphs |
CN107193896A (zh) * | 2017-05-09 | 2017-09-22 | 华中科技大学 | 一种基于簇的图数据划分方法 |
US10885118B2 (en) * | 2017-05-12 | 2021-01-05 | Futurewei Technologies, Inc. | Incremental graph computations for querying large graphs |
CN111538867B (zh) * | 2020-04-15 | 2021-06-15 | 深圳计算科学研究院 | 一种有界增量图划分方法和系统 |
-
2021
- 2021-06-18 CN CN202110681585.8A patent/CN113343040A/zh active Pending
- 2021-06-24 WO PCT/CN2021/102218 patent/WO2022262007A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022262007A1 (zh) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270545A (zh) | 基于迁移样本筛选的金融风险预测方法、装置和电子设备 | |
WO2016095068A1 (en) | Pedestrian detection apparatus and method | |
CN109886311B (zh) | 增量聚类方法、装置、电子设备和计算机可读介质 | |
CN111191825A (zh) | 用户违约预测方法、装置及电子设备 | |
WO2024036662A1 (zh) | 一种基于数据采样的并行图规则挖掘方法及装置 | |
JP5418409B2 (ja) | モデル式生成方法、装置及びプログラム | |
CN110633360A (zh) | 一种语义匹配的方法以及相关装置 | |
WO2014020834A1 (ja) | 単語潜在トピック推定装置および単語潜在トピック推定方法 | |
CN113343040A (zh) | 一种图算法的自动增量化方法、装置、设备及存储介质 | |
CN111401514A (zh) | 基于改进图卷积网络的半监督符号网络嵌入方法及系统 | |
CN112988275B (zh) | 一种基于任务感知的移动边缘计算多用户计算卸载方法 | |
CN112800020A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111783843A (zh) | 一种特征选择方法、装置及计算机系统 | |
CN112101891A (zh) | 一种应用于项目申报系统中的数据处理方法 | |
CN116800610A (zh) | 一种分布式的数据平面资源优化方法与系统 | |
WO2022022683A1 (zh) | 特征选择方法及装置、网络设备和计算机可读存储介质 | |
Valdez et al. | A meta-heuristic for topology optimization using probabilistic learning | |
Ismaeel et al. | A systematic cloud workload clustering technique in large scale data centers | |
CN111199153A (zh) | 一种词向量的生成方法及相关设备 | |
EP3920072A1 (en) | System for providing a simulation model, system for illustrating estimated fluid movements around a structure, methods therefore and a computer program product | |
CN112948087A (zh) | 一种基于拓扑排序的任务调度方法及系统 | |
CN111523685B (zh) | 基于主动学习的降低性能建模开销的方法 | |
CN113554307A (zh) | 一种基于rfm模型的用户分组方法、装置及可读介质 | |
CN113408724A (zh) | 模型压缩方法及装置 | |
CN113010642A (zh) | 语义关系的识别方法、装置、电子设备及可读存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210903 |