1. 程式人生 > >graph isomorphic(using adjacency matrix)

graph isomorphic(using adjacency matrix)

圖同構(isomorphic)的定義:(不理解直接跳過即可)
這裡寫圖片描述
if and only if there exists a bijection alpha from vertex set of G to the vertex set of H,such that alpha of u,alpha of v is an edge of H if and only if uv is an edge of G.

下面是舉例說明這個式子:
這裡寫圖片描述
alpha由圖中的例子可以清楚的看出,就是一種對映關係,即將圖G的12345node對映到圖H的54123node。
這種對應關係可以由(153)(24)表示,
即1->5,5->3,3->1如此迴圈,2->4,4->2如此迴圈

  • note:
    telling you: the bijection alpha preserves adjacency and non-adjacency
    (其實,alpha就蘊含了node之間的關係)
    all the information in a graph is contained in its adjacency matrix
    (而關於圖的所有資訊其實都在鄰接矩陣中了,於是核心思想就是,可以通過鄰接矩陣判斷兩個圖是否同構。)

而最開始定義中的公式即:
這裡寫圖片描述
12為圖G的一條邊,那麼根據對應法則,alpha(1)->5,alpha(2)->4,即54對應上了圖H的一條邊。
同理,因為14不是圖G的一條邊,因此根據對應法則產生的邊52,頁不屬於圖H。

用(鄰接)矩陣來定義和描述這種關係:
這裡寫圖片描述
即:若圖G同構於圖H,當且僅當存在一個置換矩陣P,使得P*adjacent-matrix(H)*P轉置=adjacent-matrix(G)

這裡寫圖片描述
G和H的鄰接矩陣如圖,而用permutation matrix可以完美的表示alpha(如圖)

驗證:
這裡寫圖片描述