CN116628025A - 一种基于邻接矩阵的高效图流测量方法 - Google Patents
一种基于邻接矩阵的高效图流测量方法 Download PDFInfo
- Publication number
- CN116628025A CN116628025A CN202310560506.7A CN202310560506A CN116628025A CN 116628025 A CN116628025 A CN 116628025A CN 202310560506 A CN202310560506 A CN 202310560506A CN 116628025 A CN116628025 A CN 116628025A
- Authority
- CN
- China
- Prior art keywords
- barrel
- edge
- node
- query
- original
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 48
- 238000000691 measurement method Methods 0.000 title claims description 7
- 238000005259 measurement Methods 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000003780 insertion Methods 0.000 claims description 12
- 230000037431 insertion Effects 0.000 claims description 12
- 210000004027 cell Anatomy 0.000 claims description 11
- 210000004287 null lymphocyte Anatomy 0.000 claims description 6
- 230000006870 function Effects 0.000 abstract description 12
- 238000003860 storage Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Environmental & Geological Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于邻接矩阵的高效图流测量方法,构建由原始桶与备选桶构成的测量结构,接受图流中的边并***测量结构,利用测量结构进行图流信息查询;图流中的边通常存储在原始桶中,当原始桶容量满时,冲突的边将被存储在备选桶中。***算法的时间复杂度为O(1),帮助测量结构将冲突边从原始桶中驱逐,并重新***到备选桶中。查询算法包括边查询、节点查询和可达性查询。边查询通过哈希函数计算源节点和目的节点的哈希值和指纹对,与对应桶中的指纹对匹配,得到边的权重。节点查询通过遍历桶中的记录,查询节点的权重。可达性查询通过比较节点的邻居确定两个点之间的可达性。该方法能够在有限的内存上实现高效的大规模图流查询。
Description
技术领域
本发明属于网络测量领域,特别针对在拓扑网络中对图形流的高效测量问题。
背景技术
随着社交网络,大规模集群性网络以及物联网的兴起,海量的数据流给数据测量、存储和管理带来了巨大的挑战。因此,越来越多的数据被当作图来处理,大量的流总结被越来越多的采用来处理图数据。在流图的环境中,连接性在数据处理应用中起着至关重要的作用,例如分析日志流以进行实时故障排除,以及在社交网络中推荐你可能认识的朋友。图流是庞大而动态的,例如,每天大约有1亿用户的登录数据和5亿条Twitter上的推文。同样,在大型ISP或数据中心,每秒钟可能有数百万个数据包在每个链接中。因此,将所有必要的数据存储在内存中进行实时查询是不可行的。为了处理动态的流媒体数据,在数据流应用的背景中需要快速和近似的答案。
由于图流测量是网络测量的延伸与发展,因此,部分图流测量的方案便脱胎于网络测量领域。近年来,国内、国外的研究人员不断研究图流测量的新技术,并有了显著的成果,主要有以下两种形式:(1)抽样法(sampling):采用对大规模数据流抽样的方式进行测量。该方法对抽样样本进行统计和分析,用数据流的局部特征来代替其整体特征,进而对大规模样本进行简化\cite{wu2020sketching}。该方法虽然减少了被测量样本的数量,但是忽略了数据流中的关键信息,准确率较差,无法满足测量的需求。(2)数据流法(streaming):对数据流中的所有数据都进行快速地估计。该方法使用哈希函数对图流中的每一条边进行映射,每映射一次,计数值加一。需要对某条边的权重(频率)进行查询时,读取对应计数器的值即可。基于sketch或邻接矩阵,该方法能够在有限的内存消耗内,可以完成对图流的准确以及快速的测量。
目前,图流测量亟待解决的问题是如何在有限的内存上支持高精度、高速度的查询。近年来,网络流量朝着高速化以及规模化不断发展,图流测量更需要的是快速的答案。并且,由于服务器内存容量的限制,使得我们不能随心所欲地去记录图流中的每一条边。所以,在这样的背景下,测量结构应当要在有限的存储消耗下满足一定精度的查询。其次,测量结构需要能完成不同的测量任务。目前,互联网公司或者大型数据中心需要同时对图流进行多个维度的查询,比如边查询(edge queries)、节点查询(node queries)、可达性查询(reachability queries)等。如果一种结构只能完成一种查询,那在复杂的网络环境下,多种工具之间相互协同才能完成对图流的完成监测和管理,这显然增加了网络中的额外开销。因此,设计的测量结构还需要具有通用性,并且可以满足多功能的测量任务。
发明内容
针对上述需求,本发明设计了一种能够在有限的内存上进行准确的图流测量结构以解决大数据时代下进行高效图流测量的技术问题。
为了解决上述问题,本发明提出了一种基于邻接矩阵的高效图流测量方法,主要包括:首先构建测量结构,然后接受图流中的边,将其***所述测量结构,最后利用测量结构进行图流信息查询;
所述测量结构是由原始桶与备选桶构成的邻接矩阵;所述原始桶和备选桶中,每个桶均包含许多单元来存储图流中的不同边,所述原始桶与备选桶均记录了边的指纹对以及权重;所述测量结构保留了图流的节点信息;
接受图流中的边,将其***所述测量结构是,将图流中的任意一条边存储在原始桶中,当原始桶的容量达到上限时,将该原始桶中的一条边踢出,根据该踢出边的指纹对计算备选桶的坐标,将该踢出的边***到备选桶中;
利用测量结构进行图流信息查询包括边查询、节点查询和可达性查询;其中,
所述边查询是:当给定一条边时,首先根据哈希函数计算出该边的源节点与目的节点的哈希值与指纹对;然后,根据哈希值和指纹对得到原始桶和备选桶在所述邻接矩阵中对应的坐标;如果在原始桶或者备选桶中找到边,则返回的权重,边查询结束;
所述节点查询是:当给定一个节点时,首先计算出该节点对应的哈希值与指纹,从而确定原始桶和备选桶的坐标;然后,根据遍历邻接矩阵中原始桶和备选桶这两行中的所有桶,如果在桶内找到源节点,则将其权重添加到节点权重中;遍历完成,所返回的权重就是节点对应的权重;
所述可达性查询是:当给定两个节点时,若要查询节点和节点之间是否有一条连通的路径时,通过不断对比节点的邻居以确定是否能与节点相连,从而查询两点之间的可达性。
进一步讲,本发明所述的基于邻接矩阵的高效图流测量方法,其中:
接受图流中的边,并将其***测量结构的步骤如下:
步骤1-1)根据哈希函数计算源节点和目的节点的哈希值和指纹对;
步骤1-2)根据计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤1-3)根据计算的哈希值和指纹对异或得到备选桶在邻接矩阵中的坐标;
步骤1-4)根据上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边或者一个空的单元;
步骤1-5)如果找到边,更新该边所在单元中的权重;如果找到了一个空单元,将边***到该空单元中,并更新该单元中的指纹对以及权重;
如果没有找到边和一个空的单元,则在当前桶中随机踢出任意一条边,并将踢出的次数累加1,当踢出次数的累加和大于设定值或是所有边均被记录时,结束***;否则,执行步骤1-6);
步骤1-6)根据哈希函数计算该踢出边的源节点和目的节点的哈希值和指纹对,进而计算踢出边的对应的另一个桶在邻接矩阵中的坐标,并在该桶内寻找该踢出边或者一个空的单元;重复步骤1-5)的过程,直至结束***。
所述边查询的步骤如下:
步骤2-1)哈希函数计算出该边的源节点和目的节点的哈希值和指纹对;
步骤2-2)根据计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤2-3)根据计算的哈希值和指纹异或得到备选桶在邻接矩阵中的坐标;
步骤2-4)根据上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边;
步骤2-5)如果在原始桶或者备选桶中找到边,则返回的权重,边查询结束。
所述节点查询的步骤如下:
步骤3-1)计算源节点的哈希值和指纹;
步骤3-2)根据计算的哈希值得到原始桶和备选通在邻接矩阵中的横坐标;
步骤3-3)根据上述计算的横坐标遍历邻接矩阵中这一行对应的所有桶,在桶内寻找源节点;
步骤3-4)如果在桶内找到源节点,则将其权重添加到节点权重中;
步骤3-5)当遍历完成后,返回源节点的权重,节点查询结束。
当给定两个节点时,对两个节点进行可达性查询的步骤如下:
步骤4-1)生成一个空的队列用于临时存放邻居节点;
步骤4-2)如果测量结构中存在边,则测量结构返回真值;
步骤4-3)如果测量结构中不存在边,将上述节点存放入队列中,同时标记节点为已访问;
步骤4-4)从队列中取出第一个节点与目的节点相匹配,如果匹配成功,则代表节点和节点之间存在一条可达的路径,且测量结构返回真值;
步骤4-5)若匹配不成功,将所有邻居节点标记为已访问,并且存入上述队列;
步骤4-6)当队列非空时,重复步骤4-4)至步骤4-5);
步骤4-7)当队列为空时,表示节点和节点之间不存在一条可达的路径,可达性查询结束。
与现有技术相比,本发明的有益效果是:
通过使用C++语言,将本发明在一台配置为Intel Core i5-10500(3.10GHz)、16GBSDRAM的计算机上进行软件部署测试。使用多个真实网络数据集进行了详细的实验,在保证存储消耗相同的前提下,本发明的表现相较于业内先进方案要表现更好。通过使用吞吐量,准确率作为图流测量的基本性能指标来评估方法性能。实验结果表明,本发明的平均相对误差在边查询中保持在10-5,在节点查询本发明的平均相对误差中保持在10-1;同时,本发明的***吞吐量和边查询吞吐量均保持在每秒1.3×106以上。因此,本发明能够在支持各种图流查询的同时,在有限的内存上保持较大的吞吐量以及较高的准确率。
附图说明
图1为实现本发明基于邻接矩阵的高效图流测量方法的整体架构图;
图2为本发明方法中边查询流程图;
图3为本发明方法中将边***测量结构的流程图;
图4为本发明方法中节点查询流程图;
图5为本发明方法中两节点之间可达性查询流程图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步详细描述,所描述的具体实施例仅对本发明进行解释说明,并不用以限制本发明。
本发明提出的一种基于邻接矩阵的高效图流测量方法,包括测量结构、***算法与查询算法;所述测量结构由原始桶(original bucket)与备选桶(alternative bucket)构成的邻接矩阵;所述原始桶和备选桶中,每个桶均包含许多单元来存储图流中的不同边,所述原始桶与备选桶均记录了边的指纹对(fingerprint pairs)以及(weights)。该测量结构通常将边缘存储在原始桶中;当原始桶的容量达到上限时,其中一条冲突的边将被存储在备选桶中以提高查询精度。该测量结构保留了图流的节点信息,因此可以用于支持各种图的查询。接受图流中的边,将其***所述测量结构,所述的***算法被设计成时间复杂度为O(1)的算法。它考虑到了大规模图流引发的冲突问题,该算法帮助测量结构将冲突边从原始桶中踢出,然后,根据指纹,该算法会计算出备选桶的坐标;之后,测量结构将冲突的边重新***到备选桶中。即:将图流中的任意一条边存储在原始桶中,当原始桶的容量达到上限时,将该原始桶中的一条边踢出,根据该踢出边的指纹对计算备选桶的坐标,将该踢出的边***到备选桶中。
本发明中,测量结构被设计成一个具有两个桶的邻接矩阵,如图1所示,每个桶包含若干个单元(在图1中以4个单元为例)。测量结构中的所有桶分为原始桶和备选桶。在图1中,填充斜线的方框代表原始桶,填充十字的方框代表备选桶,填充灰色的方框代表被占据的桶,空白方框代表空桶,空桶则意味着这个桶里没有存放边。更详细地说,原始桶记录了图流中的边,而备选桶存储了其中冲突的边。测量结构最小的存储单元是一个单元,它占用6个字节,并且存储了指纹对和边的权重。指纹是由哈希函数计算出的边的唯一标识符,用来记录边的唯一信息;权重则代表这条边在整个图流中出现的次数。
如图3所示,当两条边发生冲突时,测量结构会将造成冲突的边存储在当前桶的下一个空的单元中。只有当这个桶中没有空单元时,测量结构才会将冲突的边踢出去,并将其***到备选桶中。具体步骤包括:
步骤1-1)根据哈希函数计算源节点和目的节点的哈希值和指纹对;
步骤1-2)根据步骤1-1)计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤1-3)根据步骤1-1)计算的哈希值和指纹对异或得到备选桶在邻接矩阵中的坐标;
步骤1-4)根据步骤1-3)上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边或者一个空的单元;
步骤1-5)根据步骤1-4)找到的单元,如果找到边,更新该边所在单元中的权重;
步骤1-6)如果步骤1-4)找到了一个空单元,将该边***到该空单元中,并更新该单元中的指纹对以及权重;如果步骤1-4)没有找到边和一个空的单元,则在当前桶中随机踢出任意一条边,并将踢出的次数累加1;
步骤1-7)将边***步骤1-6)中的单元,并更新该单元中的指纹对以及权重;
步骤1-8)根据步骤1-6)中踢出的边,根据哈希函数计算该踢出边的源节点和目的节点的哈希值和指纹对,进而计算踢出边的对应的另一个桶在邻接矩阵中的坐标,并在该桶内寻找该踢出边或者一个空的单元;
步骤1-9)根据步骤1-8)找到的单元,将边***,并更新该单元中的指纹对以及权重;
步骤1-10)若步骤1-8)没找到合适的单元,则重复步骤1-6)到步骤1-9);
步骤1-11)当踢出次数达到上限或所有的边都被记录时,***结束。
利用测量结构进行图流信息查询,查询算法包括边查询、节点查询和可达性查询。
如图2所示,当查询边的权重时,对应算法将先计算和的哈希值以及指纹,随后再对原始桶和备选桶中的指纹进行匹配,从而查询到对应边的权重。本发明中,所述的边查询算法是:当给定一条边时,首先根据哈希函数计算出源节点与目的节点的哈希值与指纹对;然后,得到原始桶与备选桶的对应坐标;之后,测量结构将边的指纹对与对应桶中的每个单元中记录的指纹对相匹配;如果相同,则得到边对应的权重,边查询结束;否则,则代表边不存在于测量结构中。
根据***完成的提示,测量结构开始对边进行边查询,包括以下步骤:
步骤2-1)哈希函数计算出该边的源节点和目的节点的哈希值和指纹对;
步骤2-2)根据步骤2-1)计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤2-3)根据步骤2-1)计算的哈希值和指纹异或得到备选桶在邻接矩阵中的坐标;
步骤2-4)根据上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边;
步骤2-5)如果在原始桶或者备选桶中找到边,则返回的权重,边查询结束。
如图4所示,当查询点的权重时,对应算法将首先计算节点的哈希值以及指纹,随后按照相应位置对该行所有的桶进行遍历,从而查询到对应节点的权重。本发明中,所述的节点查询算法是:当给定一个节点时,首先计算出该节点对应的哈希值与指纹,从而确定原始桶和备选桶的坐标;然后,遍历原始桶和备选桶这两行中的所有桶,将节点的指纹和对应桶中的每个单元中记录的指纹相匹配;如果源节点的指纹与节点的指纹相同,则该节点对应的权重就被添加至节点查询的权重;遍历完成,查询所返回的权重即节点对应的权重。
根据边查询完成的提示,测量结构开始对点进行节点查询,包括以下步骤:
步骤3-1)计算源节点的哈希值和指纹;
步骤3-2)根据步骤3-1)计算的哈希值得到原始桶和备选通在邻接矩阵中的横坐标;
步骤3-3)根据上述计算的横坐标遍历邻接矩阵中这一行对应的所有桶,在桶内寻找源节点;
步骤3-4)如果在桶内找到源节点,则将其权重添加到节点权重中;
步骤3-5)当遍历完成后,返回源节点的权重,节点查询结束。
如图5所示,当要查询节点和节点之间是否有一条连通的路径时,对应算法将不断对比节点的邻居以确定是否能与节点相连,从而查询两点之间的可达性。本发明中,所述的可达性查询算法是:当给定两个节点时,若要查询节点和节点之间是否有一条连通的路径时,通过不断对比节点的邻居以确定是否能与节点相连,从而查询两点之间的可达性。首先使用边查询计算出和是否直接相连;如果直接相连,则可达性查询返回一个真值,代表和之间存在路径;若不直接相连,则将标记为已访问,并且将其加入到队列中;随后,测量结构将搜索的所有邻居节点并将他们加入到队列中,同时将这些节点标记为已访问;如果邻居节点包含,可达性查询会返回一个真值;否则,测量结构会检查所有的邻居节点,直到队列为空;当检查完成时,意味着没有一条从到之间的路径。
根据节点查询完成的提示,测量结构开始对两个节点进行可达性查询,包括以下步骤:
步骤4-1)生成一个空的队列用于临时存放邻居节点;
步骤4-2)如果测量结构中存在边,则测量结构返回真值(true);
步骤4-3)如果测量结构中不存在边,将上述节点存放入队列中,同时标记节点为已访问;
步骤4-4)从队列中取出第一个节点与目的节点相匹配,如果匹配成功,则代表节点和节点之间存在一条可达的路径,且测量结构返回真值(true);
步骤4-5)根据步骤4-4)的匹配结果,若匹配不成功,将所有邻居节点标记为已访问,并且存入上述队列;
步骤4-6)当队列非空时,重复步骤4-4)至步骤4-5);
步骤4-7)当队列为空时,测量结构返回假值(false),表示节点和节点之间不存在一条可达的路径,可达性查询结束。
研究材料:
将本发明在一台配置为Intel Core i5-10500(3.10GHz)、16GB SDRAM的计算机上进行软件部署测试。使用Orkut数据集(SNAP:Network datasets:Orkut social network(stanford.edu))进行了详细的实验,在保证存储消耗相同的前提下,本发明的表现相较于业内先进方案要表现更好。通过使用吞吐量,准确率作为图流测量的基本性能指标来评估方法性能。实验结果表明,本发明的平均相对误差在边查询中保持在10-5,在节点查询本发明的平均相对误差中保持在10-1;同时,本发明的***吞吐量和边查询吞吐量均保持在每秒1.3×106以上。因此,本发明能够在支持各种图流查询的同时,在有限的内存上保持较大的吞吐量以及较高的准确率。
表1至表5中分别列出了存储消耗分别为700MB、720MB、740MB、760MB、780MB和800MB,本发明方法、Three-Dimensional CM Sketch(TCM)方法和Graph StreamSummarization(GSS)方法的***吞吐量、边查询平均相对误差、节点查询平均相对误差、可达性查询召回率和子图查询平均相对误差。
表1***吞吐量(EPS,Edges per second)比较
存储消耗(MB) | 本发明方法 | TCM | GSS |
700 | 1208437.483 | 1041395.25 | 764621.216 |
720 | 1321230.468 | 1015539.06 | 786799.18 |
740 | 1373858.925 | 998407.482 | 804787.329 |
760 | 1362492.085 | 1014282.11 | 847453.937 |
780 | 1385453.055 | 962395.15 | 825188.952 |
800 | 1392112.217 | 1006917.71 | 947532.084 |
表2边查询平均相对误差(ARE)比较
存储消耗(MB) | 所提出方法 | TCM | GSS |
700 | 6.72E-06 | 1.48567 | 1.19E-06 |
720 | 4.40E-06 | 1.44271 | 1.04E-06 |
740 | 4.30E-06 | 1.40327 | 1.13E-06 |
760 | 4.20E-06 | 1.36477 | 1.77E-06 |
780 | 3.60E-06 | 1.32996 | 1.08E-06 |
800 | 3.46E-06 | 1.2969 | 1.28E-06 |
表3节点查询平均相对误差(ARE)比较
存储消耗(MB) | 所提出方法 | TCM | GSS |
700 | 0.437 | 2232.52 | 0.0381 |
720 | 0.299 | 2200.71 | 0.0413 |
740 | 0.255 | 2165.68 | 0.039 |
760 | 0.259 | 2138.59 | 0.038 |
780 | 0.239 | 2104.55 | 0.0358 |
800 | 0.213 | 2074.97 | 0.0378 |
表4可达性查询召回率比较
存储消耗(MB) | 所提出方法 | TCM | GSS |
700 | 1 | 0 | 1 |
720 | 0.99 | 0 | 1 |
740 | 1 | 0 | 0.99 |
760 | 1 | 0 | 1 |
780 | 1 | 0 | 1 |
800 | 1 | 0 | 1 |
表5子图查询平均相对误差比较
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。
Claims (5)
1.一种基于邻接矩阵的高效图流测量方法,其特征在于,首先构建测量结构,然后接受图流中的边,将其***所述测量结构,最后利用测量结构进行图流信息查询;
所述测量结构是由原始桶与备选桶构成的邻接矩阵;所述原始桶和备选桶中,每个桶均包含许多单元来存储图流中的不同边,所述原始桶与备选桶均记录了边的指纹对以及权重;所述测量结构保留了图流的节点信息;
接受图流中的边,将其***所述测量结构是,将图流中的任意一条边存储在原始桶中,当原始桶的容量达到上限时,将该原始桶中的一条边踢出,根据该踢出边的指纹对计算备选桶的坐标,将该踢出的边***到备选桶中;
利用测量结构进行图流信息查询包括边查询、节点查询和可达性查询;其中,
所述边查询是:当给定一条边时,首先根据哈希函数计算出该边的源节点与目的节点的哈希值与指纹对;然后,根据哈希值和指纹对得到原始桶和备选桶在所述邻接矩阵中对应的坐标;如果在原始桶或者备选桶中找到边,则返回的权重,边查询结束;
所述节点查询是:当给定一个节点时,首先计算出该节点对应的哈希值与指纹,从而确定原始桶和备选桶的坐标;然后,根据遍历邻接矩阵中原始桶和备选桶这两行中的所有桶,如果在桶内找到源节点,则将其权重添加到节点权重中;遍历完成,所返回的权重就是节点对应的权重;
所述可达性查询是:当给定两个节点时,若要查询节点和节点之间是否有一条连通的路径时,通过不断对比节点的邻居以确定是否能与节点相连,从而查询两点之间的可达性。
2.根据权利要求1所述的基于邻接矩阵的高效图流测量方法,其特征在于,接受图流中的边,并将其***测量结构的步骤如下:
步骤1-1)根据哈希函数计算源节点和目的节点的哈希值和指纹对;
步骤1-2)根据计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤1-3)根据计算的哈希值和指纹对异或得到备选桶在邻接矩阵中的坐标;
步骤1-4)根据上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边或者一个空的单元;
步骤1-5)如果找到边,更新该边所在单元中的权重;如果找到了一个空单元,将边***到该空单元中,并更新该单元中的指纹对以及权重;
如果没有找到边和一个空的单元,则在当前桶中随机踢出任意一条边,并将踢出的次数累加1,当踢出次数的累加和大于设定值或是所有边均被记录时,结束***;否则,执行步骤1-6);
步骤1-6)根据哈希函数计算该踢出边的源节点和目的节点的哈希值和指纹对,进而计算踢出边的对应的另一个桶在邻接矩阵中的坐标,并在该桶内寻找该踢出边或者一个空的单元;重复步骤1-5)的过程,直至结束***。
3.根据权利要求2所述的基于邻接矩阵的高效图流测量方法,其特征在于,所述边查询的步骤如下:
步骤2-1)哈希函数计算出该边的源节点和目的节点的哈希值和指纹对;
步骤2-2)根据计算的哈希值得到原始桶在邻接矩阵中的坐标;
步骤2-3)根据计算的哈希值和指纹异或得到备选桶在邻接矩阵中的坐标;
步骤2-4)根据上述计算的坐标找到邻接矩阵中对应的原始桶或备选桶,在桶内寻找边;
步骤2-5)如果在原始桶或者备选桶中找到边,则返回的权重,边查询结束。
4.根据权利要求2所述的基于邻接矩阵的高效图流测量方法,其特征在于,所述节点查询的步骤如下:
步骤3-1)计算源节点的哈希值和指纹;
步骤3-2)根据计算的哈希值得到原始桶和备选通在邻接矩阵中的横坐标;
步骤3-3)根据上述计算的横坐标遍历邻接矩阵中这一行对应的所有桶,在桶内寻找源节点;
步骤3-4)如果在桶内找到源节点,则将其权重添加到节点权重中;
步骤3-5)当遍历完成后,返回源节点的权重,节点查询结束。
5.根据权利要求2所述的基于邻接矩阵的高效图流测量方法,其特征在于,当给定两个节点时,对两个节点进行可达性查询的步骤如下:
步骤4-1)生成一个空的队列用于临时存放邻居节点;
步骤4-2)如果测量结构中存在边,则测量结构返回真值;
步骤4-3)如果测量结构中不存在边,将上述节点存放入队列中,同时标记节点为已访问;
步骤4-4)从队列中取出第一个节点与目的节点相匹配,如果匹配成功,则代表节点和节点之间存在一条可达的路径,且测量结构返回真值;
步骤4-5)若匹配不成功,将所有邻居节点标记为已访问,并且存入上述队列;
步骤4-6)当队列非空时,重复步骤4-4)至步骤4-5);
步骤4-7)当队列为空时,表示节点和节点之间不存在一条可达的路径,可达性查询结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310560506.7A CN116628025A (zh) | 2023-05-18 | 2023-05-18 | 一种基于邻接矩阵的高效图流测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310560506.7A CN116628025A (zh) | 2023-05-18 | 2023-05-18 | 一种基于邻接矩阵的高效图流测量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116628025A true CN116628025A (zh) | 2023-08-22 |
Family
ID=87596644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310560506.7A Pending CN116628025A (zh) | 2023-05-18 | 2023-05-18 | 一种基于邻接矩阵的高效图流测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628025A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807277A (zh) * | 2024-03-01 | 2024-04-02 | 中国人民解放军国防科技大学 | 一种高阶动态图数据存储方法、装置、设备及存储介质 |
-
2023
- 2023-05-18 CN CN202310560506.7A patent/CN116628025A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807277A (zh) * | 2024-03-01 | 2024-04-02 | 中国人民解放军国防科技大学 | 一种高阶动态图数据存储方法、装置、设备及存储介质 |
CN117807277B (zh) * | 2024-03-01 | 2024-05-17 | 中国人民解放军国防科技大学 | 一种高阶动态图数据存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4814570B2 (ja) | あいまいな重複に強い検出器 | |
CN103714134B (zh) | 一种网络流量数据索引方法及*** | |
CN110597804B (zh) | 促进分布式键值存储库上的空间索引 | |
CN116628025A (zh) | 一种基于邻接矩阵的高效图流测量方法 | |
WO2019056569A1 (zh) | 滑动窗口下基于位置top-k关键词查询的优先查询算法及*** | |
CN110011838B (zh) | 一种动态网络PageRank值的实时跟踪方法 | |
WO2022188646A1 (zh) | 图数据处理方法、装置、设备、存储介质及程序产品 | |
CN115905630A (zh) | 一种图数据库查询方法、装置、设备及存储介质 | |
Zhao et al. | Effective and efficient dense subgraph query in large-scale social Internet of Things | |
CN109255433B (zh) | 一种基于相似性的社区检测的方法 | |
CN107807976A (zh) | Ip归属地查询方法和装置 | |
CN117135087A (zh) | 一种面向轻重边有效分离的双层邻接矩阵图流测量方法 | |
CN116011564A (zh) | 一种面向电力设备的实体关系补全方法、***及应用 | |
Liu et al. | Towards in-network compact representation: Mergeable counting bloom filter vis cuckoo scheduling | |
CN109063222B (zh) | 一种基于大数据的自适应数据搜索方法 | |
CN109446294B (zh) | 一种并行的相互子空间Skyline查询方法 | |
Zeng et al. | LSketch: A Label-Enabled Graph Stream Sketch Toward Time-Sensitive Queries | |
CN116566863A (zh) | 一种针对大象流与突变流的高效图流测量方法 | |
CN113127714A (zh) | 一种物流大数据采集方法 | |
CN112559571B (zh) | 一种面向数值型流数据的近似离群点计算方法和*** | |
Luo et al. | Ark filter: A general and space-efficient sketch for network flow analysis | |
CN114793200B (zh) | 一种基于电力物联网网络结构的重要物联节点识别方法 | |
CN113836087B (zh) | 一种基于文件模式的大数据层存储方法 | |
CN114422338B (zh) | 故障影响分析方法以及装置 | |
CN112732933B (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 |