CN102341802A - 图的相似度计算系统、方法以及程序 - Google Patents
图的相似度计算系统、方法以及程序 Download PDFInfo
- Publication number
- CN102341802A CN102341802A CN2010800102594A CN201080010259A CN102341802A CN 102341802 A CN102341802 A CN 102341802A CN 2010800102594 A CN2010800102594 A CN 2010800102594A CN 201080010259 A CN201080010259 A CN 201080010259A CN 102341802 A CN102341802 A CN 102341802A
- Authority
- CN
- China
- Prior art keywords
- node
- value
- label
- label value
- similarity
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/196—Recognition using electronic means using sequential comparisons of the image signals with a plurality of references
- G06V30/1983—Syntactic or structural pattern recognition, e.g. symbolic string recognition
- G06V30/1988—Graph matching
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
以适当的计算时间求出SNS、WWW的链接等具有很多节点的图之间的相似度。对图的节点,向该节点的标签值赋予唯一的值。优选,该值是固定长位串。此时的位串的长度选为比用于表现标签的种类足够的位数充分大的数。关于一个图,通过深度优先搜索、宽度优选搜索等原有的图搜索技术方法,依次访问该图的节点。此时,本发明的系统,在位于一个节点时,对与该节点相邻的所有节点的位串标签值和该节点的位串标签值实施计算,计算位串值。本发明的系统根据该计算出的位串值和该节点本来具有的位串标签值实施散列计算,计算另外的位串标签值,将其作为该节点的标签值。这样,结束访问一个图的所有节点时,所有节点的标签值被改写。对想要比较图的相似度的另外图也进行同样的处理后,其他的图中也改写所有节点的标签值。这样,在一个图中通过计算相对于所有节点数的与其他图一致的标签值的比例,能够求出相似度。
Description
技术领域
本发明涉及计算或评价在计算机上作为图表现的数据结构的对象物的相似度。
背景技术
图是包括具有用于相互识别的标签的顶点(也称为节点)和连接顶点的边(也称为边缘、支、链接)的数学对象,当考虑现实的对象物时,可知例如道路地图、化学式等通过图表示。
例如,在道路地图中,可以视为交叉点是节点,路是边。在化学式中,可以视为元素是节点,元素间的结合是边。如果这样考虑,可知在基因、蛋白质构造、电路、地理学、建筑学等非常广的范围内发现图的应用。
最近,在社会网络服务(SNS)中也逐渐适用图构造。即,通过将SNS的各个用户视为节点,将这些用户之间其他之间的友好关系等视为边,由此可以用图表现SNS的特定状态。按照同样的目的,www的链接构造也可以通过图表现。
这样,在将现实的对象作为图表现时,想要评价两个图是否一致或相似成为自然出现的要求。例如,当可以评价某一化学品的化学式的图和其他化学品的化学式的图相似时,能够推定为该两个化学品的药效相似。
但是,根据以往的研究,关于判别两个图是否相同的问题不知道多项式时间算法,用于判别某一图是否包含于另一图的算法也是NP完全问题。
关于这样的算法,如果是只有比较少数的节点的图,能够通过适当的计算时间求解,但处理基因排列的生物信息学中,节点数从数千到数万,在SNS中有数百万,大大超过单纯的图相似度计算技术方法以显示的计算量能够处理的范围。
于是,现有技术中提出了用于以高速计算两个图的同一性或相似度的技术方法。
Thomas E.Portegys,School of Information Technology,lllinnois StateUniversity,“General Graph Identification With Hashing”http://www.itk.ilstu.edu/faculty/portegys/research/graph/graph-hash.paf公开了通过MD5散列高速判定两个图的同一性的技术方法。但是,在该技术方法中,仅能够判定图的同一性,不能适用于相似度的计算。
尤其关于与该图相关的散列制作,日本特开平7-334366号公报中记载了:具有存储图S的所有部分图的散列值的散列表,存储过去存在的部分图和当前到达的其还原(reduction)处的部分图的组。但是,在该技术方法中,递归地通过处理给予散列值,虽然能够适用于有向非循环图,但不能适用于包含环的更一般的图。
美国专利第6473881号公开了如下技术:晶体管级的设计自动化工具通过定时解析、电气规则的检查、噪声解析等进行电路设计的模式匹配。但是,该技术方法使用主节点等这些电路特有的性质,难以扩展到一般的图比较。
专利文献1:日本特开平7-334366
专利文献2:美国专利第6473881号
非专利文献1:Thomas E.Portegys,School of InformationTechnology,lllinnois State University,“General Graph Identification WithHashing”http://www.itk.ilstu.edu/faculty/portegys/research/graph/graph-hash.paf
发明内容
因此,本发明的目的是提供能够以适当的计算时间求出SNS、WWW的链接等具有很多节点的图之间的相似度的图比较技术方法。
上述问题通过本发明极有利地解决。首先,作为前提,要比较的图的数据使用行列表现、列表表现等用于图表现的公知的数据结构表现,在计算机的硬盘等存储装置上保存。图的各节点分别具有标签,预想标签具有离散值。例如,如果是基因,标签是腺嘌呤、胸腺嘧啶、鸟嘌呤、胞嘧啶四种,如果是蛋白质,标签是甘氨酸、色氨酸、异亮氨酸等二十种氨基酸,如果是化学式,标签是氢、氦、锂、铍、硼、碳、氮、氧以下,最多100种程度。
根据本发明,首先对图的节点,向该节点的标签纸赋予唯一的值。优选,该值是固定长位串。此时的位串的长度选为比用于表现标签的种类足够的位数充分大的数。这是为了减少后述的散列冲突的可能性。
在这样的准备下,本发明的系统,关于一个图,通过深度优先搜索、宽度优选搜索等原有的图搜索技术方法,依次访问该图的节点。此时,本发明的系统,在位于一个节点时,对与该节点相邻的所有节点的位串标签值和该节点的位串标签值实施计算,计算位串值。本发明的系统根据该计算出的位串值和该节点本来具有的位串标签值实施散列计算,计算另外的位串标签值,将其作为该节点的标签值。
这样,在对一个图的所有节点访问结束时,所有节点的标签值被改写。对想要比较图的相似度的另外图也进行同样的处理后,其他的图中也改写所有节点的标签值。
于是,例如,在一个图中,计算相对于所有节点数的与其他图一致的标签值的比例,由此能够求出相似度。在后面的实施例中,说明稍微复杂的相似度的计算方法。
根据本发明,作为根据相邻节点的标签值计算自节点的标签值的方法,可以使用多个方法中的一个。
关于一个方法,对将所有相邻节点的标签值异或后的值与将自节点的标签值位旋转后的值计算异或,将其设为自节点的标签值。
关于另外的方法,将所有相邻节点的标签值排序,其结果是连续出现同一标签值时,用一个标签值代表它们,对连续出现的次数(称为计数值)进行加法。将这样得到的标签值位旋转计数值的量,将所有结果异或后的值、与将自节点的标签值位旋转后的值计算异或,将其设为自节点的标签值。
本发明除了上述之外,还可以使用根据所有相邻节点的标签值和自节点的标签值计算自节点的标签值的各种方法。
根据本发明,基于通过一个节点及其相邻节点的标签值的散列计算该一个节点的新标签值的计算结果得到的标签值,计算图的相似度,由此获得如下效果:在图的节点数设为N时以O(N2)以下的阶(order)的计算量能够计算图的相似度。在已知的其他图相似度比较技术方法中,要么是指数阶或者至少是O(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(1024×768分辨率)或UXGA(1600×1200分辨率)等任意分辨率。显示器114虽然未图示,但用于显示应该处理的图/数据、图的相似度。
图2是本发明涉及的处理模块的功能框图。这些模块用C、C++、C#、Java(商标)等原有的程序语言编写,以能够执行的二进制形式存储于硬盘驱动108,对鼠标112或键盘110的操作进行应答,通过操作系统(未图示)的工作调用到主存储106并执行。
图/数据制作模块202将给定的图变换成计算机可读的数据结构。此时,例如作为节点数n、平均相邻节点数d的图g,使用下面的数据结构。
g.nodelist:表示节点列表的长度n的列表
g.labellist:表示节点标签列表的长度n的列表
g.labellistx:以与g.labellist相同的数据结构,作为标签写入用缓冲区使用的长度n的列表
g.adjacencymatrix:图的相邻行列。如果节点i和节点j存在链接,则行列要素(i,j)是1,否则为0。大小为n×n,但如果使用省略0要素的稀疏行列这样的数据结构,则可以是n×d即可。
此时,如果将节点不同的标签的种类设为p,则选择p<<2m的m,将标签设为m位的数据。这样,使2m比p充分大的理由是为了减小标签中的散列冲突的可能性。
这样,例如,准备2m-1<P1<2m的质数P1和比P1充分大的质数P2,将第i个标签值设为LHi时,例如通过下式可以向标签Li(i=1,...,p)各自赋予不同的m位的标签值。
for(i=1;i<=p;i++){
LHi=(P2*i)%P1;
}
在此,%是计算除法的余数的运算符。
或者,也可以使用除此之外的任意的随机数生成例程。
图/数据制作模块202将这样确定的标签值LHi向图的各节点与该标签Li相应地赋予,构成图/数据。即,图/数据制作模块202将图4的(a)那样的图例如按深度优先搜索图,同时依次制作g.nodelist,并将该标签值LHi记录在g.labellist,将相邻关系记录到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.labellist取得。标签值的计算参照图5、图6、图7的流程图在后面详细说明。
在步骤308中,图搜索模块206用这样计算出的标签值更新该节点的标签值。此时可以直接在g.labellist覆盖,但优选不在g.labellist而在g.labellistx写入更新标签。这是因为如果直接在g.labellist覆盖,则依赖于节点的搜索顺序,结果会变化。
下面返回步骤302的判断,在结束访问所有节点之前,执行步骤304、306以及308。
当结束访问所有节点时,改写所有g.labellistx的节点。于是,g.labellist用g.labellistx置换。通过这样的图的访问改写标签值对应该比较的两个图各自进行。其方式示意地示出在图4的(c)。
通过这样的图的访问改写标签值的改写处理优选如图的(d)所示那样,多次进行。由此,图比较的精度一般而言提高,但并不是次数越增加精度越高,自然存在最适合的次数。
返回图2,图相似度计算模块210基于改写的标签值计算两个图的相似度。最简单的相似度计算方法是计算两个图之间的改写的标签值的一致比率。然后,也对稍微复杂的图的相似度计算进行说明。
图5是更详细说明与相邻节点的散列计算模块208的处理的概要流程图。
图3的流程图中,当访问节点时,将当前正在的节点称为自节点,则自节点的标签502是与当前正在的节点对应的标签值,从g.labellist取得。为了方便,将其写为ThisNodeLable。
另一方面,与当前正在的节点相邻的标签的集合504通过参照记录在g.adjacencymatrix的值,从g.labellist取得。其一般可能存在多个,所以写为NeighboringNodeLabels[]。
而且,将散列函数设为Hash(),新标签508设为Newlabel,则计算为Newlabel=Hash(ThisNodeLable,NeighboringNodeLabels[])。
这样计算出的Newlabel的值作为当前正在的节点的标签值在g.labellistx覆盖。
图6是表示图5的处理的一个实施例的图。即,在图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所示的算法,只要是适当的计算量且难以发生散列冲突,则可以使用任意的散列算法。
即,将与节点相邻的节点集合设为NeighboringNodeLabels[],自节点的标签设为ThisNodeLable时,成为取Newlabel=Hash(ThisNodeLable,NeighboringNodeLabels[])这样的参数的函数。
这样,可以使用将NeighboringNodeLabels[]排序后排列,将其视作一个数,将除以适当的质数P1得到的余数设为NewLabel的方法。在图9的例子中,NeighboringNodeLabels[]包括#0101、#1100、#0101,所以通过将它们排序并排列,从而通过#010101011100计算为NewLabel=#010101011100mod P1。
下面,参照图10和图11的流程图说明对两个以上的多个图彼此的相似度进行一次比较的处理。用于进行该处理的模块包含于图2的图相似度计算模块210。
在步骤1004中,设为r=1,开始与r相关的到rmax的循环。
在步骤1006中,判读是否r<=rmax,如果是则在步骤1008中设为Kr=I。在此,I是h×h的单位行列。
步骤1010中,设为i=1,从此进入与i有关的循环。在步骤1012中,判断是否i<=h,如果是则在步骤1014中执行下式。
Gi r=NH(Gi r-1)
在此,Gi r不是Gi的r乘方,表示具有散列计算的第r次的结果的标签值的图。此外,NH()是进行图3的流程图的处理的函数或例程。进行与此情况下的相邻节点的散列计算的算法不限于此,但例如设为图7所示的算法。
下一步骤1016中Vi r是Gi r的节点列表。在步骤1016中,通过Vi SORT=RADIX_SORT(Vi r),Vi r的成分通过基于标签值进行基数排序的排列存储在Vi SORT。在步骤1018中,i增加1,返回到步骤1012。即,i到达h之前,反复步骤1014、1016、1018。
在步骤1012中,当判断为i超过了h时,去到步骤1020,于是除去Gr-1。在此,Gr-1是G1 r-1,...,Gh r-1的总称记号,总之,进行开放保持了G1 r-1,...,Gh r-1的主存储的区域的处理。
然后在步骤1022中,i设为1。这意味着开始与i有关的循环。在步骤1024中,判断是否i<=h,如果是则在步骤1026中j设为1。这意味着开始与h有关的循环。
在步骤1028中,判断是否j<=h。如果是则在步骤1030中判断是否j<i。由于下一步骤1032是i和j对称,所以为了避免重复处理进行该判断。
在步骤1030中,当判断为j<i时,进入步骤1032,于是,计算Kij r=Kji r=COMPARE_LABELS(Gi r,Gj r)。COMPARE_LABELS()是比较通过其参数指定的两个图的标签用实数返回该比较结果的函数,其详细处理内容参照图11的流程图在后面说明。此外,通过该具体的计算,使用在步骤1016中计算的Vi SORT、Vj SORT。
在步骤1034中,j增加1,返回步骤1028,即在j到达h之前,返回步骤1030、1032以及1034。
这样,在步骤1028中,当判断为j超过了h时,在步骤1036中将i增加1,去向步骤1024。在步骤1024中,当判断为i超过了h时,在步骤1038中将r增加1,返回步骤1006。
在步骤1006中,当判断为r超过了rmax时,通过下式计算相似度行列K,结束处理。关于相似度行列K,其ij成分标示图Gi c和图Gj 0的相似度。
式1
下面,参照图11的流程图,说明在步骤1032中使用的函数COMPARE_LABELS()的处理的内容。
在步骤1102中,将Va SORT、Vb SORT设为两个图排序后的节点列表,将Va SORT的次数设为na,将Vb SORT的次数设为nb。
在步骤1104中,将以下使用的变量设为c=i,i=1,j=1。
在步骤1106中,判断是否i<=na且j<=nb,如果是则在步骤1108中设为Vi=Va SORT[i],Vj=Va SORT[j]。
在步骤1110中,判断是否Ia(Vi)=Ib(Vj)。Ia(Vi)例如表示Via SORT的第i个成分的节点的标签值。
如果判断为Ia(Vi)=Ib(Vj),则在步骤1112中分别增加为c=c+i,i=i+1,j=j+1,返回步骤1106。
在步骤1110中,如果判断为不是Ia(Vi)=Ib(Vj),则进入步骤1114,于是判断是否Ia(Vi)<Ib(Vj)。如果Ia(Vi)<Ib(Vj),则在步骤1116中i增加1,否则在步骤1118中j增加1,不管如何,处理返回到步骤1106。
在步骤1106中,判断为i≥na或者j≥nb时,去向步骤1120,于是通过下式计算相似度k。
式2
在步骤1122中,返回这样计算出的k值。实际上,该值在COMPARE-_LABELS()的调用侧即步骤1032中使用。
以上使用实施方式说明了本发明,对上述实施方式可以追加多种变更或改良,追加了各种变更或改良后的方式也可以包含于本发明的技术范围对于本领域技术人员是明确的。例如,作为图5所示的标签值的散列计算,示出了图6或图7所示的具体的处理,这些都是实施例,可以使用适当的计算量的任意散列函数。此外,作为相似度计算的算法,图11所示的处理是一个实施例,如果是本领域技术人员,应该可以基于两个图的一致的标签值的数量想到各种变形例。
除此之外,如下所述,两个节点之间的相似度也可以通过本发明计算。即,将对象节点分别设为A,B。提取包含各节点的两个部分图,可以通过使用本发明求出A的更新标签和B的更新标签一致的比例,将其设为A和B的相似度。
标号说明
202图/数据制作模块
204图/数据
206图搜索模块
208相邻节点的散列计算模块
Claims (18)
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所述的系统,其中:
所述两个图中的一个图是包含给定的图的第一节点的第一部分图,所述两个图中的一个图是包含该给定的图的第二节点的第二部分图,
计算出的所述两个图间的相似度视为该第一节点和第二节点之间的相似度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009155060 | 2009-06-30 | ||
JP155060/2009 | 2009-06-30 | ||
PCT/JP2010/059795 WO2011001806A1 (ja) | 2009-06-30 | 2010-06-09 | グラフの類似度計算システム、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102341802A true CN102341802A (zh) | 2012-02-01 |
CN102341802B CN102341802B (zh) | 2014-05-28 |
Family
ID=43410885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080010259.4A Active CN102341802B (zh) | 2009-06-30 | 2010-06-09 | 图的相似度计算系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8588531B2 (zh) |
EP (1) | EP2442239A4 (zh) |
JP (1) | JP5306461B2 (zh) |
CN (1) | CN102341802B (zh) |
CA (1) | CA2757461C (zh) |
WO (1) | WO2011001806A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750263A (zh) * | 2012-05-31 | 2012-10-24 | 常州工学院 | 互联网超链接网络图数据的简化方法 |
CN106598970A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种标签确定方法、设备和系统 |
CN108073949A (zh) * | 2017-12-28 | 2018-05-25 | 合肥学院 | 一种绘画相似度比对系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2757461C (en) * | 2009-06-30 | 2023-05-16 | International Business Machines Corporation | Graph similarity calculation system, method and program |
US10535007B2 (en) | 2012-04-24 | 2020-01-14 | International Business Machines Corporation | Determining a similarity between graphs |
BR102012024729B1 (pt) | 2012-09-27 | 2020-05-19 | Mahle Int Gmbh | anel de controle de óleo de três peças para motores de combustão interna, elemento expansor e elemento anelar |
JP6520362B2 (ja) | 2014-08-25 | 2019-05-29 | 富士通株式会社 | 生成方法、装置、及びプログラム |
US10803053B2 (en) | 2015-12-03 | 2020-10-13 | Hewlett Packard Enterprise Development Lp | Automatic selection of neighbor lists to be incrementally updated |
US10410113B2 (en) * | 2016-01-14 | 2019-09-10 | Preferred Networks, Inc. | Time series data adaptation and sensor fusion systems, methods, and apparatus |
JP6842436B2 (ja) * | 2018-02-22 | 2021-03-17 | Kddi株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US11853713B2 (en) | 2018-04-17 | 2023-12-26 | International Business Machines Corporation | Graph similarity analytics |
US11809986B2 (en) | 2020-05-15 | 2023-11-07 | International Business Machines Corporation | Computing graph similarity via graph matching |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070143322A1 (en) * | 2005-12-15 | 2007-06-21 | International Business Machines Corporation | Document comparision using multiple similarity measures |
US7376643B2 (en) * | 2004-05-14 | 2008-05-20 | Microsoft Corporation | Method and system for determining similarity of objects based on heterogeneous relationships |
US20080275902A1 (en) * | 2007-05-04 | 2008-11-06 | Microsoft Corporation | Web page analysis using multiple graphs |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334366A (ja) | 1994-06-07 | 1995-12-22 | Fujitsu Ltd | グラフリダクション機構の最適化方法および装置 |
US6473881B1 (en) | 2000-10-31 | 2002-10-29 | International Business Machines Corporation | Pattern-matching for transistor level netlists |
WO2008083447A1 (en) | 2007-01-12 | 2008-07-17 | Synetek Systems Pty Ltd | Method and system of obtaining related information |
CA2757461C (en) * | 2009-06-30 | 2023-05-16 | International Business Machines Corporation | Graph similarity calculation system, method and program |
-
2010
- 2010-06-09 CA CA2757461A patent/CA2757461C/en active Active
- 2010-06-09 CN CN201080010259.4A patent/CN102341802B/zh active Active
- 2010-06-09 WO PCT/JP2010/059795 patent/WO2011001806A1/ja active Application Filing
- 2010-06-09 EP EP10793976.1A patent/EP2442239A4/en not_active Withdrawn
- 2010-06-09 US US13/377,445 patent/US8588531B2/en active Active
- 2010-06-09 JP JP2011520851A patent/JP5306461B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-27 US US14/039,805 patent/US9122771B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376643B2 (en) * | 2004-05-14 | 2008-05-20 | Microsoft Corporation | Method and system for determining similarity of objects based on heterogeneous relationships |
US20070143322A1 (en) * | 2005-12-15 | 2007-06-21 | International Business Machines Corporation | Document comparision using multiple similarity measures |
US20080275902A1 (en) * | 2007-05-04 | 2008-11-06 | Microsoft Corporation | Web page analysis using multiple graphs |
Non-Patent Citations (2)
Title |
---|
FRANCOIS FOUSS ET AL.: "Random-Walk Computation of Similarities between Nodes of a Graph with Application to Collaborative Recommendation", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》 * |
SERGEY MELNIK ET AL.: "Similarity Flooding:A Versatile Graph Matching Algorithm and its Application to Schema Matching", 《ICDE"02》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750263A (zh) * | 2012-05-31 | 2012-10-24 | 常州工学院 | 互联网超链接网络图数据的简化方法 |
CN102750263B (zh) * | 2012-05-31 | 2014-10-22 | 常州工学院 | 互联网超链接网络图数据的简化方法 |
CN106598970A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种标签确定方法、设备和系统 |
CN106598970B (zh) * | 2015-10-14 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 一种标签确定方法、设备和系统 |
CN108073949A (zh) * | 2017-12-28 | 2018-05-25 | 合肥学院 | 一种绘画相似度比对系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102341802B (zh) | 2014-05-28 |
CA2757461C (en) | 2023-05-16 |
CA2757461A1 (en) | 2011-01-06 |
JPWO2011001806A1 (ja) | 2012-12-13 |
US20120093417A1 (en) | 2012-04-19 |
US9122771B2 (en) | 2015-09-01 |
WO2011001806A1 (ja) | 2011-01-06 |
JP5306461B2 (ja) | 2013-10-02 |
EP2442239A1 (en) | 2012-04-18 |
US8588531B2 (en) | 2013-11-19 |
EP2442239A4 (en) | 2015-06-03 |
US20140032490A1 (en) | 2014-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102341802B (zh) | 图的相似度计算系统和方法 | |
Cormen et al. | Introduction to algorithms | |
Mäkinen et al. | Genome-scale algorithm design | |
Haubold | Alignment-free phylogenetics and population genetics | |
Giegerich et al. | Efficient implementation of lazy suffix trees | |
Holmes | Accelerated probabilistic inference of RNA structure evolution | |
Simpson et al. | Efficient construction of an assembly string graph using the FM-index | |
US8538169B2 (en) | Method, program, and system for calculating similarity between nodes in graph | |
Puntambekar | Data structures | |
Rajasekaran et al. | An elegant algorithm for the construction of suffix arrays | |
Didier et al. | Character sets of strings | |
Iliopoulos et al. | Finite automata based algorithms on subsequences and supersequences of degenerate strings | |
Guo et al. | A bit-parallel algorithm for sequential pattern matching with wildcards | |
Verspoor | Roles for text mining in protein function prediction | |
Górecki et al. | GTP supertrees from unrooted gene trees: linear time algorithms for NNI based local searches | |
Cazaux et al. | A linear time algorithm for Shortest Cyclic Cover of Strings | |
Kasprzak | Classification of de Bruijn-based labeled digraphs | |
Schürmann et al. | Suffix tree construction and storage with limited main memory | |
Ohlebusch et al. | Computing the Burrows–Wheeler transform of a string and its reverse in parallel | |
Kociumaka et al. | Faster recovery of approximate periods over edit distance | |
Ferreira et al. | Rearrangement of DNA fragments: A branch-and-cut algorithm | |
Tsarev et al. | Fast algorithm for vernier search of long repeats in dna sequences with bounded error density | |
Kephart et al. | Codegen: The generation and testing of DNA code words | |
Wang et al. | A new efficient algorithm for the gene-team problem on general sequences | |
Djukanović et al. | Efficient search algorithms for the restricted longest common subsequence problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |