CHƯƠNG 3: CÁC THUẬT TOÁN PHÁT HIỆN ĐỒ THỊ CON THƯỜNG XUYÊN
3.2. CHIẾN LƢỢC TÌM KIẾM THEO CHIỀU SÂU
3.2.1. Thuật toán gSpan (Graph-Based Substructure Pattern Mining)
* Thứ tự từ điển DFS:
+ Đánh chỉ số DFS: Khi biểu diễn tìm kiếm theo chiều sâu trong một đồ thị.
Ta xây dựng một cây DFS, một đồ thị có thể có nhiều cây DFS khác nhau. Ví dụ các đồ thị trong hình 3.3 (b)-(d) là đẳng cấu với chúng trong hình 3.3(a).
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.3 Cây tìm kiếm theo chiều sâu.
Việc làm dày các cạnh trong hình 3.3(b) – (d) biểu diễn ba cây DFS khác nhau cho đồ thị trong hình 3.3 (a). Tìm kiếm theo chiều sâu phát hiện các đỉnh theo thứ tự tuyến tính. Sử dụng chỉ số dưới để gán nhãn cho thứ tự số lần phát hiện của chúng i j nghĩa là vi được phát hiện trước vj. Gọi v0 là nút gốc còn vn là nút ngoài cùng bên phải, đường nối từ v0 tới vn là đường ngoài cùng bên phải. Hình 3.3(b)-(d) có ba chỉ số dưới được phát sinh cho đồ thị trong hình 3.3(a). Đường ngoài cùng bên phải là (v0, v1, v4) trong hình 3.3(b), ( v0, v4)trong hình 3.3(c) và ( v0, v1, v2, v4)trong hình 3.3(d). Biểu diễn chỉ số dưới của G là GT.
+ Cạnh trước và cạnh sau:
Cho GT cạnh trước là tập tất cả các cạnh trong cây DFS và cạnh sau là tập tất cả các cạnh không chứa trong cây DFS.
Ví dụ 3.3. (i, j)là một cặp đỉnh có thứ tự để biểu diễn cho một cạnh. Nếu j
i thì nó là cạnh trước ngược lại thì là cạnh sau.
Một thứ tự tuyến tính T đƣợc xây dựng dựa vào tất cả các cạnh trong G bởi các luật sau:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Giả sử: e1 (i1, j1), e2 (i2, j2)
i) if (i1 i2)and(j1 j2)then e1T e2 ii) if (i1 j1)and(j1 j2)then e1 T e2 iii) if(e1T e2)and(e2T e3)thene1 T e3
* Định nghĩa 3.2. (Mã DFS)
Cho một cây DFS T của một đồ thị G, một cạnh tuần tự (e1) có thể đƣợc xây dựng dựa trên T, nhƣ là ei Tei 1, trong đó i 0,...., E 1. ( )ei đƣợc gọi là một mã DFS, ký hiệu là Code(G,T)
Ví dụ 3.4. Một cạnh đƣợc biểu diễn bởi một bộ gồm năm thành phần )
, , , ,
(i j li l(i,j) lj trong đó li, ljlà nhãn của vivà vj,l(i,j)là nhãn cạnh giữa chúng.
Ví dụ 3.4. (v0,v1) trong hình 3.3(b) đƣợc biểu diễn bằng (0,1,X,a,Y). Bảng 1 Mã DFS tương ứng cho hình 3.3(b), 3.3(c), 3.3(d)
* Định nghĩa 3.3. (Thứ tự từ điển DFS)
Giả sử Z= { Code(G,T) | T là một cây DFS của G },Z là một tập bao gồm tất cả mã DFS của tất cả các đồ thị có nhãn liên tục. Giả sử có một thứ tự tuyến tính (L)) trong tập nhãn (L) thì sự kết hợp theo thứ tự từ điển của
Tvà Llà một thứ tự tuyến tính (e) trên tập ET L L L. + Thứ tự từ điển là một thứ tự tuyến tính được định nghĩa như sau:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nếu Code(G ,T ) (a0,a1,...,am) và Code(G ,T ) (b0,b1,...,bn) Z
, thì nếu cả hai điều kiện dưới đây cùng thỏa mãn:
i) t,0 t min(m,n),ak bkcho k< t , at e bt ii) ak bk cho 0 k m, và n m
Cho đồ thị trong hình 3.3(a) có mười mã DFS tồn tại khác nhau, ba trong số chúng đƣợc xây dựng dựa trên cây DFS hình 3.3(b)-(d) đƣợc liệt kê trong bảng 1. Theo quy tắc thứ tự từ điển DFS ,
* Định nghĩa 3.4. (Mã DFS tối thiểu)
Cho một đồ thị G, Z(G) = { Code(G,T) | T là một cây DFS của G }. Dựa trên thứ tự từ điển DFS, một tối thiểu min(Z(G)) đƣợc gọi là mã DFS tối thiểu của G, cũng đƣợc gọi là một nhãn chính tắc của G.
Định lý 3.1. Cho hai đồ thị G và G‟, G là đẳng cấu với G‟ nếu và chỉ nếu min(G) = min(G’).Theo đó vấn đề của khai phá các đồ thị con liên thông thường xuyên tương đương với việc khai phá các mã DFS tối thiểu của chúng.
Cho một mã DFS (a0,a1,...,am)và mã DFS có giá trị bất kỳ )
, ,.., ,
(a0 a1 am b đƣợc gọi là con của , và đƣợc gọi là cha của .
Để xây dựng một giá trị mã DFS thì b phải là một cạnh chỉ gia tăng từ các đỉnh ngoài cùng bên phải. Thứ tự liệt kê các cây con theo trình tự từ điển DFS là: 3.4(b),3.4(c), 3.4(d), 3.4(e), và 3.4(f)
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.4 Mã DFS/ Đồ thị gia tăng.
* Định nghĩa 3.5. ( cây mã DFS)
Trong cây mã DFS, mỗi node biểu diễn một mã DFS, mối quan hệ giữa node cha và node con tuân theo luật:
Với mối quan hệ cha –con đã mô tả phần trên. Mối quan hệ anh – em bao gồm thứ tự từ điển DFS, đó là tìm kiếm theo thứ tự trước của cây mã DFS theo thứ tự từ điển DFS.
Cho một tập nhãn L, một cây mã DFS chứa vô hạn số đồ thị, chỉ xét các đồ thị con thường xuyên trong một cơ sở dữ liệu vô hạn. Kích thước của một cây DFS là vô hạn. Hình 3.4 biểu diễn một cây mã DFS, các node mức nth chứa mã DFS của các đồ thị (n-1) – cạnh. Qua việc tìm kiếm của cây mã, tất cả các mã DFS tối thiểu của các đồ thị con thường xuyên có thể được phát hiện.
Nghĩa là tất cả các đồ thị con thường xuyên có thể được phát hiện bằng cách thức này.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Thuật toán 3.3: GraphSet_Projection(D,S) [9,tr.5-6]
Thủ tục con : Subgraph Mining(D,S,s)