基于贪心搜索的最大归集子图的检测方法和装置与流程

文档序号:36427312发布日期:2023-12-20 22:52阅读:33来源:国知局
基于贪心搜索的最大归集子图的检测方法和装置与流程

本技术涉及图像处理,特别是涉及一种基于贪心搜索的最大归集子图的检测方法和装置。


背景技术:

1、在各行各业数据量激增,而垂直领域计算的算力存在瓶颈的背景下,如何能够在海量数据中检索到目标数据,成为了不同业务领域的共同诉求。在不同数据类型中,具有图网络结构的数据越来越普遍,需要基于应用挖掘具有特定结构的目标。在图数据中,具有归集性结构的子图往往具有特定含意或可能存在一定的异常,例如,通过归集性结构的子图发现股权关系中的实际控制人等。

2、随着计算机技术的发展,出现了一批图相关的软硬件技术。例如经典图计算算法,该算法包括最短路径搜索、环路检测、最小生成树、社区发现等;还有图神经网络方法,该方法通过聚合邻域节点特征,能够基于图网络的平滑性,进行节点类型预测、链接预测以及子图分类等。

3、但利用上述算法在大规模图上针对特定结构的子图进行挖掘的计算量极大,尤其是图神经网络方法一般需要大量的硬件资源开销,成本也较高。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够减小搜索复杂度,提高搜索效率的基于贪心搜索的最大归集子图的检测方法和装置。

2、第一方面,本技术提出一种基于贪心搜索的最大归集子图的检测方法,所述方法包括:

3、获取待检测有向图,将所述待检测有向图拆分出至少一个弱连通图;

4、计算所述弱连通图中每个节点的节点入出差;

5、基于所述节点入出差,在每一个所述弱连通图中检测具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图;其中,所述归集度基于所述子图中的所述节点入出差的平均值而得到;

6、基于所述初始最大归集子图,得到所述待检测有向图的目标最大归集子图。

7、在其中一个实施例中,所述获取待检测有向图,将所述待检测有向图拆分出至少一个弱连通图,包括:

8、获取待检测数据,基于所述待检测数据的拓扑结构生成待检测有向图;

9、将所述待检测有向图拆分为至少一个弱连通图。

10、在其中一个实施例中,所述获取待检测数据,基于所述待检测数据的拓扑结构生成待检测有向图,包括:

11、获取待检测数据,并判断检测的任务类型;

12、当所述任务类型为检测发散型子图时,基于所述待检测数据的拓扑结构生成初始有向图,并将所述初始有向图中的有向边的方向设为相反方向,得到待检测有向图;

13、当所述任务类型为检测归集型子图时,基于所述待检测数据的拓扑结构生成初始有向图,将所述初始有向图直接作为待检测有向图。

14、在其中一个实施例中,所述基于所述节点入出差,在每一个所述弱连通图中检测具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图,包括:

15、针对每一个所述弱连通图,将所述弱连通图中的节点按所述节点入出差的大小降序排列,得到节点序列;

16、在预设阶数范围内,逐阶循环遍历所述节点序列,并在每一阶所述遍历过程中基于递归归集子图搜索方法进行逐层搜索具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图;其中,所述阶数表示一个所述子图中包含的节点数量。

17、在其中一个实施例中,所述在预设阶数范围内,逐阶循环遍历所述节点序列,并在每一阶所述遍历过程中基于递归归集子图搜索方法进行逐层搜索具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图,包括:

18、初始化用于存储子图的最小堆;

19、从2阶子图开始,调用递归归集子图搜索方法,基于所述节点序列逐层递归搜索与目标阶数相等的连通子图,并记录每一所述连通子图的归集度;

20、当所述最小堆未存满时,将当前搜索到的所述连通子图插入所述最小堆;当所述最小堆已存满时,将所述归集度最小的所述连通子图从所述最小堆中弹出;

21、基于对比,将弹出的所述连通子图和当前搜索到的所述连通子图二者中的所述归集度更大的一个所述连通子图插入所述最小堆中;

22、直到将最大阶数的所述连通子图搜索完毕后,将所述最小堆中的存储的所述连通子图依次弹出,得到所述弱连通图对应的初始最大归集子图;其中,所述最大阶数的数值对应所述节点序列的总节点数。

23、在其中一个实施例中,所述调用递归归集子图搜索方法,基于节点序列逐层递归搜索与目标阶数相等的连通子图,包括:

24、在当前递归层,从起始序号开始遍历所述节点序列,并将已遍历的所述节点的节点序号和节点入出差进行组合,将组合后的内容记录为目标子图中的一个元素,至结束序号停止;

25、在遍历所述节点序列的过程中,判断当前递归层数值是否达到目标阶数;

26、若当前递归层数值未达到目标阶数,则令所述起始序号和所述递归层数值分别加上数值1,基于更新后述起始序号和所述递归层数值再次调用递归归集子图搜索方法;

27、若当前递归层数值已达到目标阶数,则基于记录的所述元素,得到目标子图;

28、判断所述目标子图是否为连通图,若所述目标子图是连通图,则基于所述目标子图得到连通子图,若所述目标子图不是连通图,则不保留所述目标子图。

29、在其中一个实施例中,所述直到将最大阶数的所述连通子图搜索完毕后,将所述最小堆中的存储的所述连通子图依次弹出,得到所述弱连通图对应的初始最大归集子图,包括:

30、在当前搜索到的所述连通子图小于弹出的所述连通子图的情况下,基于剪枝策略缩小搜索空间;

31、直到将最大阶数的所述连通子图搜索完毕后,将所述最小堆中的存储的所述连通子图依次弹出,得到所述弱连通图对应的初始最大归集子图。

32、在其中一个实施例中,所述基于所述初始最大归集子图,得到所述待检测有向图的目标最大归集子图,包括:

33、整合全部所述弱连通图对应的所述初始最大归集子图,并将所述初始最大归集子图按照归集度降序排列;

34、基于排序后的所述初始最大归集子图,从大到小保留目标数量的所述初始最大归集子图,得到所述待检测有向图的目标最大归集子图。

35、第二方面,本技术还提供了一种基于贪心搜索的最大归集子图的检测装置,所述装置包括:

36、拆分模块,用于获取待检测有向图,将所述待检测有向图拆分出至少一个弱连通图;

37、计算入出差模块,用于计算所述弱连通图中每个节点的节点入出差;

38、检测初始子图模块,用于基于所述节点入出差,在每一个所述弱连通图中检测具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图;其中,所述归集度基于所述子图中的所述节点入出差的平均值而得到;

39、获取目标子图模块,用于基于所述初始最大归集子图,得到所述待检测有向图的目标最大归集子图。

40、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的基于贪心搜索的最大归集子图的检测方法。

41、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于贪心搜索的最大归集子图的检测方法。

42、上述基于贪心搜索的最大归集子图的检测方法和装置,通过获取待检测有向图,将所述待检测有向图拆分出至少一个弱连通图;计算所述弱连通图中每个节点的节点入出差;基于所述节点入出差,在每一个所述弱连通图中检测具有大归集度的子图,得到各个所述弱连通图对应的初始最大归集子图;其中,所述归集度基于所述子图中的所述节点入出差的平均值而得到;基于所述初始最大归集子图,得到所述待检测有向图的目标最大归集子图,从而能够在大规模有向图上拆分出多个弱连通图,分别从每个弱连通图中搜索归集性结构的子图,实现了在大规模有向图上对归集性结构的子图的准确高效的挖掘,解决了现有的子图搜索方法复杂度较高,计算量较大的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1