CN106294739A - 一种基于k2树和多值决策图的大规模图数据处理方法 - Google Patents
一种基于k2树和多值决策图的大规模图数据处理方法 Download PDFInfo
- 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
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query 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树和多值决策图的大规模图数据处理方法。
背景技术
随着移动互联网、物联网等技术的发展,众多新应用以前所未有的方式和速度产生并积累着大量数据。在众多类型的大数据中,图数据作为一种有效描述大数据的数据结构,扮演着越来越重要的角色。由于图数据的规模日益庞大,实现图数据的高效存储以及图数据的高效操作是当前面临的挑战。以社交网络为例,根据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。
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)
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 | 清华大学 | 流式图数据处理方法及系统 |
-
2016
- 2016-08-10 CN CN201610651202.1A patent/CN106294739A/zh active Pending
Cited By (14)
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树和多值决策图的大规模图数据处理方法 | |
Grindrod | Range-dependent random graphs and their application to modeling large small-world proteome datasets | |
CN105183788B (zh) | 一种基于关键词字典树检索的中文ac自动机工作方法 | |
CN110533096B (zh) | 基于K-means聚类的多元宇宙算法的DNA存储编码优化方法 | |
CN112256981B (zh) | 一种基于线性和非线性传播的谣言检测方法 | |
WO2014107988A1 (zh) | 微博用户群体结构发现分析方法及系统 | |
CN109656798B (zh) | 基于顶点重排序的超级计算机大数据处理能力测试方法 | |
CN111027702A (zh) | 一种实现量子线路替换的方法、装置、存储介质和电子装置 | |
CN108460056A (zh) | 一种dxf文件有效图元转换json数据的方法 | |
CN106570166A (zh) | 一种基于多个局部敏感哈希表的视频检索方法及装置 | |
CN106649731A (zh) | 一种基于大规模属性网络的节点相似性搜索方法 | |
CN107169066A (zh) | 一种基于kd树和多值决策图的时序图数据处理方法 | |
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 | |
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 | |
CN111881327A (zh) | 基于顶点重排序与优先缓存的大数据处理能力测试方法 | |
Long et al. | A unified community detection algorithm in large-scale complex networks | |
Xu | Deep mining method for high-dimensional big data based on association rule |
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 |