一種基于標(biāo)簽圖的模式匹配子圖查找方法
【專利摘要】本發(fā)明公開一種基于標(biāo)簽圖的模式匹配子圖查找方法,該方法將模式匹配子圖查找問題定義成標(biāo)簽圖模型,從全局角度求解標(biāo)簽圖中的模式匹配子圖,通過剪枝優(yōu)化和深度優(yōu)先搜索算法等策略獲取可行解空間。所述標(biāo)簽圖中模式匹配子圖的查找問題描述如下:設(shè)給定一個包含一組標(biāo)簽的標(biāo)簽圖,再給定包含一組標(biāo)簽的查詢圖,基于標(biāo)簽圖的模式匹配子圖查找方法找到和查詢圖模式匹配的子圖。假定標(biāo)簽圖為G=(V,E,l),查詢圖為Q=(Vq,Eq,lq),標(biāo)簽圖G=(V,E,l)中每個頂點看作待查詢的對象,圖中每個頂點都具有一個標(biāo)簽;標(biāo)簽圖和查詢圖均為有向圖。我們的目標(biāo)是從標(biāo)簽圖G=(V,E,l)中尋找到所有和查詢圖Q=(Vq,Eq,lq)滿足模式匹配條件的子圖。
【專利說明】
-種基于標(biāo)簽圖的模式匹配子圖查找方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及標(biāo)簽圖中的模式匹配子圖查找方法,主要利用剪枝優(yōu)化與深度優(yōu)先捜 索算法從全局角度求解標(biāo)簽圖中的模式匹配子圖,屬于計算機(jī)技術(shù)、信息技術(shù)、數(shù)據(jù)挖掘交 叉技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 圖是一種描述現(xiàn)實世界中各類實體和它們之間關(guān)系的重要數(shù)據(jù)結(jié)構(gòu)。隨著信息技 術(shù)的發(fā)展,圖通常包含豐富的標(biāo)簽信息,稱之為標(biāo)簽圖。
[0003] 在標(biāo)簽圖中,如何根據(jù)給定的查詢圖,在標(biāo)簽圖中找到與查詢圖模式匹配的子圖, 成為廣泛研究的課題。本發(fā)明主要采用剪枝優(yōu)化和深度優(yōu)先捜索算法,從全局角度求解標(biāo) 簽圖中的模式匹配子圖。剪枝優(yōu)化,在捜索算法中指通過某種判斷,避免一些不必要的遍歷 過程,即剪去捜索樹中的某些"枝條"。深度優(yōu)先捜索算法,是捜索算法的一種,即沿著樹的 深度對樹的節(jié)點進(jìn)行遍歷,盡可能深的捜索樹的分支,它的目的是要達(dá)到被捜索結(jié)構(gòu)的葉 節(jié)點。在本發(fā)明中,應(yīng)用剪枝優(yōu)化和深度優(yōu)先捜索算法,求解標(biāo)簽圖中的模式匹配子圖。本 發(fā)明能夠形成解決全局情況下標(biāo)簽圖中的模式匹配子圖方案,使標(biāo)簽圖中的模式匹配子圖 查找問題在解決過程在時間和空間復(fù)雜度上得到優(yōu)化,并且避免早熟收斂。本發(fā)明給出一 種模式匹配子圖的查找方法,該方法將模式匹配子圖查找問題定義成標(biāo)簽圖模型,從全局 角度求解標(biāo)簽圖中的模式匹配子圖,通過剪枝優(yōu)化和深度優(yōu)先捜索算法等策略獲取可行解 空間。
【發(fā)明內(nèi)容】
[0004] 技術(shù)問題:本發(fā)明的目的是提供一種基于標(biāo)簽圖的模式匹配子圖查找方法,解決 標(biāo)簽圖中模式匹配子圖的查找問題,該問題是指給定一個各頂點注有相應(yīng)標(biāo)簽的圖,即標(biāo) 簽圖,W及一個各頂點注有相應(yīng)標(biāo)簽的查詢圖。其中,查詢圖的規(guī)模比標(biāo)簽圖小。從標(biāo)簽圖 所有頂點中選擇部分頂點構(gòu)成子圖,使得該子圖與查詢圖滿足模式匹配的條件。
[0005] 技術(shù)方案:所述標(biāo)簽圖中模式匹配子圖的查找問題描述如下:設(shè)給定一個包含一 組標(biāo)簽的標(biāo)簽圖,再給定包含一組標(biāo)簽的查詢圖,基于標(biāo)簽圖的模式匹配子圖查找方法找 到和查詢圖模式匹配的子圖。假定標(biāo)簽圖為6=(¥,6,1),查詢圖為9=(¥。,6。,1。),標(biāo)簽圖0 = (V,E,1)中每個頂點看作待查詢的對象,圖中每個頂點都具有一個標(biāo)簽;標(biāo)簽圖和查詢圖 均為有向圖。我們的目標(biāo)是從標(biāo)簽圖G=(V,E,1)中尋找到所有和查詢圖Q=(Vq,Eq,lq)滿足 模式匹配條件的子圖。
[0006] 本發(fā)明所述的基于標(biāo)簽圖的模式匹配子圖查找方法將網(wǎng)絡(luò)中的模式匹配子圖查 找問題定義成標(biāo)簽圖模型,W及采用剪枝優(yōu)化與深度優(yōu)先捜索算法獲得解空間。
[0007] 本發(fā)明所述的基于標(biāo)簽圖的模式匹配子圖查找方法包括W下步驟:
[000引步驟1)根據(jù)用戶輸入的信息,構(gòu)建網(wǎng)絡(luò)圖中的模式匹配子圖查找問題的標(biāo)簽圖G = (V,E,1),所述V是頂點集合,E是邊集合,1是頂點到標(biāo)簽的映射。所述映射,是指兩個元素 集合之間元素相互對應(yīng)的關(guān)系。所述標(biāo)簽圖G= (V,E,I)在建立后,每個頂點均對應(yīng)一個標(biāo) 簽。具體步驟如下:
[0009] 步驟11)用戶輸入包含頂點集合、邊集合及每個頂點對應(yīng)的標(biāo)簽,構(gòu)建標(biāo)簽圖模型 G=(V,E,1)。給定查詢圖,該查詢圖包含若干個頂點、各頂點之間的關(guān)系及各頂點對應(yīng)的標(biāo) 簽。其中,用戶輸入的頂點集合記為V,輸入的邊集合記為E,頂點Ver對應(yīng)的標(biāo)簽記作I(Ver), 查詢圖記作9=(¥。,6。,1。)。所述標(biāo)簽圖0=(¥,6,1)與查詢圖〇=(¥。,6。,1。),均為不帶權(quán)有 向圖;所述Vq是指查詢圖中的頂點集合,Eq是t胃查詢圖中的邊集合,lq是指查詢圖Q=(Vq,Eq, Iq)中的頂點到標(biāo)簽的映射。
[0010] 步驟12)將頂點集合V中所有頂點看作標(biāo)簽圖模型G=(V,E,1)中的頂點。
[0011]步驟13)定義(u,v),表示頂點U和頂點V之間相連的邊。定義? (U),表示頂點U對應(yīng) 的可行匹配集合,即在標(biāo)簽圖G= (V,E,1)中其標(biāo)簽和Ku)相同的所有頂點構(gòu)成的集合。其 中,UG V且 VG V,巫(U) = Iv IvGV, I(V) = I(U) },
[0012]步驟14)定義頂點U對應(yīng)的鄰接點集合adj(u),其中adj(u) = {v| (u,v)EE},將頂 點U看作是鄰接點集合adj(u)中所有頂點的父親,鄰接點集合adj(u)中的所有頂點看作是 頂點U的孩子;
[0013] 步驟2)采用剪枝優(yōu)化和深度優(yōu)先捜索算法,獲得模式匹配子圖查找問題在標(biāo)簽圖 模型G =( V,E,1)上的解空間;具體步驟如下:
[0014] 步驟21)定義目標(biāo)解空間5。1。*1。。,表示與查詢圖9=(¥。瓜,1。)模式匹配的所有子 圖構(gòu)成的集合,初始化&/,,,,。,!=0,
[001引步驟22)定義目標(biāo)可行匹配集合matches,初始化/?W.M=0。
[0016]步驟24)定義臨時匹配集合〇0,求解查詢圖Q=(Vq,Eq,lq)中,每個頂點Uq對應(yīng)的可 行匹配集合O (Uq),其中UqGVq, Oo表示由每個可行匹配集合O (Uq)構(gòu)成的集合;I Vql表示 查詢圖中的頂點個數(shù),貝順點UO對應(yīng)的可行匹配集合為O (UO),將O (UO)加入到(60中,同理 將頂點m對應(yīng)的可行匹配集合O (山)加入到Oo中,繼續(xù)操作,直至將頂點^I-I對應(yīng)的可行 匹配集合(6(", J加入到Oo中,從而得到最終的可行匹配集合構(gòu)成的集合巫0。
[0017] 25)執(zhí)行剪枝算法DualSim(G,Q,〇〇),挪臨時匹配集合中的元素進(jìn)行篩選,更新巫〇 = DualSim(G,Q,〇〇)。所述DualSimO即為剪枝優(yōu)化算法,用來縮小查詢過程中的捜索空 間,通過W下兩個限制條件對臨時匹配集合O 0中的元素進(jìn)行剪枝:對于
3^'€巫("')使得(V,V ' ) G E ;對于 尋(V,V' ) GE;
[001引步驟26)執(zhí)行深度優(yōu)先捜索算法Search(G,Q,00,depth),引入變量dep化表示遍歷的深 度并初始化depA = 0,求解目標(biāo)解空間Solution ;
[0019]步驟261)判斷目標(biāo)可行匹配集合matches中的頂點個數(shù)是否達(dá)到I Vql,即是否等于 查詢圖Q=(Vq,Eq,lq)中的頂點個數(shù);
[0020]步驟262)如果 matches 二 Vq ,則令 matches 二matches U 巫 0 ;
[00別]步驟263)如果Imatches I聲I Vql,則遍歷巫(depth)中的所有頂點V;
[0022]步驟2631)如果"€〇>(〇)山..。<1)(如姑-巧,則定義變量0',初始化巫'=0〇,同時 令o' (depth) = {v},返回步驟化);
[0023] 步驟2632)如果〇/不是空集,返回步驟26),執(zhí)行深度優(yōu)先捜索算法Search(G,Q, 巫',depth+l)。
[0024] 步驟264)返回目標(biāo)可行匹配集合matches,加入到目標(biāo)解空間Solution中;
[002引步驟27)確定最終目標(biāo)解空間5。1。心。,該解空間中包含與查詢圖9=(¥。而,1。)模 式匹配的所有子圖。
[0026] 有益效果:本發(fā)明利用剪枝優(yōu)化與深度優(yōu)先捜索算法形成高效的模式匹配子圖查 找方法。具體體現(xiàn)如下有益效果:
[0027] 1)本發(fā)明提供一種基于標(biāo)簽圖的模式匹配子圖查找方法,其完整的方法過程包括 將網(wǎng)絡(luò)圖中的模式匹配子圖查找問題定義成標(biāo)簽圖模型,W及采用剪枝優(yōu)化與深度優(yōu)先捜 索算法獲得解空間。
[0028] 2)本發(fā)明中所述建模過程中,提供一個或一套較為抽象的圖模型,能夠?qū)嶋H問 題中的相關(guān)求解方法轉(zhuǎn)化為數(shù)學(xué)化的模型形式。
[0029] 3)本發(fā)明中所述模型從全局角度求解標(biāo)簽圖中的模式匹配子圖,使得模式匹配子 圖查找問題最終能夠得到所有的精確解。
[0030] 4)本發(fā)明采用剪枝優(yōu)化與深度優(yōu)先捜索算法,避免一些不必要的遍歷過程,從而 有效降低算法時間復(fù)雜和空間復(fù)雜度。
【附圖說明】
[0031] 圖1是基于標(biāo)簽圖的模式匹配子圖查找方法。
[0032] 圖2是標(biāo)簽圖模型實例中的查詢圖。
[0033] 圖3時標(biāo)簽圖模型實例中的標(biāo)簽圖。
【具體實施方式】
[0034] 下面對本發(fā)明附圖的某些實施例作更加詳細(xì)的描述。
[0035] 根據(jù)附圖1,本發(fā)明【具體實施方式】為:
[0036] 1).將網(wǎng)絡(luò)中的模式匹配子圖查找問題定義成標(biāo)簽圖模型。
[0037] 11).輸入包含一組頂點集合、邊集合W及每個頂點對應(yīng)的標(biāo)簽,構(gòu)建標(biāo)簽圖模型, 并給定查詢圖,該查詢圖同樣包含一組頂點集合、邊集合W及每個頂點對應(yīng)的標(biāo)簽。
[003引其中如圖2所示,在查詢圖Q= (Vq,Eq,Iq)中,頂點集合Vq= {0,1,2},邊集合Eq = {(0,1),( 1,0),( 1,2)},其中頂點0具有標(biāo)簽a,頂點1具有標(biāo)簽b,頂點2具有標(biāo)簽C。
[0039] 如圖3所示,在標(biāo)簽圖G=(V,E,1)中,頂點集合V={0,1,2,3,4,5,6,7,8},邊集合 Eq={(0,l),(0,3),(l,6),(2,6),(4,l),(4,3),(5,4),(6,2),(6,5),(6,7),(8,5)},其中 頂點0具有標(biāo)簽b,頂點1具有標(biāo)簽b,頂點2具有標(biāo)簽a,頂點3具有標(biāo)簽C,頂點4具有標(biāo)簽b,頂 點5具有標(biāo)簽a,頂點6具有標(biāo)簽b,頂點7具有標(biāo)簽C,頂點8具有標(biāo)簽b。
[0040] 12).將頂點集¥={0,1,2,3,4,5,6,7,8}中所有頂點看作標(biāo)簽圖0=(¥,6,1)中的 頂點。
[0041] 13).求取查詢圖中每個頂點對應(yīng)的可行匹配集合。
[0042] 得到〇(0) = {1,2,5},〇(1) = {0,4,6,8},〇(2) = {3,7}。
[0043] 所述標(biāo)簽圖模型G在建立后,任意一個頂點都對應(yīng)一個標(biāo)簽。
[0044] 2).采用剪枝優(yōu)化與深度優(yōu)先捜索算法,獲得模式匹配子圖查找問題在標(biāo)簽圖模 型G =( V,E,1)上的解空間。具體步驟如下:
[0045] 21).定義臨時匹配集合〇〇,其中〇〇={1,2,5;0,4,6,8;3,7}。對臨時匹配集合〇〇 ={1,2,5;0,4,6,8;3,7}進(jìn)行剪枝優(yōu)化。
[0046] 經(jīng)過剪枝優(yōu)化算法操作后,更新臨時匹配集合〇〇={1,2,5;4,6;3,7}。
[0047] 22).定義目標(biāo)可行匹配集合matches,初始化為空集。對臨時匹配集合(60執(zhí)行深度 優(yōu)先捜索算法,引入變量dep化表示遍歷的深度并初始化dep化=0,求解目標(biāo)解空間Solution。
[0048] 23).判斷目標(biāo)可行匹配集合matches中的頂點個數(shù)是否達(dá)到3,即是否等于查詢圖Q =(Vq ,Eq,Iq)中的頂點個數(shù)。
[0049] 231 ).如果 I matches I 二 3 ,則令 I matches I 二matches U 巫 0 O
[0050] 232).如果Imatches I聲3,則遍歷巫(depth)中的所有頂點V。
[00引]233).如果Imatches I聲I Vql,則遍歷巫(depth)中的所有頂點V。
[0化^ 2331).如果Vg化(O)U…U化(點",',-1),則定義變量巫',初始化巫'=巫0,同時令 巫'(depth) = {v},返回步驟 21)。
[0053] 2332).如果(6/不是空集,則對變量dep化執(zhí)行加1操作,返回步驟23),繼續(xù)執(zhí)行深 度優(yōu)先捜索算法。
[0化4] 264).返回目標(biāo)可行匹配集matches,加入到目標(biāo)解空間Solution中。
[0055] 27).確定最終解空間Solution= {{2,6,7} },該解空間中包含滿足和查詢圖模式匹 配的子圖,即由頂點2、頂點6和頂點7及運些頂點之間的邊構(gòu)成的子圖。
【主權(quán)項】
1. 一種基于標(biāo)簽圖中的模式匹配子圖查找方法,其特征在于該方法包括以下步驟: 步驟1)根據(jù)用戶輸入的信息,構(gòu)建網(wǎng)絡(luò)圖中的模式匹配子圖查找問題的標(biāo)簽圖G=(v, E,1 ),所述V是頂點集合,E是邊集合,1是頂點到標(biāo)簽的映射;所述映射,是指兩個元素集合 之間元素相互對應(yīng)的關(guān)系;所述標(biāo)簽圖G=(V,E,1)在建立后,每個頂點均對應(yīng)一個標(biāo)簽; 步驟2)采用剪枝優(yōu)化和深度優(yōu)先搜索算法,獲得模式匹配子圖查找問題在標(biāo)簽圖模型 G = (V,E,1)上的解空間,具體步驟如下: 步驟21)定義目標(biāo)解空間Scaut^,表示與查詢圖〇=(¥<13(1,1(1)模式匹配的所有子圖構(gòu)成 的集合,初始化; 步驟22 )定義目標(biāo)可行匹配集合matches,初始化: 步驟23)定義臨時匹配集合Φ〇,求解查詢圖〇=(¥<1義,1(1)中,每個頂點1 1(1對應(yīng)的可行匹 配集合〇(uq),其中UqeVq,?〇表示由每個可行匹配集合?(u q)構(gòu)成的集合;|Vq|表示查詢 圖中的頂點個數(shù),則頂點U0對應(yīng)的可行匹配集合為φ(1!0),將φ(1!0)加入到Φο中,同理將頂 點m對應(yīng)的可行匹配集合?(m)加入到Φ〇中,繼續(xù)操作,直至將頂點^七對應(yīng)的可行匹配 集合^加入到Φ〇中,從而得到最終的可行匹配集合構(gòu)成的集合Φ〇; 24)執(zhí)行剪枝算法DualSim(G,Q,?〇),對臨時匹配集合中的元素進(jìn)行篩選,更新Φ〇 = 0皿151111(6,0,〇()),所述0皿151111()即為剪枝優(yōu)化算法,用來縮小查詢過程中的搜索空間, 通過以下兩個限制條件對臨時匹配集合Φ 〇中的元素進(jìn)行剪枝:對于 ▽ (ω,ι/) , Vv..e Φ(η),3vf e Φ〇?')使得(ν,ν' ) e Ε ;對于 V(",w') ,W e Φ(?'), 31,€<3>(?)使得(>,¥/)££; 步驟25)執(zhí)行深度優(yōu)先搜索算法Surc^GA,?Q,cUpth),引入變量depth表示遍歷的深度并 初始化depth = 0,求解目標(biāo)解空間Solution ; 步驟26)確定最終目標(biāo)解空間Section,該解空間中包含與查詢圖Q = (vq,Eq,lq)模式匹配 的所有子圖。2. 根據(jù)權(quán)利要求1所述的一種基于標(biāo)簽圖中的模式匹配子圖查找方法,其特征在于所 述步驟1)根據(jù)用戶輸入的信息,構(gòu)建網(wǎng)絡(luò)圖中的模式匹配子圖查找問題的標(biāo)簽圖G=(V,E, 1),具體步驟如下: 步驟11)用戶輸入包含頂點集合、邊集合及每個頂點對應(yīng)的標(biāo)簽,構(gòu)建標(biāo)簽圖模型G = (V,E,1),給定查詢圖,該查詢圖包含若干個頂點、各頂點之間的關(guān)系及各頂點對應(yīng)的標(biāo)簽; 其中,用戶輸入的頂點集合記為V,輸入的邊集合記為E,頂點v er對應(yīng)的標(biāo)簽記作l(ver),查 詢圖記作9=(¥<1義,1 (1);所述標(biāo)簽圖6=(¥3,1)與查詢圖〇=(¥(^(1,1(1),均為不帶權(quán)有向 圖;所述V q是指查詢圖中的頂點集合,Eq是指查詢圖中的邊集合,lq是指查詢圖Q=(V q,Eq, lq)中的頂點到標(biāo)簽的映射; 步驟12)將頂點集合V中所有頂點看作標(biāo)簽圖模型G =( V,E,1)中的頂點; 步驟13)定義(u,v),表示頂點u和頂點v之間相連的邊;定義Φ (u),表示頂點u對應(yīng)的可 行匹配集合,即在標(biāo)簽圖G=(V,E,1)中其標(biāo)簽和l(u)相同的所有頂點構(gòu)成的集合,其中,u e V且ve V,C>(u) = {v|vev,l(v) = l(u)}; 步驟14)定義頂點u對應(yīng)的鄰接點集合ad j (u),其中ad j (u) = {v I (u,v) e E},將頂點u看 作是鄰接點集合ad j(u)中所有頂點的父親,鄰接點集合ad j(u)中的所有頂點看作是頂點u 的孩子。3.根據(jù)權(quán)利要求1所述的一種基于標(biāo)簽圖中的模式匹配子圖查找方法,其特征在于所 述步驟25)求解目標(biāo)解空間Scautlcin的方法具體為: 步驟251)判斷目標(biāo)可行匹配集合!1^。^中的頂點個數(shù)是否達(dá)到| Vq |,即是否等于查詢圖 Q=(Vq,Eq,lq)中的頂點個數(shù); 步驟252 )如果 | matches | = | Vq |,貝令 | matches | =matches U Φ 〇 ; 步驟253)如果I matches I乒I Vq I,貝lj遍歷Φ (depth)中的所有頂點V; 步驟2531)如果Φ…Uφ,則定義變量φ',初始化φ' = φο,同時令φ' (depth) = {ν},返回步驟25); 步驟2532)如果Φ'不是空集,返回步驟26),執(zhí)行深度優(yōu)先搜索算法, depth+1 ); 步驟254)返回目標(biāo)可行匹配集合matches,加入到目標(biāo)解空間Solution中。
【文檔編號】G06F17/30GK105956114SQ201610293424
【公開日】2016年9月21日
【申請日】2016年5月5日
【發(fā)明人】王宇虹, 陳志 , 岳文靜, 陳志遠(yuǎn)
【申請人】南京郵電大學(xué)