Ý nghĩa khoa học Đây là một hướng nghiên cứu lý thuyết, xây dựng các thuật toán tìm kiếm đồthị con đẳng cấu và đồ thị con phổ biến và kiểm thử trên các bộ dữ liệu về đồ thị.. Cấu trúc đề
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
PHẠM THỊ LIÊN
BÀI TOÁN ĐỒ THỊ CON ĐẲNG CẤU TRONG
KHAI PHÁ DỮ LIỆU ĐỒ THỊ VÀ ỨNG DỤNG
PHÁT HIỆN ĐỒ THỊ CON PHỔ BIẾN
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
Thái Nguyên - 2020
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do tự bản thân tôi tìm hiểu, nghiên cứu dưới sựhướng dẫn của PGS TS Đoàn Văn Ban Các chương trình thực nghiệm do chính bảnthân tôi lập trình, các kết quả là hoàn toàn trung thực Các tài liệu tham khảo đượctrích dẫn và chú thích đầy đủ
TÁC GIẢ LUẬN VĂN
Phạm Thị Liên
Trang 3LỜI CẢM ƠN
Tôi xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện côngnghệ thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam, các thầy cô giáoTrường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên đã dạy
dỗ chúng tôi trong suốt quá trình học tập chương trình cao học tại trường
Đặc biệt tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS Đoàn VănBan đã quan tâm, định hướng và đưa ra những góp ý, chỉnh sửa quý báu cho tôi trongquá trình làm luận văn tốt nghiệp Cũng như các bạn bè, đồng nghiệp, gia đình vàngười thân đã quan tâm, giúp đỡ và chia sẻ với tôi trong suốt quá trình làm luận văntốt nghiệp
Dù đã có nhiều cố gắng nhưng chắc chắn sẽ không tránh khỏi những thiếu sót vìvậy rất mong nhận được sự đóng góp ý kiến của các thầy, cô và các bạn để luận vănnày được hoàn thiện hơn
Tôi xin chân thành cảm ơn!
Thái Nguyên, tháng 08 năm 2020
Phạm Thị Liên
Trang 4MỤC LỤC
Trang
MỞ ĐẦU 1
CHƯƠNG 1: KHAI PHÁ ĐỒ THỊ 3
1.1 Cấu trúc đồ thị 3
1.2 Các dạng biểu diễn cấu trúc dữ liệu đồ thị 6
1.2.1 Danh sách liên thuộc 6
1.2.2 Danh sách liền kề 7
1.2.3 Ma trận liên thuộc 8
1.2.4 Ma trận liền kề 9
1.2.5 Dạng chính tắc của đồ thị 10
1.3 Các kỹ thuật khai phá đồ thị 14
1.3.1 Phát hiện cấu trúc cộng đồng mạng xã hội 15
1.3.2 Khai phá đồ thị con thường xuyên đóng 19
1.4 Tổng kết chương 1 20
CHƯƠNG 2: BÀI TOÁN ĐỒ THỊ ĐẲNG CẤU VÀ KHAI PHÁ ĐỒ THỊ CON PHỔ BIẾN 21
2.1 Bài toán đồ thị đẳng cấu 21
2.2 Thuật toán kiểm tra đồ thị đẳng cấu 24
2.2.1 Thuật toán Dijsktra tìm đường đi ngắn nhất 24
2.2.2 Thuật toán tính khoảng cách d(u, v) trong các đồ thị phụ thêm và đồ thị kết đôi 24
2.2.3 Thuật toán xác ma trận dấu và dạng chính tắc của nó 25
2.2.4 Thuật toán sắp xếp các đỉnh của hai đồ thị để kiểm tra tính đẳng cấu của chúng dựa vào dạng chính tắc 26
2.2.5 Một số tính chất của đồ thị đẳng cấu 26
2.3 Bài toán đẳng cấu đồ thị con SGI 30
2.3.1 Một số khái niệm cơ sở và ký hiệu 31
2.3.2 Cây quyết định của đồ thị 32
2.3.3 Thuật toán xây dựng cây quyết định 36
2.4 Khai phá đồ thị con phổ biến 40
2.4.1 Cây các đồ thị con dạng chính tắc 40
2.4.2 Phép kết nối N-Join hai đồ thị 41
Trang 52.4.3 Phép N-Extension 43
2.5 Thuật toán FFSM cho khai phá đồ thị con phổ biến trong CSDL đồ thị 44 2.6 Kết luận chương 2 47
CHƯƠNG 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ 48
3.1 Dữ liệu và môi trường thử nghiệm 48
3.1.1 Bộ dữ liệu thử nghiệm 48
3.1.2 Môi trường thử nghiệm 49
3.2 Cài đặt và thử nghiệm thuật toán tìm kiếm tra đồ thị đẳng cấu 50
3.2.1 Mô tả yêu cầu bài toán kiếm tra đồ thị đẳng cấu 50
3.2.2 Kết quả thử nghiệm 50
3.3 Thử nghiệm thuật toán FFSM cho khai phá đồ thị con phổ biến 53
3.3.1 Mô tả yêu cầu bài toán khai phá đồ thị con phổ biến 53
3.3.2 Phân tích đánh giá kết quả 53
3.4 Kết luận chương 3 55
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 57
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Các đồ thị vô hướng và có hướng 4
Hình 1.2 Hợp của hai đồ thị 5
Hình 1.3 G1’ là phần bù của G1 5
Hình 1.4 Danh sách liên thuộc của đồ thị 7
Hình 1.5 Đồ thị vô hướng 7
Hình 1.6 Biểu diễn danh sách liền kề của đồ thị hình 1.5 8
Hình 1.7 Ma trận liên thuộc của đồ thị vô hướng 8
Hình 1.8 Ma trận liền kề của đồ thị trong ví dụ 1.6 9
Hình 1.9 Các đồ thị con cực đại 11
Hình 1.10 Mạng lưới cộng tác của các nhà khoa học làm việc tại SFI [1] 17
Hình 2.1 Các phần tử hàng - cột của ma trận liền kề 33
Hình 2.2 Cây quyết định để phân lớp các ma trận liền kề của G 34
Hình 2.3 Cấu trúc từ điển và các chỉ mục cho cây quyết định 35
Hình 2.4 Cây quyết định của G và G’ 35
Hình 2.5 Cây quyết định compact để phân lớp các ma trận liền kề {A, B, …, F} và {A’, B’, …, F’} của đồ thị G và G’ 37
Hình 2.6 Hai phép toán N-Join va N-Extension 43
Hình 3.1 Mô tả cấu trúc bộ dữ liệu thử nghiệm với kho gồm 2 đồ thị 48
Hình 3.2 Bộ dữ liệu đơn giản thử nghiệm thuật toán kiểm tra 2 đồ thị đẳng cấu 51
Hình 3.3 Kết quả đồ thị đẳng cấu với bộ dữ liệu đơn giản 51
Hình 3.4 Kết quả đồ thị đẳng cấu với đồ thị target có kích thước lớn 52
Hình 3.5 Ví dụ về không tồn tại đẳng cấu đồ thị con 52
Hình 3.6 Thời gian chạy thuật toán FFSM trên bộ dữ liệu 10000 đồ thị 53
Hình 3.7 Số đồ thị con tìm được ứng với các độ hộ trợ tối thiểu khác nhau trên bộ dữ liệu 10.000 đồ thị 54
Trang 8DANH MỤC CÁC BẢNG
Bảng 3.1 Thông tin phần cứng được sử dụng thử nghiệm 49Bảng 3.2 Tổng hợp kết quả chạy thuật toán FFSM trên 2 bộ dữ liệu 54
Trang 91
Trang 101 Lý do chọn đề tài
MỞ ĐẦU
Khai phá dữ liệu là lĩnh vực đang được nhiều người tập trung nghiên cứu vàphát triển nhiều ứng dụng phổ biến Trong đó, bài toán khai phá đồ thị con thườngxuyên đã và đang thu hút được nhiều sự quan tâm nghiên cứu bởi phạm vi ứng dụngquan trọng trong nhiều lĩnh vực khác nhau như trong tin-sinh (bioinformatics), tin-hóa (cheminformatics) khai thác đăng nhập trang web, lập chỉ mục video, hay lậpchỉ mục cơ sở dữ liệu hiệu quả, Vấn đề khai phá mẫu thường xuyên là từ một tập
dữ liệu các đối tượng với một ngưỡng độ hỗ trợ tối thiểu minsup Dữ liệu có thể rất
đa dạng từ dữ liệu nhị phân, dữ liệu số nguyên, số thực hoặc các dữ liệu có cấu trúcphức tạp hơn như cấu trúc cây, đồ thị, … Cho đến nay vẫn chưa có lời giải hiệuquả cho bài toán này do độ phức tạp của bài toán là rất lớn khi đồ thị có số đỉnh lớn
và mật độ các cạnh dày Tuy nhiên, sự phức tạp của những vấn đề này sẽ giảm khi
cơ sở dữ liệu (CSDL) đồ thị có thêm thông tin về các đỉnh và các cạnh đã được gánnhãn Có thể sử dụng các nhãn để hạn chế các đỉnh có thể tạo thành các cặp trongquá trình kiểm tra sự đẳng cấu của đồ thị con
Và đó chính là lý do em lựa chọn đề tài “Bài toán đồ thị con đẳng cấu trong
khai phá dữ liệu đồ thị và ứng dụng phát hiện đồ thị con phổ biến” để nghiên cứu
làm luận văn thạc sĩ của mình
2 Mục đích nghiên cứu
Nghiên cứu thuật toán đẳng cấu đồ thị và thuật toán phát hiện đồ thị con phổbiến trong CSDL đồ thị
3 Đối tượng nghiên cứu
- Bài toán đồ thị con đẳng cấu
Trang 114 Phạm vi nghiên cứu
+ Lý thuyết:
- Tìm hiểu lý thuyết đồ thị và các phương pháp khai phá dữ liệu đồ thị
- Nghiên cứu các thuật toán tìm đồ thị con đẳng cấu và các thuật toán khaiphá đồ thị con phổ biến
+ Thực nghiệm:
- Xây dựng chương trình thực nghiệm thuật toán
- Áp dụng chương trình trên một số bộ cơ sở dữ liệu trong khai phá dữ liệu đồthị
5 Ý nghĩa khoa học
Đây là một hướng nghiên cứu lý thuyết, xây dựng các thuật toán tìm kiếm đồthị con đẳng cấu và đồ thị con phổ biến và kiểm thử trên các bộ dữ liệu về đồ thị
6 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Sưu tập các tài liệu có liên quan đến đề
tài, nghiên cứu để hiểu sâu các nội dung vấn đề cần nghiên cứu
- Phương pháp nghiên cứu thực nghiệm: Cài đặt chương trình thử nghiệm
phương pháp tìm kiếm đồ thị con đẳng cấu và thuật toán FFSM để liệt kê các đồ thịcon phổ biến trên các bộ dữ liệu và đánh giá hiệu suất của phương pháp
- Phương pháp trao đổi khoa học: Trao đổi nội dung nghiên cứu với giáo viên
hướng dẫn, với các đồng nghiệp để đề xuất và giải quyết các nội dung luận văn đề ra
7 Cấu trúc đề tài
Luận văn được chia thành các phần chính như sau:
Chương 1: Khai phá dữ liệu đồ thị
Chương 2: Đồ thị đẳng cấu và đồ thị con phổ biến
Chương 3: Thử nghiệm thuật toán tìm đồ thị con phổ biến
Kết luận và hướng phát triển
Trang 12CHƯƠNG 1: KHAI PHÁ ĐỒ THỊ
Khai phá đồ thị (Graph Mining) là tập hợp các công cụ và kỹ thuật được sửdụng để (i) phân tích các thuộc tính của đồ thị trong thế giới thực, (ii) dự đoán cấutrúc và tính chất của đồ thị đã cho có thể ảnh hưởng đến một số ứng dụng và (iii)phát triển các mô hình có thể tạo ra biểu đồ thực tế phù hợp với các mô hình đượctìm thấy trong các biểu đồ quan tâm trong thế giới thực Chương này trình bàynhững khái niệm cơ sở về đồ thị, các dạng biểu diễn cấu trúc, dạng chính tắc của
đồ thị và các kỹ thuật khai phá dữ liệu đồ thị
1.1 Cấu trúc đồ thị
Một đồ thị (Graph) là một dạng biểu diễn hình ảnh của một tập các đỉnh (nút)đại diện cho các đối tượng dữ liệu (thực thể), trong đó các cặp đối tượng được kếtnối bởi các cạnh (cung) thể hiện mối quan hệ giữa chúng [8]
Định nghĩa 1.1 Cho trước đồ thị G = (V, E), trong đó V là tập các đỉnh và E V ×
V là tập các cạnh Đường đi có độ dài n đi từ nút v đến w là dãy các cạnh (v0, v1),(v1, v2), …, (vn-1, vn), trong đó v0 = v, vn = w và (vi, vi+1) E Đường đi đơn làđường đi
không đi qua một đỉnh nào quá một lần
Hiển nhiên, đường đi ngắn nhất đi từ đỉnh s đến đỉnh t là đường đi đơn có độdài (số cạnh) ít nhất trong số các đường đi giữa hai đỉnh
Hai cạnh được gọi là cạnh bội hay song song nếu chúng cùng tương ứng vớimột cặp đỉnh Một cạnh (v, w) của đồ thị G được gọi là khuyên (loop) nếu v = w
Đồ thị không có các cạnh bội được gọi là đơn đồ thị, ngược lại gọi là đa đồ thị
Hai đỉnh u và v trong đồ thị G được gọi là liền kề nếu (u, v) E, hoặc (v, u)
E Nếu e = (u, v) thì e gọi là cạnh liên thuộc với các đỉnh u và v Cạnh e cũngđược gọi là cạnh nối các đỉnh u và v Các đỉnh u và v gọi là các điểm đầu mút củacạnh e
Một đồ thị là vô hướng nếu E là tập các cạnh không có thứ tự, ngược lại là đồ thị cóhướng Đồ thị có trọng số nếu trên mỗi cạnh được gắn với một trọng số, ngược lại là
đồ thị không trọng số, hay nói chính xác hơn là các cạnh của đồ thị đều có trọng số
là 1
Trang 14a Đa đồ thị vô hướng e4 và e5 là
các cạnh song song b Đa đồ thị vô hướng e là khuyên
c Đơn đồ thị có hướng d Không phải đơn đồ thị có
hướng do có các cặp cạnhnối cùng một cặp đỉnh
e Không phải đơn đồ thị cóhướng do có cạnh nối mộtđỉnh với chính nó
Hình 1.1 Các đồ thị vô hướng và có hướng
Trong luận văn này chúng ta chỉ những đơn đồ thị vô hướng, không trọng số,gọi tắt là đồ thị
Định nghĩa 1.2 Một đồ thị (vô hướng) được gọi là liên thông nếu luôn có đường đi
đơn giữa mọi cặp đỉnh phân biệt của đồ thị
Tính chất 1.1 Giữa mọi cặp đỉnh phân biệt của một đồ thị liên thông luôn có đường
đi đơn [16]
Các đồ thị con liên thông rời nhau, được gọi là các thành phần liên thông của
đồ thị đang xét Như vậy, một đồ thị là liên thông khi và chỉ khi nó chỉ có một thànhphần liên thông
Định nghĩa 1.3 Bậc của đỉnh v trong đồ thị G, ký hiệu deg(v), là số các cạnh liên
thuộc với nó Đỉnh v được gọi là đỉnh treo nếu deg(v) = 1 và gọi là đỉnh cô lập nếu
deg(v) = 0
Bậc của đỉnh là số các đỉnh liền kề với đỉnh đó
Tính chất 1.2 Tổng số bậc của các đỉnh trong đồ thị G bằng hai lần số cạnh [16].
Trang 15Tính chất 1.3 Mọi đơn đồ thị n đỉnh (n ≥ 2) có tổng bậc của hai đỉnh tuỳ ý không
nhỏ hơn n đều là đồ thị liên thông [16]
Tính chất 1.4 Nếu một đồ thị có đúng hai đỉnh bậc lẻ thì hai đỉnh này phải liên
thông, tức là có một đường đi nối chúng [16]
Định nghĩa 1.4 Hợp của hai đơn đồ thị G1 = (V1, E1) và G2 = (V2, E2) là một đơn đồthị G có tập các đỉnh là V1 V2 và tập các cạnh là E1 E2, ký hiệu là G = G1 G2
Ví dụ 1.2.
Hình 1.2 Hợp của hai đồ thị Định nghĩa 1.5 Đơn đồ thị G’=(V, E’) được gọi là đồ thị bù của đơn đồ thị G = (V,
E) nếu G và G’ không có cạnh chung nào (E E’= ) và G G’là đồ thị đầy đủ,
Trang 16Định nghĩa 1.7 Cho trước đồ thị G = (V, E), với mỗi S V, đồ thị con cảm sinh(induced) bởi S trong đồ thị, ký hiệu là GS = (S, E SS).
Như vậy, đồ thị G1 = (V1, E1) là đồ thị con cảm sinh của G2 = (V2, E2), nếu V1
⊆ V2 , E1 ⊆ E2 và với mọi cạnh (u, v) E1 thì u, v V1
Định nghĩa 1.8 Đồ thị G được gọi là đầy đủ (clique) nếu mọi cặp đỉnh đều liên
thuộc với nhau, nghĩa là vi, vj V, i j thì (vi, vj) E
1.2 Các dạng biểu diễn cấu trúc dữ liệu đồ thị
Cách biểu diễn đồ thị trực quan nhất là hình vẽ, nhưng không thể lưu trữ trựctiếp các hình vẽ đồ thị trong máy tính Có nhiều cách khác nhau để lưu trữ (biểudiễn) các đồ thị trong máy tính [8, 17] Sử dụng cấu trúc dữ liệu (cách biểu diễn)nào thì tùy theo cấu trúc của đồ thị và ậ t toánthu d ùng để thao tác trên đồ thị đó.Trong lý thuyết, người ta thường sử dụng hai cấu trúc chính là danh sách và cấu trúcmảng (ma trận) Trong các ứng dụng cụ thể, cấu trúc tốt nhất có thể là kết hợp của
cả hai Người ta hay dùng các cấu trúc danh sách cho các đồ thị th ư a (sparse graph),
do chúng đòi hỏi ít bộ nhớ Trong khi đó, các cấu trúc ma trận cho phép truy nhập
dữ liệu nhanh hơn, nhưng lại cần lượng bộ nhớ lớn nếu đồ thị có kích thước lớn [1,4]
1.2.1 Danh sách liên thuộc
Danh sách liên thuộc (Incidence list) - Mỗi đỉnh có một danh sách các cạnh nối vớiđỉnh đó Các cạnh của đồ thị được có thể được lưu trong một danh sách riêng (có thểcài đặt bằng cấu trúc mảng (array) hoặc danh sách liên kết (linked list)), trong đómỗi phần tử ghi thông tin về một cạnh, bao gồm: cặp đỉnh mà cạnh đó nối (cặp này
sẽ có thứ tự nếu đồ thị có hướng), trọng số và các dữ liệu khác Danh sách liênthuộc của mỗi đỉnh sẽ chiếu tới vị trí của các cạnh tương ứng tại danh sách cạnhnày
Ví dụ 1.4 Cho đồ thị vô hướng
Trang 17Hình 1.4 Danh sách liên thuộc của đồ thị
Định nghĩa 1.9 Danh sách liền kề Với mỗi đỉnh i của đồ thị chúng ta lưu trữ danh
sách các đỉnh kề với nó, ký hiệu là List (i),
List(i) = { j V: (i, j) E hoặc (j, i) E },
Với cách biểu diễn này, mỗi đỉnh i của đồ thị, tương ứng với một danh sáchtất cả các đỉnh kề với nó và được ký hiệu là List(i) Để biểu diễn List(i), ta có thểdùng các kiểu dữ liệu kiểu tập hợp, mảng hoặc danh sách liên kết
Ví dụ 1.5 Cho trước đồ thị vô hướng
Hình 1.5 Đồ thị vô hướng
Trang 18Danh sách liền kề của đồ thị trên theo cấu trúc danh sách liên kết là:
Hình 1.6 Biểu diễn danh sách liền kề của đồ thị hình 1.5
Đồ thị có trọng số (có các trọng số trên các cạnh), được gắn nhãn thường biểudiễn theo ma trận liền kề
1.2.3 Ma trận liên thuộc
Ma trận liên thuộc (Incidence matrix) - Đồ thị được biểu diễn bằng một m a trận [ bij] kích thước n × m, trong đó n là số đỉnh và m là số cạnh, trong đó bi,j = 1nếu đỉnh vi liên thuộc (là một trong 2 đầu) với cạnh ej và bằng 0 trong các trườnghợp khác
Định nghĩa 1.10 Cho đồ thị vô hướng G = (V, E), với v1, v2, , vn là các đỉnh và e1,
e2, , em là các cạnh của G Ma trận liên thuộc của G theo thứ tự trên của V và E là
ma trận AG = {aij | i = 1 n, j = 1 m}, trong đó aij là bằng 1 nếu cạnh ej nối với đỉnh
vi và bằng 0 nếu cạnh ej không nối với đỉnh vi
Ví dụ 1.6 Ma trận liên thuộc theo thứ tự các đỉnh v1, v2, v3, v4, v5 (xếp theo cột) vàcác cạnh e1, e2, e3, e4, e5, e6 (xếp theo hàng) là:
Hình 1.7 Ma trận liên thuộc của đồ thị vô hướng
Trang 191.2.4 Ma trận liền kề
Ma trận liền kề (adjacency matrix) một ma trận n × n, trong đó n là số đỉnhcủa đồ thị Cấu trúc này tạo thuận lợi cho việc tìm các đồ thị con và để đảo các đồ
thị Định nghĩa 1.11 Giả sử G = (V, E) là đồ thị có n đỉnh (|V | = n), V = {v1, v2, …,
vn} Ma trận liền kề (adjacency matrix) của đồ thị G ứng với thứ tự các đỉnh v1,
v2, , vn là ma trận AG = {aij | i, j = 1 n}, trong đó ai,j = 1 nếu (vi, vj) E, ngược lại
ai,j = 0
Từ định nghĩa suy ra ma trận liền kề biểu diễn đồ thị vô hướng là ma trận đốixứng qua đường chéo chính, nghĩa là aij = aji, trong khi ma trận liền kề của một đồthị có hướng không có tính đối xứng
Hình 1.8 Ma trận liền kề của đồ thị trong ví dụ 1.6
Cho trước một đồ thị có tập đỉnh V = {v1, v2, …, vn} thì sẽ có n! ma trận liền
kề tương ứng, bởi vì ứng mỗi cách sắp xếp các đỉnh (một hoán vị của V) thì ta cómột ma trận liền kề Cho trước đồ thị G, ta ký hiệu AM(G) là tập các ma trận liền kềcủa G
Đối với đồ thị không có trọng số chúng ta có tính chất sau:
Tính chất 1.5 Cho G là một đồ thị (vô hướng không có trọng số) với ma trận liền
kề A theo thứ tự các đỉnh v1, v2, , vn Khi đó số các đường đi khác nhau độ dài r từ
vi tới vj trong đó r là một số nguyên dương, bằng giá trị của phần tử dòng i cột j của
ma trận Ar [14]
Định nghĩa 1.12 Giả sử A là ma trận liền kề của một đồ thị Ta ký hiệu diag[A] là
vector biểu diễn tất cả các phần tử trên đường chéo chính của A Tương tự, upper[A]
là vector biểu diễn tất cả các phần tử phần tam giác trên của A (không kể các phần
tử trên đường chéo chính)
Trang 201.2.5 Dạng chính tắc của đồ thị
Theo các định nghĩa về cách biểu diễn nêu trên, thì một đồ thị có thể biểu diễn(lưu trữ) theo khá nhiều danh sách và ma trận khác nhau, điều này gây ra nhiều khókhăn trong việc tính toán và xử lý đồ thị, như xử lý bài toán tìm các đồ thị con đẳngcấu, đồ thị con xuất hiện thường xuyên, đồ thị (mẫu) thường xuyên đóng, cực đại,
Ví dụ, cho trước một đồ thị có tập đỉnh |V| = n thì sẽ có n! ma trận liền kề tương ứng,bởi vì ứng mỗi cách sắp xếp các đỉnh (một hoán vị của V) thì ta có một ma trận liềnkề
Một trong các vấn đề quan trọng của khai phá đồ thị là bài toán đẳng cấu đồthị: cho trước hai đồ thị P, Q, cần kiểm tra xem P có đẳng cấu với Q hay không.Chúng ta giải quyết vấn đề này bằng cách chuyển mỗi đồ thị về dạng biểu diễnchính tắc (duy nhất) của nó rồi sau đó so sánh hai dạng chính tắc của chúng [1, 4,
5, 10] Dạng chính tắc của đồ thị là dạng biểu diễn của đồ thị sao cho nếu hai đồ thịđẳng cấu với nhau thì dạng chính tắc của chúng là như nhau và ngược lại [1]
Để tiện cho việc biểu diễn đồ thị một cách thống nhất, chúng ta định nghĩa lại ma trận liền kề theo nhãn (tên) của các đỉnh như sau
Định nghĩa 1.13 Giả sử G = (V, E) là đồ thị liên thông, vô hướng có n đỉnh (|V| =
n) Ma trận liền kề (adjacency matrix) của G là ma trận A = {aij | i, j = 1 n} với
l(vi) Nếu i = j //Nhãn (tên) của đỉnh trong G
Trang 21aij = l(vi,vj) Nếu i j //Nhãn (tên) của cạnh nối vi với vj.
0 Nếu giữa vi và vj không có cạnh nối với nhau
Từ định nghĩa suy ra ma trận liền kề là ma trận đối xứng qua đường chéo chính.Trên đường chéo chính của ma trận liền kề là nhãn của các đỉnh, các phần tử còn lại
là nhãn của các cạnh, nếu có
Định nghĩa 1.14 Cho trước ma trận liền kề A = {ai j | i, j = 1 n} và alk là cạnh cuốicủa A (alk 0, với l < k ở bên phải nhất trên hàng cuối cùng trong A), ma trận concực đại (maximal submatrix) của A là ma trận B = { bij | i, j = 1 p}, p ≤ n, đượcđịnh
nghĩa như sau:
(a) Nếu hàng cuối của A có hai cạnh (hai giá trị khác 0) thì
Trang 23+ p = n
+ bij = bi j Nếu (0 < i, j ≤ p) (i l j k) (i k j l)
0 Ngược lại(b) Nếu hàng cuối của A chỉ có một cạnh (một giá trị khác 0) thì
+ p = n – 1
+ bij = ai j với 0 < i, j ≤ p
Nhận xét: Ma trận con cực đại của ma trận chính A là một ma trận thu được
từ A sau khi loại bỏ đi một cạnh cuối theo cách hoán vị của tập đỉnh Trường hợp (a)
có hai cạnh thì cạnh cuối được bỏ đi (vị trí đó được thay bằng 0), còn trong trườnghợp (b) chỉ có một cạnh cuối thì đỉnh cuối (đỉnh cuối cùng năm trên đường chéochính) cũng được loại bỏ, nghĩa là bỏ đi hàng, cột cuối của ma trận
Ví dụ 1.8 Cho trước hai đồ thị G1, G2 có 2 ma trận liền kề tương ứng là A1 và A2
Xét các ma trận con cực đại của hai ma trận liền kề A1, A2 của G1, G2
Trang 24ma trận (a), ma trận (d) là ma trận con cực đại của ma trận (b) và (c), ma trận (e) là
ma trận con cực đại của ma trận (d)
Định nghĩa 1.15 Cho trước một ma trận liền kề A của đồ thị G = (V, E) có |V| = n
đỉnh, ta định nghĩa mã (code) của A, ký hiệu code(A), là dãy các phần tử của tamgiác dưới của A
Định nghĩa 1.16 Cho trước đồ thị G, dạng chính tắc của G là đồ thị có mã cực đại
của tất cả các mã các ma trận liền kề có thể Ma trận liền kề có mã là chính tắc (cựcđại) được gọi là ma trận liền kề chính tắc CAM (Canonical Adjacency Matrix) của
G, ký hiệu là CAM(G)
CAM(G) = { A | A AM(G) B AM(G) code(A) ≥ code(B)}
Ví dụ 1.9 Xét các của hai ma trận liền kề ở ví dụ 1.8
code(A1) = “axb0ycxy0b” và code(A2) = “axbxzb0y0c”
Áp dụng thứ tự từ điển ta có code(A2) ≥ code(A1) Bằng cách xây dựng tất cảcác ma trận liền kề theo các hoán vị khác nhau của các đỉnh của đồ thị G và so sánh
mã của chúng, chúng ta thấy CAM(G) = A2, vì code(A2) là mã cực đại theo địnhnghĩa
Từ những định nghĩa nêu trên, chúng ta có một số tính chất quan trọng được
sử dụng để khai phá tập đồ thị con phổ biến [1], [3], [9]
Tính chất 1.6 Nếu A là ma trận liền kề của đồ thị liên thông G và B là ma trận con
cực đại của A thì code(A) ≥ code(B)
Chứng minh.
Dựa vào định nghĩa của ma trận con cực đại để chứng minh
Trang 25(a) Nếu B là ma trận con được xác định theo trường hợp (a) của Định nghĩa
1.1.11 thì suy ra ngay được code(A) ≥ code(B), vì nhãn của cạnh cuối trong code(A)được thay bằng 0 Biết rằng mọi nhãn trong tập L đều ≥ 0
(b) Trường hợp thứ hai suy ra được trực tiếp từ thứ tự của tiếp đầu ngữ củadãy các nhãn
Tính chất 1.7 Nếu A là ma trận liền kề biểu diễn cho dạng chính tắc của đồ thị G
(CAM(G) = A) thì mọi tiếp đầu ngữ của code(A) kết thúc bằng nhãn của một đỉnhđều biểu diễn cho đồ thị con của G ở dạng chính tắc
Chứng minh.
Theo định nghĩa mã của ma trận là cực đại và tính chất cực đại của dãy mãđược bảo toàn chọ các tiếp đầu ngữ Mặt khác từ một tiếp đầu ngữ bất kỳ củacode(A) kết thúc bằng nhãn của một đỉnh, ta đều xây dựng được một ma trận liền kềcủa một đồ thị con của G và đồ thị đó cũng là dạng chính tắc
Tính chất 1.8 Cho trước đồ thị G liên thông và đồ thị con H của G Giả sử
CAM(G)
= A và CAM(H) = B, khi đó ta có code(A) ≥ code(B)
Chứng minh Được suy ra từ tính chất 1.6 và tính chất 1.7.
Tính chất 1.9 Cho trước một ma trận liền kề chính tắc A của đồ thị liên thông G
(CAM(G) = A) và B là ma trận con của A, khi đó B là ma trận liền kề của một đồ thịcon liên thông của G
Chứng minh.
Để chứng minh B là ma trận liền kề của một đồ thị con liên thông của G thìchỉ cần B là ma trận liền kề của một đồ thị con liên thông Nghĩa là cần chỉ ra trongnửa tam giác dưới của ma trận B không có một hàng nào chỉ chứa toàn số 0 (không
có cạnh nối với các đỉnh khác) Chúng ta chứng minh điều khẳng định trên qua haibước
a/ Trước tiên chúng ta chỉ ra rằng mỗi hàng trong nửa tam giác dưới của matrận liền kề A thì luôn có ít nhất một cạnh khác 0, nghĩa là mỗi đỉnh có ít nhất mộtcạnh nối với một đỉnh khác
Trang 26Thật vậy, chúng ta giả thiết rằng có ít nhất một hàng i (i > 1) mà vi1 = vi2 =
= vi i−1 = 0 Theo giả thiết G là liên thông nên phải tồn tại ít nhất một j (j > i) saocho max{v1j, v2j, , vi−1 j } > 0 Ngược lại, sẽ không có đỉnh nào trong i − 1 đỉnhđầu được nối với n − (i − 1) đỉnh còn lại, nghĩa là G không phải liên thông, mâuthuẫn với giả thiết Nếu tồn tại một cặp (i, j) như trên, nếu ta hoán vị A sao cho i và
j đổi chỗ cho nhau (một hoán vị mới), phần còn lại giữ nguyên Khi đó chúng ta sẽnhận được mã của ma trận liền mới có code lớn hơn code(A), mâu thuẫn với giảthiết là code(A) là cực đại
b/ Dễ dàng suy ra tính chất trên (nửa tam giác dưới của ma trận liền kề A thìluôn có ít nhất một cạnh khác 0) là bất biến đối với ma trận con B suy ra từ A, nghĩa
là B biểu diễn cho đồ thị liên thông
Tính chất 1.10 Cho trước đồ thị G liên thông, CAM(G) = A và B là ma trận con
cực đại của A, khi đó tồn tại một đồ thị con H của G để CAM(H) = B
Chứng minh.
Giả thiết A chỉ có một cạnh ở hàng cuối thì hiển nhiên code(B) sẽ là tiếp đầungữ (prefix) của code(A) Chúng ta không thể tìm được đồ thị con nào để có mã lớnhơn code(B) Điều này suy ra code(B) ≥ code(CAM(H)), trong đó CAM(H) là matrận liền kề chính tắc của đồ thị H Nghĩa là B là CAM của đồ thị H
Tương tự, suy ra đối với trường hợp ở hàng cuối của A có ít nhất hai cạnh
1.3 Các kỹ thuật khai phá đồ thị
Khai phá (khai thác) đồ thị được tập trung nghiên cứu và phát triển ứng dụngngày càng tăng do hai lý do: Đầu tiên, rất nhiều dữ liệu tự nhiên xuất hiện dưới dạngcác biểu đồ, đồ thị, như các cấu trúc phân tử (molecules), mạng tương tác protein,mạng sinh học, mạng Internet, mạng xã hội, [1, 4, 5, 10] Thứ hai, về cơ bản, tất
cả các mối quan hệ 1-1, 1- n ( 1 – nhiều), n – m (nhiều – nhiều) trong cơ sở dữ liệuquan hệ có thể được biểu diễn hoặc diễn giải một cách tự nhiên dưới dạng biểu đồ,
do đó làm cho biểu đồ trở thành một công cụ tự nhiên để phân tích dữ liệu đơn lẻcũng như đa quan hệ Ví dụ, cơ sở dữ liệu khách hàng và sản phẩm (chứa thông tin
về người đã mua cái gì), dễ dàng được sử dụng dưới dạng biểu đồ lưỡng cực hoặc hệ
Trang 27thống gắn thẻ hợp tác (hoặc xã hội), dữ liệu có thể được mô hình hóa thành biểu đồ
ba bên của người dùng, tài nguyên và thẻ (tags)
Kỹ thuật khai phá đồ thị đã được phân loại thành các nhóm sau [8, 11]
Phân cụm đồ thị (Graph clustering): Nhóm các đỉnh của đồ thị thành cáccụm có tính đến cấu trúc cạnh của đồ thị sao cho trong mỗi cụm thì có nhiều cạnhnối
các đỉnh với nhau và tương đối ít giữa các cụm khác nhau Phân cụm đồ thị là nhómcác đỉnh của một đồ thị đầu vào đã cho thành các cụm dựa trên kỹ thuật học khônggiám sát Các cụm đồ thị được hình thành dựa trên một số điểm tương đồng theomột số độ đo trên đồ thị như độ cố kết, vector đặc trưng, độ đo trung tâm, độ đotrung gian, … [1, 3, 4, 9]
Phân lớp đồ thị (Graph Classification): nhiệm vụ chính là phân loại các biểu
đồ riêng biệt trong cơ sở dữ liệu đồ thị thành hai hoặc nhiều loại / lớp Phân lớp dựatrên kỹ thuật học có giám sát / bán giám sát trong đó các lớp dữ liệu được xác địnhtrước [16]
Khai phá đồ thị con (Sub graph mining): đồ thị con là một đồ thị có cácđỉnh và cạnh là các tập con của đồ thị khác Vấn đề khai thác đồ thị con thườngxuyên là
tạo ra tập hợp các đồ thị con xuất hiện trong ít nhất theo một ngưỡng của n đồ thịđầu
vào đã cho [11, 12]
Trong phần này xin giới thiệu một số kỹ thuật, thuật toán khai phá đồ thị điểnhình trong các nhóm nêu trên
1.3.1 Phát hiện cấu trúc cộng đồng mạng xã hội
Phát hiện cấu trúc cộng đồng mạng xã hội [1, 5] là một kỹ thuật điển hìnhnhóm phân tích đồ thị theo cách tiếp cận phân cụm đồ thị
Mạng xã hội là một tập hợp các thực thể được kết nối với nhau thông qua cácmối quan hệ, mối liên kết, Phân tích mạng xã hội là nghiên cứu về mối quan hệgiữa các cá nhân bao gồm phân tích cấu trúc xã hội, vị trí xã hội, phân tích vai trò,
và nhiều mối quan hệ với những người khác Phân tích mạng xã hội là xem xét cácmối quan hệ xã hội dựa vào lý thuyết đồ thị bao gồm các đỉnh và các cạnh (còn đượcgọi là các liên kết hoặc kết nối) Các đỉnh được xem là những cộng đồng riêng lẻtrên
Trang 28mạng, và các cạnh là các mối quan hệ giữa các cộng đồng Cộng đồng mạng xã hội
là một tập hợp các cá nhân (tác nhân, thực thể) tương tác với nhau thông qua cácphương tiện truyền thông cụ thể, có khả năng vượt qua những ranh giới địa lý vàchính trị để theo đuổi lợi ích hay mục tiêu chung Mục tiêu chính của phân tíchmạng xã hội là:
Xác định những thực thể, tác nhân quan trọng nhất trong mạng xã hội: Độtrung tâm (Centrality) là một độ đo để hiệu chỉnh tầm quan trọng của các tác nhân
và giúp chúng ta hiểu được tầm ảnh hưởng trong xã hội và quyền lực trong mộtmạng xã hội
Phát hiện các cộng đồng trên mạng: Một số thực thể có liên kết chặt chẽ vớinhau tạo thành từng cụm, và giữa các cụm đó được nối với nhau chỉ bằng một số ítcạnh khác Nhiệm vụ xác định các cộng đồng được thực hiện thông qua nghiên cứucấu trúc mạng và cấu trúc liên kết giữa các thực thể trên mạng
Cấu trúc cộng đồng mạng xã hội (Community Social Structure) gọi tắt là cộngđồng mạng xã hội là một tập hợp các tác nhân tương tác thông qua các phương tiệntruyền thông cụ thể, có khả năng vượt qua những ranh giới địa lý và chính trị để theođuổi lợi ích hay mục tiêu chung Cộng đồng là một nhóm các thực thể có những tínhchất tương tự nhau, liên kết chặt chẽ với nhau hơn và cùng đóng một vai trò nhấtđịnh trong mạng xã hội Cộng đồng mạng xã hội còn được định nghĩa là những cấutrúc xã hội rất mạnh mẽ và được tổ chức với nhau dựa trên những mối quan hệ, quantâm chung Nó có thể là một sở thích, một lĩnh vực mà các thành viên trong cộngđồng cùng quan tâm, hay một mục tiêu, dự án chung, theo vị trí địa lý, hoặcnghiệp vụ Người tham gia vào cộng đồng, vì quan tâm đến lợi ích chung này màgắn kết các thành viên cộng đồng với nhau Một cộng đồng được mô tả như mộtnhóm các đỉnh (đồ thị con) cùng chia sẻ các thuộc tính chung hoặc đóng vai tròtương tự trong một mạng Một cộng đồng có thể được định nghĩa là một tập hợp cácđỉnh có mật độ liên kết giữa các đỉnh cao và mật độ liên kết thấp với phần còn lạicủa mạng Nói cách khác, một cộng đồng được tạo ra bởi một tập hợp các tác nhân
có tương tác thường xuyên với nhau hơn so với cá nhân khác ngoài cộng đồng Dovậy, nó thường là một
Trang 29tập hợp như: bạn bè, đồng nghiệp, nhóm những người có cùng sở thích, cùng
chuyên môn, mối quan tâm, … [1, 3, 5]
Trong mạng xã hội, việc trích xuất, phát hiện được những cấu trúc cộng đồng
là rất hữu ích vì nó giúp chúng ta nghiên cứu được cấu trúc tổng thể của mạng Đó làmột nhiệm vụ, thách thức rất khó khăn Khái niệm của khám phá, phát hiện cộngđồng tương tự như phân vùng (phân cụm) đồ thị nhưng có một số khác biệt nhưtrong phân vùng đồ thị, số lượng nhóm và kích thước của chúng đã được biết trước,nhưng trong trường hợp phát hiện ra cộng đồng, chúng ta không biết về số lượngcộng đồng trong mạng và cộng đồng cũng có thể không cùng kích cỡ với nhau
Hình 1.10 hiển thị các cộng đồng của đồ thị mạng lưới cộng tác nghiên cứucủa các nhà khoa học làm việc tại Viện Santa Fe (SFI) Đồ thị bao gồm 118 đỉnh đạidiện cho các nhà khoa học làm việc tại SFI và các cộng tác viên của họ Các cạnhđược liên kết giữa các nhà khoa học khi họ đã công bố cùng với nhau ít nhất một bàibáo Ở mạng này ta quan sát được một số cộng đồng, mỗi cộng đồng biểu hiện chonhững tác giả đã cùng nhau công bố một hay nhiều bài báo khoa học Mặt khác tacũng thấy giữa các cộng đồng trong mạng trên chỉ có một số ít mối liên kết Cácđỉnh cùng màu là cùng một cộng đồng theo các lĩnh vực nghiên cứu của SFI
Hình 1.10 Mạng lưới cộng tác của các nhà khoa học làm việc tại SFI [1]
Trang 30Thay vì việc tìm kiếm những đỉnh trong đồ thị có độ gắn kết cao với nhau,phương pháp phát hiện cộng đồng bằng thuật toán phân chia được đưa ra như mộtcách giải quyết hữu hiệu Để tránh các khuyết điểm của phương pháp phân cụmphân cấp, thay vì cố gắng để xây dựng một giải pháp tìm cạnh trung tâm của cộngđồng, chúng ta đi tìm những cạnh có độ trung gian (tỷ số các đường đi ngắn nhấttrên số các đường đi ngắn nhất đi qua đỉnh đó) là cao nhất, cạnh đó được gọi tên làcạnh nối (cầu nối) giữa các cộng đồng Girvan-Newman cho rằng khi các cộng đồngđược gắn kết với nhau thì đường đi giữa cộng đồng này đến cộng đồng khác sẽ điqua các cạnh nối giữa các cộng đồng với tần suất cao Mục đích chính của thuật toán
là tìm những cạnh nối đó Thay vì việc xây dựng cộng đồng bằng cách thêm vàocác cạnh có độ trung tâm cao nhất, chúng ta sẽ xây dựng bằng cách loạn bỏ dần dầncác cạnh nối (cầu nối) từ đồ thị ban đầu Khi đó, các cộng đồng trong mạng sẽ bịngắt kết nối với nhau, ta có thể xác định được cách phân vùng đồ thị thành các phầnnhỏ riêng biệt Để làm được việc này, điều quan trọng nhất của thuật toán là việctính toán như thế nào, sử dụng tính chất nào để phát hiện ra những cạnh nối này, từ
đó loại bỏ chúng ra khỏi đồ thị
Thuật toán Girvan-Newman (GN) duyệt qua mỗi đỉnh (nút) v một lần và tính
số đường đi ngắn nhất từ v tới những đỉnh khác có đi qua từng cạnh đó Tư tưởng chính của thuật toán GN được thực hiện theo kỹ thuật phân cụm phân cấp như sau:
Input: Đồ thị G = (V, G)
Output: Tập các đồ thị con là các cộng đồng
Bước 1 Tính độ trung gian của tất cả các cạnh trong mạng,
Bước 2 Tìm những cạnh có độ trung gian lớn nhất và loại bỏ chúng,
Bước 3 Tính lại độ trung gian của tất cả các cạnh trong các thành phần còn lại, Bước 4 Lặp lại từ bước 2 cho đến khi đến khi không có cạnh nào vượt qua
ngưỡng của độ độ trung gian cho trước hoặc không còn cạnh trung gian
Trong mạng xã hội, việc trích xuất, phát hiện được những cấu trúc cộng đồng
là rất hữu ích vì nó giúp chúng ta nghiên cứu được cấu trúc tổng thể của mạng Kháiniệm của khám phá, phát hiện cộng đồng tương tự như phân vùng (phân cụm) đồ thị
Trang 31nhưng có một số khác biệt như trong phân vùng đồ thị, số lượng nhóm và kích thướccủa chúng đã được biết trước, nhưng trong trường hợp phát hiện ra cộng đồng,chúng ta không biết về số lượng cộng đồng trong mạng và cộng đồng cũng có thểkhông cùng kích cỡ với nhau.
1.3.2 Khai phá đồ thị con thường xuyên đóng
Khai phá đồ thị con phổ biến (Frequent Subgraph Mining) [1, 3, 8, 9] là một
kỹ thuật điển hình nhóm phân tích đồ thị theo cách tiếp cận khai phá đồ thị con củakhai phá đồ thị Phần này giới thiệu một thuật toán PSI-CFSM [3] cải tiến thuật toángSpan và FFSM
Thuật toán PSI-CFSM
Input: Tập dữ liệu đồ thị GD và 𝜎 =
min _𝑠 𝑝�𝑝
Output: CS2, CS3, , CSk, tập các đồ thị con thường xuyên đóng tương ứng với sốđỉnh các tập đó chứa
Trang 32Tìm kiếm nhị phân u trong
Các tác giả đã đưa ra phương pháp xác định đồ thị con đẳng cấu bằng cách sửdụng CAM để biểu diễn duy nhất cho một đồ thị g trong tập dữ liệu đồ thị đầu vào
GD Cùng với CAM chúng ta có thể chia tách vấn đề khai phá đồ thị con thườngxuyên thành khai phá đồ thị con thường xuyên theo từng mức Bắt đầu từ mức đồ thị
Trang 333
chỉ có 1 cạnh tức là chỉ có 2 đỉnh và gọi các đồ thị này là 2-subgraph Đầu tiên sẽkhai phá tất cả các đồ thị 2-subgraph, tìm tất cả các đồ thị 2-subgraph là thườngxuyên và lưu lại Ở đây chúng ta sử dụng nhiều tập lưu trữ các 2-subgraph thườngxuyên Tập CS2 sẽ lưu toàn bộ các 2-subgraph thường xuyên đóng của toàn bộ tập
dữ liệu đồ thị GD và các tập FSi2 sẽ lưu các 2-subgraph thường xuyên của các đồ thị
gi ∈ GD Cùng với đó chúng ta cũng sẽ dùng �𝑝�𝑝 để lưu toàn bộ ứng viên subgraph của đồ thị gi ∈
2-GD Tiếp theo từ �𝑝�𝑝�𝑝�𝑝 trở đi chúng ta chỉ lưu các tập đồ thị con thường xuyênđóng
Trang 34
�𝑝
viên nằm trong �𝑝�𝑝, mỗi thành viên nằm trong
danh sách liên kết được sắp xếp sẵn tạo thành một danh sách liên kết được sắp thứ tựtheo CAM Khi cần xác định một ứng viên trong
�𝑝�𝑝
có phải là đồ thị con thường
xuyên hay không thì chúng ta áp dụng chiến thuật tìm kiếm nhị phân được coi là tối
ưu nhất hiện nay để tìm sự xuất hiện của nó trong các �𝑝�𝑝 khác Rõ ràng, ta thấy ởđây
mỗi đồ thị con ứng viên sẽ được tìm bằng tìm kiếm nhị phân Giả sử mỗi đồ thị gi có
m đồ thị con ứng viên mức k thì việc tìm kiếm một đồ thị con trong nó là O(logm)nên dù m có lớn đến đâu thì thuật toán xác định đồ thị con đẳng cấu và đếm độ hỗtrợ của một đồ thị con ứng viên vẫn thuộc lớp P tức là giải quyết trong thời gian đathức [3]
Trang 35CHƯƠNG 2: BÀI TOÁN ĐỒ THỊ ĐẲNG CẤU VÀ KHAI PHÁ ĐỒ THỊ CON
PHỔ BIẾN
Một trong các phương pháp khai phá dữ liệu có nhiều ứng dụng nhất là khaiphá các mẫu thường xuyên Vấn đề khai phá mẫu thường xuyên là từ một tập dữ liệucác đối tượng, với một ngưỡng độ hỗ trợ tối thiểu minsup cho trước, ta đi tìm cácđối tượng có độ hỗ trợ lớn hơn hoặc ít nhất là bằng với độ hỗ trợ tối thiểu minsup
Dữ liệu có thể rất đa dạng từ dữ liệu nhị phân, dữ liệu số nguyên, số thực hoặc các
dữ liệu có cấu trúc phức tạp hơn như cây, đồ thị, Bài toán khai phá đồ thị con phổbiến là đi tìm những đồ thị con phổ biến trong một kho đồ thị với một ngưỡng chotrước Chương này trình bày bài toán đồ thị đẳng cấu, đồ thị con đẳng cấu và thuậttoán tìm các đồ thị con phổ biến
Khai phá đồ thị con thường xuyên là một phương pháp khai phá dữ liệu hiệuquả Tuy nhiên, các ứng dụng thực tiễn hiện nay với các tập dữ liệu vừa có cấu trúcphức tạp lại vừa có kích thước rất lớn đã dẫn đến việc tìm tập tất cả các đồ thị conthường xuyên cũng là rất lớn Hơn hết, có một số đồ thị thường xuyên lại có độ hỗtrợ bằng với đồ thị thường xuyên cha của nó Vì thế, việc tìm tập tất cả các đồ thịcon thường xuyên đóng có hiệu quả trong các ứng dụng thực tiễn hơn Bởi từ đồ thịthường xuyên đóng ta có thể tìm ra tất cả các đồ thị là con của đồ thị đó nên việc liệt
kê hết ác đồ thị con thường xuyên của một đồ thị thường xuyên đóng làm tốn thêm
bộ nhớ lưu trữ Tuy lúc cần có thể tìm các đồ thị con thường xuyên nhanh hơn,nhưng nếu số lượng đồ thị đầu vào lớn và số lượng đồ thị con thường xuyên là lớnthì việc liệt kê hết không hiệu quả bằng chỉ liệt kê các đồ thị con thường xuyênđóng Trong phần này, giới thiệu một kết quả có thể làm tăng hiệu quả khai phá đồthị con thường xuyên nhất là đồ thị con thường xuyên đóng
2.1 Bài toán đồ thị đẳng cấu
Một bài toán thường gặp trong khai phá đồ thị là bài toán tìm các đồ thị con(mẫu) cho trước Nhưng sẽ có nhiều cách biểu diễn cho mỗi đồ thị (con), nên bàitoán tìm các đồ thị con được giải quyết thông qua bài toán đồ thị đẳng cấu(graph isomorphism problem) Nhiều tính chất của đồ thị có tính di truyền, nghĩa lànếu một
Trang 36đồ thị con nào đó có một tính chất thì toàn bộ đồ thị cũng có tính chất đó Chẳng hạnnhư một đồ thị là không phẳng nếu như nó chứa một đồ thị hai phía đầy đủ(complete bipartite graph ) hoặc nếu nó chứa đồ thị đầy đủ.
Sau đây là những khái niệm, tính chất cơ sở liên quan đến bài toán đồ thị đẳng cấu GI (graph isomorphism) [14, 16]
Chúng ta xét đồ thị đơn vô hướng với các đỉnh được gắn nhãn G = (V, E, N,L), trong đó
là puv
Định nghĩa 2.1 Cho trước cặp đỉnh (u, v) trong G, ta định nghĩa khoảng cách
(distance) d(u,v) như sau:
Định nghĩa 2.2 Với mỗi cặp đỉnh (u, v) trong G, G\uv là đồ thị phụ thêm (collateral
graph) được định nghĩa như sau:
Nếu (u, v) E, thì G\uv là đồ thị nhận được từ đồ thị G bằng cách loại bỏcạnh nối v với u, trong khi vẫn bảo toàn các đỉnh Trong trường hợp này ta sử dụng
ký hiệu + để phân biệt hàm khoảng cách
Nếu (u, v) E, thì G\uv = G Trong trường hợp này ta sử dụng ký hiệu - đểphân biệt hàm khoảng cách
Định nghĩa 2.3 Đồ thị kết đôi Guv cho cặp đỉnh (u, v) trong G được định nghĩa nhưsau:
Trang 37 w là đỉnh của Guv khi và chỉ khi w nằm trên đường đi ngắn nhất từ u đến vtrong G\uv, và
Dấu ở đầu là + nếu (u, v) E, ngược lại là - khi (u, v) E;
duv là khoảng cách d(u, v) trong đồ thị thêm G\uv ;
nuv là số các đỉnh trong đồ thị kết đôi Guv;
muv là số các cạnh trong đồ thị kết đôi Guv;
Các bộ giá trị ± duv #nuv#muv được gọi là bộ dấu hiệu của ma trận dấu
Định nghĩa 2.4 Ma trận dấu của đồ thị G, ký hiệu SG = (suv)u, v V
Lưu ý, đối với đồ thị đơn, vô hướng thì cả ma trận liền kề và ma trận dấu (signmatrix) là ma trận đối xứng
Định nghĩa 2.5 Giả thiết tập tất các bộ dấu hiệu của ma trận dấu được xếp theo thứ
Trang 38v v
tự từ điển thành s1, s2, , sr Vector tần xuất dấu của đỉnh v V là fv = (f (1), f (2), …,
(r)
v ), trong đó f (k)là số lần xuất hiện dấu sk trên hàng v trong ma trận dấu
Định nghĩa 2.6 Hai đỉnh của đồ thị G được gọi là tương đương với nhau nếu chúng
có cùng vector tần xuất dấu
Theo định nghĩa trên, tập các đỉnh của đồ thị sẽ phân hoạch thành các lớptương đương Từ đó suy ra, dạng chính tắc SG* của ma trận dấu SG được định nghĩachính xác theo hoán vị của các đỉnh trong mỗi lớp tương đương
Định nghĩa 2.7 Dạng chính tắc (canonical form) SG* là ma trận dấu được xếp lạicác hàng, cột theo thứ tự từ điển của các vector tần xuất của dấu Nếu hai đỉnh cùnglớp tương đương tức là có cùng vector tần xuất của dấu thì thứ tự không quan trọng,
ta có thể thay đổi thứ tự
Trang 392.2 Thuật toán kiểm tra đồ thị đẳng cấu
Thuật toán kiểm tra tính đẳng cấu của hai đồ thị đơn được thực hiện dựa chủyếu vào bốn thuật toán sau [1]
2.2.1 Thuật toán Dijsktra tìm đường đi ngắn nhất
Input: Cho trước đồ thị G = (V, E) và đỉnh u V,
Output: Tập tất cả các đường đi ngắn nhất từ u tới mọi đỉnh v trong V.
Ta định nghĩa a(u, v) = 1 nếu (u, v) E và a(u, v) = ∞ nếu (u, v) E Ký hiệu
Vknown là tập các đỉnh v mà đã xác định được đường đi ngắn nhất
Thuật toán shortestPath (G, u)
Vknown = Vknown {wmin};
Tính khoảng cách d'(u,w) = min{d'(u,w), d(u,w)+a(u,w)}
while(Vknown == V OR d'(u, w) == ∞ với mọi đỉnh w Vknown;}
Lưu ý: khi d'(u, w) == ∞ với mọi đỉnh w Vknown thì các đỉnh còn lại (nằmngoài Vknown ) không được kết nối với đỉnh u
2.2.2 Thuật toán tính khoảng cách d(u, v) trong các đồ thị phụ thêm và đồ thị kết đôi
Input: Cho trước đồ thị G = (V, E) và đỉnh u, v V,
Output: Khoảng cách d(u, v) trong đồ thị phụ thêm G\uv, và đồ thị kết đôi Guv,Thuật toán distancePairGraph(G, u, v)
{
Tính đồ thị phụ thêm G\uv theo định nghĩa 2.2;path1 = shortestPath (G\uv, u); //Tập tất cả cácđường đi ngắn nhất từ u tới mọi đỉnh x trong G\uv.//Đường đi ngắn nhất từ u đến v trong
G\uv d(u, v) = length(puv), puv
path1;
Trang 40Tính đồ thị kết đôi Guv theo Định nghĩa 2.3;
}
Nếu đường đi u = u1, u2, , ur và đường đi v = v1, v2, , vs là hai đường đingắn nhất trong tập path1 sao cho ur = vs và tổng độ dài hai đường đi đó bằng d(u, v)trong đồ thị G\uv thì các đỉnh trên cả hai đường đi này là các đỉnh trong đồ thị Guv
Dễ nhận thấy, mọi đường đi ngắn nhất puv có chứa đỉnh w đều nhận đượcbằng cách kết nối đường đi ngắn nhất puw với đường đi ngắn nhất pwv trong G\uv
Do vậy, phải tồn tại ít nhất một cặp đường đi ngắn nhất ở path2 thỏa mãn ur = vs =
w, với mọi đỉnh w trong Guv
2.2.3 Thuật toán xác ma trận dấu và dạng chính tắc của nó
Input: Cho trước đồ thị G = (V, E),
for i = 1 to n do{
for k = 1 to r do{