CN114239963A - 有向图循环路径检测方法及装置 - Google Patents
有向图循环路径检测方法及装置 Download PDFInfo
- Publication number
- CN114239963A CN114239963A CN202111547799.2A CN202111547799A CN114239963A CN 114239963 A CN114239963 A CN 114239963A CN 202111547799 A CN202111547799 A CN 202111547799A CN 114239963 A CN114239963 A CN 114239963A
- Authority
- CN
- China
- Prior art keywords
- directed graph
- node
- marking
- target
- pruning
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Accounting & Taxation (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种有向图循环路径检测方法及装置,有向图循环路径检测方法包括:基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;若自目标子图中检测到包含有至少一个环路,则在目标子图中查找全部的连通子图,并标记各个连通子图各自对应的循环路径。本申请能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够提高在有向图中检测循环路径的便捷性、效率、有效性及可靠性,更适用于超大规模复杂网络的循环路径检测过程。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种有向图循环路径检测方法及装置。
背景技术
检测有向图中的循环路径是一种非常常见的图结构发现手段,并且循环路径检测也是一种应用场景非常广泛的算法,在担保、交易、转账等金融场景中,快速找出有向图中的循环路径是一种识别风险的有效手段。
目前检测有向图循环路径的常见方法是深度优先遍历DFS,这种方法通过对有向图进行深度遍历,通过判断记录遍历路径中的点是否出现重复的方式判断是否出现循环路径。这种方法需要对图中的每一个点作为起始节点进行DFS搜索,并且搜索次数会随着层级的增加而快速增加,而且路径节点也需要保存下来,这样就会使用大量的计算和存储资源,当图规模不大的时候还能够在一个相对不长的时间范围搜索到一些结果,如果图规模巨大,巨大的搜索次数与路径存储需求使得算法很难运行出结果。而现在的复杂网络规模已经非常大,这就使得DFS算法很难运行在实际业务场景中找出足够多,循环深度足够深的循环路径。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种有向图循环路径检测方法及装置,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够提高在有向图中检测循环路径的便捷性、效率、有效性及可靠性,更适用于超大规模复杂网络的循环路径检测过程。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种有向图循环路径检测方法,包括:
基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;
若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
进一步地,所述基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图,包括:
对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,并生成包含有标记节点的点集合,其中,该点集合还存储有各个所述标记节点各自对应的状态信息;
剪枝步骤:根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理;
递归步骤:重新对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,若对应的标记结果不为空,则根据当前的标记结果生成新的点集合,并返回执行所述剪枝步骤;若所述标记结果为空,则将当前剪枝后的目标有向图确认为目标子图。
进一步地,所述对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,并生成包含有标记节点的点集合,其中,该点集合还存储有各个所述标记节点各自对应的状态信息,包括:
在所述目标有向图中标记出度数量为0和/或入度数量为0的节点;
将标记节点均存储至点集合,且该点集合中存储的各个所述标记节点各自对应的状态信息包括:出度数量和入度数量。
进一步地,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量不为0,则调取该标记节点的入度集合中的各个关联节点;
在各个所述关联节点的出度集合中分别删除所述标记节点,并对应更新各个所述关联节点的出度数量;
在所述目标有向图中删除所述标记节点。
进一步地,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量不为0且入度数量为0,则调取该标记节点的出度集合中的各个关联节点;
在各个所述关联节点的入度集合中分别删除所述标记节点,并对应更新各个所述关联节点的入度数量;
在所述目标有向图中删除所述标记节点。
进一步地,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量为0,则直接自所述目标有向图中删除所述标记节点。
进一步地,在所述基于预设的递归剪枝算法对目标有向图进行剪枝处理之前,还包括:
接收针对目标数据的团体识别请求,其中,该团体识别请求中包含有目标数据对应的各个节点各自对应的属性信息,其中,所述属性信息包括唯一标识、与其他节点之间的关联关系以及特征信息之间的对应关系;
根据各个所述节点分别与其他节点之间的关联关系,生成由各个节点构成的有向图,其中,每个节点均存储有各自的属性信息;
判断所述有向图是否符合预设的剪枝规模要求,若是,则将该有向图标记为目标有向图以进行剪枝处理;
相对应的,在所述标记各个所述连通子图各自对应的循环路径之后,还包括:
获取各个循环路径各自对应的团体数据,且各个团体数据中均包含有对应的循环路径中的各个节点的属性信息以及各个节点之间的关联关系;
将全部的团体数据均发送给所述团体识别请求的发出方,以使该发出方基于所述团体数据进行风险识别、预警、管控及推送处理中的至少一项。
第二方面,本申请提供一种有向图循环路径检测装置,包括:
递归剪枝模块,用于基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;
连通子图标记模块,用于若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的有向图循环路径检测方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的有向图循环路径检测方法。
相对于现有技术而言,本申请具有以下有益效果:
通过基于预设的递归剪枝算法对目标有向图进行剪枝处理,能够将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有节点都不满足删除条件,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够有效提高在有向图中检测循环路径的便捷性及效率,且通过在剪枝结果中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径,能够进一步降低有向图循环路径检测过程中的计算复杂度,能够有效提高在有向图中检测循环路径的有效性及可靠性,使得本申请更适用于超大规模复杂网络的循环路径检测过程,尤其可以应用在金融风险识别及相似群体信息推送等团体识别领域中。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例中的有向图循环路径检测装置与客户端设备之间的连接示意图;
图2为是本申请实施例中的有向图循环路径检测方法的第一种流程示意图;
图3为是本申请实施例中的有向图循环路径检测方法的第二种流程示意图;
图4为是本申请实施例中的有向图循环路径检测方法的第三种流程示意图;
图5为是本申请实施例中的有向图循环路径检测方法的第四种流程示意图;
图6为本申请实施例中的有向图循环路径检测装置的结构示意图;
图7为本申请应用实例中的有向图循环路径检测方法的执行流程示意图;
图8为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
针对当前基于DFS算法的循环路径检测算法有递归次数巨大,存储需求巨大的要求,这就使得应用DFS检测循环路径时很难对巨大网络进行检测,而且很难找到路径深度非常大的循环等问题,本申请通过引入一种有向图剪枝算法对超大规模有向图进行剪枝,将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图中所有节点都不满足删除条件,然后通过连通子图算法检测剪枝之后的连通子图,每一个连通子图可以标记为循环路径团体,其中可能包含多个循环路径。与DFS相比本发明不直接检测循环路径,结果数据也不是具体的环路,而是至少包含了一个环路的一个相对聚集的团体,这些团体在金融场景中一般可以被认为是高风险团体。本申请提供的有向图循环路径检测方法的计算时间复杂度大大优于DFS,存储需求也比DFS小得多,可以很容易应用于超大规模复杂网络的循环路径检测。
在本申请的一个或多个实施例中,出度(out-degree)是指以某顶点为弧尾,起始于该顶点的弧的数目称为该顶点的出度。
在本申请的一个或多个实施例中,入度(in-degree)是指以某顶点为弧头,终止于该顶点的弧的数目称为该顶点的入度。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的有向图循环路径检测方法的有向图循环路径检测装置,参见图1,该有向图循环路径检测装置可以自行或通过第三方服务器等与各个用户持有的客户端设备等之间通信连接,有向图循环路径检测装置可以为一种服务器,自客户端设备接收针对目标数据的团体识别请求,也可以自客户端设备、第三方数据库或本地获取相关的由用户预先设置的各类规则配置文件,例如本申请的一个或多个实施例中提及的剪枝规模要求、递归剪枝算法和特殊节点标记规则等中的至少一个。所述有向图循环路径检测装置在团体识别请求获取各个循环路径各自对应的团体数据之后,将全部的团体数据均发送给发出所述团体识别请求的客户端设备,以使该客户端设备基于所述团体数据进行风险识别、预警、管控及推送处理中的至少一项;尤其可以适用于金融风险团体风险识别。
可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了解决现有的有向图循环路径检测方式存在的递归次数巨大以及存储需求巨大的特性而导致的循环路径检测效率低、可靠性及有效性差等问题,本申请提供一种有向图循环路径检测方法的实施例,参见图2,由有向图循环路径检测装置执行的所述有向图循环路径检测方法具体包含有如下内容:
步骤100:基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图。
在步骤100中,相较于现有的剪枝算法,本申请实施例采用的递归剪枝算法能够保证剪枝后得到的子图中只存在两种情形,其一为全部节点都被剪掉,子图中没有任何节点;其二为至少包含有一个环路;而在实际应用中,本申请的有向图循环路径检测方法可应用于数据量巨大的大规模有向图中,因此能够保证得到的不为空子图中一定包含有至少一个环路。
可以理解的是,通过将有向图中满足删除条件的节点递归地从有向图中删除,大规模缩减有向图的大小,使超大规模的有向图缩减为只包含环路相关的有向图,也即目标子图。
步骤200:若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
在步骤200中,通过连通子图算法检测剪枝之后的连通子图,每一个连通子图可以标记为循环路径团体,其中可能包含多个循环路径。而后检测删除完成的目标子图中的连通子图,标记连通子图为循环链路团体,且每个连通子图中至少包含一个循环路径。
从上述描述可知,本申请实施例提供的有向图循环路径检测方法,通过基于预设的递归剪枝算法对目标有向图进行剪枝处理,能够将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有节点都不满足删除条件,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够有效提高在有向图中检测循环路径的便捷性及效率,且通过在剪枝结果中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径,能够进一步降低有向图循环路径检测过程中的计算复杂度,能够有效提高在有向图中检测循环路径的有效性及可靠性,使得本申请更适用于超大规模复杂网络的循环路径检测过程,尤其可以应用在金融风险识别及相似群体信息推送等团体识别领域中。
为了进一步提高递归剪枝算法的应用可靠性及有效性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图3,所述有向图循环路径检测方法中的步骤100具体包含有如下内容:
步骤110:对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,并生成包含有标记节点的点集合,其中,该点集合还存储有各个所述标记节点各自对应的状态信息。
可以理解的是,所述特殊节点标记规则为预先设置并存储的用于标记对识别循环路径无用的特殊节点,例如可以为边界节点等。
步骤120:剪枝步骤:根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理。
步骤130:递归步骤:重新对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,若对应的标记结果不为空,则根据当前的标记结果生成新的点集合,并返回执行所述剪枝步骤;若所述标记结果为空,则将当前剪枝后的目标有向图确认为目标子图。
在步骤130中,每次执行步骤120的剪枝步骤后都需要再次标记节点,如果标记结果相较于前次有变化,则说明前面执行的步骤120的剪枝过程导致又出现了新的标记节点,需要再次针对更新后的点集合中的各个标记节点进行剪枝处理。
为了提高特殊节点标记的全面性、有效性及可靠性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图4,所述有向图循环路径检测方法中的步骤110具体包含有如下内容:
步骤111:在所述目标有向图中标记出度数量为0和/或入度数量为0的节点。
步骤112:将标记节点均存储至点集合,且该点集合中存储的各个所述标记节点各自对应的状态信息包括:出度数量和入度数量。
可以理解的是,找到目标有向图中满足入度数量in_degree_count为0或者出度数量out_degree_count为0的节点,或者入度数量in_degree_count和出度数量out_degree_count均为0的节点,将标记的这些点写为点集合V0。
为了进一步提高剪枝步骤的应用可靠性及适用全面性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图4,所述有向图循环路径检测方法中的步骤120具体包含有如下内容:
步骤121:若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量不为0,则调取该标记节点的入度集合中的各个关联节点;
步骤122:在各个所述关联节点的出度集合中分别删除所述标记节点,并对应更新各个所述关联节点的出度数量;
步骤123:在所述目标有向图中删除所述标记节点。
具体来说,对于V0中的节点vi,如果in_degree_count为0且out_degree_count不为0,遍历任一处于out_degree集合中的节点vj,将vi从vj的in_degree集合中删除,且vj的in_degree_count重新设置为in_degree_count-1,然后将vi从目标子图中删除。
为了进一步提高剪枝步骤的应用可靠性及适用全面性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图4,所述有向图循环路径检测方法中的步骤120还具体包含有如下内容:
步骤124:若当前的所述标记节点对应的状态信息显示该标记节点的出度数量不为0且入度数量为0,则调取该标记节点的出度集合中的各个关联节点;
步骤125:在各个所述关联节点的入度集合中分别删除所述标记节点,并对应更新各个所述关联节点的入度数量;
步骤126:在所述目标有向图中删除所述标记节点。
具体来说,对于V0中的节点vi,如果out_degree_count为0且in_degree_count不为0,遍历任一处于in_degree集合中的节点vj,将vi从vj的out_degree集合中删除,且vj的out_degree_count重新设置为out_degree_count-1,然后将vi从目标子图中删除。
为了进一步提高剪枝步骤的应用可靠性及适用全面性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图4,所述有向图循环路径检测方法中的步骤120还具体包含有如下内容:
步骤127:若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量为0,则直接自所述目标有向图中删除所述标记节点。
具体来说,对于V0中的节点vi,如果in_degree_count为0且out_degree_count为0,直接将vi从目标子图中删除。
为了进一步提高有向图循环路径检测方法的应用有效性及适用广泛性,在本申请提供的有向图循环路径检测方法的一个实施例,参见图5,所述有向图循环路径检测方法中的步骤100之前还具体包含有如下内容:
步骤010:接收针对目标数据的团体识别请求,其中,该团体识别请求中包含有目标数据对应的各个节点各自对应的属性信息,其中,所述属性信息包括唯一标识、与其他节点之间的关联关系以及特征信息之间的对应关系。
可以理解的是,所述特征信息可以包含有:入度节点标识符集合(入度集合)、节点入度数量、节点出度标识符集合(出度集合)及节点出度数量等内容。
步骤020:根据各个所述节点分别与其他节点之间的关联关系,生成由各个节点构成的有向图,其中,每个节点均存储有各自的属性信息。
步骤030:判断所述有向图是否符合预设的剪枝规模要求,若是,则执行步骤040:将该有向图标记为目标有向图以进行剪枝处理;而后执行步骤100。若否,则可以采用DFS等方式直接进行有向图循环路径检测以进一步提高检测效率。
在步骤030中,剪枝规模要求是指预先设置并存储的有向图规模阈值。
相对应的,参见图5,所述有向图循环路径检测方法中的步骤200之后还具体包含有如下内容:
步骤300:获取各个循环路径各自对应的团体数据,且各个团体数据中均包含有对应的循环路径中的各个节点的属性信息以及各个节点之间的关联关系。
步骤400:将全部的团体数据均发送给所述团体识别请求的发出方,以使该发出方基于所述团体数据进行风险识别、预警、管控及推送处理中的至少一项。
在一种具体举例中,接收针对目标金融业务数据的金融风险团体识别请求,其中,该金融风险团体识别请求中包含有目标金融业务数据对应的各个金融用户各自对应的属性信息,其中,所述属性信息包括用户或账户的唯一标识、与其他用户或账户之间的关联关系以及特征信息之间的对应关系;并根据各个所述金融用户分别与其他金融用户之间的关联关系,而后在确定风险团体数据之后,将将全部的金融团体数据均发送给所述金融风险团体识别请求的发出方,以使该发出方基于所述金融团体数据进行风险识别、预警、管控及消息推送处理中的至少一项。进而能够有效提高金融风险识别的全面性及有效性,并能够提高金融风险识别的便捷性及效率。
从软件层面来说,为了解决现有的有向图循环路径检测方式存在的递归次数巨大以及存储需求巨大的特性而导致的循环路径检测效率低、可靠性及有效性差等问题,本申请提供一种用于执行所述有向图循环路径检测方法中全部或部分内容的有向图循环路径检测装置的实施例,参见图6,所述有向图循环路径检测装置具体包含有如下内容:
递归剪枝模块10,用于基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;
连通子图标记模块20,用于若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
本申请提供的有向图循环路径检测装置的实施例具体可以用于执行上述实施例中的有向图循环路径检测方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的有向图循环路径检测装置,通过基于预设的递归剪枝算法对目标有向图进行剪枝处理,能够将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有节点都不满足删除条件,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够有效提高在有向图中检测循环路径的便捷性及效率,且通过在剪枝结果中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径,能够进一步降低有向图循环路径检测过程中的计算复杂度,能够有效提高在有向图中检测循环路径的有效性及可靠性,使得本申请更适用于超大规模复杂网络的循环路径检测过程,尤其可以应用在金融风险识别及相似群体信息推送等团体识别领域中。
为了进一步说明书本方案,本申请还提供一种有向图循环路径检测方法的具体应用实例,本申请应用实例通过引入一种有向图剪枝算法对超大规模有向图进行剪枝,将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有点都不满足删除条件,然后通过连通子图算法检测剪枝之后的连通子图,每一个连通子图可以标记为循环路径团体,其中可能包含多个循环路径。与DFS相比本申请应用实例不直接检测循环路径,结果数据也不是具体的环路,而是至少包含了一个环路的一个相对聚集的团体,这些团体在金融场景中一般可以被认为是高风险团体。本申请应用实例的计算时间复杂度大大优于DFS,存储需求也比DFS小得多,可以很容易应用于超大规模复杂网络的循环路径检测。
参见图7,本申请的具体应用实例提供的有向图循环路径检测方法,具体包含有如下内容:
S1:构造有向图G(VE)。
在有向图G(VE)中,VE为有向图所有节点的集合,对于其中任一节点v,节点v的属性如表1所示。
表1
属性 | 属性描述 |
id | 节点唯一标识符 |
in_degree | 入度节点标识符集合 |
in_degree_count | 节点入度数量 |
out_degree | 节点出度标识符集合 |
out_degree_count | 节点出度数量 |
S2:找到图G(VE)中出度或入度数量为0的所有点
找到图G(VE)中满足in_degree_count为0或者out_degree_count为0的点,将所有点记为点集合V0,如果点集合V0的数量大于0,执行S3,否则执行S4。
S3:将点集合V0中的所有节点从图G(VE)中删除。
具体删除流程为:对于V0中的节点vi,如果in_degree_count为0且out_degree_count不为0,遍历任一处于out_degree集合中的节点vj,将vi从vj的in_degree集合中删除,且vj的in_degree_count重新设置为in_degree_count-1,然后将vi从图G(VE)中删除;如果out_degree_count为0且in_degree_count不为0,遍历任一处于in_degree集合中的节点vj,将vi从vj的out_degree集合中删除,且vj的out_degree_count重新设置为out_degree_count-1,然后将vi从图G(VE)中删除;如果in_degree_count为0且out_degree_count为0,直接将vi从图G(VE)中删除。
循环执行S2
S4:检测删除之后图G(VE)中的连通子图
一般对于一个超大的有向图进行上诉删除算法之后,图的规模会大幅度缩小,并且会以连通子图的方式呈现为一个一个的小团体,而这些小团体内必然至少包含一个环路。
S5:将S4中位于同一连通子图的所有点和边标记为循环链路团体。
从上述内容可知,本申请应用实例提供的有向图循环路径检测方法,通过将图中满足删除条件的节点递归地从图中删除,大规模缩减图的大小,使超大规模图缩减为只包含环路相关的图;检测删除完成的图中的连通子图,标记连通子图为循环链路团体,每个连通子图中至少包含一个循环路径。
采用本申请应用实例提供的有向图循环路径检测方法,可以在超大规模图上检测循环链路团体,相比DFS具有更快的运行速度,更低的计算存储资源要求。
从硬件层面来说,为了解决现有的有向图循环路径检测方式存在的递归次数巨大以及存储需求巨大的特性而导致的循环路径检测效率低、可靠性及有效性差等问题,,本申请提供一种用于实现所述有向图循环路径检测方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图8为本申请实施例的电子设备9600的系统构成的示意框图。如图8所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图8是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,有向图循环路径检测功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图。
步骤200:若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
从上述描述可知,本申请实施例提供的电子设备,通过基于预设的递归剪枝算法对目标有向图进行剪枝处理,能够将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有节点都不满足删除条件,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够有效提高在有向图中检测循环路径的便捷性及效率,且通过在剪枝结果中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径,能够进一步降低有向图循环路径检测过程中的计算复杂度,能够有效提高在有向图中检测循环路径的有效性及可靠性,使得本申请更适用于超大规模复杂网络的循环路径检测过程,尤其可以应用在金融风险识别及相似群体信息推送等团体识别领域中。
在另一个实施方式中,有向图循环路径检测装置可以与中央处理器9100分开配置,例如可以将有向图循环路径检测装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现有向图循环路径检测功能。
如图8所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图8中所示的所有部件;此外,电子设备9600还可以包括图8中没有示出的部件,可以参考现有技术。
如图8所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的有向图循环路径检测方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的有向图循环路径检测方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图。
步骤200:若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过基于预设的递归剪枝算法对目标有向图进行剪枝处理,能够将满足特殊条件的节点进行删除,将剪枝策略递归应用于有向图,直到有向图所有节点都不满足删除条件,能够有效降低有向图循环路径检测过程中的计算复杂度及数据存储需求,能够有效提高在有向图中检测循环路径的便捷性及效率,且通过在剪枝结果中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径,能够进一步降低有向图循环路径检测过程中的计算复杂度,能够有效提高在有向图中检测循环路径的有效性及可靠性,使得本申请更适用于超大规模复杂网络的循环路径检测过程,尤其可以应用在金融风险识别及相似群体信息推送等团体识别领域中。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种有向图循环路径检测方法,其特征在于,包括:
基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;
若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
2.根据权利要求1所述的有向图循环路径检测方法,其特征在于,所述基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图,包括:
对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,并生成包含有标记节点的点集合,其中,该点集合还存储有各个所述标记节点各自对应的状态信息;
剪枝步骤:根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理;
递归步骤:重新对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,若对应的标记结果不为空,则根据当前的标记结果生成新的点集合,并返回执行所述剪枝步骤;若所述标记结果为空,则将当前剪枝后的目标有向图确认为目标子图。
3.根据权利要求2所述的有向图循环路径检测方法,其特征在于,所述对所述目标有向图中的符合预设的特殊节点标记规则的节点进行标记,并生成包含有标记节点的点集合,其中,该点集合还存储有各个所述标记节点各自对应的状态信息,包括:
在所述目标有向图中标记出度数量为0和/或入度数量为0的节点;
将标记节点均存储至点集合,且该点集合中存储的各个所述标记节点各自对应的状态信息包括:出度数量和入度数量。
4.根据权利要求3所述的有向图循环路径检测方法,其特征在于,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量不为0,则调取该标记节点的入度集合中的各个关联节点;
在各个所述关联节点的出度集合中分别删除所述标记节点,并对应更新各个所述关联节点的出度数量;
在所述目标有向图中删除所述标记节点。
5.根据权利要求3所述的有向图循环路径检测方法,其特征在于,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量不为0且入度数量为0,则调取该标记节点的出度集合中的各个关联节点;
在各个所述关联节点的入度集合中分别删除所述标记节点,并对应更新各个所述关联节点的入度数量;
在所述目标有向图中删除所述标记节点。
6.根据权利要求3所述的有向图循环路径检测方法,其特征在于,所述根据当前的点集合中的各个所述标记节点各自对应的状态信息,在所述目标有向图中分别对各个所述标记节点进行剪枝处理,包括:
若当前的所述标记节点对应的状态信息显示该标记节点的出度数量为0且入度数量为0,则直接自所述目标有向图中删除所述标记节点。
7.根据权利要求1至6任一项所述的有向图循环路径检测方法,其特征在于,在所述基于预设的递归剪枝算法对目标有向图进行剪枝处理之前,还包括:
接收针对目标数据的团体识别请求,其中,该团体识别请求中包含有目标数据对应的各个节点各自对应的属性信息,其中,所述属性信息包括唯一标识、与其他节点之间的关联关系以及特征信息之间的对应关系;
根据各个所述节点分别与其他节点之间的关联关系,生成由各个节点构成的有向图,其中,每个节点均存储有各自的属性信息;
判断所述有向图是否符合预设的剪枝规模要求,若是,则将该有向图标记为目标有向图以进行剪枝处理;
相对应的,在所述标记各个所述连通子图各自对应的循环路径之后,还包括:
获取各个循环路径各自对应的团体数据,且各个团体数据中均包含有对应的循环路径中的各个节点的属性信息以及各个节点之间的关联关系;
将全部的团体数据均发送给所述团体识别请求的发出方,以使该发出方基于所述团体数据进行风险识别、预警、管控及推送处理中的至少一项。
8.一种有向图循环路径检测装置,其特征在于,包括:
递归剪枝模块,用于基于预设的递归剪枝算法对目标有向图进行剪枝处理,以得到目标子图;
连通子图标记模块,用于若自所述目标子图中检测到包含有至少一个环路,则在所述目标子图中查找全部的连通子图,并标记各个所述连通子图各自对应的循环路径。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的有向图循环路径检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的有向图循环路径检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547799.2A CN114239963A (zh) | 2021-12-16 | 2021-12-16 | 有向图循环路径检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547799.2A CN114239963A (zh) | 2021-12-16 | 2021-12-16 | 有向图循环路径检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114239963A true CN114239963A (zh) | 2022-03-25 |
Family
ID=80757569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111547799.2A Pending CN114239963A (zh) | 2021-12-16 | 2021-12-16 | 有向图循环路径检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114239963A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115689762A (zh) * | 2023-01-03 | 2023-02-03 | 华侨大学 | 银行交易资金流向路径检测方法、系统、设备及存储介质 |
-
2021
- 2021-12-16 CN CN202111547799.2A patent/CN114239963A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115689762A (zh) * | 2023-01-03 | 2023-02-03 | 华侨大学 | 银行交易资金流向路径检测方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862018B (zh) | 基于用户访问行为的反爬虫方法及系统 | |
US10547618B2 (en) | Method and apparatus for setting access privilege, server and storage medium | |
US11537751B2 (en) | Using machine learning algorithm to ascertain network devices used with anonymous identifiers | |
US9973513B2 (en) | Method and apparatus for communication number update | |
CN111581397A (zh) | 一种基于知识图谱的网络攻击溯源方法、装置及设备 | |
US20110078762A1 (en) | Mobile or user device authentication and tracking | |
CN107862020B (zh) | 一种好友推荐的方法及设备 | |
CN111314063A (zh) | 一种基于物联网大数据信息管理方法、系统及装置 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
CN113434293A (zh) | 处理重复请求的方法和装置、存储介质及电子装置 | |
CN114239963A (zh) | 有向图循环路径检测方法及装置 | |
US20090077665A1 (en) | Method and applications for detecting computer viruses | |
US11599673B2 (en) | Ascertaining network devices used with anonymous identifiers | |
CN108696418B (zh) | 一种社交网络中隐私保护方法及装置 | |
CN112035676A (zh) | 用户操作行为知识图谱构建方法及装置 | |
CN105224870A (zh) | 可疑病毒应用上传的方法和装置 | |
CN111343132B (zh) | 文件传输检测方法及装置、存储介质 | |
CN116743785A (zh) | 基于雾计算的云网数据存储方法、装置、设备及介质 | |
CN110781500A (zh) | 一种数据风控系统以及方法 | |
CN115827280A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN112612848B (zh) | 数据实时同步的方法及装置、系统、电子设备、存储介质 | |
CN111860655B (zh) | 用户的处理方法、装置和设备 | |
CN114691612A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN109246686B (zh) | 基于云端技术的多卡用户通讯录更新方法及装置 | |
CN108667685B (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 |