CN106294739A - 一种基于k2树和多值决策图的大规模图数据处理方法 - Google Patents

一种基于k2树和多值决策图的大规模图数据处理方法 Download PDF

Info

Publication number
CN106294739A
CN106294739A CN201610651202.1A CN201610651202A CN106294739A CN 106294739 A CN106294739 A CN 106294739A CN 201610651202 A CN201610651202 A CN 201610651202A CN 106294739 A CN106294739 A CN 106294739A
Authority
CN
China
Prior art keywords
limit
mdd
summit
gained
coding
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
Application number
CN201610651202.1A
Other languages
English (en)
Inventor
古天龙
张新凯
刘华东
董荣胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201610651202.1A priority Critical patent/CN106294739A/zh
Publication of CN106294739A publication Critical patent/CN106294739A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明为一种基于k2树和多值决策图的大规模图数据处理方法,步骤如下:1、根据k2树的规则对图的顶点进行n位编码,k≥2;2、依据顶点编码对边进行编码;3、根据边编码构造多值决策图结构,得与有向图G对应的、含有n个变量的k2‑MDD结构,其具有MDD的性质,适用MDD的化简规则;4,对所得的k2‑MDD结构采用符号决策图的逻辑操作进行图的基本操作:边查询、外邻查询及求顶点出度、内邻查询及求顶点入度、增加边及删除边等。本法采用MDD存储图数据,使k2树中的同构子树被合并,节点变少,结构更为紧凑;图的基本操转化逻辑操作,更为简洁。

Description

一种基于k2树和多值决策图的大规模图数据处理方法
技术领域
本发明涉及大规模图数据存储与操作技术领域,具体涉及一种基于k2树和多值决策图的大规模图数据处理方法。
背景技术
随着移动互联网、物联网等技术的发展,众多新应用以前所未有的方式和速度产生并积累着大量数据。在众多类型的大数据中,图数据作为一种有效描述大数据的数据结构,扮演着越来越重要的角色。由于图数据的规模日益庞大,实现图数据的高效存储以及图数据的高效操作是当前面临的挑战。以社交网络为例,根据GlobalWebIndex统计,Facebook用户量已经超过11亿,平均每个人的好友超过100位,使用邻接表来存储所有用户的关系信息,需要接近1TB的存储空间。以互联网为例,根据中国互联网络信息中心(CNNIC)发布的《第37次中国互联网络发展状况统计报告》,截至2015年12月中国网页数量为2123亿个,超链接数据量估计超过1013,使用邻接表来存储网页直接的链接关系信息需要超过16TB的存储空间。随着用户量和信息量的快速增长,问题将会变得越来越严峻。
为了对图数据进行紧凑表示,在传统的邻接矩阵表示法的基础上,Brisaboa等于2009年提出了基于k2树(k2-tree)的方法,树中的每一层对应于邻接矩阵或分块子矩阵的分块子矩阵,节点对应于邻接矩阵的分块子矩阵,生成的k2树使用两个位向量T和L来存储,该方法不仅能够紧凑表示邻接矩阵,而且能实现邻接节点的正向或逆向高效查询操作。施佺等给出了k2树表示方法的两种优化技术:启发式深度优先节点重排序和自适应修正k,使得所表示的结构更为紧凑,节点得到明显的减少。
但是,不论是k2树还是施佺优化过的k2树,在对大规模图数据表示时仍具有一定的局限性,具体表现在:
1)当图的规模变大时,图内部本身就会存在大量的同构子图。同样的,当按照k2树的思想把邻接矩阵进行划分后,也存在大量的相同的子矩阵。这就造成了k2树内也存在大量的同构子树。
2)k2树仅对稀疏图有效,当图变的稠密时,由于邻接矩阵内可被压缩的0节点变少,因此k2树紧凑性也会变低。
3)k2树未涉及动态图(需要添加或删除顶点、边以及子图等的图)的表示与操作。
目前的k2树的图数据紧凑表示方法对上述图的结构特性尚缺乏必要的考虑,在紧凑性上仍有较大的改善空间。针对k2树目前存在的问题,有必要对其进行进一步的优化与改进,以得到一种更为紧凑并且适用面更广的图数据的表示方法。
发明内容
本发明的目的是提供一种基于k2树和多值决策图的大规模图数据处理方法,包括对图数据的存储方法,以及相关的图的基本操作方法(如对边的增删改查等),以对包含亿万个顶点和边的图数据进行高效、紧凑地表示和操作。
多值决策图MDD(Multi-valued Decision Diagram)是一个具有多个终端节点的有向无环图,描述了一个带有n个变量的离散多值函数,f:D1×D2×…×Di×…×Dn→S,其中:
1)Di={1,2,…,ni}为多值变量xi的有限值域,不同变量其值域可能不同;S为多值函数f的有限值域,即MDD终端节点的取值集合,其可能为布尔值(真和假,或者0和1)、有限整数集合或者有限实数集合。
2)MDD的节点包括终端节点和非终端节点。
3)非终端节点用xi表示,包含ni个指向其他节点的指针,这些指针和函数f对应,形式化描述如公式(1)所示。
fxi=c=f(x1,x2,…,xi-1,c,xi+1,…,xn) (1)
多值变量x1到xn给定的一组取值,得到唯一的终端节点取值。
MDD的化简规则为以下三条:
规则1、合并相同终端节点:
同一属性的终端节点只保留一个,并删除其余相同属性的终端节点,原来指向这些已删除的终端节点的指针重定向到保留的终端节点上。
规则2、合并相同内部节点:
同一属性的内部节点,即非终端节点,只保留一个,并删除其余相同属性的内部节点,原来指向这些已删除的节点的指针重定向到保留的内部节点上。
规则3,删除冗余节点:
如果一个节点的所有指针都指向同一节点,那么该节点就是冗余节点,将其删除,并将指向该节点的指针指向删除节点的孩子节点。
本发明设计的一种基于k2树和多值决策图的大规模图数据处理方法,采用k2树的规则对邻接矩阵进行划分,然后使用多值决策图MDD存储图数据,生成的k2-MDD结构。不仅比k2树存储结构紧凑,图的相关基本操作转化为符号决策图的逻辑操作。
本发明的一种基于k2树和多值决策图的大规模图数据处理方法,所述原图为有向图G=(V,E),其顶点数|V|为大于等于1的整数,边数|E|为大于等于1的整数;
包括如下步骤:
步骤1、根据k2树的规则对图的顶点进行n位编码,其中,k是大于等于2的整数;
步骤2、依据步骤1所得顶点编码,对图的边进行编码;
步骤3、根据步骤2所确定的边编码,构造多值决策图结构,即MDD结构,所得为k2-MDD结构。k2-MDD结构是MDD结构的一种特殊情况,限定了它的变量个数和变量的取值范围,其变量个数每个变量的取值范围均为{1,2,…,k2}。故k2-MDD具有MDD的性质,适用MDD的化简规则;
k2-MDD结构为图的邻接矩阵用一个将原始矩阵进行递归的k2等分后构造的多值决策图结构,图的邻接矩阵中任一单元均对应于k2-MDD n个变量的唯一一组取值,根据该组取值得到的唯一函数值即终端节点的值,并且此值与原始矩阵中对应单元格的元素值相等。
本发明构造的含有n个变量的k2-MDD,令其n个变量的值等于边编码集合里的值,函数值为T,否则为F,所得k2-MDD与有向图G对应。
步骤4,根据步骤3所得的k2-MDD结构进行图的基本操作。
步骤3得到了原图的k2-MDD结构,由于其是基于多值决策图,采用符号决策图的逻辑操作进行图的相关基本操作:边查询、外邻查询及求顶点出度、内邻查询及求顶点入度、增加边及删除边等。
上述步骤1具体子步骤为:
步骤1.1、依据k2树对图的邻接矩阵划分的规则,即k2划分规则,确定图数据顶点的编码长度n为顶点个数以k为底的对数向上取整,即其中k是大于等于2的整数;
步骤1.2、使用k分方式,对原始图中某一编号为N的顶点进行编码,1≤N≤|V|。首先令k分的下界LT=1,上界HT=kn
步骤1.3、如果LT<HT,令L=LT,H=HT,将区间[L,H]进行k等分。假设N处在区间[L,H]等分为k个子区间中的第i个子区间,i从0开始计数,则编号为N的顶点得到一位编码记为i,同时将此第i个子区间记为[LT,HT];
步骤1.4、步骤1.3重复进行下去,直至LT≥HT,此时即得到该编号为N的顶点的n位编码,n位编码中每一位都是k种状态之一即(0,1,…,k-1)之一。
上述步骤2具体子步骤为:
步骤2.1、本发明中原图的有向边为顶点之间的关系,用顶点之间的特征函数描述。如顶点v0到顶点v1之间的边,用特征函数E(v0,v1)来描述。设X=(x1,…,xn),Y=(y1,…,yn)是图中顶点的编码向量,则顶点X到顶点Y的边的特征函数表示为:
E(X,Y):{0,1,…k-1}n×{0,1,…k-1}n→{1,2,…k2}n
即两个顶点编码的每一位上的k种状态组合得到k2种状态。因此,边的编码长度依然是n位,编码的每一位是k2种状态之一,即(1,2,…k2)状态之一;
根据步骤1得到的将要进行编码的某条边的起、止两个顶点的编码,将该边的两个顶点的某对应位编码状态进行组合,即得到该边的一位编码;n位编码状态依次对应组合,即得到该边的n位编码;
步骤2.2、重复步骤2.1,直至得到图中所有边的编码。
上述步骤3具体子步骤为:
步骤3.1、使用多终点和边值决策图库,即MEDDLY(Multi-terminal and Edge-Valued Decision Diagram Library),创建取值范围均为{1,2,…,k2}的n个变量。根据此n个变量,对于无权图,初始化一个布尔型MDD,其终点是真或者是假;对于加权图,初始化一个整数或者实数型MDD,其终点是整数或者实数;
MEDDLY库是为操控MDD提供的一个C/C++开源项目,由爱荷华州立大学在LINUX平台下开发,其中提供了丰富的MDD构造以及操作的函数。例如:使用createVariablesBottomUp()函数创建将要构造MDD的变量个数以及每个变量的取值范围;使用createEdge()函数根据给定的一组或多组变量的值生成一个MDD;使用apply()函数以及UNION运算符将两个MDD进行合并。
步骤3.2、假设原图中有m条边,根据步骤2得到其中某条边的编码,使用MEDDLY库中的createEdge()函数生成一个初始MDD,记为R;在其余边中再取一条边用相同方法生成MDD,记为T;
步骤3.3、使用MEDDLY库中提供的UNION运算符,对步骤3.2得到的R和T进行UNION运算,合并结果覆盖原来的R,仍记作R;
步骤3.4、继续在剩余的边中再取一条边用相同方法生成MDD,记为T,R和T进行UNION运算,合并结果仍记作R;
重复此步骤,直至所有边都生成MDD并合并到R中,最终得到的R即为原图的k2-MDD。
上述步骤4具体子步骤为:
步骤4.1、边查询
在步骤3所得的k2-MDD结构图上,根据某条边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),在步骤3所得原图的k2-MDD中检测E(v1,v2)的函数值。若值为T,则该边存在,否则不存在。
使用MEDDLY库中提供INTERSECTION运算符求两个MDD的交运算。将步骤3所得的原图的k2-MDD与根据该条边的特征函数E(v1,v2)生成的k2-MDD进行INTERSECTION运算,运算结果为T,则该边存在,否则不存在;
步骤4.2、外邻查询
在步骤3所得的k2-MDD结构图上进行的外邻查询操作包括求得顶点出度,根据步骤4.1中的边查询的结果,将要进行外邻查询的顶点赋值为v1,图中所有其它顶点依次赋值为v2,检测E(v1,v2)的函数值。若值为T,则当前v2是v1的一个外邻点,否则不是;通过统计v1外邻点的个数得到该顶点v1的出度;
步骤4.3、内邻查询
在步骤3所得的k2-MDD结构图上的内邻查询操作包括求得顶点入度,与步骤4.2外邻查询类似,将要进行外邻查询的顶点赋值为v2,图中所有其它顶点依次赋值为v1,检测E(v1,v2)的函数值。若值为T,则当前v1是v2的一个内邻点,否则不是;通过统计v2内邻点的个数得到该顶点v2的入度;
步骤4.4、增加边
在步骤3所得的k2-MDD结构图上,根据要增加边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后与步骤3所得原图的k2-MDD进行UNION运算,运算结果即为增加了该边的新图的k2-MDD;
步骤4.5、删除边
在步骤3所得的k2-MDD结构图上根据要删除边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后将步骤3所得原图的k2-MDD与要删除边的k2-MDD进行DIFFERENCE运算,运算结果即为删除了该边的新图的k2-MDD。DIFFERENCE是MEDDLY库中提供的一个运算符,用来求两个MDD的差运算,DIFFERENCE(A,B)={x|x属于A且x不属于B}。
根据上述图的基本操作,可拓展完成图的复杂操作,比如图中顶点的添加与删除、子图的添加与删除、宽度优先搜索、求最短路、网络流等等。
与现有技术相比,本发明一种基于k2树和多值决策图的大规模图数据处理方法的优点为:1、采用k2树的规则对邻接矩阵进行划分,然后使用多值决策图存储图数据,使k2树划分邻接矩阵时产生的大量相同的子矩阵,即k2树中的同构子树,自然地被合并,最终生成的k2-MDD结构比k2树存储结构紧凑;2、由于k2-MDD中不论是0值还是1值的子矩阵,只要是同构的,都将被合并,在表示稠密图时,k2-MDD节点数会变少,结构更为紧凑;3、k2-MDD存储图数据后,图的相关基本操作可转化为符号决策图的逻辑操作,为动态图数据的高效操作创造了条件,使得基于k2-MDD图的查询操作要比基于k2树更为简洁;4、k2-MDD是基于多值决策图的结构,其本身结构比k2树更有利于子图查询、图同构、图/子图匹配以及多图匹配等。
具体实施方式
以下结合实施例对本发明做进一步详细的描述。
本基于k2树和多值决策图的大规模图数据处理方法实施例原图为有向图G=(V,E),其顶点数|V|为大于等于1的整数,边数|E|为大于等于1的整数;包括如下步骤:
步骤1、根据k2树的规则对有向图G=(V,E)的顶点进行n位编码,其中,本例k=2;对于编号为N的顶点,1≤N≤|V|,将顶点总数|V|以递归2分方式进行编码,在顶点的n位编码中每一位都是2种状态之一,0或1,
步骤1.1、依据k2树对有向图的邻接矩阵划分的规则,即k2划分规则,确定图数据顶点的编码长度n为顶点个数以2为底的对数向上取整,即
步骤1.2、本例k=2,使用二分方式对顶点进行编码。二分的下界LT=1,上界HT=2n;对于编号为N的顶点,1≤N≤|V|,对总数|V|的顶点按递归二分方式进行编码。根据原图中编号为N的顶点在所有顶点数中的所在位置,得到一个状态作为其一位编码,本例编号为N的顶点的n位编码中每一位都是2种状态之一,即0或1;
步骤1.3、若LT<HT,二分方式的中值等于上界与下界和的一半。若N小于或等于中值,得到编号为N的顶点的一位编码为“0”,同时将中值减1作为上界HT;否则,得到编号为N的顶点的一位编码为“1”,同时中值加1作为下界LT;
步骤1.4、步骤1.3重复进行,直至LT≥HT,此时便得到该编号为N的顶点的n位编码。
步骤2、依据步骤1所得顶点编码,对原图的边进行编码;
步骤2.1、本发明中图的有向边为顶点之间的关系,用顶点之间的特征函数描述。如顶点v0到顶点v1之间的边,用特征函数E(v0,v1)来描述。设X=(x1,…,xn),Y=(y1,…,yn)是图中顶点的编码向量,则顶点X到顶点Y的边的特征函数表示为:
E(X,Y):{0,1,…k-1}n×{0,1,…k-1}n→{1,2,…k2}n
即两个顶点编码的每一位上的k种状态组合得到k2种状态。因此,边的编码长度依然是n位,编码的每一位是k2种状态之一,本例边编码的每一位即1,2,3,4四种状态之一;
根据步骤1得到的将要进行编码的某条边的起、止两个顶点的编码,将该边的两个顶点的某对应位编码状态进行组合,即得到该边的一位编码;n位编码状态依次对应组合,即得到该边的n位编码;
步骤2.2、重复步骤2.1,直至得到图中所有边的编码。
步骤3、根据步骤2所确定的边编码,构造多值决策图结构,即MDD(Multi-valuedDecision Diagram)结构;所得为k2-MDD结构;
步骤3.1、使用多终点和边值决策图库,即MEDDLY(Multi-terminal and Edge-Valued Decision Diagram Library),初始化一个含有n个变量的MDD,即顶点或边的编码长度n,其值域如步骤2.1所述为1~k2,本例为1~4。
对于无权图,使用布尔型MDD,其终点是真(T)或者是假(F);对于加权图,使用整数或者实数型MDD,其终点是整数或者实数;
步骤3.2、根据步骤2所得的一条边编码,使用MEDDLY库中的createEdge()函数生成一个初始MDD;用相同方法生成另一条边的MDD;
步骤3.3、使用MEDDLY库中提供的UNION运算符,对步骤3.2两条边生成的MDD进行UNION运算,合并结果保存在步骤3.1所得的初始MDD中;
步骤3.4、重复步骤3.2和3.3,直至所有边都生成MDD并合并到初始MDD中,最终得到的MDD即为原图的k2-MDD。
步骤4,根据步骤3所得的k2-MDD结构进行图的基本操作。
步骤4.1、边查询
在步骤3所得的k2-MDD结构图上,根据某条边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),在步骤3所得原图的k2-MDD中检测E(v1,v2)的函数值。若值为T,则该边存在,否则不存在。
使用MEDDLY库中提供INTERSECTION运算符求两个MDD的交运算。将步骤3所得原图的k2-MDD与根据该条边的特征函数E(v1,v2)生成的k2-MDD进行INTERSECTION运算,运算结果为T,则该边存在,否则不存在;
步骤4.2、外邻查询
在步骤3所得的k2-MDD结构图上进行的外邻查询操作包括求得顶点出度,根据步骤4.1中的边查询的结果,将要进行外邻查询的顶点赋值为v1,图中所有其它顶点依次赋值为v2,检测E(v1,v2)的函数值。若值为T,则当前v2是v1的一个外邻点,否则不是;通过统计v1外邻点的个数得到该顶点v1的出度;
步骤4.3、内邻查询
在步骤3所得的k2-MDD结构图上的内邻查询操作包括求得顶点入度,与步骤4.2外邻查询类似,将要进行外邻查询的顶点赋值为v2,图中所有其它顶点依次赋值为v1,检测E(v1,v2)的函数值。若值为T,则当前v1是v2的一个内邻点,否则不是;通过统计v2内邻点的个数得到该顶点v2的入度;
步骤4.4、增加边
在步骤3所得的k2-MDD结构图上,根据要增加边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后与步骤3所得原图的k2-MDD进行UNION运算,运算结果即为增加了该边的新图的k2-MDD;
步骤4.5、删除边
在步骤3所得的k2-MDD结构图上根据要删除边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后将步骤3所得原图的k2-MDD与要删除边的k2-MDD进行DIFFERENCE运算,运算结果即为删除了该边的新图的k2-MDD。DIFFERENCE是MEDDLY库中提供的一个运算符,用来求两个MDD的差运算,DIFFERENCE(A,B)={x|x属于A且x不属于B}。
上述实施例,仅为对本发明的目的、技术方案和有益效果进一步详细说明的具体个例,本发明并非限定于此。凡在本发明的公开的范围之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

Claims (5)

1.一种基于k2树和多值决策图的大规模图数据处理方法,所述原图为有向图G=(V,E),其顶点数|V|为大于等于1的整数,边数|E|为大于等于1的整数;其特征为包括如下步骤:
步骤1、根据k2树的规则对图的顶点进行n位编码,其中,k是大于等于2的整数;
步骤2、依据步骤1所得顶点编码,对图的边进行编码;
步骤3、根据步骤2所确定的边编码,构造多值决策图结构,即MDD结构,所得为k2-MDD结构;
k2-MDD结构为图的邻接矩阵用一个将原始矩阵进行递归的k2等分后构造的多值决策图结构;
步骤4,根据步骤3所得的k2-MDD结构进行图的基本操作。
2.根据权利要求1所述的基于k2树和多值决策图的大规模图数据处理方法,其特征在于:
所述步骤1具体子步骤为:
步骤1.1、依据k2树对图的邻接矩阵划分的规则,即k2划分规则,确定图数据顶点的编码长度n为顶点个数以k为底的对数向上取整,即其中k是大于等于2的整数;
步骤1.2、使用k分方式,对原始图中某一编号为N的顶点进行编码,1≤N≤|V|;首先令k分的下界LT=1,上界HT=kn
步骤1.3、如果LT<HT,令L=LT,H=HT,将区间[L,H]进行k等分;假设N处在区间[L,H]等分为k个子区间中的第i个子区间,i从0开始计数,则编号为N的顶点得到一位编码记为i,同时将此第i个子区间记为[LT,HT];
步骤1.4、步骤1.3重复进行下去,直至LT≥HT,此时即得到该编号为N的顶点的n位编码,n位编码中每一位都是k种状态之一即(0,1,…,k-1)之一。
3.根据权利要求1所述的基于k2树和多值决策图的大规模图数据处理方法,其特征在于:
所述步骤2具体子步骤为:
步骤2.1、本发明中原图的有向边为顶点之间的关系,用顶点之间的特征函数描述;如顶点v0到顶点v1之间的边,用特征函数E(v0,v1)来描述;设X=(x1,…,xn),Y=(y1,…,yn)是图中顶点的编码向量,则顶点X到顶点Y的边的特征函数表示为:
E(X,Y):{0,1,…k-1}n×{0,1,…k-1}n→{1,2,…k2}n
即两个顶点编码的每一位上的k种状态组合得到k2种状态;边的编码长度依然是n位,编码的每一位是k2种状态之一,即(1,2,…k2)状态之一;
根据步骤1得到的将要进行编码的某条边的起、止两个顶点的编码,将该边的两个顶点的某对应位编码状态进行组合,即得到该边的一位编码;n位编码状态依次对应组合,即得到该边的n位编码;
步骤2.2、重复步骤2.1,直至得到图中所有边的编码。
4.根据权利要求1所述的基于k2树和多值决策图的大规模图数据处理方法,其特征在于:
所述步骤3具体子步骤为:
步骤3.1、使用MEDDLY库创建取值范围均为{1,2,…,k2}的n个变量;根据此n个变量,对于无权图,初始化一个布尔型MDD,其终点是真或者是假;对于加权图,初始化一个整数或者实数型MDD,其终点是整数或者实数;
步骤3.2、假设原图中有m条边,根据步骤2得到其中某条边的编码,使用MEDDLY库中的createEdge()函数生成一个初始MDD,记为R;在其余边中再取一条边用相同方法生成MDD,记为T;
步骤3.3、使用MEDDLY库中提供的UNION运算符,对步骤3.2得到的R和T进行UNION运算,合并结果覆盖原来的R,仍记作R;
步骤3.4、继续在剩余的边中再取一条边用相同方法生成MDD,记为T,R和T进行UNION运算,合并结果仍记作R;
重复此步骤,直至所有边都生成MDD并合并到R中,最终得到的R即为原图的k2-MDD。
5.根据权利要求1所述的基于k2树和多值决策图的大规模图数据处理方法,其特征在于:
所述步骤4具体子步骤为:
步骤4.1、边查询
在步骤3所得的k2-MDD结构图上,根据某条边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),在步骤3所得原图的k2-MDD中检测E(v1,v2)的函数值;若值为T,则该边存在,否则不存在;
使用MEDDLY库中提供INTERSECTION运算符求两个MDD的交运算;将步骤3所得原图的k2-MDD与根据该条边的特征函数E(v1,v2)生成的k2-MDD进行INTERSECTION运算,运算结果为T,则该边存在,否则不存在;
步骤4.2、外邻查询
在步骤3所得的k2-MDD结构图上进行的外邻查询操作包括求得顶点出度,根据步骤4.1中的边查询的结果,将要进行外邻查询的顶点赋值为v1,图中所有其它顶点依次赋值为v2,检测E(v1,v2)的函数值;若值为T,则当前v2是v1的一个外邻点,否则不是;通过统计v1外邻点的个数得到该顶点V1的出度;
步骤4.3、内邻查询
在步骤3所得的k2-MDD结构图上的内邻查询操作包括求得顶点入度,与步骤4.2外邻查询类似,将要进行外邻查询的顶点赋值为v2,图中所有其它顶点依次赋值为v1,检测E(v1,v2)的函数值;若值为T,则当前v1是v2的一个内邻点,否则不是;通过统计v2内邻点的个数得到该顶点v2的入度;
步骤4.4、增加边
在步骤3所得的k2-MDD结构图上,根据要增加边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后与步骤3所得原图的k2-MDD进行UNION运算,运算结果即为增加了该边的新图的k2-MDD;
步骤4.5、删除边
在步骤3所得的k2-MDD结构图上根据要删除边的起止顶点v1和v2的编码得到该条边的特征函数E(v1,v2),生成该条边的k2-MDD,然后将步骤3所得原图的k2-MDD与要删除边的k2-MDD进行DIFFERENCE运算,运算结果即为删除了该边的新图的k2-MDD。
CN201610651202.1A 2016-08-10 2016-08-10 一种基于k2树和多值决策图的大规模图数据处理方法 Pending CN106294739A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610651202.1A CN106294739A (zh) 2016-08-10 2016-08-10 一种基于k2树和多值决策图的大规模图数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610651202.1A CN106294739A (zh) 2016-08-10 2016-08-10 一种基于k2树和多值决策图的大规模图数据处理方法

Publications (1)

Publication Number Publication Date
CN106294739A true CN106294739A (zh) 2017-01-04

Family

ID=57667871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610651202.1A Pending CN106294739A (zh) 2016-08-10 2016-08-10 一种基于k2树和多值决策图的大规模图数据处理方法

Country Status (1)

Country Link
CN (1) CN106294739A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169066A (zh) * 2017-05-05 2017-09-15 桂林电子科技大学 一种基于kd树和多值决策图的时序图数据处理方法
CN107248930A (zh) * 2017-06-05 2017-10-13 桂林电子科技大学 一种基于k2‑MDD的Web服务组合方法
CN107908660A (zh) * 2017-10-17 2018-04-13 东华大学 面向数据开放共享的数据划分与组织方法
CN108280135A (zh) * 2017-12-26 2018-07-13 阿里巴巴集团控股有限公司 实现数据结构可视化的方法、装置和电子设备
CN109189996A (zh) * 2018-09-18 2019-01-11 桂林电子科技大学 基于k2-mdd的大规模图的最大公共连通子图匹配方法
CN110262915A (zh) * 2019-06-21 2019-09-20 北京航空航天大学 基于边值多值决策图的多状态系统可靠性评估方法
CN110379457A (zh) * 2017-09-30 2019-10-25 湖南大学 一种基于整数组合的网络模体子树枚举和统计方法
CN114528444A (zh) * 2022-02-25 2022-05-24 北京百度网讯科技有限公司 图数据处理方法、装置、电子设备和存储介质
CN115470377A (zh) * 2021-06-11 2022-12-13 清华大学 流式图数据处理方法及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169066A (zh) * 2017-05-05 2017-09-15 桂林电子科技大学 一种基于kd树和多值决策图的时序图数据处理方法
CN107248930A (zh) * 2017-06-05 2017-10-13 桂林电子科技大学 一种基于k2‑MDD的Web服务组合方法
CN107248930B (zh) * 2017-06-05 2020-07-28 桂林电子科技大学 一种基于k2-MDD的Web服务组合方法
CN110379457A (zh) * 2017-09-30 2019-10-25 湖南大学 一种基于整数组合的网络模体子树枚举和统计方法
CN107908660B (zh) * 2017-10-17 2021-07-09 东华大学 面向数据开放共享的数据划分与组织方法
CN107908660A (zh) * 2017-10-17 2018-04-13 东华大学 面向数据开放共享的数据划分与组织方法
CN108280135A (zh) * 2017-12-26 2018-07-13 阿里巴巴集团控股有限公司 实现数据结构可视化的方法、装置和电子设备
CN108280135B (zh) * 2017-12-26 2021-08-10 创新先进技术有限公司 实现数据结构可视化的方法、装置和电子设备
CN109189996A (zh) * 2018-09-18 2019-01-11 桂林电子科技大学 基于k2-mdd的大规模图的最大公共连通子图匹配方法
CN109189996B (zh) * 2018-09-18 2021-06-22 桂林电子科技大学 基于k2-mdd的大规模图的最大公共连通子图匹配方法
CN110262915A (zh) * 2019-06-21 2019-09-20 北京航空航天大学 基于边值多值决策图的多状态系统可靠性评估方法
CN115470377A (zh) * 2021-06-11 2022-12-13 清华大学 流式图数据处理方法及系统
CN114528444A (zh) * 2022-02-25 2022-05-24 北京百度网讯科技有限公司 图数据处理方法、装置、电子设备和存储介质
CN114528444B (zh) * 2022-02-25 2023-02-03 北京百度网讯科技有限公司 图数据处理方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN106294739A (zh) 一种基于k2树和多值决策图的大规模图数据处理方法
CN105183788B (zh) 一种基于关键词字典树检索的中文ac自动机工作方法
CN110533096B (zh) 基于K-means聚类的多元宇宙算法的DNA存储编码优化方法
WO2014107988A1 (zh) 微博用户群体结构发现分析方法及系统
CN109656798B (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
CN111027702A (zh) 一种实现量子线路替换的方法、装置、存储介质和电子装置
CN108460056A (zh) 一种dxf文件有效图元转换json数据的方法
CN106570166A (zh) 一种基于多个局部敏感哈希表的视频检索方法及装置
CN106649731A (zh) 一种基于大规模属性网络的节点相似性搜索方法
CN107169066A (zh) 一种基于kd树和多值决策图的时序图数据处理方法
CN102591958B (zh) 基于tcam的确定性有穷状态自动机的匹配方法和装置
Liao et al. A novel link prediction method for opportunistic networks based on random walk and a deep belief network
CN111159424B (zh) 标注知识图谱实体的方法,装置,存储介质及电子设备
CN104899283A (zh) 一种针对单个不确定图的频繁子图挖掘与优化方法
Nagaich et al. Shor's Algorithm for Quantum Numbers Using MATLAB Simulator
Bhuiyan et al. A parallel algorithm for generating a random graph with a prescribed degree sequence
CN109189996B (zh) 基于k2-mdd的大规模图的最大公共连通子图匹配方法
CN107248930B (zh) 一种基于k2-MDD的Web服务组合方法
CN113961568A (zh) 基于区块链的链式数据结构的区块快速查找方法
CN107241222A (zh) 一种网络拓扑校准方法
WO2009107412A1 (ja) グラフ構造推定装置、グラフ構造推定方法およびプログラム
Fellegara et al. Analysis of geolocalized social networks based on simplicial complexes
Xu Deep mining method for high-dimensional big data based on association rule
CN114936296B (zh) 超大规模知识图谱存储的索引方法、系统及计算机设备
CN103763171A (zh) 一种大规模并行计算系统互连网络构造方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170104

RJ01 Rejection of invention patent application after publication