An Exact Graph Edit Distance Algorithm for Solving Pattern Recognition Problems

2015年的文章,已經用python實現,必應搜索networkx.simialrity.py
圖形編輯距離是一種容錯匹配技術,可用於解決模式識別,機器學習和數據挖掘中的不同任務的強大而靈活的圖形匹配範例;它表示通過插入,刪除和替換頂點和/或邊線將一個圖形轉換爲另一個圖形的最低成本順序。
精確圖形編輯距離計算的一種廣泛使用的方法是基於A* 算法。
爲了克服遍歷要存儲的待解決方案的搜索樹時遇到的高內存負載,我們提出了一種深度優先的圖編輯距離算法,該算法需要更少的內存和更少的搜索時間。對所有可能的解決方案進行評估,而無需明確列舉所有解決方案。
使用上限和下限策略丟棄候選集。
提出了可靠的實驗研究;
在公開數據庫上進行的實驗證明,在速度,準確性和分類率方面,我們的方法優於A*圖形編輯距離計算。

A* 算法總結:
輸入:屬性圖g1,g2,頂點有各自的label,邊沒有label
輸出:從g1到g2的最佳編輯路徑P_{min}
初始化:先建立OPEN集合,裏面存放各種可能的路徑。建立PminP_{min}集合,裏面存放代價最小的GED路徑
1-3:初始化倆個集合OPEN P_{min}爲空,在OPEN中隨機初始化g1中的某一點映射到g2中所有頂點的元組,如g1中存在三個頂點u1,u2,u3,(標籤分別爲C H O) ,g2中存在倆個頂點v1,v2(標籤分別爲C H),則OPEN={(u1,v1),(u1,v2),(u1,None)}.None表示空頂點。

4-20:
選擇OPEN集合中的一個操作P,作爲PminP_{min},選擇的標準是這個編輯操作P的從根編輯節點(將映射空間抽象爲一棵路徑搜索樹)到當前節點的代價g(P)g(P)和操作P之後可能引發的代價lb(P)lb(P),實際上 lb(P)lb(P)就是經歷了編輯操作P後,餘下頂點所需要的編輯成本的最小值。

例如,選擇編輯節點(u1,v1)作爲最小部分編輯路徑,那麼在g1中的未映射頂點u2 u3(標籤爲H O)和g2中未映射頂點v2(標籤爲H)之間的編輯成本,編輯成本最小值應該爲1.這裏用匈牙利算法,可以構建u2 u3和v2之間的代價矩陣,經過匹配總代價最小和爲1.這裏用的lb(P)lb(P)是匈牙利算法的最小代價和( (Riesen and Bunke, 2009),時間複雜度是O(max{n1,n2})3O(max\{n_{1},n_{2}\})^{3},其中n是圖頂點的個數),當然還可以有其他類型的代價。此處算出來的代價繼編輯操作(u1,v1)之後,在此操作基礎上,餘下操作(達到完整映射)的代價的下限。因此,還可以計算出編輯操作(u1,v2) (u1,None)這倆個頂點的下限。計算出三個編輯操作的下限,從中選取下限最下的編輯操作繼續往下擴展。
對於編輯節點(u1,v2)(u1,None)倆個節點的lb(p)lb(p)值,(u1,v2)的下限是2,都要比1大,因此選擇(u1,v1)作爲部分最佳編輯路徑。因此PminP_{min}= {(u1,v1)}.OPEN={(u1,v2),(u1,None)}.

10:
因爲P_{min}中編輯操作的數量並未完全映射完g1中的頂點,因此開始映射g1中的下一個頂點u2(除去已經映射完的任何一個頂點,這裏是除了u1之外的任何一個頂點)。因此此時OPEN={(u1,v2),(u1,None),(u1,v1)+(u2,v2),(u1,v1)+(u2,None)}.見算法12行

5:
OPEN={(u1,v1),(u1,None),(u1,v1)+(u2,v2),(u1,v1)+(u2,None)}中再次選擇一個元組的cost值是最小的,因爲cost((u1,v1)+(u2,v2))代價最小((u1,v1)這個編輯操作的代價是3,(u1,None)的編輯操作是2,(u1,v1)+(u2,None)的編輯操作是2),因此PminP_{min} = {(u1,v1)+(u2,v2)}.
此時OPEN={(u1,v2),(u1,None),(u1,v1)+(u2,None)}(去除了最小代價的編輯路徑)。

11:因爲g1中的頂點仍然未映射完畢,所以,OPEN集合中增加未映射的頂點,OPEN={(u1,v2),(u1,None),(u1,v1)+(u2,None),(u1,v1)+(u2,v2)+(u3,None)}

5:根據代價選擇最小的編輯路徑P_{min} = {(u1,v1)+(u2,v2)+(u3,None)}.這是A*算法選擇出的g1到g2的最佳路徑,其代價最小。

返回P_{min}

問題:
如果對於不連通的圖,按照這種頂點映射的方法,是找不出邊的映射的。也就是找不出結構之間的匹配,如何保證結構之間的相似?

算法2:
在這裏插入圖片描述在這裏插入圖片描述

實驗:
運行環境:4-核 i7 ,8GB內存
對比方法:A*
本文方法:DF-GED
數據介紹:
在我們的實驗中使用的GREC數據庫是IAM中的一個數據集,它包含GREC2005競賽基礎的符號數據庫的一個子集(Dosch和Valveny, 2006)。GREC的圖像代表了來自建築、電子和其他技術領域的符號。爲了模擬手寫符號,對原始圖像應用了畸變操作符。爲此,符號的原始線條被劃分爲子部分。然後這些子部分的結束點在一定距離內隨機移動,保持連接。每個節點表示一行的一個子部分,並與該行的相對長度(實際長度的比值)相關聯行到符號中最長行的長度)。線的連接點用線與線之間的角度相關聯的邊來表示。數據集由6個類和每個類30個實例組成。這個數據集很有用,因爲頂點和邊都用數字屬性標記。此外,它還包含大小從5到25個頂點不等的圖。
圖的樣式:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
數據集中共包含1100個圖,圖均勻地分佈在22個符號之間。
數據集被分爲訓練集 測試集(286個數據,也就是286張圖片,其中每13張圖片歸爲一類,共22類) 、
測試集(528個數據,其中每中符號的分類都有24張圖片數據,已經加好標籤,一共22鍾符號)、
驗證集(286個數據,也就是286張圖片,其中每13張圖片歸爲一類,共22類)。
代價函數的選擇如下:
對於頂點替換的代價:
如果替換的倆個節點是相同類型(類型是否相同看頂點標籤的attr是否一樣,有ending point,corner,interaction,circle四種類型),那麼替換的成本是倆個頂點對應的座標(頂點中的(x,y))的歐式距離,如(x1x2)2+(y1y2)2=cost\sqrt{(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}}=cost
如果頂點不是同一個類型,那麼就沒有替換的可能性,意味着把頂點刪掉或者增加頂點,這時將代價設置爲2τnode2\tau_{node},其中τnode\tau_{node}值在本實驗中設置爲90
如果替換的倆條邊是相同類型(line,arc),則替換的代價是0(狄利克雷值),否則代價爲2τedge2\tau_{edge},實驗中設置τedge\tau_{edge}爲15.
爲了控制邊操作還是頂點操作的重要性,α\alpha設置爲0.5

評估指標:
評估角度有倆方面:
1.在很小時間限制內和很大時間限制內,計算距離矩陣。距離矩陣就是一個方形矩陣,其中每個值是倆個圖之間的距離
2.在一個合理時間的限制下,進行分類測試

距離矩陣如下表示:
MPM^{P}P表示計算GED的倆種方法:A或者本文的DFS-ged.假設計算出的標準M用符號GTi,jGT_{i,j}表示,那麼下面通過偏差來評估哪一種方法好
偏差:
在這裏插入圖片描述
換句話說,就是看哪一種GED計算法方法和GTGT的偏差小。實驗結果如下:
在350毫秒限制內A*與本文方法計算GED的偏差
上圖:在350毫秒限制、運行內存1GB限制內A
與本文方法計算GED的偏差
上圖說明了在350毫秒內,通過A*和本文算法計算距離矩陣的偏差。GRECK中k分別取5 10 15 20 mix,表示數據集中圖的大小在逐漸遞增,每一個尺寸的數據集有10個,比如GREC10(這裏的10表示一個圖中有10個頂點,是圖的規模大小)有10個圖,GREC20有10個圖,而GREC-mix也有10個大小不等的圖。從圖中可見,本文方法的偏差爲0.
還有一個是在5min中限制下的偏差比較不在介紹

運行時間:
爲每一對圖i,j之間,以毫秒爲單位評估運行時間。這個時間涵蓋了計算g§ 計算已經匹配代價的操作),計算lb§:計算下界 UB:計算上界的三個總的時間
問題::這裏的實驗做了倆次比較,使用時間作爲限制沒有看明白!!
在這裏插入圖片描述
問題:在本文中,爲什麼需要限制時間毫秒和分鐘?在同等時間下的比較,做不出這種實驗嗎?其中限制時間的目的是什麼?

This is the paper link:https://www.researchgate.net/publication/275463562_An_Exact_Graph_Edit_Distance_Algorithm_for_Solving_Pattern_Recognition_Problems,
1.I cannot understand the algorithms in the line 2 which tells me that we shuld sort the vertices. Could you give me an example how to sort the vertices by the Munkres algorithms?
2.During the experiments, the author set the time constraints “miliseconds” and “minutes”, I donnot know why he set the two constraints. How can I understand this ?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章