Tải bản đầy đủ (.docx) (24 trang)

Tiểu luận môn cơ sở dữ liệu nâng cao KHAI THÁC DỮ LIỆU ĐỒ THỊ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 24 trang )

Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
1
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC
KHAI THÁC DỮ LIỆU ĐỒ THỊ
Giảng viên phụ trách : PGS. TS. Đỗ Phúc
Học viên thực hiện : Châu Kim Hùng – CH1101013
Lớp : CH.CNTT.K6
Khóa : 06
Tp HCM, Tháng 08 năm 2012
Page 1
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
2
Tóm tắt
Để tìm kiếm giải pháp và phương hướng giải quyết và khắc phục những hạn chế
trong các quá trình xử lý khai thác dữ liệu trên đồ thị, người ta đã đưa ra nhiều phương
pháp để giải quyết bài toán, nó tập trung vào hướng nghiên cứu giải quyết vấn đề về đẳng
cấu đồ thị, đẳng cấu đồ thị con và tìm sự tương đồng của đồ thị, nhưng còn nhiều hạn chế
về thời gian tìm kiếm và lưu trữ dữ liệu cho phù hợp.
Với những lý do nêu trên, đồ án này tập trung nghiên cứu cài đặt lại những
phương pháp, giải thuật đã được nghiên cứu trước đó để có sự tiếp cận rõ hơn về khai
thác dữ liệu đồ thị, tạo tiền đề để nghiên cứu sau này.
Page 2
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
3
MỤC LỤC
Chương 1


GIỚI THIỆU ĐỀ TÀI
1.1.Bối cảnh
Trong vài năm gần đây, bài toán khai thác đồ thị là bài toán được nhiều người
quan tâm và nghiên cứu trong lĩnh vực khai thác dữ liệu. Bài toán này đặc biệt có ý nghĩa
trong các ứng dụng sinh, hóa học, khai thác weblog, phân loại, phân tích mạng xã hội
Hiện nay nhiều hướng nghiên cứu tập trung giải quyết những vấn đề về xã hội trong lĩnh
vực công nghệ thông tin như nhận diện dấu vân tay, khung mắt người, phân tích đặc điểm
chung từ mạng xã hội, nghiên cứu sự tương đồng trong thành phần hóa học – cấu trúc -
chức năng có liên quan mật thiết với nhau trong lĩnh vực hóa sinh ( enzyme) thì một kỹ
Page 3
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
4
thuật có hiệu quả để giải quyết những bài toán này là Khai thác dữ liệu đồ thị (Graph
Mining) đây là một kỹ thuật mới, được dùng để phát hiện tri thức và đặc biệt thích hợp
với dữ liệu có cấu trúc, vì có thể sử dụng đồ thị để mô tả.
Dữ liệu có cấu trúc thường phát sinh những mối quan hệ sự tương đồng về thánh
phần, cấu trúc. Mỗi tập dữ liệu có một số sự tương đồng với tập dữ liệu khác. Để thể
hiện, quản lý, nhận diện các mỗi quan hệ giữa các tập dữ liệu người ta thường biểu diển
dữ liệu dưới dạng đồ thị (có hướng hoặc vô hướng), từ cấu trúc của đồ thị ta có thể tìm
được sự giống nhau về cấu trúc, thành phần của các tập dữ liệu. Nhưng với một lượng dữ
liệu thông tin khổng lồ ngày nay việc biểu diễn dữ liệu bằng đồ thị, thì bài toán xử lý đồ
thị gặp nhiều khó khăn, vì đồ thị quá lớn những xử lý trên đồ thị gặp vấn đề về thời gian,
mà thường các bài toán tìm đẳng cấu đồ thị và đẳng cấu đồ thị con rơi vào trường hợp độ
phức tạp dạng không đẳng thức. Những phương pháp tìm đẳng cấu đồ thị và đẳng cấu đồ
thị con trước đây không phù hợp với các bài toán cần giải quyết hiện nay về lĩnh vực khai
thác dữ liệu đồ thị.
1.2.Mục tiêu và phạm vi
Với những vấn đề nêu ra ở trên, mục tiêu của chuyên đề nhằm tiếp cận và tìm cách
giải quyết khắc phục những khó khăn về vấn đề tìm đẳng cấu đồ thị - đẳng cấu đồ thị con

để phục vụ cho lĩnh vực khai thác dữ liệu – khai thác dữ liệu đồ thị. Đây là một trong
những hướng nghiên cứu mới có nhiều tiềm năng, ứng dụng trong cuốc sống ngày nay.
Nổi bật là hướng nghiên cứu về phân tích mạng xã hội trên đồ thị, sự tương đồng trong
thành phần hóa học – cấu trúc - chức năng có liên quan mật thiết với nhau trong lĩnh vực
hóa sinh.
Vì việc tiếp cận và thực hiện chuyên đề trong khoảng thời gian ngắn, nên chuyên
đề này tập trung nghiên cứu, phân tích ưu nhược điểm, phân tích đặc điểm những hướng
nghiên cứu trước đó và cài đặt lại những phương pháp, giải thuật đó để có sự tiếp cận rõ
hơn về bài toán tìm đẳng cấu đồ thị và đẳng cấu đồ thị con trong lĩnh vực khai thác dữ
liệu đồ thị, tạo tiền đề để nghiên cứu sau này.
Page 4
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
5
Chương 2
TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU ĐỒ THỊ
2.1.Cơ sở lý thuyết
2.1.1. Đẳng cấu đồ thị
Hai đồ thị có chứa cùng số đỉnh, và các đỉnh có liên kết với nhau theo một cách
nào đó giống nhau thi được gọi là đẳng cấu.
Định nghĩa toán học, hai đồ thị G
1
= (V
1
, E
1
) và G
2
= (V
2

, G
2
) đẳng cấu với nhau,
kí hiệu: G
1
G
2
, nếu ở đó có một song ánh φ : V
1
-> V
2
. Như vậy, với mỗi cặp đỉnh
v
i
, v
j
€ V
1
, holds (v
i
, v
j
) € E
1
nếu và chỉ nếu (φ (v
i
), φ (v
j
)) € E
2

.
φ (1) = can, φ (2) = cat, φ (3) = car, φ (4) = ear.
Hình 2.1 hai đồ thị đẳng cấu
Hai đồ thị đẳng cấu thì ta có:
- Cùng số đỉnh
Page 5
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
6
- Cùng số đỉnh bậc k, với mọi k nguyên dương
- Cùng số cạnh
- Cùng số thành phần
 Nếu hai đồ thị có ma trận kề bằng nhau, thì chúng đẳng cấu với nhau.
2.1.2. Đẳng cấu đồ thị con
Một đồ thị G

là một đồ thị con của một đồ thị G cho trước nếu số đỉnh và số cạnh
của G

thỏa tập con của số đỉnh và số cạnh của G.
Một đồ thị G
1
= (V
1
, E
1
) là đẳng cấu với một đồ thị con của một đồ thị G
2
= (E
2

,
V
2
) nếu ở đó tồn tại đồ thị con của G
2
, ta gọi là G
2

, như vậy G
1
G
2
.
Hình 2.2 đẳng cấu đồ thị con
2.2.Tiếp cận các phương pháp kiểm tra đẳng cấu
2.2.1. Giải thuật Ullman (1976) – [Ull76]
Ullman ([Ull76] Ullman 1976) là người đầu tiên và được đánh cao về cách tiếp
cận so khớp đồ thị mẫu chính xác của giải thuật đẳng cấu đồ thị con. Giải thuật này áp
dụng cho đồ thị đơn có hướng hoặc vô hướng. Giả sử chúng ta muốn tìm sự phù hợp giữa
đồ thị mẫu P và đồ thị dữ liệu G (hình 2.3)

Hình 2.3 một ví dụ về đồ thị mẫu P và đồ thị dữ liệu G
Page 6
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
7
Giải thuật Ullman đơn giản là ta đi tìm tất cả các trường hợp có thể ánh xạ các
đỉnh của P đến các đỉnh trong G theo phương pháp tìm kiếm theo chiều sâu trên cây. Mỗi
node ở bậc i của cây tìm kiếm ánh xạ đỉnh V
pi

trong P đến một đỉnh trong G (hình 2.4).

Hình 2.4 một cây tìm kiếm cho giải thuật Ullman, ánh xạ từ đồ thị mẫu P đến đồ
thị dữ liệu G. Đường tô đen trình bày sự so khớp của P trong G.
Mỗi nhánh từ gốc đến node lá trong cây tìm kiếm trình bày một ánh xạ các đỉnh
trong P đến các đỉnh trong G. Bất kỳ ánh xạ nào mà duy trì tính kề trong P và trong G
( các đỉnh kề nhau trong P ánh xạ với các đỉnh kề nhau trong G) thể hiện một đằng cấu từ
P đến một đồ thị con của G. Nếu không tồn tại bất cứ nhánh nào thỏa điều kiện trên thì
không tôn tại đẳng cấu. Vì không gian tìm kiếm tỉ lệ với kích thước đồ thị nhập vào tăng
theo hàm mũ, Ullman đề xuất các bước tinh lọc, cắt tỉa không gian tìm kiếm ở các cây
con, loại ra những nhánh không thể ánh xạ, để thu hẹp không gian tìm kiếm.
Các tiêu chuẩn để có thể thu hẹp không gian tìm kiếm:
- Bậc của đỉnh: nếu bậc của đỉnh Vertex V
pi
(số cạnh có nối với đỉnh V
pi
) lớn
hơn bậc của đỉnh V
Gj
thì V
Pi
không thể ánh xạ đến V
Gj
. Ví dụ, V
p1
không thể
ánh xạ với V
G4
, vì degree(V
P1

)=2 và degree(V
G4
)=1.
- Ánh xạ một một của các đỉnh: khi ta đã ánh xạ đỉnh V
Pi
đến V
Gj
, thì ta không
thể ánh xạ đến V
Pi
bất kì đỉnh nào khác trong G và cũng không thể ánh xạ bất
kì đỉnh nào khác trong P đến V
Gj.
- Kiểm tra sự liên thuộc: Trong khi đang đi xuống theo chiều sâu của cây, vì bất
kì đỉnh nào có khả năng ánh xạ theo tiêu chuẩn 1 và 2 thì sẽ dẫn đến việc ánh
xạ bị thừa và không trùng khớp. Ta có thể bỏ các nhánh ánh xạ nếu nó không
thỏa điều kiên liên thuộc giữa P và G. Cho ví dụ, giả sử ta đã ánh xạ V
P1
đến V
G1
, và ta tiếp tục ánh xạ từ đỉnh V
p2
đến V
G3
. Ta không cấn quan tâm đến sự đi
Page 7
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
8
xuống của nhánh như thế nào, vì ánh xạ V

p2
đến V
G3
không phù hợp tính liên
thuộc vì V
P1
và V
P2
là hai đỉnh kế nhau trong P, nhưng V
G1
và V
G3
không kế
nhau trong G. Vì vấy ta loại bỏ trường hợp ánh xạ từ V
P2
đến V
G3
.
 Khi ta duyệt trong cây tìm kiếm nếu trương hợp nào không thỏa một trong ba
tiêu chuẩn trên thì ta bỏ tất cả nhánh con liên quan tới nó.
 Ưu điểm
Tuy ý tưởng của giải thuật cảu Ullman là duyệt trên không gian tìm kiếm là một
cây tìm kiếm được dựng từ đồ thị dữ liệu, nhưng thực chất là ta duyệt trên một cây gián
tiếp chứ không dựng cây, bởi vì việc dụng cây như thế chi phí là n! ( n là số đỉnh của đồ
thị mẫu). Trong quá trình duyệt cây tại mỗi node mà nó không thỏa một trong ba tiêu
chuẩn được Ullman đề xuất ở trên thì ta loại tất cả các nhánh con của node đó, thu gọn
không gian tìm kiếm,ta có thể dừng một cách an toàn không cần phải mở rộng các node
con sau đó và tránh được trường hợp quay lui, tiết kiệm được rất nhiều thời gian.
Đối với trường hợp kiểm tra sự đẳng cấu giữa hai đồ thị mà chúng ít tương đồng
với nhau thì việc cắt tỉa thu gọn được không gian tìm kiếm rất hiệu quả (không phải đi

xuống quá sâu trong không gian tìm kiếm).
Với đồ thị mẫu mà có số đỉnh nhỏ thì dù đồ thị dữ liệu rất lớn thì việc tìm đằng
cấu cũng rất nhanh. Tranh lãng phí của việc dựng cây.
 Nhược điểm
Tuy nhiên giải thuât Ullman vấn gặp một vấn đề lớn là chi phí thực hiện trường
hợp xấu nhất dạng hàm mũ!
Trường hợp hai đồ thị có độ tương đồng cao thì khả năng đi xuống sâu trong
không gian tìm kiếm là rất lớn.
2.2.2. Giải thuật Messmer (1995)
Messmer đề xuất một phương pháp giải quyết vấn đề tìm đẳng cấu đồ thị con từ
một đồ thị nhập trực tiếp với một đồ thị bất kỳ trong bộ dữ liệu đồ thị. Phương pháp này
tập trung nhiều vào bước tiền xử lý tập dữ liệu đồ thị cái dùng để tạo ra cây quyết định.
Sau khi đã tạo được cây quyết định từ tập dữ liệu đồ thị thì ở bước tìm đẳng cấu, đồ thị
nhập sẽ được phân lớp bởi cây quyết định với toàn bộ tập dữ liệu đồ thị nếu ở đó tồn tại
đẳng cấu đồ thị con tại một node. Nếu bỏ qua thời gian cần cho bước tiền xử lý, thì tính
toán độ phức tạp của giải thuật Messmer chỉ bình phương với số đỉnh của đồ thị nhập.
Hơn thế nữa, nó không phụ thuộc vào số lượng tập dữ liệu đồ thị và số cạnh của bất kì đồ
Page 8
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
9
thị nào trong tập dữ liệu. Tuy nhiên cây quyết định được khởi tạo ở bước tiền xử lý chi
phí ở dạng hàm mũ với số đỉnh của của tập dữ liệu đồ thị.
Trong nghiên cứu của Messmer ta có một số định nghĩa và kí hiệu được sử dụng
xuyên suốt quá trình của giải thuật.
Định nghĩa: Một đồ thị có nhãn G là một đồ thị gồm 6 thuộc tính, G = (V, E, μ,ν,
L
V
, L
E

), trong đó:
- V là tập đỉnh của đồ thị
- E là tập cạnh của đồ thị
- μ: V -> L
V
hàm gán tên cho đỉnh
- ν: E -> L
E
hàm gán tên cho cạnh
Rõ ràng, ma trận M thì không phải là ma trận kề duy nhất biển diễn cho đồ thị G.
Nếu M là biễu diển của G, thì bất kỳ hoán vị nào của M cũng đều là biễu diễn của G.
Định nghĩa: một ma trận n x n P = (p
ij)
thì được gọi là ma trận hoán vị nếu
1. p
ij
€ {0,1}

với i, j = 1 n
2. với j = 1 n
3. với j = 1 n
Nếu ma trận G được biểu diễn bởi một ma trận kề M (n x n) và P ma trận hoán vị
n x n, thì ma trận M

(n x n)
M

= P.M.P
T
(1)

Trong đó P
T
là kí hiệu ma trận chuyển vị của P, thì M

cũng là một ma trận kề của
G. Nếu p
ịj
= 1thì đỉnh thứ j trong M sẽ trở thành đỉnh thứ i trong M

.

Ví dụ: cho đồ thị g
1
như sau
Ta có 6 ma trận kề biểu diễn cho ma trận g
1
như sau:
Page 9
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
10
 Xây dựng cây quyết định
Để xây dựng cây quyết định trước tiên ta phải tìm tất cả các trường hợp hoán vị
của ma trận kề biểu diễn cho đồ thị theo phương pháp ánh xạ của công thức (1).
Cây quyết định được xây dựng theo các thành phần dòng cột của mỗi ma trận kề
M
p
€ A(G) (A(G) là tập các ma trận kề biểu diển cho đồ thị). Đỉnh của cây quyết định là
một node gốc đơn. Những node con trực tiếp của node gốc tạo nên cấp đầu tiên của cây
quyết định. Với n node con đầu tiên sẽ phân lớp tập dữ liệu đồ thị thành n lớp, với m là

cấp của mỗi node trong cây quyết định thì giá trị để phân lớp đồ thị là các thành phần của
dòng m cột n trong ma trận kề. Nếu tại mỗi node của cây mà các thành phần dòng cột của
các ma trận kề giống nhau thi chúng được gom chung thành một nhóm, đảm bảo theo cây
phân cấp từ trên xuống của cây quyết định (hình 2.5).
Hình 2.5 cây quyết định cho phân lớp của các ma trận kề A F của đồ thị g
1
Một yêu cầu quan trọng của cây quyết định là sự phân lớp tại mỗi cấp phải được
tính một cách dễ dàng. Bên cạnh đó, nêu một ma trận M
P
thì được phân lớp theo thành
Page 10
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
11
phần dòng cột thứ k a
k
, những nhánh con co cùng phân lớp từ a
k ,
với a
ki
= a
k
thì cúng
phải được tính một cách dễ dàng. Thật vậy, ta thấy các thành phần dòng cột thứ k có
chính xác 2k-1 yếu tố m
ij
từ dòng thứ k cột thứ k trong ma trận kề và mỗi thành phần đó
được dùng như một chỉ mục. Để tìm một thành phần trong a
k
ta có thể thực hiện trong

2k+1 bước. Vì vậy để tìm một node con trong cây quyết định tại node cấp k ta tôn O(2k-
1) = O(k) bước. Cho ví dụ, ta xem xét node thứ 3 cây quyết định trong hình 3, có ba
nhánh hướng lần lượt từ node 3 đến node 5, 6, và 7, các ma trận kề đều phù hợp tại các
node 5, 6, 7 đều có chưa thành phần dòng cột giống nhau thỏa với a
k
tại node thứ 3, vì thế
chúng mới được phân chung một lớp tại node 3.
Đây là cách dựng cây quyết định từ một đồ thị đơn. Nếu ta có một vài đồ thị trong
tập dữ liệu đồ thị thì cách đơn giản nhất ta cũng có thể tạo một cây quyết định cho mỗi đồ
thị. Tuy nhiên ta vẫn có thể biểu diễn một vài đồ thị chung trong một cây quyết định.
Cách tạo cây quyết định cho một vài đồ thị cũng rất đơn giản, giống với cách tạo
cho một đồ thị nếu ta vẫn có được tập ma trận kề biểu diễn cho tất cả các đồ thị có trong
tập dữ liệu (hình 2.6).
Page 11
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
12
Hình 2.6 cây quyết định cho đồ thị g
1
trong hình 3 và đồ thị g
2
.
 Tìm đẳng cấu đồ thị con từ cây quyết định
Cũng từ trên ý tưởng của Ullman, Messmer xây dựng không gian tìm kiếm bằng
cây quyết định và phương pháp tìm đẳng cấu đồ thị con cũng đơn giản là ta duyệt theo
nhánh của cây, quá trình đi xuống node con khi đồ thị nhập thỏa điều kiện tại mỗi node
cha, tức là phải thỏa các thành phần dòng cột a
k.
Ta cũng ánh xạ ma trận kề của đồ thị
nhập thành một tập các thành phần dòng cột cái để chúng ta dùng kiểm tra giá trị phân

lớp tại mỗi node của cây quyết định. Đồ thị nhập sẽ được phân lớp bởi cây quyết định với
toàn bộ tập dữ liệu đồ thị nếu ở đó tồn tại đẳng cấu đồ thị con tại một node, các đồ thị có cùng
phân lớp với đồ thị nhập thuộc các nhánh hướng trực tiếp từ node mà ở đó tồn tại đẳng cấu đồ thị
con.
 Ưu điểm
Như ta đã thấy phép duyệt trên cây quyết định là tối hơn hơn phép duyệt trên cây
tìm kiếm của Ullman là rất nhiều. Phép duyệt trên cây quyết định chỉ đi theo một hướng
duy nhất, không đổi hướng, quay lui. Và đồ thị nhập đẳng cấu đồ thị con với đồ thị trong
dữ liệu tại một node trên một nhanh đi duy nhất, nếu không tôn tại node nay thì sẽ không
có đẳng cấu.
Theo Messmer đã phân tích thì độ phức tạp của bước duyệt cây tìm đẳng cấu đồ
thị con khoảng O(M
2
) – M là số đỉnh lớn nhất của một tập dữ liêu đồ thị.
Và việc tìm được đẳng cấu đồ thị con của đồ thị nhập với tập dữ liệu đồ thị nó
đồng thời xác định đồ thị đó thuộc phân nhóm nào của các đồ thị trong dữ liệu. Điều này
rất có lợi cho chúng ta trong những bài toán tìm sự tương đồng, phân lớp độ tương tự,
khai thác được những đặc điểm giống của các đồ thị, như áp dụng trong lĩnh vực phân
tích mạng xã hội…
 Nhược điểm
Như ta đã nói ở đầu bài toán tạm thời bỏ qua việc tiền xử lý xây dựng cây quyết
định từ tập đồ thị. Việc tìm tất cả các trường hợp hoán vị của ma trận kề biểu diển cho
một đồ thị n đỉnh là n!. Xây dựng cây quyết định chi phí tốn ở dạng hàm mũ với số đỉnh
của đổ thị. Và nó thật sự có vấn đề đối với giải thuật này nếu đồ thị với số lượng đỉnh
lớn.
2.2.3. Độ tương tự đồ thị
Page 12
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
13

Việc tìm đẳng cấu đồ thị và đẳng cấu đồ thị con là một vấn đề phức tạp gặp nhiều
khó khăn, nhưng bên cạnh đó thì bài toán tìm đằng cấu của hai đồ thị con còn nhiều khó
khăn hơn thế nhiều. Mà việc tìm được đẳng cấu của hai đồ thị con có nhiều ứng dụng
quan trọng, điển hình là trong việc tính độ tương tự giữa hai đồ thị từ việc xác định được
các đồ thị con đẳng cấu.
Giải quyết bài toán tính độ tương tự giữa các đồ thị, hiện nay có nhiều hướng tập
trung vào giải quyết bài toán tìm đồ thị con đầy đủ (clique). Xác định được các clique tối
đại của đồ thị ta có thể nhận biết được độ tương tự giữa các đồ thị, vì các clique tối đại nó
mang cái đặc trưng nhất của chính đồ thị đó, và thay vì ta phải tính độ tương tự giữa các
đồ thị thì ta chuyển sang tính độ tương tự của các clique tối đại. Phương pháp này dựa
trên việc xác định tính tương tự dựa vào điểm đặc trưng nhất của nó, nếu điểm đặc trưng
đó càng giống nhau thì nó càng giống nhau.
Clique (đồ thị con đầy đủ) : cho đồ thị G gồm có tập đỉnh V và tập cạnh E. Đồ
thị G được gọi là đồ thị đầy đủ khi với một cặp đỉnh bất kỳ đều có một cạnh nối giữa
chúng.
Một cách tiếp cận về việc tìm đồ thị con đầy đủ là dựa trên ý tưởng của giải thuật
Ullman,ta tìm được các đồ thị đầy đủ từ không gian tìm kiếm xây dựng bằng cây tìm
kiếm từ các đỉnh của đồ thị. Quá trình tìm đồ thị đầy đủ là quá trình duyệt cây tìm kiểm
theo chiều sâu, tại mỗi đỉnh của cây chứa các đỉnh thuộc tập đỉnh của đồ thị, ta phải kiểm
tra các đỉnh đó có tạo được đồ thị con đầy đủ hay không từ ma trận kề biểu diển của đồ
thị. Đồ thị con đẩy đủ tối đại của đồ thị là những đồ thị con mà tại một node của cây các
đỉnh có thể lập thành một đồ thị đầy đủ và số đỉnh của node là lớn nhất. Theo tính chất
các đồ thị con của clique cũng phải là clique, ta có thể thu gọn không gian tìm kiếm, tức
là tại một node là không thể thành lập được một đồ thị đầy đủ thì ta loại bỏ tất cả các cây
con của nó. Việc tìm đồ thị con đầy đủ theo phương pháp này cũng gặp phải những
khuyết điểm cơ bản của giải thuật Ullman, độ phức tạp dạng hàm mũ.
Daniel Baum có đề xuất phương pháp tìm tất cả clique tối đại trong bài báo:
“Finding all maximal cliques of a family of induced subgraph”[3].
2.3.So sánh giải thuật của Ullman và Messmer
Page 13

Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
14
Từ ưu khuyết điểm của hai giải thuật ta thấy tùy vào trường hợp cụ thể ta có thể sử
dụng phương pháp nào cho phù hợp. Tính về tổng thời gian chạy giải thuât của Ullman
và Messmer trong cùng một lúc thì giải thuật của Ullman sẽ tốt hơn, chạy nhanh hơn, vì
trường hợp xấu nhất của Ullman mới rơi vào độ phức tạp ở dạng hàm mũ, trong khi đó ở
bước tiền xử lý khởi tạo cây quyết định của Messmer đã rơi vào độ phức tạp ở dạng hàm
mũ và bước đến bước duyệt cây quyết định mất O(M
2
).
Giải thuật của Ullman còn thích hợp mới một số bài toán cụ thể mà ta có thể dựa
vào đặc trưng của bài toán mà có thể thu gọn được không gian tìm kiếm một cách tốt
nhất. Giải thuật Ullman là nền tảng cơ sở để ta phát triển cho những hướng nghiên cứu
tìm ra những phương pháp mới giải quyết cho bài toán cụ thể nào đó.
Nhưng ta thấy giải thuật Messmer lại được cụ thể hơn và có áp dụng thực tiển hơn.
Tuy hạn chế về mặt dựng cây quyết định nhưng đây chỉ là bước tiền xử lý, còn bài toán
của ta là tìm đẳng cấu đồ thị con, việc tìm đẳng cấu đồ thị con theo cách duyệt cây quyết
định hiệu quả đem lại rất cao. Và trên thực tế thì thường người ta sử dụng việc tìm đẳng
cấu đồ thị con để làm cái gì đó trong tức khắc thì theo Messmer sẽ hiệu quả hơn. Vì ta có
thể tạo cây quyết định từ trước và chỉ dùng nó để tìm sự đẳng cấu.
Và ưu điểm của Messmer nửa là có khả năng phân lớp đồ thị. Điều này rất có
lợi cho chúng ta trong những bài toán tìm sự tương đồng, phân lớp độ tương tự,
khai thác được những đặc điểm giống của các đồ thị, như áp dụng trong lĩnh vực
phân tích mạng xã hội…
Page 14
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
15
Chương 3

GIẢI PHÁP VÀ CÀI ĐẶT THỬ NGHIỆM
3.1. Giải pháp
Phụ thuộc vào ưu khuyết điểm của các giải thuật mà ta sẽ chọn phương pháp nào
để có thể sử lý hiệu quả cho bài toán cụ thể của ta.
Giải thuật Ullman là một giải thuật kinh điển là nền tảng cơ sở để ta phát triển cho
những hướng nghiên cứu tìm ra những phương pháp mới giải quyết cho bài toán cụ thể
nào đó mà chúng ta cần giải quyết. Từ những đặc trưng cụ thể ta có thể rút gọn không
gian tìm kiếm một cách tối đa. Và nếu không rơi vào trường hợp xấu nhất thì giải thuật
Ullman chạy tại một thởi điểm có thể rất tốt.
Page 15
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
16
Với bài toán tìm kiếm đồ thị con từ đồ thị mẫu với số đỉnh nhỏ thì Ullman là một
giải pháp tốt cho ta.
Khắc phục hạn chế của bước tiền xử lý khởi tạo cây quyết định, ta có thể sử dụng
những giải pháp công nghệ, kỹ thuật ngày nay như việc chia nhiều tiểu trình xử lý cùng
một lúc và việc xử lý song song giữa các máy tính bằng phương pháp xử lý phân bố. Như
thế việc tiền xử lý sẽ tiết kiệm được nhiều chi phí về thời gian.
3.2. Cài đặt thử nghiệm
3.2.1. Giải thuật Ullman
Xây dựng không gian tìm kiếm là một cây tìm kiếm được dựng từ đồ thị dữ liệu,
trong chương trình sẽ xây dựng cây một cách gián tiếp. Quá trình duyệt cây tại mỗi node
mà nó không thỏa một trong ba tiêu chuẩn được Ullman đề xuất thì ta loại tất cả các
nhánh con của node đó, thu gọn không gian tìm kiếm.
Chương trình sẽ tìm ra tất cả các trường hợp đẳng cấu và đẳng cấu đồ thị con có thể
có của đồ thị mẫu với đồ thị dữ liệu.
Cài đặt giải thuật Ullman trong chương trình tập trung chủ yếu xây dựng để kiểm
tra ba tiêu chuẩn của Ullman đề xuất và giải thuật duyệt cây theo chiều sâu.
 Xây dụng chương trình

Xây dựng một cấu trúc để biểu diển đồ thị bằng ma trận kề, có lưu bậc của từng
đỉnh và số thứ tự của đỉnh trong ma trận.
struct graph
{
public int[,] matrix;
public int[] degree;
public List<int> name;
public graph(int count) { }
}
Xây dựng lớp Ullman xử lý chính cho giải thuật của Ullman có các hàm xử lý:
- Khởi tạo và nhập dữ liệu cho đối tương Graph của đổ thị: khởi tạo hai đối tượng Graph
cho đồ thị mẫu và đồ thị dữ liệu
public void initializesGraphs(string pathA, string pathB,
int vertexA, int vertexB)
- Hàm kiểm tra sự liên thuộc của hai đồ thị: trả về true nếu hai đồ thị liên thuộc, ngược lại
trả về false
private bool forwardChecking( int level, int[] isomorphism)
Page 16
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
17
- Tìm đẳng cấu đồ thị và đẳng cấu đồ thị con: đây là xử lý chính của lớp, hàm sẽ lưu tập
kết quả ánh xạ có thể có của đồ thị.
private void findIsomorphism(List<int> subName, int level)
- Hàm gọi hàm tìm đẳng cấu: gọi hàm findIsomorphism trả về tập kết quả ánh xạ có thể
có của đồ thị.
public ArrayList isoGraph()
 Giao diện chương trình
Giao diện chính của chương trình
Page 17

Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
18
 Kết quả thử nghiệm
Chương trình sử dụng tập dữ liệu của chương trình “The Graph Isomorphism
Algorithm”[4] của Ashay Dharwadker và John-Tagore Tevet. Tập dữ liệu đồ thị gồm 9
loại đồ thị:
Tên đồ thị Hình minh họa Kết quả
Petersen graphs Đẳng cấu
Icosahedron graphs Đẳng cấu
Ramsey graphs Đẳng cấu
Dodecahedron
graphs
Đẩng cấu
Page 18
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
19
Coxeter graphs Đẳng cấu
Praust graphs Không dẳng cấu
Mathon graphs Không đẳng cấu
Weisfeiler graphs Không đẳng cấu
Siberian graphs Không đẳng cấu
Kết quả thử nghiệm từ bộ dữ liệu [4] trong việc tìm đẳng cấu giữa hai đồ thị ta
thấy kết quả của giải thuật Ullman tốt hơn kết quả của chương trình ngoài [4] ( chương
trình của Ashay Dharwadker và John-Tagore Tevet). Trong 9 trường hợp chỉ có một
Page 19
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
20

trường hợp độ thị Mathon thì giải thuật Ullman chạy chậm hơn, trong trường hợp đồ thị
Siberian ta thấy có sự chênh lệch đáng kể vể thời gian thực hiện. Ta có tập kết quả theo
biểu đồ sau.
Hình 3.1 biểu đồ so sánh thời gian thực hiện của giải thuật Ullman với chương
trình theo [4], thời gian được tính theo giây.
3.2.2. Giải thuật Messmer
Để cài đặt giải thuật của Messmer ta tập trung vào việc xử lý hai vấn đề chỉnh là:
xây dựng cây quyết định và duyệt cây tìm sự đẳng cấu.
Việc dựng cây quyết định ta không tạo ra tập ma trận hoán vị từ ma trận kề biểu
diển cho đồ thị một cách tường minh, mà tạo ra một cách gán tiếp trong quá trình theo
node vào cây quyết định, để tiết kiệm chi phí thực hiện n! bước tìm n! hoán vị.
Việc duyệt cây quyết định đơn giản là so sánh tập thành phần dòng cột trong ma
trận nhập với giá trị a
k
tại mỗi node cũng giống như việc theo một node vào cây quyết
định để phân lớp cho nó.
 Xây dựng chương trình
Xây dựng một cấu trúc để biểu diển đồ thị bằng ma trận kề, có lưu bậc của từng
đỉnh và số thứ tự của đỉnh trong ma trận.
struct graph
{
public int[,] matrix;
public int[] degree;
public List<int> name;
public graph(int count) { }
}
Xây dựng lớp Messmer xử lý chính cho giải thuật của Messmer có các hàm xử lý:
- Khởi tạo và nhập dữ liệu cho đối tương Graph của đổ thị: khởi tạo hai đối tượng Graph
cho đồ thị mẫu và đồ thị dữ liệu
public void initializes(string pathA, string pathB, int

vertexA, int
vertexB)
- Hàm xây dựng cây quyết định
public void builtTree(List<int> subName, Node treeCurrent)
Page 20
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
21
- Tạo giá trị cho tập thành phần dòng cột: ánh xạ qua một mảng
private void setValue_RowColumn()
- Kiểm tra tập thành phần dòng cột của đồ thị nhập với a
k
tại mỗi node: nếu bằng nhau trả
về true, ngược lại trả về false.
private bool compareRowColumn(string[] arr1,ArrayList arr2)
- Tìm đẳng cấu đồ thị và đẳng cấu đồ thị con: đây là xử lý chính của lớp, hàm sẽ lưu tập
kết quả ánh xạ có thể có của đồ thị.
private void findIsomorphism(Node currentTree, int index)
- Hàm gọi hàm tìm đẳng cấu: gọi hàm findIsomorphism trả về tập kết quả ánh xạ có thể
có của đồ thị.
public ArrayList isoGraph()
 Giao diện chương trìnhiao diện của giải thuật Messmer
Page 21
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
22
 Kết quả thử nghiệm
Chương trình thử nghiệm với ba trường hợp tìm đẳng cấu đồ thị và ba trường hợp
tìm đẳng cấu đồ thị con. Dữ liệu được lấy từ hai đồ thị được ví dụ ở phần tìm hiểu về giải
thuật Messmer (2.2.2) và giải thuật Ullman (2.2.1) và đồ thị Petersen (3.2.1).

Ta thực tế ta thấy nếu chạy trực tiếp giải thuật Messmer thế này thì thời gian thực
hiện là rất lâu nếu không sử dụng chia tiểu trình và xử lý song song. Trong giải thuật
Ullman đồ thị Petersen chạy chưa tới 1 giây thì giải thuật Messmer chạy tới khoảng 30
giây!
Và trong trường hợp tìm đẳng cấu đồ thị con cũng thế. Đồ thị nhập chỉ có 3 đỉnh
và đồ thị dữ liệu là đồ thị Petersen (10 đỉnh) thời gian chạy cũng tới khoảng 30 giây,
tương đương với trường hợp chạy hai đồ thị Petersen ở trên.
Chương 4
Page 22
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
23
TỔNG KẾT
Khai thác dữ liệu - khai thác dữ liệu đồ thị là một hướng nghiên cứu triển vọng
ngày nay. Có nhiều ứng dụng trong thực tế, đặc biệt có ý nghĩa trong các ứng dụng sinh,
hóa học, khai thác weblog, phân loại, phân tích mạng xã hội Đã có rất nhiều nhóm
nghiên cứu về lĩnh vực này nhưng hầu hết vẫn chưa giải quyết được vấn đề chính là chi
phí về thời gian, và một số bài toán về đồ thị mà chưa được quan tâm nhiều đến như tìm
sự đẳng cấu giữa hai độ thị con, cái mà gặp nhiều khó khăn nhưng có ứng dụng quan
trọng trong thực tế.
Vì việc tiếp cận và triển khai thực hiện chuyên đề trong khoảng thời gian ngắn,
nên chỉ tập trung vào việc tìm hiểu có một cái nhìn tổng quát về vấn đề, cài đặt thử
nghiệm lại các giải thuật nỗi tiếng đã được nghiên cứu trước đó. Tạo nền tảng cho việc
thực hiện và tìm hướng giải quyết sau này.
Thông qua việc cài đặt và thử nghiệm ta thấy, rõ ràn các giải thuật đều mắc phải là
chưa tối ưu được thời gian thực hiện, cả hai giải thuật thực chất đều bỏ ra chi phí ở dạng
hàm mũ. Vì vậy bài toán này có rất nhiều vấn đề giải quyết.
TÀI LIỆU THAM KHẢO
[1] Matching Structure and Semantics: A Survey on Graph-Based Pattern Matching -
Brian Gallagher

Page 23
Trường ĐH Công Nghệ Thông Tin
Khai Thác Dữ Liệu Đồ Thị
24
[2] Subgraph Isomorphism in Polynomial Time – B.T.Messmer and H.Bunke
[3] Finding All Maximal Cliques of a Family of Induced Subgraphs - DANIEL BAUM
[4] THE GRAPH ISOMORPHISM ALGORITHM - Ashay Dharwadker and John-
Tagore Tevet - />Page 24

×