一种基于代数决策图的增量图模式匹配方法组成比例

技术编号:36867959 阅读:8 留言:0更新日期:2023-03-15 19:24
本发明专利技术公开了一种基于代数决策图的增量图模式匹配方法,包括如下步骤:步骤1:获取模式图和目标图;步骤2:建立辅助结构ADD_IndexTree;步骤3:获取初始解;步骤4:建立针对ADD_IndexTree的动态求解模型;步骤5:建立增量图模式匹配的求解模型IncAMatch。这种方法将传统增量图算法问题转换成为可运算的布尔函数表达式形式,在表现形式上更加紧凑,运算方式也相应转换成简单易行的图形操作,为了实现数据图的更新,基于ADD的表现形式提出了一种增量维护策略,以有效维护中间结果。以有效维护中间结果。以有效维护中间结果。

【技术实现步骤摘要】
一种基于代数决策图的增量图模式匹配方法


[0001]本专利技术涉及动态图的模式匹配领域,具体涉及一种基于代数决策图(Algebraic decision diagram,简称ADD)的增量图模式匹配方法。

技术介绍

[0002]图模式匹配在许多实际问题中都有广泛的应用,例如医学蛋白网络、程序分析和社会分析。它的目的是在数据图形中找到模式图形的所有匹配子图。然而在现实世界中,描述实体对象图数据的结构和内容往往会随着时间的推移而发生变化。动态图由初始图、边插入和边删除的图更新流定义。识别和监控动态图中的关键模式在各种应用领域中都很重要。例如,网络安全应用程序应在数据图中出现网络入侵和攻击时立即检测计算机网络流量。通过引入增量处理技术,当数据图更新时,仅对图中更新的数据进行分析和重新匹配,避免对整体数据的重复计算。然而,子图同构是一个NP完全问题,限制性太强,因为它要求匹配的子图具有与模式图完全相同的拓扑。这些严格的约束条件阻碍了其在社交网络和犯罪侦查等新兴应用中的适用性。受限图模拟(BGS),该方法限制较少,更能有效提取更有用的子图,因为它支持模拟关系,而不是边和节点的精确匹配,如果数据图中路径的开始节点和结束节点分别与模式图中边的对应节点具有相同的标签,则边的匹配可以是路径,因此非常适合在犯罪侦查、网络异常等方面的应用。
[0003]2011年樊文飞等人在《Grap hpattern matching:From intractability to polynomial》提出适用于受限模拟匹配的增量算法来寻找匹配子图。这种方法利用最短路径矩阵存储数据图节点之间的最短距离作为辅助结构,当数据图发生动态变化时,比如边的插入或者删除时,首先使用《An incremental algorithm for a generalization of the shortest

path problem》中提出的算法获取最新的最短路径矩阵,然后考虑路径值前后发生变化的节点对是否会对匹配结果产生影响,如果有影响,就更新匹配结果。
[0004]2013年樊文飞等人在《Incremental Graph Computations:Doable and Undoable》引入了加权路标向量的概念,通过加权路标向量存储节点之间的路径信息,并针对加权路标向量提出了增量算法,新算法优化了空间复杂度。
[0005]2021年孙国豪等人在《Updates

Aware Graph Pattern based Node Matching》中虽然在增量更新上除了考虑数据图,同时考虑了模式图的动态变化,但是辅助结构依然利用距离矩阵来存储匹配过程中的中间结果,对空间和算法效率有较大影响。
[0006]樊文飞等人在《Query preserving graph compression》提出了一种基于图段的强模拟匹配方法,该方法将压缩技术应用到图匹配过程中,通过将大规模数据图转换为与查询相关的小图,小图只保留与Q中的查询相关的信息,而不是整个原始图,从而降低了数据图存储时的空间复杂度,但是压缩方式受限于匹配时的约束条件,只能进行数据图的局部压缩,而无法做到同时将模式图和辅助结构压缩,因此算法仍然有很大的提升空间。
[0007]有序二叉决策图(Ordered Binary Decision Dia—gram,简称OBDD)是描述布尔函数的一种图式结构,具有高紧凑性和易操作的优点,且以集合的方式进行操作。OBDD及其
扩展结构在硬件验证、模型检验、组合优化等应用领域得到广泛应用。在对可满足性问题的求解方面,OBDD及其扩展结构也是一种行之有效的技术。代数决策图(Algebraic Decision Diagram,简称ADD)是OBDD的一种扩展结构,其特点是可以对伪布尔函数进行紧凑高效的表示和操作。
[0008]代数决策图(Algebraic decision diagram,简称ADD):ADD是表示基于变量序π:x1<x2<

<x
n
的一族伪布尔函数f
i
:{0,1}
n

S的一个有向无环图,它满足:
[0009](1)S为ADD代数结构的有限值域,且S∈Z(整数集合)。
[0010](2)ADD中的节点分为根节点、终节点和内部节点三类。
[0011](3)终节点集合记为T。对任意t∈T,均被标识为值域S中的一个元素是s(t)。每个非终节点u具有四元组属性(f
u
,n
var
,l,h),其中,f
u
表示节点u所对应的伪布尔函数;n
var
表示节点u的标记变量;l表示节点u的n
var
=0时,节点u的0

分支子节点;h表示节点u的n
var
=1时,节点u的1

分支子节点。
[0012](4)图中的每一个节点u对应唯一一个函数f
u

[0013](5)图中任意一条从根节点到终节点的路径中,所有变量均按变量序π的顺序出现且仅出现一次。

技术实现思路

[0014]本专利技术的目的是针对现有技术中存在的不足,解决在大规模数据图上发生更新操作时,由于传统图匹配算法在模式图、数据图以及辅助结构的存储上空间复杂度太高,限制了匹配的规模,其次传统图匹配在单机环境下只能串行处理,无法实现多个节点同时处理的情况。这种方法解决了传统图匹配过程中匹配规模受限的问题,可以对多节点同时进行操作。
[0015]实现本专利技术目的的技术方案是:
[0016]一种基于代数决策图的增量图模式匹配方法,包括如下步骤:
[0017]步骤1:获取模式图和目标图:获取社交网络数据集中的模式图和目标图,其中模式图为以图的形式表示出来的人与人之间的关联关系,目标图为是否存在该模式图的数据图,根据模式图和数据图数据,使用CUDD软件包对模式图和数据图进行编码转换,将传统的图存储方式转换为二进制存储;
[0018]步骤2:建立辅助结构ADD_IndexTree,根据步骤1获取到编码后的数据图,利用迪杰斯特拉算法求任意两节点之间的最短路径,将节点对及其对应的路径信息存储在辅助结构ADD_IndexTree中;
[0019]步骤3:获取初始解:在增量图模式匹配方法开始前,先通过静态图模拟算法获取模式图和数据图匹配的初始解,然后用ADD编码的形式进行存储;
[0020]步骤4:建立针对ADD_IndexTree的动态求解模型,首先读取更新操作,然后根据更新操作的类型,调用不同的方法,获取受影响节点对AFF,若是删除操作,执行DynamicSPTDel方法更新ADD_IndexTree中路径值发生改变的节点对AFF_Del,若是插入操作,执行DynamicSPTInsert方法更新ADD本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代数决策图的增量图模式匹配方法,其特征在于,包括如下步骤:步骤1:获取模式图和目标图:获取社交网络数据集中的模式图和目标图,其中模式图为以图的形式表示出来的人与人之间的关联关系,目标图为是否存在该模式图的数据图,根据模式图和数据图数据,使用CUDD软件包对模式图和数据图进行编码转换,将传统的图存储方式转换为二进制存储;步骤2:建立辅助结构ADD_IndexTree,根据步骤1获取到编码后的数据图,利用迪杰斯特拉算法求任意两节点之间的最短路径,将节点对及其对应的路径信息存储在辅助结构ADD_IndexTree中;步骤3:获取初始解:先通过静态图模拟算法获取模式图和数据图匹配的初始解,然后用ADD编码的形式进行存储;步骤4:建立针对ADD_IndexTree的动态求解模型,首先读取更新操作,然后根据更新操作的类型,调用不同的方法,获取受影响节点对AFF,若是删除操作,执行DynamicSPTDel方法更新ADD_IndexTree中路径值发生改变的节点对AFF_Del,若是插入操作,执行DynamicSPTInsert方法更新ADD_IndexTree中路径值发生改变的节点对AFF_Insert;(1)DynamicSPTInsert方法:从插入边e的两个节点开始,更新两个节点的距离,若边e本来就存在,则距离不改变,退出;否则以边e为中心向两侧扩散,获取源节点的入度边和终节点的出度边,然后提取入度边的源点inNodes和出度边的终结点outNodes,判断inNodes和outNodes中任意节点对最短路径经过边e是否会发生变化,对于发生变化的节点对更新路径信息同时记录在AFF_Insert中,并以这些点为中心继续向两侧扩散,直到无节点对的路径值再发生变化,退出;(2)DynamicSPTDel方法:从删除边e的两个节点开始,更新两个节点的距离,若边e本来就不存在,则距离不改变,退出;否则以边e为中心向两侧扩散,获取源节点的入度边和终节点的出度边,然后提取入度边的源点inNodes和出度边的终结点outNodes,判断inNodes和outNodes中任意节点对最短路径是否会因为边e的删除而发生变化,对于发生变化的节点对更新路径信息同时记录在AFF_Del中,并以这些点为中心继续向两侧扩散,直到无节点对的路径值再发生变化,退出;步骤5:建立增量图模式匹配的求解模型IncAMatch:(1)当为插入操作时,根据获取到的AFF_Insert,判断AFF_Insert中的节点对是否因为路径值发生改变而存在原本路径长度不满足但现在满足的节点对,然后进一步判断邻居约束以及标签约束,在条件都满足的情况下,更新匹配结果,执行(3);(2)当为删除操作时,根据获取到的AFF_Del,判断AFF_Del中的节点对是否因为路径值发生改变而使得原本满足路径长度条件的节点对变得不再满足,对于匹配结果中不满足约束条件的节点及其边需要删除,更新匹配结果,执行(3);(3)返回更新后的匹配结果,结束。2.根据权利要求1所述的基于代数决策图的增量图模式匹配方法,其特征在于,所述步骤1中使用CUDD软件包对模式图和数据图进行编码转换,具体转换过程如下:(1)首先统计节点数量|V|=n,标签数量|P|=k;(2)根据节点标签数量计算编码长度,其中节点编码采用长度为的二进制
串表示,标签编码采用长度为的二进制串表示;(3)边代表节点与节点间的二元关系,因此边记为其中U变量表示边的起始节点的标签属性,X变量表示起始节点,V变量表示边的终节点的标签属性,Y表示边的终节点,因此(U,X,V,Y)表示从节点(U,X)到节点(V,Y)的一条边,边的标签表示路径长度,保存在叶子节点处。3.根据权利要求1所述的基于代数决策图的增量图模式匹配方法,其特征在于,所述步骤2中建立辅助结构ADD_IndexTree,具体的建立过程如下:输入ADD表示的数据图,通过迪杰斯特拉算法求取数据图中任意两个节点对之间的最短路径,辅助结构ADD_IndexTree基于ADD的形式创建,为了降低空间复杂度和存储更多有用信息,对辅助结构进行编码设计,新的编码方式除了用压缩数据表示之外,还能记录遍历过的最短路径信息,具体的编码形式如下:ADD_IndexTree的编码形式在边编码的基础上进行了改进,记为ADD_IndexTree的编码形式在边编码的基础上进行了改进,记为其中X,Y是最短路径树上的一条边(U,X,V,Y)量化掉标签编码U,V后的表现形式,Z表示最短路径树的源节点,W表示最短路径树的终结点,因此(Z,W)表示节点对N,(X,Y)表示N的最短路径树上的一条边,同时在叶子节点保留两点的最短路径值,将数据图G的边集E
g
转化为ADD表示记为E
g
(U,X,V,Y),查询图q的边集记为E
q
(U,X,V,Y),查询图q边上的路径约束存储在叶子节点处;ADD_IndexTree具体构建过程如下:(1)给定一个ADD编码的数据图Eg,首先会初始化表示ADD_IndexTree的存储结构structTable(X,Y,Z,W);(2)针对数据图中的每对节点NodePair(X,Y)调用FindPath函数求取最短路径树pathTree(X,Y);(3)通过SwapVariables方法对节点对NodePair(X,Y)的编码进行转换得到NodeZW(Z,W);(4)将pathTree(X,Y)中的每一条边edge(X,Y)∈pathTree(X,Y)和NodeZW(Z,W)进行拼接操作,同时将最短路径值保存在pathEdge(X,Y,Z,W)的叶子节点得到s(X,Y,Z,W),最后将结果更新到structTable(X,Y,Z,W)中,返回第(2)步,进入下一次循环;(5)结束,返回structTable(X,Y,Z,W)。4.根据权利要求1所述的基于代数决策图的增量图模式匹配方法,其特征在于,所述步骤3中获取初始解的具体过程为:初始化匹配结果集,即在数据图变化之前数据图和模式图匹配的子图集,通过分析模式图和目标图中点和边的信息和连接关系,并采用约束满足问题的基本思想,建立CSP求解模型,CSP求解模型为一个三元组CSP P<R,D,C>,其中:R为变量集,对应为模式图中的节点集;D为值域集,对应为目标图中的满足条件的节点集;C为约束条件集,C={C1,C2,C3,C4},C1为度约束,C2为全不同约束,C3为节点标签,C4为邻居约束,C5为路径长度约束;首先根据C1、C3约束对模式图中的每一个节点进行初始化,即根据节点标签以及度信息筛选候选集,然后对变量进行赋值,在赋值中,根据全不同约束C2,保证每一个变量各自的值域中至少存在一个取值,并且每个变量的取值各不相同;在给变量实例化的过程中,需
要检查配对的节点是否满足约束C1、C2、C3、C4、C5,若不满足约束C1、C2、C3、C4、C5,对结果进行回溯,若满足约束C1、C2、C3、C4、C5,则更新各自的值域,直至所有变量都被赋值,结果则为其中一个匹配解,然后回溯遍历所有匹配解。5.根据权利要求1所述的基于代数决策图的增量图模式匹配方法,其特征在于,所述步骤4中插入操作的过程为:1)对于每一条边首先判断e(U,X,V,Y)是否存在于数据图E
g
中,若存在,说明对于匹配结果没有影响,因此直接返回;2)更新从edge(U,X)出发经过edge(U,X,V,Y)的节点(V
i
,Y
i
)∈V
g
,判断是否因为新插入的边而使节点对(U,X,V
i
,Y
i
)的最短路径发生了变化,若(V
i
,Y
i
)和edge(U,X)的距离减少了,将edge(U,X)与(V
i
,Y
i
)量化掉标签U,V
i
然后合并为一条边e(X,Y
i
),并在叶子节点存储路径值,存入Aff1(X,Y),具体过程如下:

初始化受影响节点对集合Aff1(X,Y);

判断从edge(U,X)出发经过边edge(U,X,V,Y)可达的节点与edge(U,V)之间的...

【专利技术属性】
技术研发人员:徐周波许昌胜吴量张军伟王嘉鑫龙广兴
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1