银行交易资金回流多线程并行检测方法及系统

文档序号:33892936发布日期:2023-04-21 02:35阅读:79来源:国知局
银行交易资金回流多线程并行检测方法及系统

本发明涉及大数据分析处理,特别是涉及一种银行交易资金回流多线程并行检测方法及系统。


背景技术:

1、在金融大数据分析领域,银行交易记录中的资金回流意味着可能存在金融欺诈行为,是银行金融风控和金融监管的一项重要内容。由于银行交易记录数据量庞大,可能包含数十亿个账户和数千亿甚至万亿条交易流水,而账户之间的交易信息可能错综复杂,因此如何从海量复杂数据中快速检测出存在回流预警的交易环路是需要解决的重要问题。

2、图数据结构使用顶点和边表示一组对象及对象之间的关系,可以使用有向图直观、自然地对银行交易数据进行建模,然后利用有向图中的环路挖掘进行交易资金回流的检测。传统的有向环路求解方法大多是串行的思想,利用图上的深度优先搜索遍历来检测环路。串行方法需要高额的数据访问开销和计算开销以遍历整个有向图寻找图中存在的所有有向环路,对银行交易记录这种海量数据使用串行方法进行环路求解存在许多不足。一方面,串行方法无法充分利用多核多处理器的高并发性,造成底层硬件资源的大幅度浪费;另一方面串行环路挖掘效率低,导致资金回流链路检测的反馈时间延迟,无法满足实时金融风控和监管的需求。


技术实现思路

1、本发明的目的是提供一种银行交易资金回流多线程并行检测方法及系统,通过将计算任务分解到多个线程上并行执行,充分利用底层多核处理器的高并发性缩短算法执行时间,提高存在回流预警的交易环路的挖掘效率。

2、为实现上述目的,本发明提供了如下方案:

3、一种银行交易资金回流多线程并行检测方法,包括:

4、根据银行交易记录构建有向图及其邻接表存储结构,并增加一个虚拟顶点来指向有向图中每一个顶点;

5、基于所述有向图创建线程间共享内存数据结构,定义并初始化线程内局部数据结构;

6、基于所述线程间共享内存数据结构和所述线程内局部数据结构,调用多个线程同时从所述虚拟顶点出发进行深度优先搜索遍历执行有向环路求解算法;

7、所有线程运行结束之后,利用所述线程间共享内存数据结构中的环路集合输出检测到的资金回流环路。

8、可选地,所述根据银行交易记录构建有向图及其邻接表存储结构,并增加一个虚拟顶点来指向有向图中每一个顶点,具体包括:

9、获取银行交易记录;所述银行交易记录中包括多条交易流水;

10、将每一条交易流水对应一条有向边,资金转出账户作为起始顶点,资金转入账户作为终止顶点,构建出银行交易记录的有向图;

11、为所述有向图中的每个顶点构建对应的邻接表来存放该顶点指向的所有邻接点;

12、在所述有向图中增加一个虚拟顶点,所述虚拟顶点的邻接表中的邻接点为所述有向图中的所有顶点。

13、可选地,所述基于所述有向图创建线程间共享内存数据结构,定义并初始化线程内局部数据结构,具体包括:

14、针对所述有向图中的每个顶点创建三个线程间共享内存数据结构,分别为状态集合status(v)、线程集合thread(v)以及环路集合circle(v);其中状态集合status(v)用于记录该顶点的状态,线程集合thread(v)用于记录该顶点当前所在的线程集合,环路集合circle(v)用于记录该顶点当前所处的环路集合;

15、针对每一个线程p定义两个线程内局部数据结构,分别为控制栈和顶点栈;其中控制栈用于模拟该线程p进行深度优先搜索的递归操作,顶点栈用于存储深度优先搜索遍历过程中访问到的顶点序列;

16、初始化所述控制栈和顶点栈均为空。

17、可选地,所述所有线程运行结束之后,利用所述线程间共享内存数据结构中的环路集合输出检测到的资金回流环路,具体包括:

18、所有线程运行结束之后,扫描所述线程间共享内存数据结构中的环路集合的并查集,找出每个环路顶点集合的根节点,并根据根节点的个数统计总的资金回流环路个数;

19、对每个并查集根节点创建一个环路链表存放该根节点所在环路的顶点信息,初始化为空;

20、遍历有向图中的每个顶点,利用并查集上的查找算法找到该顶点的根结点,将该顶点添加至对应根节点的环路链表中;

21、根据每个并查集根节点对应的环路链表输出预设交易长度范围内的资金回流环路。

22、一种银行交易资金回流多线程并行检测系统,包括:

23、有向图及邻接表构建模块,用于根据银行交易记录构建有向图及其邻接表存储结构,并增加一个虚拟顶点来指向有向图中每一个顶点;

24、数据结构构建模块,用于基于所述有向图创建线程间共享内存数据结构,定义并初始化线程内局部数据结构;

25、多线程并行检测模块,用于基于所述线程间共享内存数据结构和所述线程内局部数据结构,调用多个线程同时从所述虚拟顶点出发进行深度优先搜索遍历执行有向环路求解算法;

26、资金回流交易信息输出模块,用于在所有线程运行结束之后,利用所述线程间共享内存数据结构中的环路集合输出检测到的资金回流环路。

27、可选地,所述有向图及邻接表构建模块具体包括:

28、交易记录获取单元,用于获取银行交易记录;所述银行交易记录中包括多条交易流水;

29、有向图构建单元,用于将每一条交易流水对应一条有向边,资金转出账户作为起始顶点,资金转入账户作为终止顶点,构建出银行交易记录的有向图;

30、邻接表构建单元,用于为所述有向图中的每个顶点构建对应的邻接表来存放该顶点指向的所有邻接点;

31、虚拟顶点增加单元,用于在所述有向图中增加一个虚拟顶点,所述虚拟顶点的邻接表中的邻接点为所述有向图中的所有顶点。

32、可选地,所述数据结构构建模块具体包括:

33、线程间共享内存数据结构构建单元,用于针对所述有向图中的每个顶点创建三个线程间共享内存数据结构,分别为状态集合status(v)、线程集合thread(v)以及环路集合circle(v);其中状态集合status(v)用于记录该顶点的状态,线程集合thread(v)用于记录该顶点当前所在的线程集合,环路集合circle(v)用于记录该顶点当前所处的环路集合;

34、线程内局部数据结构构建单元,用于针对每一个线程p定义两个线程内局部数据结构,分别为控制栈和顶点栈;其中控制栈用于模拟该线程p进行深度优先搜索的递归操作,顶点栈用于存储深度优先搜索遍历过程中访问到的顶点序列;

35、线程内局部数据结构初始化单元,用于初始化所述控制栈和顶点栈均为空。

36、可选地,所述资金回流交易信息输出模块具体包括:

37、资金回流环路个数统计单元,用于在所有线程运行结束之后,扫描所述线程间共享内存数据结构中的环路集合的并查集,找出每个环路顶点集合的根节点,并根据根节点的个数统计总的资金回流环路个数;

38、根节点环路链表创建单元,用于对每个并查集根节点创建一个环路链表存放该根节点所在环路的顶点信息,初始化为空;

39、遍历查找单元,用于遍历有向图中的每个顶点,利用并查集上的查找算法找到该顶点的根结点,将该顶点添加至对应根节点的环路链表中;

40、资金回流环路输出单元,用于根据每个并查集根节点对应的环路链表输出预设交易长度范围内的资金回流环路。

41、根据本发明提供的具体实施例,本发明公开了以下技术效果:

42、本发明提供了一种银行交易资金回流多线程并行检测方法及系统,所述方法包括:根据银行交易记录构建有向图及其邻接表存储结构,并增加一个虚拟顶点来指向有向图中每一个顶点;基于所述有向图创建线程间共享内存数据结构,定义并初始化线程内局部数据结构;基于所述线程间共享内存数据结构和所述线程内局部数据结构,调用多个线程同时从所述虚拟顶点出发进行深度优先搜索遍历执行有向环路求解算法;所有线程运行结束之后,利用所述线程间共享内存数据结构中的环路集合输出检测到的资金回流环路。本发明方法通过将计算任务分解到多个线程上并行执行,充分利用了底层多核处理器的高并发性缩短了算法执行时间,提高了存在回流预警的交易环路的挖掘效率。

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