一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数据流模型的图划分方法和系统

2022-07-13 23:38:27 来源:中国专利 TAG:


1.本发明涉及图计算领域,更具体地,涉及一种基于数据流模型的图划分方法和系统。


背景技术:

2.图计算在解决组合优化问题中有着非常重要的作用。通过将研究对象抽象成图的顶点,将对象与对象之间的关系抽象成顶点之间的边,现实中的许多问题的研究对象都可以转化为图数据结构,因此很多问题都可以转化为图计算的相关问题来解决。
3.图划分问题主要研究的是在给定的限制条件下如何更好地把一个大的图划分成多个子图的问题,这一问题在实际场景中有许多的应用。在现实应用中,往往需要先将大图先划分为若干个小的子图,然后利用多台机器在各子图上并行地进行相应的计算,以达到提升计算效率的目的。
4.在大数据的应用场景下,工程中对图划分算法的运行时间效率的要求越来越高,现有技术中公开一种基于关联特征的流图划分系统,该系统包含数据解析模块、数据重排模块、点元存储模块、边元存储模块和数据导航模块。数据解析模块将交易数据流解析为关联图谱的数据格式,并生成点流和边流;数据重排模块对边流数据进行乱序重排,减少特定交易数据对后续划分算法的影响;数据导航模块为每个边流数据选择合适的存储位置;边元存储模块和点元存储模块将划分好的边流数据和点流数据写入数据库。该方案的算法复杂度依然较高,不满足现在对运行时间效率的要求。


技术实现要素:

5.本发明的首要目的是提供一种基于数据流模型的图划分方法,提升算法效果的角度对流图划分算法进行了改进,达到减小算法复杂度的效果,提高了算法的运行效率
6.本发明的进一步目的是一种基于数据流模型的图划分系统。
7.为解决上述技术问题,本发明的技术方案如下:
8.一种基于数据流模型的图划分方法,包括以下步骤:
9.s2:获取流图数据;
10.s1:基于重划分的思想的方法对hdrf算法进行改进,得到改进后的hdrf算法,所述改进后的hdrf算法用于对流图进行划分;
11.s3:利用改进后的hdrf算法对所述流图进行划分。
12.hdrf算法出自论文《hdrf:stream-based partitioning for power-law graphs》,hdrf算法在分配一条边时,为每个子图计算一个目标函数值,选择值最高的子图分配。
13.优选地,步骤s1中所述获取流图数据具体为:
14.获取图g(v,e)中的点集v、边集e、顶点度数d(v)和边的旧分区p,设置分区数k和用于控制复制因子和平衡项比例的参数λ。
15.优选地,步骤s2中基于重划分的思想对hdrf算法进行改进得到re-hdrf算法,基于重划分的思想和神经网络的方法对hdrf算法进行改进得到ginger算法。
16.优选地,所述re-hdrf算法具体为:
17.对图g(v,e)中的顶点进行若干轮扫描,统计得到的顶点的准确度数,在后续轮次的迭代中均使用所述的顶点的准确度数,每轮扫描都以上一轮得到的顶点划分结果作为初始划分输入,在每一轮扫描中,对顶点进行重新分配,输出新的划分结果;在重划分过程中,通过调节参数λ来进一步改善划分的效果,在第一轮扫描时使用较大的λ确保分块间的平衡性,随后减小λ来优化划分产生的复制因子;
18.所述在每一轮扫描中,对顶点进行重新分配,输出新的划分结果,具体为:
19.遍历边集e中的每一条边,对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,其中a(vi)为点vi的邻点的集合,a(vj)为点vj的邻点的集合,θ(vi)为顶点的相对度数大小;
[0020]
在这两层遍历中,找到使得目标函数最大的边e,在旧边集合中添加e然后更新划分的边集。
[0021]
优选地,所述对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,具体为:
[0022]
t

p[e],e
t
←et
\{e}
[0023]
a(vi)

a(vi)\{t},a(vj)

a(vj)\{t}
[0024][0025]
其中:t表示第t个分块,t

p[e]表示把边e划分到第t块,\表示去除集合中的元素,{t}和{e}表示一个元素的集合。
[0026]
优选地,所述在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,具体为:
[0027][0028][0029]
val[p]

g(vi,p) g(vj,p) λc(p)
[0030]
其中:maxsize表示分区中的最大的边数,minisize表示分区中最小的边数。p表示当前的分区,e
p
表示p分区的边的集合,σ为常数项。
[0031]
优选地,所述ginger算法,具体为:
[0032]
对图g(v,e)中进行第一轮扫描后,统计得到图g(v,e)中所有顶点的度数信息,根据统计得到的图中顶点分布信息,利用神经网络进行学习确定阈值,若后续选择的顶点的度数大于所述阈值则进行操作;
[0033]
将所有点的度数d(v)全部更新为0,使用神经网络学到阈值θ,遍历边集中的每一条边e(vi,vj),更新对应点vi,vj的归一化的度数,计算f(vi),f(vj),的值并比较大小,若满足:d(vj)》θ,且f(vi)≤f(vj)则将点vi重新分配,其中:
[0034]
f(vi)=θ(vi)-λs(vi),f(vj)=θ(vj)-λs(vj)
[0035]
式中,θ(vi)表示顶点的相对度数大小,s(vi)表示分块的相对大小。
[0036]
优选地,所述利用神经网络进行学习确定阈值,具体为:
[0037]
将图的顶点度数分布量化为一个10维的向量作为神经网络的输入:首先将顶点的度数值从小到大进行排序统计,按照排序平均分为10份,分别作为向量的一个分量的值;
[0038]
对于每一个随机生成的图数据,通过上述方法得到一组训练数据,用以训练神经网络;
[0039]
利用网格搜索的方式得到神经网络的输出,得到近似的阈值。
[0040]
优选地,步骤s3中利用改进后的hdrf算法对所述流图进行划分,具体为:
[0041]
总进程读取数据,将数据分为k块并通过发散操作分给各子进程,各子进程利用改进后的hdrf算法对子块的顶点进行划分,并将分配结果发送至总进程,总进程收集顶点分配结果并进行多数投票得到最终划分结果。
[0042]
一种基于数据流模型的图划分系统,包括:
[0043]
数据获取模块,所述数据获取模块用于获取流图数据;
[0044]
算法模块,所述算法模块基于重划分的思想的方法对hdrf算法进行改进,得到改进后的hdrf算法,所述改进后的hdrf算法用于对流图进行划分;
[0045]
划分模块,所述划分模块利用改进后的hdrf算法对所述流图进行划分。
[0046]
与现有技术相比,本发明技术方案的有益效果是:
[0047]
本发明基于重划分的思路,对hdrf算法进行改进,利用改进后的hdrf算法对流图进行划分,提高了划分效果和算法的运行效率。
附图说明
[0048]
图1为本发明的方法流程示意图。
[0049]
图2为实施例提供的re-hdrf算法中重划分的示例图。
[0050]
图3为实施例提供的并行流程示意图。
[0051]
图4为本发明的系统模块示意图。
具体实施方式
[0052]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0053]
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0054]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0055]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0056]
实施例1
[0057]
本实施例提供一种基于数据流模型的图划分方法,如图1所示,包括以下步骤:
[0058]
s2:获取流图数据;
[0059]
s1:基于重划分的思想的方法对hdrf算法进行改进,得到改进后的hdrf算法,所述改进后的hdrf算法用于对流图进行划分;
[0060]
s3:利用改进后的hdrf算法对所述流图进行划分。
[0061]
步骤s1中所述获取流图数据具体为:
[0062]
获取图g(v,e)中的点集v、边集e、顶点度数d(v)和边的旧分区p,设置分区数k和用于控制复制因子和平衡项比例的参数λ。
[0063]
步骤s2中基于重划分的思想对hdrf算法进行改进得到re-hdrf算法,基于重划分的思想和神经网络的方法对hdrf算法进行改进得到ginger算法。
[0064]
所述re-hdrf算法基于重划分的思想对hdrf算法进行改进,能更好地利用图数据的全局信息,因为先前轮次的划分结果虽然只是利用顶点的局部信息并基于贪婪策略所得到的,但从整体来看,所得到的划分结果中已包含了原图的一部分全局信息。重新对图进行扫描并重分配的过程中,相当于在已掌握一定全局信息的情况下,再进一步利用图的局部信息对划分结果进行优化,从而能进一步提升划分的效果,具体为:
[0065]
对图g(v,e)中的顶点进行若干轮扫描,统计得到的顶点的准确度数,在后续轮次的迭代中均使用所述的顶点的准确度数,在重划分的过程中,由于第一轮扫描时已对全图进行了一遍完整的扫描,此时已统计得到的顶点的准确度数,在后续轮次的迭代中所使用的度数信息均为准确的度数;每轮扫描都以上一轮得到的顶点划分结果作为初始划分输入,在每一轮扫描中,对顶点进行重新分配,输出新的划分结果;在重划分过程中,通过调节参数λ来进一步改善划分的效果,在第一轮扫描时使用较大的λ确保分块间的平衡性,随后减小λ来优化划分产生的复制因子;
[0066]
所述在每一轮扫描中,对顶点进行重新分配,输出新的划分结果,具体为:
[0067]
遍历边集e中的每一条边,对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,其中a(vi)为点vi的邻点的集合,a(vj)为点vj的邻点的集合,θ(vi)为顶点的相对度数大小;
[0068]
在这两层遍历中,找到使得目标函数最大的边e,在旧边集合中添加e然后更新划分的边集,如图2所示。
[0069]
所述对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,具体为:
[0070]
t

p[e],e
t
←et
\{e}
[0071]
a(vi)

a(vi)\{t},a(vj)

a(vj)\{t}
[0072][0073]
其中:t表示第t个分块,t

p[e]表示把边e划分到第t块,\表示去除集合中的元素,{t}和{e}表示一个元素的集合。
[0074]
所述在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,具体为:
[0075][0076]
[0077]
val[p]

g(vi,p) g(vj,p) λc(p)
[0078]
其中:maxsize表示分区中的最大的边数,minisize表示分区中最小的边数。p表示当前的分区,e
p
表示p分区的边的集合,σ为常数项。
[0079]
re-hdrf算法的伪代码如表1所示:
[0080]
表1
[0081][0082]
所述ginger算法,具体为:
[0083]
对图g(v,e)中进行第一轮扫描后,统计得到图g(v,e)中所有顶点的度数信息,根据统计得到的图中顶点分布信息,利用神经网络进行学习确定阈值,若后续选择的顶点的度数大于所述阈值则进行操作;
[0084]
将所有点的度数d(v)全部更新为0,使用神经网络学到阈值θ,遍历边集中的每一条边e(vi,vj),更新对应点vi,vj的归一化的度数,计算f(vi),f(vj),的值并比较大小,若满足:d(vj)》θ,且f(vi)≤f(vj)则将点vi重新分配,其中:
[0085]
f(vi)=θ(vi)-λs(vi),f(vj)=θ(vj)-λs(vj)
[0086]
式中,θ(vi)表示顶点的相对度数大小,s(vi)表示分块的相对大小。
[0087]
所述利用神经网络进行学习确定阈值,具体为:
[0088]
将图的顶点度数分布量化为一个10维的向量作为神经网络的输入:首先将顶点的度数值从小到大进行排序统计,按照排序平均分为10份,分别作为向量的一个分量的值;
[0089]
对于每一个随机生成的图数据,通过上述方法得到一组训练数据,用以训练神经网络;
[0090]
利用网格搜索的方式得到神经网络的输出,得到近似的阈值。
[0091]
所述ginger算法的伪代码如表2所示:
[0092]
表2
[0093][0094]
实施例2
[0095]
本实施例在实施例1的基础上,使用并行算法对改进后的hdrf算法进行并行运算,如图3所示,具体为:
[0096]
总进程读取数据,将数据分为k块并通过发散操作分给各子进程,各子进程利用改进后的hdrf算法对子块的顶点进行划分,并将分配结果发送至总进程,总进程收集顶点分配结果并进行多数投票得到最终划分结果。
[0097]
改进的hdrf算法包括re-hdrf算法和ginger算法。
[0098]
re-hdrf算法具体为:
[0099]
对图g(v,e)中的顶点进行若干轮扫描,统计得到的顶点的准确度数,在后续轮次的迭代中均使用所述的顶点的准确度数,在重划分的过程中,由于第一轮扫描时已对全图进行了一遍完整的扫描,此时已统计得到的顶点的准确度数,在后续轮次的迭代中所使用的度数信息均为准确的度数;每轮扫描都以上一轮得到的顶点划分结果作为初始划分输入,在每一轮扫描中,对顶点进行重新分配,输出新的划分结果;在重划分过程中,通过调节参数λ来进一步改善划分的效果,在第一轮扫描时使用较大的λ确保分块间的平衡性,随后
减小λ来优化划分产生的复制因子;
[0100]
所述在每一轮扫描中,对顶点进行重新分配,输出新的划分结果,具体为:
[0101]
遍历边集e中的每一条边,对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,其中a(vi)为点vi的邻点的集合,a(vj)为点vj的邻点的集合,θ(vi)为顶点的相对度数大小;
[0102]
在这两层遍历中,找到使得目标函数最大的边e,在旧边集合中添加e然后更新划分的边集,如图2所示。
[0103]
所述对于边e(vi,vj),更新对应值:a(vi),a(vj),θ(vi)的值,具体为:
[0104]
t

p[e],e
t
←et
\{e}
[0105]
a(vi)

a(vi)\{t},a(vj)

a(vj)\{t}
[0106][0107]
所述在k个分区中更新平衡项c(p)、计算re-hdrf算法的复制因子的项g(v,p),通过它们计算目标函数val[p]的值,具体为:
[0108][0109][0110]
val[p]

g(vi,p) g(vj,p) λc(p)
[0111]
式中,σ为常数项。
[0112]
所述ginger算法,具体为:
[0113]
对图g(v,e)中进行第一轮扫描后,统计得到图g(v,e)中所有顶点的度数信息,根据统计得到的图中顶点分布信息,利用神经网络进行学习确定阈值,若后续选择的顶点的度数大于所述阈值则进行操作;
[0114]
将所有点的度数d(v)全部更新为0,使用神经网络学到阈值θ,遍历边集中的每一条边e(vi,vj),更新对应点vi,vj的归一化的度数,计算f(vi),f(vj),的值并比较大小,若满足:d(vj)》θ,且f(vi)≤f(vj)则将点vi重新分配,其中:
[0115]
f(vi)=θ(vi)-λs(vi),f(vj)=θ(vk)-λs(vj)
[0116]
式中,θ(vi)表示顶点的相对度数大小,s(vi)表示分块的相对大小。
[0117]
所述利用神经网络进行学习确定阈值,具体为:
[0118]
将图的顶点度数分布量化为一个10维的向量作为神经网络的输入:首先将顶点的度数值从小到大进行排序统计,按照排序平均分为10份,分别作为向量的一个分量的值;
[0119]
对于每一个随机生成的图数据,通过上述方法得到一组训练数据,用以训练神经网络;
[0120]
利用网格搜索的方式得到神经网络的输出,得到近似的阈值。
[0121]
实施例3
[0122]
本实施例提供一种基于数据流模型的图划分系统,如图4所示,包括:
[0123]
数据获取模块,所述数据获取模块用于获取流图数据;
[0124]
算法模块,所述算法模块基于重划分的思想的方法对hdrf算法进行改进,得到改进后的hdrf算法,所述改进后的hdrf算法用于对流图进行划分;
[0125]
划分模块,所述划分模块利用改进后的hdrf算法对所述流图进行划分。
[0126]
相同或相似的标号对应相同或相似的部件;
[0127]
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
[0128]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献