图的相似度计算系统、方法以及程序的制作方法

文档序号:6348524阅读:152来源:国知局
专利名称:图的相似度计算系统、方法以及程序的制作方法
技术领域
本发明涉及计算或评价在计算机上作为图表现的数据结构的对象物的相似度。
背景技术
图是包括具有用于相互识别的标签的顶点(也称为节点)和连接顶点的边(也称为边缘、支、链接)的数学对象,当考虑现实的对象物时,可知例如道路地图、化学式等通过图表示。例如,在道路地图中,可以视为交叉点是节点,路是边。在化学式中,可以视为元素是节点,元素间的结合是边。如果这样考虑,可知在基因、蛋白质构造、电路、地理学、建筑学等非常广的范围内发现图的应用。最近,在社会网络服务(SNQ中也逐渐适用图构造。即,通过将SNS的各个用户视为节点,将这些用户之间其他之间的友好关系等视为边,由此可以用图表现SNS的特定状态。按照同样的目的,www的链接构造也可以通过图表现。这样,在将现实的对象作为图表现时,想要评价两个图是否一致或相似成为自然出现的要求。例如,当可以评价某一化学品的化学式的图和其他化学品的化学式的图相似时,能够推定为该两个化学品的药效相似。但是,根据以往的研究,关于判别两个图是否相同的问题不知道多项式时间算法, 用于判别某一图是否包含于另一图的算法也是NP完全问题。关于这样的算法,如果是只有比较少数的节点的图,能够通过适当的计算时间求解,但处理基因排列的生物信息学中,节点数从数千到数万,在SNS中有数百万,大大超过单纯的图相似度计算技术方法以显示的计算量能够处理的范围。于是,现有技术中提出了用于以高速计算两个图的同一性或相似度的技术方法。Thomas Ε. Portegys, School of Information Technology, lllinnois State University, "General Graph Identification With Hashing,,http ://www. itk. ilstu. edu/faculty/portegys/research/graph/graph-hash, paf 公开了iEii MD5 f^^lj 1 两个图的同一性的技术方法。但是,在该技术方法中,仅能够判定图的同一性,不能适用于相似度的计算。尤其关于与该图相关的散列制作,日本特开平7-334366号公报中记载了 具有存储图S的所有部分图的散列值的散列表,存储过去存在的部分图和当前到达的其还原 (reduction)处的部分图的组。但是,在该技术方法中,递归地通过处理给予散列值,虽然能够适用于有向非循环图,但不能适用于包含环的更一般的图。美国专利第6473881号公开了如下技术晶体管级的设计自动化工具通过定时解析、电气规则的检查、噪声解析等进行电路设计的模式匹配。但是,该技术方法使用主节点等这些电路特有的性质,难以扩展到一般的图比较。专利文献1 日本特开平7-334366专利文献2 美国专利第6473881号
非专利文献 1 ;Thomas Ε. Portegys, School of Information Technology, lllinnois State University,"General Graph Identification With Hashing^http // www. itk. ilstu. edu/faculty/portegys/research/graph/graph-hash, paf

发明内容
因此,本发明的目的是提供能够以适当的计算时间求出SNS、WWW的链接等具有很多节点的图之间的相似度的图比较技术方法。上述问题通过本发明极有利地解决。首先,作为前提,要比较的图的数据使用行列表现、列表表现等用于图表现的公知的数据结构表现,在计算机的硬盘等存储装置上保存。 图的各节点分别具有标签,预想标签具有离散值。例如,如果是基因,标签是腺嘌呤、胸腺嘧啶、鸟嘌呤、胞嘧啶四种,如果是蛋白质,标签是甘氨酸、色氨酸、异亮氨酸等二十种氨基酸, 如果是化学式,标签是氢、氦、锂、铍、硼、碳、氮、氧以下,最多100种程度。根据本发明,首先对图的节点,向该节点的标签纸赋予唯一的值。优选,该值是固定长位串。此时的位串的长度选为比用于表现标签的种类足够的位数充分大的数。这是为了减少后述的散列冲突的可能性。在这样的准备下,本发明的系统,关于一个图,通过深度优先搜索、宽度优选搜索等原有的图搜索技术方法,依次访问该图的节点。此时,本发明的系统,在位于一个节点时, 对与该节点相邻的所有节点的位串标签值和该节点的位串标签值实施计算,计算位串值。 本发明的系统根据该计算出的位串值和该节点本来具有的位串标签值实施散列计算,计算另外的位串标签值,将其作为该节点的标签值。这样,在对一个图的所有节点访问结束时,所有节点的标签值被改写。对想要比较图的相似度的另外图也进行同样的处理后,其他的图中也改写所有节点的标签值。于是,例如,在一个图中,计算相对于所有节点数的与其他图一致的标签值的比例,由此能够求出相似度。在后面的实施例中,说明稍微复杂的相似度的计算方法。根据本发明,作为根据相邻节点的标签值计算自节点的标签值的方法,可以使用多个方法中的一个。关于一个方法,对将所有相邻节点的标签值异或后的值与将自节点的标签值位旋转后的值计算异或,将其设为自节点的标签值。关于另外的方法,将所有相邻节点的标签值排序,其结果是连续出现同一标签值时,用一个标签值代表它们,对连续出现的次数(称为计数值)进行加法。将这样得到的标签值位旋转计数值的量,将所有结果异或后的值、与将自节点的标签值位旋转后的值计算异或,将其设为自节点的标签值。本发明除了上述之外,还可以使用根据所有相邻节点的标签值和自节点的标签值计算自节点的标签值的各种方法。根据本发明,基于通过一个节点及其相邻节点的标签值的散列计算该一个节点的新标签值的计算结果得到的标签值,计算图的相似度,由此获得如下效果在图的节点数设为N时以0(N2)以下的阶(order)的计算量能够计算图的相似度。在已知的其他图相似度比较技术方法中,要么是指数阶或者至少是0(N3)程度,所以在N特别大的情况下,本发明高速化的效果大。
此外,由于是明确反映相邻节点的标签值的计算,所以结果的相似度的可靠性高。


图1是用于实施本发明的硬件结构的框图。图2是本发明涉及的逻辑功能框图。图3是表示本发明涉及的计算图的节点的标签值的处理的流程的图。图4是表示计算步骤涉及的图的节点的标签值变化的图。图5是表示根据自节点的标签和相邻的节点标签集合计算自节点的新标签值的处理的概念流程的图。图6是表示根据自节点的标签和相邻的节点标签集合计算自节点的新标签值的一个实施例的处理的流程的图。图7是表示根据自节点的标签和相邻的节点标签集合计算自节点的新标签值的另外实施例的处理的流程的图。图8是表示图6的具体处理的图。图9是表示图7的具体处理的图。图10是表示总括地比较多个图的处理的流程的图。图11是表示图10的处理中所称的相似度比较例程的处理的流程的图。
具体实施例方式以下,基于

本发明的实施例。只要没有特别说明,在所有附图中相同的参照编号指代相同的对象。以下说明的是本发明的一个实施方式,可以理解为没有意图将本发明限于该实施例说明的内容。参照图1,示出用于实现本发明的一个实施例涉及的结构和处理的计算机硬件的框图。图1中,CPU 104、主存储(RAM) 106、硬盘驱动(HDD) 108、键盘110、鼠标112、显示器 114连接于系统总线102。优选,CPU 104基于32位或64位的设计,例如,可以使用英特尔公司的Pentium (商标)4、Core (商标)2Duo、Xeon (商标)、AMD公司的Athlon (商标)等。 主存储106优选具有2GB以上的容量。硬盘驱动108优选例如具有320GB以上的容量,使得能够存储大量的图数据。虽然没有分别图示,在硬盘驱动108预先存储了操作系统。操作系统可以是 Linux (商标)、微软公司的Windows XP (商标)、Windows (商标)2000、苹果计算机的Mac OS (商标)等适合CPU 104的任意系统。在硬盘驱动108还存储由C、C++、C#、Java (商标)等程序语言处理系统。该程序语言处理系统用于制作、维持后面说明的图/数据处理用的模块或工具。在硬盘驱动108中还可以进一步包含用于在程序语言处理系统编写为了进行汇编的源代码的文本编辑器以及Eclipse (商标)等的开发环境。键盘110和鼠标112用于启动操作系统或者从硬盘驱动108下载到主存储106、显示在显示器114的程序(未图示),或者输入文字。显示器114优选为液晶显示器,例如可以使用XGA (10 X 768分辨率)或 UXGA(1600X 1200分辨率)等任意分辨率。显示器114虽然未图示,但用于显示应该处理的图/数据、图的相似度。图2是本发明涉及的处理模块的功能框图。这些模块用C、C++、C#、Java(商标) 等原有的程序语言编写,以能够执行的二进制形式存储于硬盘驱动108,对鼠标112或键盘 110的操作进行应答,通过操作系统(未图示)的工作调用到主存储106并执行。图/数据制作模块202将给定的图变换成计算机可读的数据结构。此时,例如作为节点数η、平均相邻节点数d的图g,使用下面的数据结构。g. nodelist 表示节点列表的长度η的列表g. Iabellist 表示节点标签列表的长度η的列表g. Iabellistx 以与g. Iabellist相同的数据结构,作为标签写入用缓冲区使用的长度η的列表g. adjacencymatrix 图的相邻行列。如果节点i和节点j存在链接,则行列要素 (i,j)是1,否则为0。大小为ηΧη,但如果使用省略0要素的稀疏行列这样的数据结构,则可以是nXd即可。 此时,如果将节点不同的标签的种类设为p,则选择ρ < < 2m的m,将标签设为m位的数据。这样,使2m比ρ充分大的理由是为了减小标签中的散列冲突的可能性。这样,例如,准备21^1 < Pl < 2m的质数Pl和比Pl充分大的质数P2,将第i个标签值设为LHi时,例如通过下式可以向标签Li (i = 1,... , ρ)各自赋予不同的m位的标签值。for(i = 1 ;i < = ρ ;i++) {LHi = (P2 * i) % Pl ;}在此,%是计算除法的余数的运算符。或者,也可以使用除此之外的任意的随机数生成例程。图/数据制作模块202将这样确定的标签值LHi向图的各节点与该标签Li相应地赋予,构成图/数据。即,图/数据制作模块202将图4的(a)那样的图例如按深度优先搜索图,同时依次制作g. nodelist,并将该标签值LHi记录在g. Iabellist,将相邻关系记录到g. adjacencymatrix。其结果是,如图4的(b)那样,向各标签作为标签值赋予位串。在图4的(b)的例子中,A = #1000, B = #0101, C = #1100。当然,对标签赋予的值在两个图中是共同的。在此#0101这样的表述表示二进制数。标签值优选设为固定位数。将在后面说明,因为这样便于计算位旋转、异或、基数排序等计算。构成的图/数据下载到主存储106或者保存在硬盘108。图/数据非常大的情况下,还可以首先将图/数据置于硬盘108上,仅将计算所需的位置的数据下载到主存储。图搜索模块206依次搜索图,访问一个图的所有节点,参照该节点的相邻节点,调用与相邻节点的散列计算模块208,进行更新该节点的标签值的处理。图3是表示图搜索模块206的处理流程的图。在图3中,在步骤302中,图搜索模块206进行是否访问了图的所有节点的判断。该判断实际上通过是否到达了 g.nodelist 的末端来进行。如果在步骤302中判断为还没有访问图的所有节点,则在步骤304中根据 g. nodelist,图搜索模块206访问下一节点。图搜索的最初阶段中,在步骤304中访问前头的节点。在步骤306中,图搜索模块206通过调用模块208使用当前正访问的该节点的相邻节点的信息通过散列进行标签值的计算。在此相邻节点是经由边直接与该节点相连的节点。这样的相邻关系通过参照记录在g. adjacencymatrix的值,能够调查。该计算使用该节点的标签值和相邻节点的标签值。这些标签值通过参照g. Iabellist取得。标签值的计算参照图5、图6、图7的流程图在后面详细说明。在步骤308中,图搜索模块206用这样计算出的标签值更新该节点的标签值。此时可以直接在g. Iabellist覆盖,但优选不在g. Iabellist而在g. Iabellistx写入更新标签。这是因为如果直接在g. Iabellist覆盖,则依赖于节点的搜索顺序,结果会变化。下面返回步骤302的判断,在结束访问所有节点之前,执行步骤304、306以及308。当结束访问所有节点时,改写所有g. Iabellistx的节点。于是,g. Iabellist用 g. Iabellistx置换。通过这样的图的访问改写标签值对应该比较的两个图各自进行。其方式示意地示出在图4的(C)。通过这样的图的访问改写标签值的改写处理优选如图的(d)所示那样,多次进行。由此,图比较的精度一般而言提高,但并不是次数越增加精度越高,自然存在最适合的次数。返回图2,图相似度计算模块210基于改写的标签值计算两个图的相似度。最简单的相似度计算方法是计算两个图之间的改写的标签值的一致比率。然后,也对稍微复杂的图的相似度计算进行说明。图5是更详细说明与相邻节点的散列计算模块208的处理的概要流程图。图3的流程图中,当访问节点时,将当前正在的节点称为自节点,则自节点的标签502是与当前正在的节点对应的标签值,从g. Iabellist取得。为了方便,将其写为 ThisNodeLable0另一方面,与当前正在的节点相邻的标签的集合504通过参照记录在 g. adjacencymatrix的值,从g. Iabellist取得。其一般可能存在多个,所以写为 NeighboringNodeLabels[]0而且,将散列函数设为HashO,新标签508设为Newlabel,则计算为Newlabel = Hash (ThisNodeLable,NeighboringNodeLabels [])。这样计算出的Newlabel的值作为当前正在的节点的标签值在g. Iabellistx覆盖。图6是表示图5的处理的一个实施例的图。S卩,在图6的处理中,为了根据自节点的标签602和相邻节点的标签集合604生成新标签608,散列计算块606具有将自节点的标签602进行一位旋转的块610、将相邻节点的标签集合604异或的块612、以及将块610 的输出和块612的输出作为新标签608异或的块614。图8示出图6的处理的具体计算例。在图8中,自节点标签是#1000,相邻节点的标签是#1110和#1100。这样,块612的输出是#1110和#1100的异或,为#0010,另一方面, 块610的输出是#1000的一位旋转即#0001,将它们取异或的块614的输出为#0011,其成
为自节点的新标签。图7是表示图5的处理另一实施例的图。即,在图7的处理中,为了根据自节点的标签702和相邻节点的标签集合704生成新标签708,散列计算块706具有将自节点的标签702进行一位旋转的块710、对相邻节点的标签集合704排序的块712、对排序的输出的重复进行计数的块714、对计数值进行加法计算的块716、位旋转计数值量的块718、将位旋转后的输出异或的块720、将块710的输出和块720的输出进行异或作为新的标签708的块 722。在优选的实施例中,标签是固定宽度的位串,所以块712中的排序希望使用基数 (radix)排序。图9中示出图7的处理的具体计算例。在图9中,自节点的标签为#1000,相邻节点的标签是#0101、#1100、#0101。这样,块712的排序输出是#0101、#0101、#1100。这样, #0101连续表示两个,所以块714的计数输出关于#0101是2,关于#1100是1。然后,块716在原来的标签值上加上计数输出。向#0101加上2所以成为#0111, 在#1100上加上1所以成为#1101。这样,块718位旋转计数输出的量。#0111通过两位旋转成为#1101,#1101通过一位旋转成为#1011。然后,块720计算位旋转后的值即#1101和#1011的异或,输出#0110。另一方面,块710输出自节点的标签#1000的一位旋转即#0001。这样,块722计算从块720输出的#0110和从块710输出#0001的异或,将其结果即#0111作为自节点的
新标签。用于通过散列计算自节点的标签值的算法不限于图6或图7所示的算法,只要是适当的计算量且难以发生散列冲突,则可以使用任意的散列算法。S卩,将与节点相邻的节点集合设为NeighboringNodeLabelsD,自节点的标签设为 ThisNodeLable 时,成为取 Newlabel = Hash (ThisNodeLable, NeighboringNodeLabels []) 这样的参数的函数。这样,可以使用将NeighboringNodeLabels []排序后排列,将其视作一个数,将除以适当的质数Pl得到的余数设为NewLabel的方法。在图9的例子中, NeighboringNodeLabels []包括#0101、#1100、#0101,所以通过将它们排序并排列,从而通过 #010101011100 计算为 NewLabel = #010101011100mod PI。下面,参照图10和图11的流程图说明对两个以上的多个图彼此的相似度进行一次比较的处理。用于进行该处理的模块包含于图2的图相似度计算模块210。在图10中,在步骤1002中,准备「 IG10, Gd、应该比较像素度的h个图, 在主存储106或硬盘108存储这些图的数据。此时,通过已经说明的方法,向图的节点赋予与标签相应的预定位数的二进制数的标签值。h= I「I,即图的个数。rmax是用于散列计算的反复次数。根据情况不同,rmax选为3到5程度。在步骤1004中,设为r = 1,开始与r相关的到rmax的循环。在步骤1006中,判读是否r < = rmax,如果是则在步骤1008中设为If = I。在此, I是hXh的单位行列。步骤1010中,设为i = 1,从此进入与i有关的循环。在步骤1012中,判断是否i <=h,如果是则在步骤1014中执行下式。
Gir = NH (Gi"1)在此,Gi1不是Gi的r乘方,表示具有散列计算的第r次的结果的标签值的图。此外,NHO是进行图3的流程图的处理的函数或例程。进行与此情况下的相邻节点的散列计算的算法不限于此,但例如设为图7所示的算法。下一步骤1016中V^是GJ的节点列表。在步骤1016中,通过ν/°κτ = RADIX_ SORT (Vi1), Vi1的成分通过基于标签值进行基数排序的排列存储在ν/°κτ。在步骤1018中,i 增加1,返回到步骤1012。即,i到达h之前,反复步骤1014、1016、1018。在步骤1012中,当判断为i超过了 h时,去到步骤1020,于是除去Grt。在此,Grt 是G1I G1T1的总称记号,总之,进行开放保持了 G^1,G1T1的主存储的区域的处理。然后在步骤1022中,i设为1。这意味着开始与i有关的循环。在步骤IOM中, 判断是否i <= h,如果是则在步骤10 中j设为1。这意味着开始与h有关的循环。在步骤10 中,判断是否j < = h。如果是则在步骤1030中判断是否j < i。由于下一步骤1032是i和j对称,所以为了避免重复处理进行该判断。在步骤1030中,当判断为j < i时,进入步骤1032,于是,计算Ki/ = K/ = COMPARE_LABELS(Gir,GJr)。COMPARE_LABELS ()是比较通过其参数指定的两个图的标签用实数返回该比较结果的函数,其详细处理内容参照图11的流程图在后面说明。此外,通过该具体的计算,使用在步骤1016中计算的W、V/°KT。在步骤1034中,j增加1,返回步骤1028,即在j到达h之前,返回步骤1030、1032 以及1034o这样,在步骤10 中,当判断为j超过了 h时,在步骤1036中将i增加1,去向步骤 10M。在步骤IOM中,当判断为i超过了 h时,在步骤1038中将r增加1,返回步骤1006。在步骤1006中,当判断为r超过了 rmax时,通过下式计算相似度行列K,结束处理。 关于相似度行列K,其ij成分标示图G^和图G/1的相似度。式1下面,参照图11的流程图,说明在步骤1032中使用的函数COMPARE_LABELS()的处理的内容。在步骤1102中,将Va胃、Vb胃设为两个图排序后的节点列表,将Vas°KT的次数设为 na,将Vbs°KT的次数设为nb。在步骤1104中,将以下使用的变量设为c = i,i = 1,j = 1。在步骤1106中,判断是否i < = ~且j <= nb,如果是则在步骤1108中设为Vi HLVj.H]。在步骤1110中,判断是否Ia(Vi) = Ib(Vj)。Ia(Vi)例如表示Via■的第i个成分的节点的标签值。如果判断为Ia(Vi) = Ib(Vj),则在步骤1112中分别增加为c = c+i,i = i+1,j = j+1,返回步骤1106。在步骤1110中,如果判断为不是I a(Vi) = Ib(Vj),则进入步骤1114,于是判断是
10否Ia(Vi) <Ib(V」)。如果Ia(Vi) < Ib (Vj),则在步骤1116中i增加1,否则在步骤1118中 j增加1,不管如何,处理返回到步骤1106。在步骤1106中,判断为i彡na或者j彡nb时,去向步骤1120,于是通过下式计算相似度k。式权利要求
1.一种方法,通过计算机的处理计算在各节点赋予离散标签的两个图之间的相似度, 包括在各自的所述两个图,向给定的节点及其相邻的节点赋予标签值使得不同的值对应于不同的离散标签的步骤;在所述两个图依次搜索节点的步骤;在搜索所述节点的期间,通过正访问的节点的标签值和与该正访问的节点相邻的节点的标签值的散列计算来计算新的标签值,通过该新的标签值更新该正访问的节点的标签值的步骤;以及基于向所述两个图的节点赋予的、一致的标签列的个数,计算所述两个图之间的相似度的步骤。
2.如权利要求1所述的方法,其中所述标签值是固定宽度的位串。
3.如权利要求2所述的方法,其中对所述正访问的节点的标签值位移后的值以及所述相邻的节点的标签值异或后的值进行异或来进行所述散列计算。
4.如权利要求3所述的方法,其中对所述正访问的节点的标签值位旋转后的值,以及将所述相邻的节点的标签值排序计数、对重复度计数、对计数值加法计算、位旋转计数值的量和异或后的值进行异或,进行所述散列计算。
5.如权利要求4所述的方法,其中所述排序是基数排序。
6.如权利要求1所述的方法,其中所述两个图中的一个图是包含给定的图的第一节点的第一部分图,所述两个图中的一个图是包含该给定的图的第二节点的第二部分图,计算出的所述两个图间的相似度视为该第一节点和第二节点之间的相似度。
7.一种系统,通过计算机的处理计算在各节点赋予离散标签的两个图之间的相似度, 包括在各自的所述两个图,向给定的节点及其相邻的节点赋予标签值使得不同的值对应于不同的离散标签的单元;在所述两个图依次搜索节点的单元;在搜索所述节点的期间,通过正访问的节点的标签值和与该正访问的节点相邻的节点的标签值的散列计算来计算新的标签值,通过该新的标签值更新该正访问的节点的标签值的单元;以及基于向所述两个图的节点赋予的、一致的标签列的个数,计算所述两个图之间的相似度的单元。
8.如权利要求7所述的系统,其中所述标签值是固定宽度的位串。
9.如权利要求8所述的系统,其中对所述正访问的节点的标签值位移后的值以及所述相邻的节点的标签值异或后的值进行异或来进行所述散列计算。
10.如权利要求8所述的系统,其中对所述正访问的节点的标签值位旋转后的值,以及将所述相邻的节点的标签值排序计数、对重复度计数、对计数值加法计算、位旋转计数值的量和异或后的值进行异或,进行所述散列计算。
11.如权利要求10所述的系统,其中所述排序是基数排序。
12.如权利要求7所述的系统,其中所述两个图中的一个图是包含给定的图的第一节点的第一部分图,所述两个图中的一个图是包含该给定的图的第二节点的第二部分图,计算出的所述两个图间的相似度视为该第一节点和第二节点之间的相似度。
13.一种程序,通过计算机的处理计算在各节点赋予离散标签的两个图之间的相似度, 使计算机执行如下步骤在各自的所述两个图,向给定的节点及其相邻的节点赋予标签值使得不同的值对应于不同的离散标签的步骤;在所述两个图依次搜索节点的步骤;在搜索所述节点的期间,通过正访问的节点的标签值和与该正访问的节点相邻的节点的标签值的散列计算来计算新的标签值,通过该新的标签值更新该正访问的节点的标签值的步骤;以及基于向所述两个图的节点赋予的、一致的标签列的个数,计算所述两个图之间的相似度的步骤。
14.如权利要求13所述的系统,其中所述标签值是固定宽度的位串。
15.如权利要求14所述的系统,其中对所述正访问的节点的标签值位移后的值以及所述相邻的节点的标签值异或后的值进行异或来进行所述散列计算。
16.如权利要求14所述的系统,其中对所述正访问的节点的标签值位旋转后的值,以及将所述相邻的节点的标签值排序计数、对重复度计数、对计数值加法计算、位旋转计数值的量和异或后的值进行异或,进行所述散列计算。
17.如权利要求16所述的系统,其中所述排序是基数排序。
18.如权利要求13所述的系统,其中所述两个图中的一个图是包含给定的图的第一节点的第一部分图,所述两个图中的一个图是包含该给定的图的第二节点的第二部分图,计算出的所述两个图间的相似度视为该第一节点和第二节点之间的相似度。
全文摘要
以适当的计算时间求出SNS、WWW的链接等具有很多节点的图之间的相似度。对图的节点,向该节点的标签值赋予唯一的值。优选,该值是固定长位串。此时的位串的长度选为比用于表现标签的种类足够的位数充分大的数。关于一个图,通过深度优先搜索、宽度优选搜索等原有的图搜索技术方法,依次访问该图的节点。此时,本发明的系统,在位于一个节点时,对与该节点相邻的所有节点的位串标签值和该节点的位串标签值实施计算,计算位串值。本发明的系统根据该计算出的位串值和该节点本来具有的位串标签值实施散列计算,计算另外的位串标签值,将其作为该节点的标签值。这样,结束访问一个图的所有节点时,所有节点的标签值被改写。对想要比较图的相似度的另外图也进行同样的处理后,其他的图中也改写所有节点的标签值。这样,在一个图中通过计算相对于所有节点数的与其他图一致的标签值的比例,能够求出相似度。
文档编号G06F17/30GK102341802SQ201080010259
公开日2012年2月1日 申请日期2010年6月9日 优先权日2009年6月30日
发明者比户将平, 鹿岛久嗣 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1