一种子图匹配的方法及装置的制造方法_4

文档序号:9489426阅读:来源:国知局
标生成树组合,通过全局启发式搜索算法从包括两棵 生成树的生成树组合、包括三棵生成树的生成树组合......开始计算查询代价,再比对各个 生成树组合,找出最优的一组生成树组合,确定为目标生成树组合,例如,从一棵生成树的 查询方案开始,对每个单棵生成树的查询方案增加一棵生成树而变成两棵生成树的查询方 案,若两棵生成树的查询方案的代价比相应的一棵生成树的方案更大,则不再考虑增加一 棵生成树的查询方案;若增加一棵生成树的查询方案比未增加一棵生成树时的查询方案代 价小,则保留增加一棵生成树的查询方案,再将两棵生成树的方案与增加一棵生成树变成 三棵生成树的查询方案进行比较,依次类推,直到没有更多的方案可以考虑,则认为找到最 优的查询方案。
[0094] 映射模块404,用于将目标生成树组合映射为基表访问拓扑图。
[0095] 作为一种可选的实施方式,映射模块402具体可用于:将目标生成树组合中每棵 生成树映射为一个基表访问树,将多个基表访问树进行叠加并合并公共边,得到基表访问 拓扑图。具体实现中,目标生成树组合包括多棵生成树,将目标生成树组合中的每一棵生成 树映射为一个基表访问树,得到多棵基表访问树,即一个目标生成树组合对应多棵基表访 问树,将该多棵基表访问树进行叠加,并合并公共边,得到基表访问拓扑图。本发明实施例 中,一个带环图对应一个目标生成树组合,目标生成树组合包括多棵生成树,一个目标生成 树组合对应一棵基表访问拓扑图。进一步可选的,可将目标生成树组合对应的全部基表访 问树进行叠加,并合并公共边,得到基表访问拓扑图;进一步可选的,还可将目标生成树组 合中的其中η棵基表访问树进行叠加,并合并公共边,得到基表访问拓扑图,其中,目标生 成树组合对应的全部基表访问树的数量为Ν,η〈Ν,η为大于1的正整数,Ν为大于1的正整 数。
[0096] 进一步的,映射模块404将目标生成树组合中每棵生成树映射为一个基表访问树 具体可以包括:
[0097] 将生成树中的每条边映射为基表访问树中的顶点,并根据生成树中的边与边之间 的关联关系建立基表访问树中的顶点与顶点之间的关联关系,根据基表访问树中的顶点与 顶点之间的关联关系连接基表访问树中顶点,得到基表访问树。
[0098] 具体的,可将生成树中的每条边映射为基表访问树中的用自然数值标识的顶点, 并添加用〇标识的虚拟顶点,再根据生成树中的边与边之间的关联关系建立基表访问树中 的顶点与顶点之间的关联关系,得到生成树对应的基表访问树。如图3所示,为本发明实施 例提供的基表访问拓扑图的生成示意图,图3(a)为一带环图(查询图)示例,带环图的目 标生成树组合为由图3(b)和图3(c)所示的两棵生成树组成的生成树组合,如图3(a)所 示,带环图中的边可以分别表示为:(A,B)、(B,C)、(C,D)和(D,A),设图3(b)的生成树为T1,图3(c)的生成树为T2,将生成树中的每条边映射为基表访问树中的用自然数值标识 的顶点,则生成树中的边与基表访问树中的顶点的对应关系为:(A,B) - 1,(B,C)一2,(C, D) -3,(D,A) -4,并添加虚拟顶点0,则可得到如图3 (d)、图3 (e)所示的基表访问树,其中, 图3(d)为图3(b)对应的基表访问树,图3(e)为图3(c)对应的基表访问树,将图3(d)、图 3(e)所示的基表访问树进行叠加并合并公共边,得到如图3(f)所示的基表访问拓扑图,即 图3(f)中301和302的全集为图3(a)的基表访问拓扑图,其中,图3(f)中301为生成树 T2对应的基表访问树,302为生成树?\对应的基表访问树。
[0099] 访问顺序生成模块405,用于根据基表访问拓扑图生成目标访问顺序。
[0100] 作为一种可选的实施方式,如图5所示,为本发明实施例提供的访问顺序生成模 块的结构示意图,如图5所示,访问顺序生成模块403可包括:判断单元501和生成单元 502。其中:
[0101] 判断单元501,用于判断基表访问拓扑图中是否存在拓扑环;
[0102] 生成单元502,用于在判断单元501的判断结果为否时,由基表访问拓扑图的拓扑 顺序生成目标访问顺序。
[0103] 具体实现中,判断单元501判断基表访问拓扑图中是否存在拓扑环,拓扑环指在 拓扑图中的存在闭合的环,例如,如果图3(f)中的顶点1与2之间存在下述关系:2 - 1, 1 - 2,则1与2之间形成一个闭合的环,则存在拓扑环。若基表访问拓扑图中存在拓扑环, 则结束该带环图的子图匹配进程,返回等待输入新的带环图,开始下一个带环图的子图匹 配进程。若基表访问拓扑图中不存在拓扑环,则由基表访问拓扑图的拓扑顺序生成目标访 问顺序,例如,图3(f)中的拓扑顺序为:3 - 2 - 1 - 4,又生成树的边与基表访问拓扑图的 顶点之间的对应关系为:(Α,Β)-1,(B,C)一2,(C,D)-3,(D,A)-4,则可得到目标访问顺 序为:R(C,D)-R(b,c)-R(a,b)-R(d,a)。
[0104] 子图匹配模块306,用于根据目标访问顺序访问数据库中的基表,得到带环图的 Top-k匹配子图。
[0105] 作为一种可选的实施方式,子图匹配模块3可由目标访问顺序访问数据库中的基 表,得到带环图的Top-k匹配子图。具体实现中,可由目标访问顺序访问数据库中的基表, 从而可根据目标访问顺序自底向上对数据图进行生成树匹配,寻找与带环图匹配的子图, 计算带环图的匹配子图的评分函数的值,将得到的匹配子图的评分函数的值由小到大进行 排序,输出前K个评分函数的值对应的匹配子图,其中,K为大于0的正整数,K为预设值,从 而由目标访问顺序访问数据库中的基表,得到带环图的前固定值个匹配子图。
[0106] 上述实施例已详述本发明实施例对带环的图、子图匹配问题的定义、评分函数的 式子、查询代价的式子,在此不累述,详见上述实施例。
[0107] 本发明实施例中由目标访问顺序可访问数据图的基表一次,无须多次重复访问。 而现有技术中,每棵生成树对应一个匹配列表,需访问每一个匹配列表,而公共边则被多次 访问,产生冗余1/0,尤其对于查询的匹配结果数据集非常巨大时,磁盘I/O代价大。本发明 实施例解决现有技术的子图匹配的Top-k算法中产生冗余I/O、子图匹配的效率低的技术 问题。
[0108] 本发明实施例提供一种子图匹配装置,生成树处理模块可生成带环图的多棵生成 树,生成树组合模块可将多棵生成树进行组合,得到生成树组合,多个生成树组合形成集 合,确定模块可从集合中确定目标生成树组合,映射模块将目标生成树组合映射为基表访 问拓扑图,访问顺序生成模块可根据基表访问拓扑图生成目标访问顺序,子图匹配模块可 根据目标访问顺序访问数据库中的基表,得到带环图的Top-k匹配子图,采用本发明实施 例,可通过目标访问顺序只需访问数据库中的基表一次,无需重复访问,则可得到带环图的 Top-k匹配子图,无产生冗余1/0,大大减少了查询代价,且降低了时间复杂度,提高了子图 匹配的效率。本发明实施例中,还可通过全局启发式搜索算法确定目标生成树组合,可进一 步优化生成树的查询方案,可减少查询时间。
[0109] 需要说明的是,本实施例中的生成树处理模块、生成树组合模块、确定模块、映 射模块、访问顺序生成模块和子图匹配模块可以为单独设立的处理器,也可以集成在终 端的某一个处理器中实现,此外,也可以以程序代码的形式存储于终端的存储器中,由终 端的某一个处理器调用并执行以上模块的功能。这里所述的处理器可以是一个中央处 理器(CentralProcessingUnit,CPU),或者是特定集成电路(ApplicationSpecific IntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0110] 请参见图6,为本发明实施例提供的一种终端的结构示意图,其中,本实施例提供 的终端与图1所示的方法相对应,为基于图1所示的子图匹配方法的执行主体。具体的实 现形式如图6所示,本发明实施例的终端包括:接收机601、发射机602、存储器603和处理 器604,其中,接收机601、发射机602、存储器603均和处理器604连接,例如,可以通过总线 连接。当然,网元设备还可以包括天线、基带处理部件、中射频处理部件、输入输出装置等通 用部件,具体不受本发明实施例的限制。
[0111] 接收机601和发射机602可以集成在一起,构成收发机。
[0112] 存储器603用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器 603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例 如至少一个磁盘存储器。
[0113] 处理器604可以是一个中央处理器,或者是特定集成电路,或者是被配置成实施 本发明实施例的一个或多个集成电路。
[0114] 其中,存储器603中存储一组程序代码,且处理器604用于调用存储器603中存
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1