一种基于稠密网格重组和K制造技术

技术编号:19692710 阅读:21 留言:0更新日期:2018-12-08 11:24
本发明专利技术公开一种基于稠密网格重组和K

【技术实现步骤摘要】
一种基于稠密网格重组和K2-tree的图数据表示方法
本专利技术涉及图数据处理
,具体涉及一种基于稠密网格重组和K2-tree的图数据表示方法。
技术介绍
万维网是一种能有效描述二元关系的数据结构,可以用有向图表示。通常,在万维网中,每个网页对应于图形节点,并且每个链接对应于图形边缘。这种有向图称为网页图(Web图)。通过对网页图的操作,可以确定两个页面之间的连通性,筛选出链接到某个页面的所有网页,并找出哪些页面指向指定的网页等。随着互联网的急速发展以及万维网规模的迅速增长,网页图正以前所未有的方式和速度产生并积累着大量数据,如何对这些数据进行分析并使用,已经成为许多领域面临的关键机遇和严峻挑战。根据中国互联网络信息中心(CNNIC)发布的《第37次中国互联网络发展状况统计报告》,中国网页数量2015年就达到了2123亿个,网页图上的链接数量超过1018个;如果使用邻接矩阵来存储网页图,则需要将近40TB的存储空间。网页图规模的爆炸式增长使得传统的存储结构无法满足存储和计算的需求。在使用邻接矩阵或者邻接表等传统存储结构进行表示和存储时,网页图往往无法完全放入计算机主存进行计算,在很大程度上制约了对网页图进行分析和计算的效率。K2-tree是一种紧凑的数据结构,用于表示利用网络图的邻接矩阵的大空区域的二元关系。在K2-tree中,主要思想是用K2-叉树表示网络图的邻接矩阵。更确切地说,在K2-tree构造的阶段中,邻接矩阵被分成K2个相等的矩阵。对应于每个矩阵,该方法将为根节点生成子节点。如果矩阵的元素都是0,则K2-tree的对应子节点为0;如果矩阵包含至少一个1,则子节点为1。对于那些包含1的矩阵,该方法将它们递归地划分为K2个相等的部分,直到矩阵的大小为1×1。在此分割过程中,所有子节点都从上到下,从左到右排序。K2-tree是通过两个位向量T和L进行存储的,位向量T存储树中除最底层外所有的节点,存储的顺序是由上到下,从左至右,位向量L存储树中最底层的叶子节点。通过对K2-tree进行自顶向下的遍历不仅可以有效的实现前向和反向的导航,还支持检测单一链接是否存在和范围查询操作。虽然K2-tree是一种优秀的数据结构,可以紧凑地表示图数据,但它仍然存在一些缺陷:节点之间的紧密耦合可能会被破坏,这将增加图形上操作的时间消耗;矩阵中填充0的大区域可能被划分为不同的矩阵,因此无法完全压缩;K2-tree的高度将严重影响图上操作的时间消耗。由此可见,K2-tree对图数据内在结构特性以及表示大规模图数据时的查询效率方面缺乏必要的考虑,其在紧凑性以及查询效率上仍有较大的改善空间。
技术实现思路
本专利技术针对K2-tree对图数据内在结构特性以及表示大规模图数据时的查询效率方面缺乏必要的考虑,其在紧凑性以及查询效率上仍有较大的改善空间的问题,提供一种基于稠密网格重组和K2-tree的图数据表示方法。为解决上述问题,本专利技术是通过以下技术方案实现的:一种基于稠密网格重组和K2-tree的图数据表示方法,具体包括步骤如下:步骤1,将图数据抽象表示为邻接矩阵,并使用网格聚类算法,采用一大一小两个不同的网格参数对邻接矩阵进行划分;步骤2,将大网格内包含的所有小网格提取出来并存储为新的重组矩阵;步骤3,将步骤2中的所有重组矩阵采用K2-tree表示;步骤4,将需要查询的节点分别在步骤3中建立的多个K2-tree中进行查询,并将查询结果合并得到最终结果;上述K为设定的正整数。上述步骤1的具体过程如下:步骤1.1、将图数据抽象表示为邻接矩阵;步骤1.2、设定K2-tree和小网格的参数K以及大网格参数Size;步骤1.3、根据设置的小网格参数K,将邻接矩阵划分为多个大小为K×K的矩阵,再将划分后得到的矩阵中包含至少一个1的矩阵提取出来,存储在小网格矩阵集合SET1中;步骤1.4、根据设置的大网格参数Size,将邻接矩阵划分为多个大小为Size×Size的矩阵,再将划分后得到的矩阵中包含至少一个1的矩阵提取出来,存储在大网格矩阵集合SET2中。上述步骤2的具体过程如下:步骤2.1、选取大网格矩阵集合SET2中的任意一个矩阵,将它所包含的小网格矩阵集合SET1中的矩阵按顺序提取出来,存储在临时矩阵集合SET3中;步骤2.2、将临时矩阵集合SET3中的矩阵按照由左向右、由上向下的顺序依次排列成多行矩阵队列,每一行包含x个矩阵,无数值区域用0填充,重组成一个行数和列数均为K×x的重组矩阵;其中a为临时矩阵集合SET3中的矩阵个数;步骤2.3、将重组矩阵存储到重组矩阵集合SET4中,并清空临时矩阵集合SET3;步骤2.4、重复步骤2.1-2.3,直到大网格矩阵集合SET2中所有矩阵都完成重组,并存储到重组矩阵集合SET4中。上述步骤3的具体过程如下:步骤3.1、选取重组矩阵集合SET4中的任意一个重组矩阵,当重组矩阵的结点数不为K的幂次方时,先在该重组矩阵的右侧和下侧填充0,将重组矩阵的规模扩充为K的幂次方,再将重组矩阵划分为K2个规模相等,且行数与列数相等的初级划分矩阵;步骤3.2、对于每个重组矩阵所对应的K2-tree,将划分前的矩阵即重组矩阵作为根节点,K2个划分后的矩阵作为根节点的子节点;如果划分后的某一个矩阵的元素都是0,则K2-tree的对应子节点为0;如果划分后的某一个矩阵包含至少一个1,则K2-tree的对应子节点为1;在此划分过程中,所有K2-tree的子节点都从上到下,从左到右排序;步骤3.3、将上次划分所得到的矩阵继续划分为K2个规模相等,且行数与列数相等的矩阵;步骤3.4、将步骤3.3中划分后的矩阵作为划分前的矩阵的子节点;如果划分后的某一个矩阵的元素都是0,则K2-tree的对应子节点为0;如果划分后的某一个矩阵包含至少一个1,则K2-tree的对应子节点为1;在此划分过程中,所有K2-tree的子节点都从上到下,从左到右排序;步骤3.5、重复步骤3.3-3.4,对上次划分所得到的矩阵进行递归划分,直到划分后的矩阵的大小为1×1;步骤3.6、当重组矩阵集合SET4中所有的重组矩阵都表示为K2-tree后,对于每个K2-tree,分别使用位向量T按照从上到下、从左到右的顺序存储K2-tree中除最底层的所有节点的值,使用位向量L存储K2-tree的最底层叶子节点的值,得到多组包含了位向量T和L的向量组。上述步骤4的具体过程如下:步骤4.1、给定一个结点q,筛选出重组矩阵集合SET4中包含此结点的重组矩阵,并存储到查询矩阵集合SET5中;步骤4.2、选取查询矩阵集合SET5中的任意一个查询矩阵,找出查询矩阵中所有包含结点q,且包含于小网格矩阵集合SET1中的矩阵,并根据这些矩阵在重组矩阵位置信息计算出结点q在查询矩阵中的新行号q’、需要查询的K个列号和列偏移量t;步骤4.3、对于步骤4.2中算出的其中一个新行号q’,按照K2-tree的遍历规则进行自顶向下的遍历,查询该新行号q’对应的需要查询的K个列号位置处的值:若该列号处的值为1,且此列号为偶数,则将该新行号对应的列偏移量t赋值给真正的邻居结点列号p,并将邻居结点列号p存储到邻居集合SET6中;若该列号处的值为1,且此列号为奇数,则将该新行号对应的列偏移本文档来自技高网
...

【技术保护点】
1.一种基于稠密网格重组和K2‑tree的图数据表示方法,其特征是,包括步骤如下:步骤1,将图数据抽象表示为邻接矩阵,并使用网格聚类算法,采用一大一小两个不同的网格参数对邻接矩阵进行划分;步骤2,将大网格内包含的所有小网格提取出来并存储为新的重组矩阵;步骤3,将步骤2中的所有重组矩阵采用K2‑tree表示;步骤4,将需要查询的节点分别在步骤3中建立的多个K2‑tree中进行查询,并将查询结果合并得到最终结果;上述K为设定的正整数。

【技术特征摘要】
1.一种基于稠密网格重组和K2-tree的图数据表示方法,其特征是,包括步骤如下:步骤1,将图数据抽象表示为邻接矩阵,并使用网格聚类算法,采用一大一小两个不同的网格参数对邻接矩阵进行划分;步骤2,将大网格内包含的所有小网格提取出来并存储为新的重组矩阵;步骤3,将步骤2中的所有重组矩阵采用K2-tree表示;步骤4,将需要查询的节点分别在步骤3中建立的多个K2-tree中进行查询,并将查询结果合并得到最终结果;上述K为设定的正整数。2.根据权利要求1所述的一种基于稠密网格重组和K2-tree的图数据表示方法,其特征是,步骤1的具体过程如下:步骤1.1、将图数据抽象表示为邻接矩阵;步骤1.2、设定K2-tree和小网格的参数K以及大网格参数Size;步骤1.3、根据设置的小网格参数K,将邻接矩阵划分为多个大小为K×K的矩阵,再将划分后得到的矩阵中包含至少一个1的矩阵提取出来,存储在小网格矩阵集合SET1中;步骤1.4、根据设置的大网格参数Size,将邻接矩阵划分为多个大小为Size×Size的矩阵,再将划分后得到的矩阵中包含至少一个1的矩阵提取出来,存储在大网格矩阵集合SET2中。3.根据权利要求1所述的一种基于稠密网格重组和K2-tree的图数据表示方法,其特征是,步骤2的具体过程如下:步骤2.1、选取大网格矩阵集合SET2中的任意一个矩阵,将它所包含的小网格矩阵集合SET1中的矩阵按顺序提取出来,存储在临时矩阵集合SET3中;步骤2.2、将临时矩阵集合SET3中的矩阵按照由左向右、由上向下的顺序依次排列成多行矩阵队列,每一行包含x个矩阵,无数值区域用0填充,重组成一个行数和列数均为K×x的重组矩阵;其中a为临时矩阵集合SET3中的矩阵个数;步骤2.3、将重组矩阵存储到重组矩阵集合SET4中,并清空临时矩阵集合SET3;步骤2.4、重复步骤2.1-2.3,直到大网格矩阵集合SET2中所有矩阵都完成重组,并存储到重组矩阵集合SET4中。4.根据权利要求1所述的一种基于稠密网格重组和K2-tree的图数据表示方法,其特征是,步骤3的具体过程如下:步骤3.1、选取重组矩阵集合SET4中的任意一个重组矩阵,当重组矩阵的结点数不为K的幂次方时,先在该重组矩阵的右侧和下侧填充0,将重组矩阵的规模扩充为K的幂次方,再将重组矩阵划分为K2个规模相等,且行数与列数相等的初级划分矩阵;步骤3.2、对于每个重组矩阵所对应的K2-tree,将划分前的矩阵即重组矩阵作为根节点,K2...

【专利技术属性】
技术研发人员:李凤英张琪常亮古天龙
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西,45

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

1