Bên cạnh đó đồ thị là một cấu trúc dữ liệu tổng quát, có thể sử dụng để mô hình hóa các đối dữ liệu tượng phức tạp đó và vấn đề khai phá đồ thị con thường xuyên là một trong những vấn đề
Trang 1hướng dẫn đọc toàn văn báo cáo KQNC
những thông tin cần thiết ?
đọc báo cáo ( với Acrobat 4.0 trở lên, cho trỏ chuột vào mỗi đề mục để đọc toàn bộ dòng bị che khuất )
trang báo cáo trên màn hình ?
! Chọn, nháy chuột vào 1 trong 3 kích th Chọn, nháy chuột vào 1 trong 3 kích thưưưước ớc
có sẵn trên thanh Menu
, hoặc
! Mở View trên thanh Menu, Mở View trên thanh Menu, Chọn Zoom to Mở View trên thanh Menu, Mở View trên thanh Menu, Chọn Zoom to Chọn Zoom to
! Chọn tỷ lệ có sẵn trong hộp kích th Chọn tỷ lệ có sẵn trong hộp kích thưưưước ớc hoặc tự điền tỷ lệ theo ý muốn,
hoặc tự điền tỷ lệ theo ý muốn hoặc tự điền tỷ lệ theo ý muốn, Nhấn OK , , Nhấn OK Nhấn OK
Chúc bạn hài lòng với những thông tin đ với những thông tin đưưưược cung cấp ợc cung cấp
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 3MỞ ĐẦU
Hiện nay, các phương pháp khai phá dữ liệu đang phải đối diện với vấn
đề số lượng ngày càng gia tăng của các đối tượng dữ liệu phức tạp Bên cạnh
đó đồ thị là một cấu trúc dữ liệu tổng quát, có thể sử dụng để mô hình hóa các đối dữ liệu tượng phức tạp đó và vấn đề khai phá đồ thị con thường xuyên là một trong những vấn đề quan trọng trong khai phá đồ thị Việc khai phá đồ thị
để tìm đồ thị con thường xuyên nhằm xác định tất cả các đồ thị con trong một tập dữ liệu đồ thị với giá trị ngưỡng cho trước [1],[3]
Những khó khăn của vấn đề khai phá đồ thị con thường xuyên nảy sinh hai vấn đề, đó là: liệt kê tất cả các đồ thị con trong CSDL đồ thị và tính toán hàm hỗ trợ của các đồ thị con này trong CSDL Do các đỉnh của đồ thị có thể được sắp xếp theo nhiều cách, một đồ thị có thể có số lượng lớn các bản sao hình học tương đương, được gọi là đồ thị đẳng cấu Để liệt kê tất cả các đồ thị con, ta phải tính toán phù hợp với quy tắc biểu diễn đồ thị để giải quyết vấn
đề đồ thị đẳng cấu Hơn nữa, việc kiểm tra nếu một đồ thị có chứa trong một CSDL đồ thị hay không được xem như bài toán NP-khó và được gọi là bài toán đồ thị con đẳng cấu Trong tất cả các trường hợp, việc tính toán hàm hỗ trợ chiếm chi phí nhiều nhất trong việc tìm các đồ thị con thường xuyên của CSDL Tuy nhiên, sự phức tạp của những vấn đề này sẽ giảm khi CSDL đồ thị có thêm thông tin về các đỉnh và các cạnh đã được gán nhã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 trong quá trình kiểm tra sự đẳng cấu của đồ thị con Tuy nhiên, nếu CSDL đồ thị chưa được gán nhãn hoặc chỉ có một số ít các nhãn thì độ phức tạp của bài toán sẽ làm giảm đáng kể kích thước của tập dữ liệu
Như vậy, vấn đề khai phá đồ thị nói chung và khai phá đồ thị con thường xuyên nói riêng cũng gặp nhiều khó khăn, vì vậy ta cần lựa chọn phương pháp
Trang 4và thuật toán phù hợp để giải quyết cho từng bài toán cụ thể, đem lại hiệu quả cao đó chính là ý nghĩa thực tiễn của đề tài
Nội dung của luận văn và các vấn đề cần giải quyết:
1 Tìm hiểu về các phương pháp khai phá dữ liệu đồ thị
2 Tìm hiểu các thuật toán phát hiện đồ thị con thường xuyên trong CSDL đồ thị
3 Cài đặt thử nghiệm thuật toán phát hiện các đồ thị con thường xuyên trong CSDL đồ thị
Phương pháp nghiên cứu
+ Nghiên cứu về khai phá dữ liệu đồ thị với trọng tâm là phát hiện các đồ thị con thường xuyên trong CSDL đồ thị
+ Tìm hiểu các nguồn thông tin từ các sách,bài báo,tạp chí, Internet ,liên quan đến khai phá dữ liệu đồ thị
Cấu trúc luận văn chia làm 4 chương:
Chương 1: “ Tổng quan về khai phá dữ liệu đồ thị ” trình bày tổng quan
các hướng nghiên cứu hiện nay về khai phá dữ liệu đồ thị
Chương 2: “ Phát hiện các cấu trúc con thường xuyên ” trình bày cơ sở lý
thuyết đồ thị, cách tiếp cận dựa trên Apriori, cách tiếp cận dựa trên sự phát triển mẫu
Chương 3: “ Các thuật toán phát hiện đồ thị con thường xuyên ” trình
bày một số thuật toán phát hiện đồ thị con thường xuyên theo chiến lược tìm kiếm theo chiều rộng và chiều sâu
Chương 4: “ Thiết kế hệ thống thử nghiệm ” trình bày kết quả cài đặt của
thuật toán trong chương 3
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ĐỒ THỊ
1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ĐỒ THỊ:
Khai phá dữ liệu đồ thị là một trong số các lĩnh vực quan trọng trong khai phá dữ liệu Hầu hết nguồn dữ liệu hiện nay có thể biểu diễn được dưới dạng cấu trúc dữ liệu đồ thị, chẳng hạn như: dữ liệu từ mạng Internet, mạng
xã hội, cấu trúc protein, hợp chất hóa học, Do đó, khai phá dữ liệu đồ thị nhằm tìm kiếm các thông tin hữu ích trong một lượng lớn dữ liệu là vấn đề đang được các nhà nghiên cứu và các tổ chức CNTT quan tâm
1.1.1 Định nghĩa dữ liệu lớn:
Hiện nay, thuật ngữ “Dữ liệu lớn” (Big data) đang thu hút sự quan tâm cũng như đặt ra những thách thức mới với các nhà nghiên cứu, các nhà cung cấp dịch vụ công nghệ thông tin và các tổ chức, doanh nghiệp Dữ liệu lớn được xem như sự ra đời tất yếu của quá trình bùng nổ thông tin
Trong nhiều năm qua, các doanh nghiệp thường đưa ra các quyết định kinh doanh dựa trên dữ liệu giao dịch được lưu trữ trong cơ sở dữ liệu quan hệ Ngoài ra những dữ liệu quan trọng lại thường ở dạng tiềm năng, phi truyền thống, phi cấu trúc lại có thể được khai thác một cách hữu ích, giảm chi phí cả
về lưu trữ và tính toán Khi dữ liệu lớn được được khai thác và phân tích, kết hợp với dữ liệu doanh nghiệp truyền thống thì các doanh nghiệp sẽ có cái nhìn toàn diện và sâu sắc hơn về tình hình kinh doanh của họ, dẫn tới nâng cao năng suất và vị thế cạnh tranh Do đó, ngày càng có nhiều công ty tìm kiếm để có được các dữ liệu phi truyền thống nhưng rất có giá trị trong công việc kinh doanh này
Có thể định nghĩa một cách chung nhất thì “Dữ liệu lớn” là một tập hợp của các tập dữ liệu lớn và/hoặc phức tạp mà những phương pháp hiện tại của CNTT chưa thể phân tích và xử lý tốt được chúng
Trang 6Dữ liệu lớn bao gồm cả tính chất về độ lớn lưu trữ (Volume), đa dạng, phức tạp (Variety) và tăng trưởng nhanh chóng (Velocity)[8]
Dữ liệu lớn thường đề cập tới các kiểu dữ liệu như sau:
- Dữ liệu doanh nghiệp truyền thống: bao gồm các thông tin khách hàng, dữ liệu giao dịch, dữ liệu kế toán tổng hợp
- Dữ liệu cảm biến hoặc máy sinh dữ liệu: bao gồm các bản ghi chi tiết các cuộc gọi, nhật ký web, hệ đo thông minh, dữ liệu từ các cảm biến, các hệ thống dữ liệu truyền thống
- Dữ liệu xã hội: bao gồm các luồng thông tin phản hồi của khách hàng, dữ liệu từ các trang nhật ký và mạng xã hội như Twitter, Facebook,
1.1.2 Giải pháp dữ liệu lớn của một số nhà cung cấp dịch vụ:
* Giải pháp Big data của Oracle
Oracle là nhà cung cấp đầu tiên cung cấp một giải pháp hoàn chỉnh và tích hợp để giải quyết đầy đủ yêu cầu về dữ liệu lớn của doanh nghiệp Các dữ liệu lớn của Oracle tập trung trên ý tưởng có thể phát triển kiến trúc dữ liệu doanh nghiệp hiện tại để kết hợp dữ liệu lớn và cung cấp giá trị kinh doanh, linh hoạt, hiệu suất để giải quyết yêu cầu về dữ liệu lớn với doanh nghiệp Với việc giới thiệu ứng dụng Quản lý Dữ liệu lớn (Oracle Big Data Appliance), Oracle cung cấp một giải pháp hoàn chỉnh đáp ứng mọi yêu cầu liên quan đến dữ liệu lớn của doanh nghiệp Thiết bị xử lý dữ liệu lớn Oracle Big Data Appliance, cùng với máy chủ cơ sở dữ liệu Oracle Exadata và Máy chủ thông tin hỗ trợ ra quyết định Oracle Exalytics mới, giúp khách hàng có để thu thập, tổ chức, phân tích và khai thác tối đa giá trị của dữ liệu lớn
Oracle Big Data Appliance có thể được tích hợp dễ dàng với cơ sở dữ liệu Oracle Database 11g, Oracle Exadata Database Machine và Oracle Exalytics Business Intelligence Machine
Trang 7* Giải pháp Big Data của Microsoft
Giải pháp Big Data của Microsoft dựa trên nền tảng SQL Server, Hadoop, Windows Azure và Windows Server, cung cấp các công cụ quản lý,
mở rộng nhằm đạt được cái nhìn sâu sắc hơn về dữ liệu của doanh nghiệp, thúc đẩy hiệu quả kinh doanh
Microsoft Big Data cho phép quản lý hầu như bất kỳ loại dữ liệu nào, bất kể kích thước hoặc vị trí Microsoft sử dụng SQL Server 2012 và SQL Server Parallel Data Warehouse để quản lý các dữ liệu lớn có cấu trúc Với dữ liệu phi cấu trúc, Microsoft sử dụng Hadoop trên Windows Azure và Windows Server, sẽ cho phép xử lý dữ liệu phi cấu trúc với quy mô hàng petabyte Với dữ liệu luồng, Microsoft sử dụng công cụ SQL Server StreamInsight để quản lý các dữ liệu luồng với thời gian thực
Microsoft Big Data cho phép làm phong phú thêm dữ liệu với bất kỳ loại dữ liệu nào: Cửa hàng dữ liệu Azure Marketplace cho phép các doanh nghiệp có được dữ liệu của bên thứ ba; bộ công cụ phòng thí nghiệm Data Explorer Azure dành cho các tập dữ liệu đề xuất và Data Hub dành cho việc tạo ra các cửa hàng dữ liệu riêng
Cho một CSDL đồ thị D, một hàm hỗ trợ của đồ thị G trong D, được viết
là sup(G, D) là số lượng các đồ thị trong D có chứa đồ thị G như một cạnh tạo nên đồ thị con Cho giá trị ngưỡng hỗ trợ cực tiểu smin, vấn đề khai phá đồ thị
con thường xuyên bao gồm việc tìm ra các đồ thị liên thông thường xuyên trong D
Có hai nhóm phương pháp được đề xuất để giải quyết vấn đề trên, đó là: nhóm phương pháp khai phá theo chiều rộng và nhóm phương pháp khai phá theo chiều sâu:
Trang 8Một số kỹ thuật khai phá theo chiều rộng như: kỹ thuật AGM được phát triển bởi Inokuchi, kỹ thuật FSG được đề xuất bởi Kuramochi và Karypis Các kỹ thuật này khai phá đồ thị theo từng mức trong đó mỗi mức chứa các đồ thị có nhiều hơn một đỉnh hoặc một cạnh so với mức trước đó Các đồ thị thường xuyên của mức tiếp theo được tìm ra bằng cách, đầu tiên tạo ra các đồ thị ứng viên với các cặp đồ thị của mức hiện tại, sau đó lọc ra các đồ thị không thường xuyên Ưu điểm chính của những kỹ thuật này dựa trên nguyên tắc ưu tiên bằng cách một đồ thị chỉ được xem là thường xuyên nếu tất cả các đồ thị con của nó là thường xuyên Vì một đồ thị được tìm ra sau khi tìm ra các đồ thị con của nó, do đó có thể loại bỏ các đồ thị không thường xuyên mà không cần phải tính toán hàm hỗ trợ của chúng bằng cách kiểm tra nếu các đồ thị con của chúng là thường xuyên Tuy nhiên, nhóm phương pháp tìm kiếm theo chiều rộng có hai vấn đề đó là: sinh ra nhiều đồ thị ứng viên và yêu cầu về lưu trữ các đồ thị thường xuyên ở mỗi mức
Nhóm phương pháp khai phá theo chiều sâu đã khắc phục những vấn
đề này bằng cách tìm kiếm đồ thị theo chiều sâu, có thể kể đến một số thuật toán như: gSpan được đề xuất bởi Han và Yan, FFSM được đề xuất bởi Huan,
và GASTON bởi Nijssen và Kok Tư tưởng của nhóm phương pháp này bắt đầu với một đồ thị có chứa một đỉnh hoặc một cạnh thường xuyên, những kỹ thuật này được mở rộng đệ quy bằng cách thêm mới một cạnh giữa hai đỉnh hiện tại hoặc thêm mới một đỉnh kết nối tới một đỉnh hiện tại khác Vì một đồ thị là không thường xuyên hơn các đồ thị con của nó, do đó không cần mở rộng tới các đồ thị không thường xuyên Các đồ thị không thường xuyên có thể được bỏ bớt mà không xảy ra rủi ro gì trong quá trình khai phá
Chương 1 trình bày tổng quan về khai phá dữ liệu đồ thị trong đó có nêu vấn đề của khai phá dữ liệu đồ thị là tìm những thông tin hữu ích trong một
Trang 9lượng lớn dữ liệu, đưa ra định nghĩa chung nhất về dữ liệu lớn (Big Data) và các giải pháp Big Data của Oracle và Microsoft
Trình bày tổng quan về khai phá đồ thị con thường xuyên theo hai nhóm phương pháp đó là nhóm phương pháp khai phá theo chiều rộng và nhóm phương pháp khai phá theo chiều sâu cùng với ưu và nhược điểm của hai nhóm phương pháp này
Trang 10CHƯƠNG 2: PHÁT HIỆN CÁC CẤU TRÚC CON THƯỜNG XUYÊN
Chúng ta biểu diễn tập đỉnh của đồ thị g bằng V(g) và tập cạnh bằng
E(g) Một hàm nhãn L ánh xạ một đỉnh hoặc một cạnh tới một nhãn Một đồ
thị glà một đồ thị con của đồ thị g ’ khác nếu tồn tại một đồ thị con đẳng cấu từ
• µ:V→L V biểu diễn một hàm ghi nhãn node
• ν:E→L E biểu diễn một hàm ghi nhãn cạnh
Tập V có thể được coi là một tập các định danh nút và thường được chọn bằng V = {1, , | V |} Trong khi V xác định các nút, tập các cạnh E thể hiện cấu trúc của đồ thị Đó là một nút u ∈ V được kết nối với một nút v ∈ V bằng
một cạnh= (u, v) nếu (u, v) ∈ E Hàm ghi nhãn có thể được sử dụng để tích
hợp thông tin về các node và các cạnh vào trong các đồ thị bằng cách gán các
thuộc tính từ L V và L E tới các node và các cạnh tương ứng
Đồ thị được định nghĩa ở trên bao gồm một số trường hợp đặc biệt Để định nghĩa đồ thị vô hướng, cho một thể hiện yêu cầu u, v Echo mỗi cạnh
E
v
u, sao cho ν(u, v) = ν(v, u) Trong trường hợp đồ thị không thuộc tính,
bảng chữ cái nhãn được xác định bởi L V L E , bởi vậy mỗi node và mỗi
Trang 11Ngƣợc lại, đồ thị g 2 đƣợc gọi là một đồ thị con của g 1 đôi khi điều kiện
thứ hai của định nghĩa này đƣợc thay thế bằng E 1⊆ E 2
2.1.3 Định nghĩa 2.3 (Graph Isomorphism):
Cho g 1 =(V 1 ,E 1 ,µ 1 ,ν 1 ) và g 2 =(V 2 ,E 2 ,µ 2 ,ν 2 ) là các đồ thị.Một đồ thị đẳng
cấu giữa g1 và g 2 là một hàm song ánh f:V 1 →V 2 thỏa mãn:
• Cho mỗi cạnh e 1 =(u, v)∈E 1 , tồn tại một cạnh e 2 =(f (u), f (v))∈ E 2 sao
Trang 12Hình 2.1 (b) đẳng cấu với (a), (c) đẳng cấu với một đồ thị con của (a)
2.1.4 Định nghĩa 2.4 (Subgraph Isomorphism):
Cho g 1 =(V 1 ,E 1 ,µ 1 ,ν 1 ) và g 2 =(V 2 ,E 2 ,µ 2 ,ν 2 ) là các đồ thị Một hàm đơn ánh f:V 1 →V 2 đƣợc gọi là một đồ thị con đẳng cấu từ g 1 tới g 2 nếu tồn tại một đồ
thị con g⊆g 2 sao cho f là một đồ thị đẳng cấu giữa g 1 và g
Một đồ thị con đẳng cấu tồn tại từ g 1 tới g 2 nếu đồ thị g 2 lớn hơn có thể
trở thành một đồ thị đẳng cấu tới đồ thị g 1 nhỏ hơn bằng cách loại bỏ một số node và một số cạnh Để minh họa hai đồ thị với một đồ thị con đẳng cấu giữa chúng xem hình 2.1(a) và hình 2.1(c)
2.1.5 Định nghĩa 2.5 (Maximum Common Subgraph, MCS):
Cho g 1 =(V 1 ,E 1 ,µ 1 ,ν 1 ) và g 2 =(V 2 ,E 2 ,µ 2 ,ν 2 ) là các đồ thị Một đồ thị g
con đẳng cấu từ g tới g 1 và từ g tới g 2 Một đồ thị con phổ biến của g 1 và g 2
đƣợc gọi là đồ thị con phổ biến cực đại (MCS) nếu không tồn tại một đồ thị
con phổ biến khác của g 1 và g 2 mà có các node nhiều hơn g
Hình 2.2.Hai đồ thị: (a) và (b) và một đồ thị con phổ biến cực đại (c)
Trang 132.1.6 Định nghĩa 2.6 (Frequent Graph)
Cho một tập dữ liệu đồ thị có gán nhãn D={G 1 ,G 2 , ,G n },support(g) (
hoặc frequency(g)) là phần trăm (hoặc số) của các đồ thị trong D trong đó g
là một đồ thị con Một đồ thị là thường xuyên nếu độ hỗ trợ của nókhông nhỏ
hơn ngưỡng hỗ trợ tối thiểu minsupport
Hình 2.3 Mẫu cơ sở dữ liệu đồ thị
Hình 2.4 Các đồ thị con thường xuyên
Ví dụ 2.1: Hình 2.3 biểu diễn một mẫu cơ sở dữ liệu đồ thị biểu diễn cấu
trúc hóa học , hình 2.4 mô tả hai đồ thị con thường xuyên trong tập dữ liệu
này nếu độ hỗ trợ tối thiểu minsupport được thiết lập là 66,6%
Cây tự do (free tree) là một đồ thị vô hướng liên thông và phi chu trình Cây có gốc (gọi tắt là cây) là cây tự do, trong đó có một đỉnh đặc biệt được gọi là gốc thỏa mãn các tính chất sau:
1 Tồn tại một đỉnh phân biệt không có các đỉnh đầu vào được gọi là nút gốc,
2 Mỗi đỉnh khác gốc đều có đúng một đỉnh vào,
3 Có đúng một đường đi từ gốc tới các đỉnh khác của cây
Trang 14Trong cấu trúc cây, đỉnh (nút) v trên đường đi từ gốc tới w được gọi là tiền bối (ancestor) của w, còn w được gọi là hậu duệ (descendent) của v Nếu
w liền kề với v (có cạnh nối v với w) thì v là cha của w, ngược lại w là con của v Kích thước của cây t được định nghĩa là số đỉnh của cây, ký hiệu là |t|
Để tiện lợi, ta qui định cây có kích thước k sẽ gọi là k-cây Trong cây, một đỉnh v không phải là lá (không có đỉnh con) có bậc, ký hiệu là deg(v), được xác định chính là số đỉnh con của v Hiển nhiên, nếu v là lá thì deg(v) = 0 Chiều cao của cây t, ký hiệu là high(t), là độ dài của đường đi dài nhất trên cây (bắt đầu từ gốc) Thông thường, đối với k-cây thì độ dài của cây h
k Một đỉnh trên cây được gọi là ở mức m nếu đường đi từ gốc tới nó có độ dài (số cạnh) là m Đỉnh gốc có mức là 0 Đỉnh không phải là gốc, không phải
là lá được gọi là đỉnh trong của cây
Các cây có thể phân chia thành hai loại: cây có thứ tự và cây không có thứ
tự Một cây có thứ tự (rooted ordered tree) là một cây, trong đó các đỉnh con
của mỗi đỉnh đều được xếp theo thứ tự từ trái qua phải, ngược lại được gọi là cây không có thứ tự
Ví dụ 2.2: xét các cây có thứ tự, trong đó sử dụng các nhãn để ký hiệu cho
Trang 15(e) (f) (g) (h)
Hình 2.5: Tám cây không có thứ tự nhận đƣợc từ một cây có thứ tự
Một cây t (với tập đỉnh Vt và tập cạnh Et) đƣợc gọi là cây con của cây s (với tập đỉnh Vs và tập cạnh Es) nếu và chỉ nếu:
V để thể hiện quan hệ anh em (sibling relation)nhƣ sau:
v1 ≼ v2 nếu v1, v2 là hai đỉnh con của cùng một cha và v2 là anh (chị) của v1
Ví dụ trên cây (a) ở Hình 2.5, gốc đƣợc gắn nhãn là A có 2 đỉnh con cùng có nhãn là B ứng với 2 cây con có quan hệ anh em với nhau và có thể cây con bên phải là anh của cây con bên trái Hiển nhiên đổi với cây có thứ tự thì việc đổi vị trí của các đỉnh có quan hệ ≼sẽ tạo thành cây có thứ tự mới Nếu t là cây con (thực sự - proper) của s thì s đƣợc gọi là cây trên (supertree) (thực sự) của t
Trang 16Lưu ý cây con và cây trên đều áp dụng cho cả cây không thức tự và cây
có thức tự Hiển nhiên, đối với cây có thứ tự s, thứ tự từ trái qua phải của các đỉnh con của mỗi đỉnh sẽ tạo ra thứ tự bộ phận trong cây s
Cây con định nghĩa như trên còn được gọi là cây con cảm sinh (induced subtree)
Một cây t (với tập đỉnh Vt và tập cạnh Et) được gọi là cây con nhúng trong cây s (với tập đỉnh Vt và tập cạnh Et) khi và chỉ khi:
1 Vt Vs
2 (v1, v2) Et (nghĩa là, v1 là cha của v2 trong t) chỉ khi v1 là tổ tiên của v2 trong s
3 Tất cả các nhãn của Vt được bảo toàn trong s
Cây t và s được gọi là đẳng cấu với nhau (isomorphism) nếu tồn tại một ánh xạ 1-1 giữa hai tập đỉnh của t, s và bảo toàn được các nhãn của đỉnh và các cạnh Tự đẳng cấu (automorphism) là một đẳng cấu của cây t vào chính nó Một cây con t đẳng cấu với cây s nếu tồn tại một đẳng cấu của t với một cây con nào đó của s
Dễ dàng nhận thấy từ một cây có thứ tự có thể suy ra nhiều cây không có thứ tự đẳng cấu với nhau Những cây trên Hình 2.5 là đẳng cấu với nhau
Do vậy, từ một cây có thứ tự ta muốn xây dựng một dạng chuẩn biểu diễn duy nhất cho những cây không có thứ tự, đẳng cấu với nhau
Lưu ý rằng, đối với cây được gắn nhãn, hoàn toàn không mất tính tổng quát ta có thể giả thiết rằng tất cả các nhãn của các cạnh là đồng nhất, bởi vì mỗi cạnh đều nối một đỉnh với cha của nó, do vậy ta có thể xem mỗi cạnh đó cùng với nhãn trên cạnh là một phần của đỉnh con Đối với gốc không có cạnh
đi tới nó, ta giả thiết đó là cạnh null nối với gốc Từ đây trở về sau, ta giả thiết
rằng các nhãn trên các cạnh là tương đương, nghĩa là không cần gắn nhãn cho các cạnh mà chỉ cần xét các nhãn trên các đỉnh là đủ
Trang 172.2.1 Dạng chuẩn của cây theo chiều rộng:
Không mất tính tổng quát ta có thể giả thiết rằng có hai ký hiệu đặc biệt
“$” và “#” không nằm trong bảng chữ cái được sử dụng để gắn nhãn cho các đỉnh của cây Trên tập ’ = {$, #} ta giả thiết có một quan hệ thứ tự toàn phần
1 Giữa các nhãn v, w trên các đỉnh của cây luôn có quan hệ v w hoặc w
v
2 v $ #, với v
Ta định nghĩa mã chuỗi theo chiều rộng BFSE (Breadth-First String Encoding) của cây có thứ tự theo thuật toán duyệt cây theo chiều rộng như sau:
Thuật toán 2.1 Xác định mã chuỗi theo chiều rộng của cây t có thứ tự
OrderedTree tập (kiểu dữ liệu) các cây có thứ tự và là phép ghép hai chuỗi
for(int h = 1; h <= high(t); h++) //Duyệt từ trên (gốc) xuống dưới
//Liệt kê các nhãn của các đỉnh con của đỉnh v ở mức h-1 từ trái qua phải:
Trang 18}
Đổi ký hiệu „$‟ cuối của BFCF thành „#‟;
}
2.2.2 Dạng chuẩn của cây theo chiều sâu:
Mã chuỗi theo chiều sâu DFSE (Depth-First String Encoding) của cây có thứ tự là chuỗi các nhãn nhận được theo phương pháp duyệt cây theo chiều sâu, trong đó “$” biểu diễn cho “quay về đỉnh cũ” (backtrack) và “#” là kết thúc của chuỗi mã
Thuật toán xác định mã chuỗi theo chiều sâu của một cây có thứ tự được thực hiện theo phương pháp đệ qui như sau
Thuật toán 2.2 Xác định mã chuỗi theo chiều sâu của cây t có thứ tự
OrderedTree tập (kiểu dữ liệu) các cây có thứ tự và là phép ghép hai chuỗi
}
Trang 19Ghép ký hiệu „#‟ vào cuối của DFSE;
}
Nền tảng tổng quát của phương thức dựa trên Apriori được phác thảo
trong thuật toán 2.3 Trong đó S k là tập cấu trúc con thường xuyên kích thước
k Thuật toán 2.3 chấp nhận một mức khai phá phương pháp luận Tại mỗi
bước lặp, kích thước của cấu trúc con thường xuyên phát hiện mới được tăng lên bằng 1.Cấu trúc con mới được phát sinh lần đầu bằng phép hòa nhập hai
đồ thị đồng dạng nhưng khác nhau về đồ thị con thường xuyên được phát hiện trong lời gọi cuối cùng của thuật toán 2.3 Thủ tục phát sinh ứng viên được biểu diễn trên dòng 4 các đồ thị mới được hình thành và sau đó được kiểm tra tần suất xuất hiện của chúng Các đồ thị con thường xuyên được phát hiện và
sử dụng để phát sinh các ứng viên lớn hơn trong các vòng lặp kế tiếp
Thuật toán 2.3 Apriori(D, min_support,S k) [10,tr.101]
Ý tưởng chính của thuật toán khai phá cấu trúc con thường xuyên dựa trên Apriori là bước phát sinh các ứng viên.Phát sinh các ứng viên cho tập thường xuyên là không phức tạp.Ví dụ độ hỗ trợ ta có hai tập thường xuyên
kích thước là 3: (abc) và (bcd)tập thường xuyên ứng viên kích thước là 4 phát
Trang 20sinh từ hai tập trên là (abcd) Nghĩa là sau khi tìm được hai tập thường xuyên
là (abc) và (bcd)ta nên kiểm tra tần suất của (abcd).Tuy nhiên vấn đề phát
sinh ứng viên trong khai phá cấu trúc con thường xuyên trở nên khó hơn so với trường hợp khai phá tập thường xuyên vì có rất nhiều cách để hòa nhập hai cấu trúc con
AGM [5] đề xuất một đỉnh dựa trên phương thức phát sinh ứng viên đó
là tăng kích thước cấu trúc con lên 1 đỉnh tại mỗi vòng lặp của thuật toán 2.3
Hai đồ thị con thường xuyên kích thước k chỉ được hòa nhập khi hai đồ thị này có cùng đồ thị con kích thước (k−1).Ở đây kích thước của một đồ thị
nghĩa là số các đỉnh trong một đồ thị.Các ứng viên mới được thành lập bao
gồm các đồ thị con kích thước (k−1) và bổ sung hai đỉnh từ hai mẫu kích thước k Vì nó không được xác định mặc dù có một cạnh nối hai đỉnh bổ
sung, chúng thực sự có thể hình thành hai đồ thị con ứng viên Hình 2.6 mô tả hai cấu trúc con hòa nhập bởi hai dãy
đây kích thước của một đồ thị nghĩa là số các cạnh trong một đồ thị Các ứng
viên mới được thành lập bao gồm core và hai cạnh bổ sung từ các mẫu kích thước k Hình 2.7 biểu diễn các ứng viên tiềm năng được hình thành bởi hai
mẫu cấu trúc Mỗi ứng viên có hơn một cạnh so với hai mẫu Ví dụ này minh
Trang 21họa độ phức tạp của phép hòa nhập hai cấu trúc từ một mẫu ứng viên lớn.Trong [4] Kuramochi và Karypis minh họa hai trường hợp phát sinh ứng viên khác
Hình 2.7 FSG [4]
Các thuật toán dựa trên Apriori có chi phí đáng kể tại phép hòa nhập hai
cấu trúc con thường xuyên kích thước k để phát sinh các đồ thị ứng viên kích thước k+1 Để tránh những chi phí như vậy, những thuật toán không dựa trên
Apriori gần đây đã được phát triển, hầu hết các thuật toán này áp dụng phương pháp luận sự phát triển mẫu mà có mục đích để mở rộng các mẫu trực tiếp từ một mẫu đơn
Một đồ thị g có thể được mở rộng bằng cách thêm vào một cạnh mới e
Đồ thị mới được hình thành được ký hiệu bởi gx e Cạnh e có thể hoặc
không đưa ra một đỉnh mới tới g Nếu e đưa ra một đỉnh mới chúng ta ký hiệu
đồ thị mới bởi gxf e , ngược lại gxb e trong đó f hoặc b cho biết rằng sự
mở rộng theo hướng trước hoặc sau
Thuật toán 2.4.(PatternGrowth) minh họa nền tảng tổng quát của thuật
toán khai phá cấu trúc con thường xuyên dựa vào sự phát triển mẫu Cho mỗi
đồ thị g được phát hiện nó thực hiện việc mở rộng đệ quy cho tới khi tất cả các đồ thị con thường xuyên nhúng với g được phát hiện Đệ quy dừng khi
không có đồ thị con thường xuyên được phát sinh nữa.Thuật toán 2.4 đơn giản nhưng không hiệu quả Vấn đề là sự kém hiệu quả ở việc mở rộng đồ
Trang 22thị.Cùng một đồ thị có thể được phát hiện nhiều lần Ví dụ có thể tồn tại n đồ thị (n-1)- cạnh khác nhau có thể được mở rộng tới cùng đồ thị n – đỉnh Việc
phát hiện lặp đi lặp lại cùng một đồ thị là không hiệu quả, một đồ thị được
phát hiện lại lần thứ hai được gọi là duplicate graph Mặc dù dòng 1 của thuật
toán 2.4 giúp loại bỏ những đồ thị trùng lặp, các ứng viên và sự trùng lặp các
đồ thị có thể là nguyên nhân tăng thêm khối lượng công việc Để giảm bớt các
ứng viên của duplicate graph, mỗi đồ thị thường xuyên nên được mở rộng ít
nhất có thể
Thuật toán2.4 PatternGrowth(g, D, min_support, S) [10,tr.103]
Phát hiện các cấu trúc con thường xuyên là một trong những nhiệm vụ
cơ bản trong khai phá dữ liệu có cấu trúc từ việc phát hiện các mẫu có thể được sử dụng cho những đặc trưng của những bộ dữ liệu có cấu trúc, phân loại và phân nhóm các cấu trúc phức tạp, xây dựng các chỉ số đồ thị và thực hiện việc tìm kiếm tương tự trong cơ sở dữ liệu đồ thị lớn
Chương 2 trình bày cơ sở lý thuyết đồ thị và tổng quan về các phương pháp hiệu quả khai phá các cấu trúc con thường xuyên đồng thời đưa ra hai cách tiếp cận đó là tiếp cận dựa trên Apriori và tiếp cận dựa trên sự phát triển mẫu
Trang 23CHƯƠNG 3: CÁC THUẬT TOÁN PHÁT HIỆN ĐỒ THỊ CON THƯỜNG XUYÊN
3.1 CHIẾN LƯỢC TÌM KIẾM THEO CHIỀU RỘNG:
3.1.1 Thuật toán SUBDUE
Subdue được B Holder đề xuất năm 1988, sử dụng tìm kiếm tia để phát hiện các đồ thị con thường xuyên Kết quả báo cáo là các cấu trúc con đã được nén Nó là một phiên bản gần đúng của FSM và không dựa trên độ hỗ
trợ support
* Tìm kiếm tia (Beam Search)
Tìm kiếm tia là phiên bản đầu tiên tốt nhất của tìm kiếm bề rộng đầu
tiên, tại mỗi mức tìm kiếm chỉ k con tốt nhất được mở rộng k được gọi là
Beam Search
* Đồ thị nén(Graph Compression)
Subdue nén các đồ thị bằng cách thay các đồ thị con với các con trỏ
Hình 3.1 Đồ thị hình A sau khi nén được biểu diễn hình B
* Chiều dài mô tả nén(Compressed Description Length)
Chiều dài mô tả của một đồ thị G là số nguyên các bit yêu cầu để biểu diễn đồ thị G trong một số định dạng nhị phân, ký hiệu bằng DL(G)
Chiều dài mô tả nén của một đồ thị G với một số đồ thị con S là số nguyên các bit yêu cầu để biểu diễn G sau khi nó đã được nén sử dụng S, ký hiệu bằng DL(G|S)
Trang 26toán nGraph là tổng số đồ thị trong tập dữ liệu và nSubGraph là số lần một
subGrap cụ thể suất hiện trong tập dữ liệu Độ hỗ trợ “Sup” của một đồ thị
con cụ thể đƣợc định nghĩa: Sup =nSubGraph÷nGraph
Hình 3.2–Biểu diễn các đồ thị trong tập dữ liệu
Trang 27Vấn đề đồ thị đẳng cấu cần được giải quyết trong khi đếm độ hỗ trợ của đồ thị con trong tập dữ liệu Hai đồ thị là đẳng cấu nếu đỉnh và nhãn cạnh là như nhau và cùng hướng Trong ví dụ đồ thị có hướng được giả định từ số đỉnh
thấp đến số đỉnh cao hơn
Ví dụ3.2 Nếu đếm số đồ thị con xuất hiện A-E-B trong ba đồ thị, thì kết quả
là 3 nhưng thực sự chỉ có hai đồ thị một bao gồm hai đồ thị con A-E-B phải được tính một lần vấn đề này được loại bỏ bằng cách tìm sự khác biệt giữa đồ
thị con trên đồ thị
* Mã giả thuật toán 3.2:[8, tr.11-12]
Trang 283.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)
Trang 29Hì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à G T
Trang 30Giả 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)then e1 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ự (e ) có thể 1
được xây dựng dựa trên , như là T e i T e i 1, trong đó i 0, , E 1 ( )e i
đượ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 l i l(,j) l j trong đó l i, l jlà nhãn của v và i v , j l ( j i, )là nhãn cạnh giữa chúng
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 ( ) trong tập nhãn L) (L) thì sự kết hợp theo thứ tự từ điển của
T
và là một thứ tự tuyến tính (L ) trên tập e E T L L L
+ Thứ tự từ điển là một thứ tự tuyến tính được định nghĩa như sau:
Trang 31Nếu Code(G ,T ) (a0,a1, ,a m) và Code(G ,T ) (b0,b1, ,b n)
* Đị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
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, ,a m)và mã DFS có giá trị bất kỳ
),, ,
,
(a0 a1 a m 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)
Trang 32Cho 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 n th 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
Trang 33Thuật toán 3.3: GraphSet_Projection(D,S) [9,tr.5-6]
Thủ tục con : Subgraph Mining(D,S,s)
E
V, tương ứng là tập nhãn các đỉnh và tập nhãn các cạnh
Trang 34Việc gán nhãn l định nghĩa ánh xạ V V và E E Không mất tính tổng quát ta giả sử rằng có một thứ tự tuyệt đối mỗi nhãn trên tập V, E
* Định nghĩa 3.7:
' ' ' '
'
'
,,,
'
u l u l V
v u l v u l E v
'
G cũng xem nhƣ một đồ thị con của G
Hình 3.5: ví dụ cho hai đồ thị gán nhãn và một đồ thị con đẳng cấu Đồ thị P
có bốn node p1,p2,p3,p4đồ thị Q có ba node q1,q2,q3 nhãn của các đỉnh đƣợc xác định trong vòng tròn và nhãn của các cạnh đƣợc xác định dọc theo cạnh Chúng ta chỉ xét thứ tự tuyệt đối :
0
y x
b
a Ánh xạ q1 p3,q2 p1,q3 p2 biểu diễn một đồ thị con đẳng cấu từ Q đến P Đó là một tổng của bốn đồ thị con đẳng cấu từ Q
đến P Tuy nhiên độ Support của Q trong GD P là 1
Trang 35Hình 3.5 Biểu diễn hai đồ thị con đẳng cấu
* Định nghĩa 3.8:
Một đồ thị gán nhãn G V,E, V, E,l đƣợc gọi là đẳng cấu với đồ
,,,
u
'
))(),(()
,(,
u
))(),(()),((,),
v f u f l v u l E v
G nếu tồn tại một đồ thị con ''
G của G sao cho