[发明专利]快速查询同构子图的方法、装置、电子设备及存储介质在审
申请号: | 202211592933.5 | 申请日: | 2022-12-13 |
公开(公告)号: | CN115587116A | 公开(公告)日: | 2023-01-10 |
发明(设计)人: | 张涛;张弛;杜玉洁;周雅飞 | 申请(专利权)人: | 北京安普诺信息技术有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/28 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 贾晓玲 |
地址: | 100085 北京市海淀区东北旺西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 快速 查询 同构 方法 装置 电子设备 存储 介质 | ||
本申请提供了一种快速查询同构子图的方法、装置、电子设备及存储介质,方法包括:获取一个目标图和若干个查询图,目标图为待测程序的程序依赖图,若干个查询图为若干个代码片段的程序依赖图;利用局部敏感哈希算法在目标图中定位出所有与查询图的查询起始节点匹配的目标起始节点,将一对匹配的查询起始节点和目标起始节点确定为一个起始节点克隆对;基于所有起始节点克隆对对目标图和查询图并行地执行切片子图匹配,将目标图与查询图中所有匹配的节点及相应的边构成的子图确定为同构子图。通过局部敏感哈希算法快速匹配起始节点克隆对,并基于起始节点克隆对并行执行切片子图匹配,大大提高了同构子图查询的效率。
技术领域
本公开主要涉及计算机技术应用领域,特别涉及一种快速查询同构子图的方法、装置、电子设备及存储介质。
背景技术
子图匹配是一种常用的图查询操作,其核心概念在于,对于一个目标图G和给定的查询图Q,查询出所有Q在G中的子图同构映射。在代码克隆检测技术领域中,程序依赖图由于包含了源代码的语法信息,常被用于表征代码特征。一旦获得了待测程序的程序依赖图,就可以使用子图匹配算法来寻找克隆代码。然而现有技术很大的一个局限性在于,当作为匹配目标的子图库(查询图库)容量较大时,或者当待测程序的程序依赖图包含大量的节点和边时,子图匹配面临着极高的计算负荷和时间开销问题。因此,如何快速地进行同构子图的查询已经成为目前本领域技术人员面临的一个技术难题。
发明内容
本申请公开的实施例旨在提供一种快速查询同构子图的方法、装置、电子设备及存储介质,以解决上述问题。
在本公开的第一方面中,提供了一种快速查询同构子图的方法,包括以下步骤:
获取一个目标图和若干个查询图,所述目标图为待测程序的程序依赖图,所述若干个查询图为若干个代码片段的程序依赖图;
利用局部敏感哈希算法在所述目标图中定位出所有与所述查询图的查询起始节点匹配的目标起始节点,将一对匹配的所述查询起始节点和所述目标起始节点确定为一个起始节点克隆对;
基于所有所述起始节点克隆对对所述目标图和所述查询图并行地执行切片子图匹配,其中,对于任一所述起始节点克隆对,所述切片子图匹配包括:
同时从所述目标起始节点和所述查询起始节点开始对所述目标图和所述查询起始节点所在的查询图进行切片,寻找所述目标图与所述查询起始节点所在的查询图中匹配的其余节点;
将所述目标图与所述查询起始节点所在的查询图中所有匹配的节点及相应的边构成的子图确定为同构子图。
可选地,所述利用局部敏感哈希算法在所述目标图中定位出所有与所述查询图的查询起始节点匹配的目标起始节点,包括以下步骤:
将所述目标图中的节点通过预设的局部敏感哈希函数映射到多个哈希桶内;
获取所有所述查询图的查询起始节点,并分别对所述查询起始节点通过所述预设的局部敏感哈希函数计算待查询桶号;
计算所述查询起始节点与所述待查询桶号对应的所述哈希桶内的所述目标图中的节点之间的距离;
将距离小于预设阈值的所述目标图中的节点标记为目标起始节点。
可选地,所述基于所有所述起始节点克隆对对所述目标图和所述查询图并行地执行切片子图匹配,包括以下步骤:
为每一个所述起始节点克隆对创建一个执行切片子图匹配的子任务;
将所述起始节点克隆对中的查询起始节点所在的查询图和所述目标图下发至所述子任务;
并行地执行所有所述子任务。
可选地,所所述同时从所述目标起始节点和所述查询起始节点开始对所述目标图和所述查询起始节点所在的查询图进行切片,寻找所述目标图与所述查询起始节点所在的查询图中匹配的其余节点,包括以下步骤:
分别将所述目标起始节点和所述查询起始节点作为所述目标图和所述查询起始节点所在的查询图的切片点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安普诺信息技术有限公司,未经北京安普诺信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211592933.5/2.html,转载请声明来源钻瓜专利网。