CN110175172B - 基于稀疏二分图的极大二分团并行枚举方法 - Google Patents
基于稀疏二分图的极大二分团并行枚举方法 Download PDFInfo
- Publication number
- CN110175172B CN110175172B CN201910428364.2A CN201910428364A CN110175172B CN 110175172 B CN110175172 B CN 110175172B CN 201910428364 A CN201910428364 A CN 201910428364A CN 110175172 B CN110175172 B CN 110175172B
- Authority
- CN
- China
- Prior art keywords
- task
- bipartite graph
- node
- candidate set
- stack
- 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.)
- Expired - Fee Related
Links
Images
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/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
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于稀疏二分图的极大二分团并行枚举方法,相较于现有技术而言,本发明采用并行计算的方式,能够使各个计算任务并行运算,包括均匀的初始化任务分配和高效的任务迁移,以及对单个任务的信息量做了去冗余操作,让冗余重复的信息存储在一个公共区域,每个任务只有执行的时候,才会去查询并获得所有参数信息,这样做既减少了对内存的压力,也加快了任务迁移的速度,在解决MBE问题时,能够有效提升计算效率。
Description
技术领域
本发明涉及图数据挖掘技术领域,尤其涉及一种基于稀疏二分图的极大二分团并行枚举方法。
背景技术
近年来,基于二分图的MBE(maximal biclique enumeration,极大二分团枚举)问题是图数据挖掘领域的研究热点之一。MBE问题可应用于生物系统发生树、蛋白质相互作用网络结构的发现与分析、商品推荐及人物兴趣分析等。
目前在二分图上解决MBE问题,一般都采用串行计算的方式,这种计算方式没有办法充分利用硬件资源,提高计算效率较低。
发明内容
本申请提供了一种基于稀疏二分图的极大二分团并行枚举方法,可以解决现有技术中解决MBE问题的方式计算效率较低的技术问题。
具体的,本发明提供一种基于稀疏二分图的极大二分团并行枚举方法,所述稀疏二分图包括由用户与购买物品所组成的二分图G,所述方法包括:
步骤一、初始化所述二分图G对应的任务栈St与计算参数,所述计算参数包括候选集P、验证集Q、所述二分图G对应二分团的右部R与左部L;
步骤二、在线程t内遍历候选集P,所述候选集P包括若干个节点;
步骤三、从所述任务栈St的栈顶获取任务x;
步骤四、基于所述任务x、所述二分图G及预置的存储区域Dt,确定当前任务所需要处理的节点v,以及当前任务所需要的候选集P1、验证集Q1、所述二分图G对应二分团的右部R1与左部L1;
步骤五、根据所述二分图G、节点v及所述左部L1,计算所述节点v在所述左部L1中的邻居L’;
步骤六、判断所述节点v的flag属性是否为false,若为false,则返回执行步骤三;若为true,则继续执行步骤七;
步骤七、遍历验证集Q1,生成孩子检测集Q’,并在搜索到的子任务中判断是否存在极大二分团,若不存在极大二分团,则返回执行步骤三,若存在极大二分团,则继续执行步骤八;
步骤八、遍历候选集P1中的各个节点p,如果p在所述邻居L’中的邻居个数大于0,则将节点p加入候选集P1,生成新的候选集P’,并输出极大二分团<L’,R’>;其中,R’表示节点v在所述右部R1中的邻居;
步骤九、判断候选集P’是否为空,若候选集P’为非空,则根据逆序遍历候选集P’,生成新任务加入任务栈St,再根据候选集P’、孩子检测集Q’、邻居L’、R’更新所述存储区域Dt;若候选集P’为空,则继续执行步骤十;
步骤十、判断所述任务栈St是否为空,若所述任务栈St为空,则确定所述线程t执行结束。
可选地,所述初始化所述二分图G对应的任务栈St与计算参数的步骤,包括:
基于所述二分图G的线程总数,对所述二分图G的各个线程进行取模操作,得到各个线程初始化后的任务栈与计算参数。
可选地,所述若所述任务栈St为空,则确定所述线程t执行结束的步骤,包括:
若所述任务栈St为空,则通过预置的负载均衡装置请求新任务;
当所述负载均衡装置未接收到响应消息时,确定所述线程t执行结束。
可选地,所述通过预置的负载均衡装置请求新任务的步骤之后,还包括:
若所述负载均衡装置接收到响应消息,则返回执行步骤三。
本发明提供的一种基于稀疏二分图的极大二分团并行枚举方法,相较于现有技术而言,本发明采用并行计算的方式,能够使各个计算任务并行运算,包括均匀的初始化任务分配和高效的任务迁移,以及对单个任务的信息量做了去冗余操作,让冗余重复的信息存储在一个公共区域,每个任务只有执行的时候,才会去查询并获得所有参数信息,这样做既减少了对内存的压力,也加快了任务迁移的速度,能够在解决MBE问题时,有效提升计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中给出的一种二分团示意图;
图2为本发明实施例中给出的一种极大二分团示意图;
图3为本发明实施例中基于稀疏二分图的极大二分团并行枚举方法对应的流程示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,图模型作为数据中的复杂关系的抽象,一直被广泛应用在各个领域中,例如社交网络,推荐系统,和生物信息学领域。这样的图数据,包含着很多稠密的子结构。从这些图中,发现这些稠密子结构,例如团(clique)、二分团(biclique)、k核子图(k-cores)是一种图数据挖掘、网络分析领域非常重要的手段。
例如,在推荐系统中,关系体现在用户和物品之间,例如,兴趣,购买趋势,排序,可以被抽象成用户-物品的二分图模型。在这样的模型中,一个二分团包含了用户集合和物品集合组成的子图,且这个子图中,每个用户喜欢物品集合中的所有物品。那么,发现所有的极大二分团,就是找到各种用户组合的最大范围的公共兴趣,这也对预测用户的购买意图有很大的帮助。另外,在生物信息学中,可以模拟各种生物信息挖掘问题,再通过数学建模,识别极大二分团,例如,生物系统树的构建,蛋白质相互作用网络分析,基因表现型分析,miRNA规则模块预测。
本实施例中,对稀疏二分图的定义如下:
对二分团的定义如下:
假设存在二分图G=(U∪V;E),其中,U,V表示二分图的两个部,且不失一般性,|U|>|V|;E表示边集。假设存在导出子图B=(L,R),其中,L∈U;R∈V,如果即L,R中任意两点存在边,则称B为二分团,具体可参照图1中B1,B2所示,图1为本发明实施例中给出的一种二分团示意图。
对极大二分团的定义如下:
假设存在一个二分团B,如果在二分图G中,不存在其他二分团包含B,则B是极大的,也称为极大二分团,具体可参照图2中B3所示,图2为本发明实施例中给出的一种极大二分团示意图。
对极大二分团枚举的定义如下:
给定一个二分图G,找出所有极大二分团并输出。例如,给定二分图G,所有极大二分团就是{({u1},{v1,v3});({u1,u2,u3,u4},{v1});({u2,u3,u4},{v2,v3})}。
具体的,本发明实施例中所提供的基于稀疏二分图的极大二分团并行枚举方法,包括以下步骤:
步骤一、初始化所述二分图G对应的任务栈St与计算参数,所述计算参数包括候选集P、验证集Q、所述二分图G对应二分团的右部R与左部L。
其中,每个线程t根据线程总数T取模操作,初始化自己的任务栈St,并初始化生成计算所需要的参数:P、Q、R、L。其中,验证集Q为已处理过的结点集合。
步骤二、在线程t内遍历候选集P,所述候选集P包括若干个节点。
其中,在线程内通过遍历P,DFS(Depth First Search,深度优先搜索)串行搜索,直至St为空时,停止搜索。
步骤三、从所述任务栈St的栈顶获取任务x。
步骤四、基于所述任务x、所述二分图G及预置的存储区域Dt,确定当前任务所需要处理的节点v,以及当前任务所需要的候选集P1、验证集Q1、所述二分图G对应二分团的右部R1与左部L1。
步骤五、根据所述二分图G、节点v及所述左部L1,计算所述节点v在所述左部L1中的邻居L’。
步骤六、判断所述节点v的flag属性是否为false,若为false,则返回执行步骤三;若为true,则继续执行步骤七。
其中,节点v的flag属性若为false,表示需要被剪枝。
步骤七、遍历验证集Q1,生成孩子检测集Q’,并在搜索到的子任务中判断是否存在极大二分团,若不存在极大二分团,则返回执行步骤三,若存在极大二分团,则继续执行步骤八。
其中,如果Q1中存在节点q,q的邻居被L’包含,就代表这个二分团在以前的搜索过程中被处理过了,就不是极大二分团。
步骤八、遍历候选集P1中的各个节点p,如果p在所述邻居L’中的邻居个数大于0,则将节点p加入候选集P1,生成新的候选集P’,并输出极大二分团<L’,R’>;其中,R’表示节点v在所述右部R1中的邻居。
其中,在步骤八中,可以通过标记某些节点,提前剪枝,将其节点的flag属性置为false。
步骤九、判断候选集P’是否为空,若候选集P’为非空,则根据逆序遍历候选集P’,生成新任务加入任务栈St,再根据候选集P’、孩子检测集Q’、邻居L’、R’更新所述存储区域Dt;若候选集P’为空,则继续执行步骤十。
步骤十、判断所述任务栈St是否为空,若所述任务栈St为空,则确定所述线程t执行结束。
其中,若所述任务栈St为空,则通过预置的负载均衡装置请求新任务;当所述负载均衡装置未接收到响应消息时,确定所述线程t执行结束。若所述负载均衡装置接收到响应消息,则返回执行步骤三。
为了更好的理解本发明实施例,参照图3,图3为本发明实施例中基于稀疏二分图的极大二分团并行枚举方法对应的流程示意图。
进一步的,本实施例中,采用数据并行的方式,在实现并行计算前,对数据结构做了一些调整。候选结点增加了一个标志位,构成新元素类型,即二元组(v,bit)。
候选结点的原始类型为结点,新类型为一个增加bit类型的二元组。由于在现有技术中,存在候选结点的不规则删除操作,即当候选结点p满足剪枝条件,R不可能通过扩展p,获得合法的二分团。而本实施例使用新元素类型之后,即可允许了逻辑删除操作,使得候选集P的大小变化有规律,因为变化操作仅仅在于,处理完候选集P的第一个候选结点P[0]之后,从P中删除即可。bit=1的时候,表示结点v可以被访问,否则,不被访问。
其中,本实施例中,可以对每一个候选结点,在并行计算初始化时,分配好任务给对应的计算资源,做数据并行。也就是,在深度搜索深度为1的时候,初始化任务分配,分割搜索节点。
进一步的,在一个并行算法中,为了充分发挥现有资源的计算能力,很容易想到,对每一个资源的任务分配越平均越好,因为,短板效应说明了,最慢的资源运行时间,决定了整个系统的运行时间。本实施例中的任务量估计和任务分配策略,主要有以下两种策略:
(1)按照下标简单取模分配任务
假设|P|=2n,结点索引值为1,...,2n-1,2n,总线程数为N。当i%N==t时,第i个结点分配给线程t。
(2)根据SP大小排序分配任务
孩子候选集的大小,决定了该分支的任务量。从上文中串行算法的优化2可以看出,SP的大小,可以从侧面反映孩子候选集的大小,故在任务分配的时候,对每个节点计算SP,即每个节点的2阶邻居,根据SP的大小,对原始候选集非递减排序。然后,对排序后的P每个结点,山峰式重新赋予索引值,假设|P|=2n,总线程数为N。则结点索引值为1,...,n,n,...,1。当i%N==t时,第i个结点分配给线程t。
进一步的,为了实现并行化,需要将任务信息提前存储,以便于后面对未完成的任务进行转移,达到负载均衡。简单来说,可以利用参数栈,实现深度搜索。
具体的,在在DFS(Depth-First Search,深度优先搜索)中,给每一个搜索任务赋予任务ID,由二元组(d,i)组成,d表示搜索深度,i表示在当前搜索分支上的序号。且相同的任务ID,不会影响结果的正确性,因为DFS的计算有先后之分,即相同搜索深度的任务,左边的一定先执行。
其中,采用任务栈存储当前未执行的搜索任务,栈元素可以为任务ID。其中,栈顶表示当前搜索任务,栈为空时,整个搜索结束。
其中,对于每一个计算单元,如线程,可以把它DFS中的所有递归的中间参数,全局化,放到一个参数数组内。通过分析参数栈的特点,可以发现,在改变候选结点类型之后,在同一分支中,候选集的变化是有规律的,相邻任务候选集大小相差1。和候选结点有关的两个参数是候选集和检测集,候选集不断减小,检测集不断增大,可以把该分支的初始候选集和检测集定义为XP,XQ,再通过任务ID动态地从XP,XQ中计算当前候选集和检测集。具体的计算方法是,假设存在任务ID(d,i)和参数XP,XQ,则当前任务对应的候选集和检测集就是,{X[d][i],X[d][i+1],...}和{XP[d][0],...,XP[d][i-1]}∪XQ[d]。这样便能去除参数的冗余信息,解决了存储空间浪费的问题。
需要说明的是,由于深度优先搜索树种每一个分支的深度都是未知的,所以动态参数数组实际上是动态的,在需要的时候,需要开辟新的内存空间。
进一步地,由于负载均衡是在任务之间分配大致相同数量的工作的做法,以便所有任务始终保持忙碌状态,它也可以被认为是使任务空闲时间最小化。出于性能原因,负载均衡对并行程序很重要。图论数据挖掘中,迭代计算是一种常用的方法,在并行计算的过程中,会考虑任务量的均衡性,自然就要对迭代计算中,考虑任务量的估计,然而,未知的迭代次数,导致任务量无法准确估计,大多数研究者也是通过近似估计,来逼近负载均衡的目的。所以实施例采取的方式是,初始化近似估计任务量,平均分配到每个计算资源上,当计算资源空闲时,通过转移忙碌资源未完成的任务和相关参数,实现资源利用率的提高。
其中,在执行过程中,当出现资源空闲情况的时候,向忙碌资源“窃取”任务,假设任务ID栈S中有n个元素,有如下策略。
(1)根据任务数量转移
首先初始化计数变量c=0,栈S循环出栈,每出栈一次,变量c加1,直到c的数值大于总元素数目的一半,即n/2的时候,退出循环。
伪代码如下:
输入:任务栈S
输出:空
c←0;
n←len(S);
while(c≠n/2){
e←S.pop();
转移e;
c←c+1;
}
(2)根据任务带权和转移
容易想到,栈内每个元素相对应的任务量大小不同,可以对其赋予不同权重,用加权和表示总任务量的大小,再转移,会获得更加均衡的效果。首先,对权重进行分析。假设d为搜索深度,i为分支索引,任务量用当前搜索任务的分支节点总数表示。则引入任务ID(d,i)数据结构后,经过仔细分析,结合DFS树,可以得以下结论:1)d相同,i越小,任务量越大;2)d越小,任务量越大。
伪代码如下:
其中,如果仅仅考虑数量,相当于,对每一个任务的权重默认为一样,但是,由DFS性质可知,对于不同的搜索任务,搜索深度越小,任务量越大。其中,任务权重的大小可以表示当前搜索任务的分支节点总数的大小,假设栈顶元素为top,任意元素x,则权重计算公式为x.w=(top.d+1)-(x.d+x.i/10)。
其中,当WS很小的时候,可以认为,该线程将在极短的时间内,完成全部搜索任务,任务ID转移时间甚至可能大于搜索时间,所以就不参与任务ID转移。于是可以给定一个阈值T,当线程t的任务ID栈对应的WS低于阈值T的时候,则线程t不参与任务ID转移。根据实际实验经验得到,当T=2.0时,动态负载均衡策略,获得不错的效果。所以这里可以得到并行算法的终止条件,就是空闲线程发出请求,当没有响应的时候,表示其他线程要么已经执行结束,要么任务量低于阈值,故可以直接终止线程,如果每个线程都空闲,则并行算法结束。
发生动态负载均衡任务转移的时候,任务所对应的参数也应该随着转移和更新,繁忙的线程“借出”参数后,需要在动态参数数组中删除对应任务ID的搜索深度的数组元素。同时,在空闲线程的动态参数数组中,需要更新相对应任务ID的搜索深度的数组元素。
对于安全性,在并行计算中,数据安全一直占据着重要的地位,一般会采用锁机制等手段,保证数据的安全性,在本实施例中,应用互斥锁思想,在空闲资源向繁忙资源“借”任务时,需要更新繁忙资源的动态参数数组,但是,这时候可能繁忙资源还在处理着自己的任务,动态参数数组正在被占用,所以,必须等待这次单元任务执行完成。同理,在动态负载均衡更新动态参数数组时候,任务处理必须停下等待,直到“借”任务完成。所以这里给参数数组和任务ID栈设置的了互斥锁,必须获取锁,才能执行。
为了更好的理解本发明实施例,本实施例提供的动态负载均衡的伪代码如下:
输入:空闲线程ti,繁忙线程tb
输出:空
Lock(ti);
根据加权任务转移策略,计算带权任务栈最低搜索深度参数d;
将tb的带权任务栈d以上相关的任务转移到ti中;
将tb的共享参数数组和d以上相关的参数转移到ti中;
Unlock(ti);
进一步的,为了更好的理解本发明实施例,本实施例提供的基于稀疏二分图的极大二分团并行计算系统的伪代码如下:
输入:二分图G,进程序号m,线程序号k
输出:所有极大二分团
1、根据tm,k选择任务,初始化任务栈S
2、初始化动态参数数组
XL[1]←U;
3、循环搜索
while(!S.isEmpty()){
lock;//加锁
task←S.pop();
d←task.d;i←task.i;
P←{XP[d][i],XP[d][i+1],...};
Q←{XP[d][0],XP[d][i-1],...}∪XQ[d];
P',Q',L',R'←sMBEA(G,P,Q,XL[d],XR[d]);
输出极大二分团(L',R')
XP[d+1]←P';
XQ[d+1]←Q';
XL[d+1]←L';
XR[d+1]←R';
unlock;//解锁
}
4、动态负载均衡,“借”任务,“借”到任务就返回步骤3,否则继续执行。
5、结束。
进一步地,对于并行扩展性研究:
首先,二分图数据使用邻接表表示,每个元素类型是一个数组,记录元素对应的结点的所有邻居,而不是使用邻接矩阵,或者是邻居链表,这样使得二分图的数据尽量被压缩到最小,缩短读入时间。
每个进程都需要整个二分图的副本,单个进程内的多个线程可以共享一个二分图副本,所以考虑并行算法的可扩展性后,副本数仅和进程数相关,例如,一共有2个进程,每个进程有4个线程,则二分图副本数为2。为了实现每个进程二分图副本的读入,对比实现了两种方法:(1)、单机对二分图G进行复制,再依次传输到每一个进程上。(2)、多个进程并行读取二分图,并复制到自己的进程中。当进程数很大的时候,第二种方法则更高效。
对于多进程任务分配:
为了使得任务分配更均衡,任务量估计的可靠性就尤为重要,根据上文的分析,利用SP的规模大小,间接估计对孩子候选集的大小,相比于直接利用结点度的估计方法,相对提高了任务量估计的可靠性。故有以下分配策略,首先,初始化给V所有节点按照SP排序,并给每个候选结点重新索引,N为奇数时,索引值为1,...,N,N-1,...,1,N为偶数时,索引值为1,...,N,N,N-1,...,1,假设每台机器内资源数相同,为K(例如线程数),多机层面上,资源数为M,则tm,k表示第m台机器下,第k个线程,则分配给tm,k的为索引值i当且仅当i%(M.K)=m.K+k。
对于多进程动态负载均衡策略:
和单进程的动态负载均衡策略相比,多进程环境下,存在更多的参数传输,且大多数处于分布式内存环境中,传输效率远远低于单进程的共享内存环境。所以这里的策略目标是,在保证进程空闲时,尽量分担其他忙碌进程的任务的同时,减少数据传输。对于这里的分担任务,具体来说,就是使得转移后,多进程之间的任务ID栈的对应的加权和差异越小越好,即方差小。备选策略如下:1、任务量最重的单台所有线程加权平均的一半。2、全局线程中,加权平均任务量最重的前3个线程的一半。
在本申请所提供的实施例中,应该理解到,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种基于稀疏二分图的极大二分团并行枚举方法的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种基于稀疏二分图的极大二分团并行枚举方法,其特征在于,所述稀疏二分图包括由用户与购买物品所组成的二分图G,所述方法包括:
步骤一、初始化所述二分图G对应的任务栈St与计算参数,所述计算参数包括候选集P、验证集Q、所述二分图G对应二分团的右部R与左部L;所述初始化所述二分图G对应的任务栈St与计算参数之前,还包括:对候选集P中每一节点增加一标志位,构成二元组(v,bit),v表示节点,bit表示标志位,在bit=1时,表示节点v可被访问;否则,表示节点v不被访问;步骤二、在线程t内遍历候选集P,所述候选集P包括若干个节点;
步骤三、从所述任务栈St的栈顶获取任务x;
步骤四、基于所述任务x、所述二分图G及预置的存储区域Dt,确定当前任务所需要处理的节点v,以及当前任务所需要的候选集P1、验证集Q1、所述二分图G对应二分团的右部R1与左部L1;
步骤五、根据所述二分图G、节点v及所述左部L1,计算所述节点v在所述左部L1中的邻居L’;
步骤六、判断所述节点v的flag属性是否为false,若为false,则返回执行步骤三;若为true,则继续执行步骤七;
步骤七、遍历验证集Q1,生成孩子检测集Q’,并在搜索到的子任务中判断是否存在极大二分团,若不存在极大二分团,则返回执行步骤三,若存在极大二分团,则继续执行步骤八;
步骤八、遍历候选集P1中的各个节点p,如果p在所述邻居L’中的邻居个数大于0,则将节点p加入候选集P1,生成新的候选集P’,并输出极大二分团<L’,R’>;其中,R’表示节点v在所述右部R1中的邻居;
步骤九、判断候选集P’是否为空,若候选集P’为非空,则根据逆序遍历候选集P’,生成新任务加入任务栈St,再根据候选集P’、孩子检测集Q’、邻居L’、R’更新所述存储区域Dt,并返回执行步骤三;若候选集P’为空,则继续执行步骤十;
步骤十、判断所述任务栈St是否为空,若所述任务栈St为空,则确定所述线程t执行结束。
2.如权利要求1所述的方法,其特征在于,所述初始化所述二分图G对应的任务栈St与计算参数的步骤,包括:
基于所述二分图G的线程总数,对所述二分图G的各个线程进行取模操作,得到各个线程初始化后的任务栈与计算参数。
3.如权利要求1所述的方法,其特征在于,所述若所述任务栈St为空,则确定所述线程t执行结束的步骤,包括:
若所述任务栈St为空,则通过预置的负载均衡装置请求新任务;
当所述负载均衡装置未接收到响应消息时,确定所述线程t执行结束。
4.如权利要求3所述的方法,其特征在于,所述通过预置的负载均衡装置请求新任务的步骤之后,还包括:
若所述负载均衡装置接收到响应消息,则返回执行步骤三。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428364.2A CN110175172B (zh) | 2019-05-22 | 2019-05-22 | 基于稀疏二分图的极大二分团并行枚举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428364.2A CN110175172B (zh) | 2019-05-22 | 2019-05-22 | 基于稀疏二分图的极大二分团并行枚举方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175172A CN110175172A (zh) | 2019-08-27 |
CN110175172B true CN110175172B (zh) | 2021-08-31 |
Family
ID=67691834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910428364.2A Expired - Fee Related CN110175172B (zh) | 2019-05-22 | 2019-05-22 | 基于稀疏二分图的极大二分团并行枚举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175172B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190717B (zh) * | 2020-01-02 | 2023-04-25 | 北京字节跳动网络技术有限公司 | 任务的处理方法和系统 |
CN113671985A (zh) * | 2021-07-28 | 2021-11-19 | 中国人民解放军32146部队 | 一种分阶段多基地无人机任务分配和航迹规划方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116639A (zh) * | 2013-02-20 | 2013-05-22 | 新浪网技术(中国)有限公司 | 基于用户-物品二分图模型的物品推荐方法及系统 |
CN103559016A (zh) * | 2013-10-23 | 2014-02-05 | 江西理工大学 | 一种基于图形处理器并行计算的频繁子图挖掘方法 |
CN108664548A (zh) * | 2018-03-27 | 2018-10-16 | 中国科学院软件研究所 | 一种退化条件下的网络访问行为特征群体动态挖掘方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209742B2 (en) * | 2009-01-07 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Computer-implemented method for obtaining a minimum biclique cover in a bipartite dataset |
-
2019
- 2019-05-22 CN CN201910428364.2A patent/CN110175172B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116639A (zh) * | 2013-02-20 | 2013-05-22 | 新浪网技术(中国)有限公司 | 基于用户-物品二分图模型的物品推荐方法及系统 |
CN103559016A (zh) * | 2013-10-23 | 2014-02-05 | 江西理工大学 | 一种基于图形处理器并行计算的频繁子图挖掘方法 |
CN108664548A (zh) * | 2018-03-27 | 2018-10-16 | 中国科学院软件研究所 | 一种退化条件下的网络访问行为特征群体动态挖掘方法及系统 |
Non-Patent Citations (2)
Title |
---|
"An Optimized MBE Algorithm on Sparse Bipartite Graphs";Yu He等;《International Conference on Smart Computing and Communication》;20181209;全文 * |
"大数据平台下基于图划分的最大团问题求解方法研究";尹君;《中国优秀硕士学位论文全文数据库 基础科学辑》;20180415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110175172A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shi et al. | Large-scale and scalable latent factor analysis via distributed alternative stochastic gradient descent for recommender systems | |
Mahadik et al. | Fast distributed bandits for online recommendation systems | |
Cheng et al. | Fast algorithms for maximal clique enumeration with limited memory | |
Vats et al. | Performance evaluation of K-means clustering on Hadoop infrastructure | |
Ferranti et al. | A distributed approach to multi-objective evolutionary generation of fuzzy rule-based classifiers from big data | |
Hidri et al. | Speeding up the large-scale consensus fuzzy clustering for handling big data | |
CN108140061B (zh) | 确定图中的同现率的方法、存储介质和系统 | |
CN111400555B (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
Bhatia et al. | A distributed overlapping community detection model for large graphs using autoencoder | |
Zhou et al. | Graphtwist: Fast iterative graph computation with two-tier optimizations | |
Arnaiz-González et al. | MR-DIS: democratic instance selection for big data by MapReduce | |
Heintz et al. | MESH: A flexible distributed hypergraph processing system | |
Zhang et al. | Protein complexes discovery based on protein-protein interaction data via a regularized sparse generative network model | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
Zhang et al. | A survey on graph neural network acceleration: Algorithms, systems, and customized hardware | |
Sowkuntla et al. | MapReduce based improved quick reduct algorithm with granular refinement using vertical partitioning scheme | |
Dongarra et al. | Parallel processing and applied mathematics | |
CN113986816A (zh) | 可重构计算芯片 | |
Su et al. | Towards optimal decomposition of Boolean networks | |
Ma et al. | Identification of multi-layer networks community by fusing nonnegative matrix factorization and topological structural information | |
Chatzakis et al. | Odyssey: A journey in the land of distributed data series similarity search | |
Meng et al. | A survey of distributed graph algorithms on massive graphs | |
Raman et al. | Scaling multinomial logistic regression via hybrid parallelism | |
Yang et al. | Parallel heuristics for balanced graph partitioning based on richness of implicit knowledge | |
Dasari et al. | Maximal clique enumeration for large graphs on hadoop framework |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210831 |