Xây dựng cây TWUI-tree

Một phần của tài liệu khai phá tập mục lợi ích cao trong cơ sở dữ liệu lớn (Trang 53 - 57)

Định nghĩa 3.1: (Cây TWUI-tree): cây TWUI-tree là một cấu trúc cây tiền tố

(prefix-tree) được định nghĩa như sau:

Cây bao gồm một nút gốc nhãn Null, tập các cây con của nút gốc và một bảng đầu mục.

Mỗi nút của cây gồm 3 trường: tên mục dữ liệu, giá trị twu của mục dữ liệu và con trỏ (trỏ đến nút tiếp theo cùng nhãn trên cây hoặc là null nếu không có).

Mỗi mục của bảng đầu mục gồm hai trường: tên mục dữ liệu và con trỏ (trỏ đến nút đầu tiên biểu diễn mục dữ liệu này trên cây). Các mục dữ liệu trong bảng đầu mục sắp xếp giảm dần theo lợi ích TWU của chúng.

Dựa trên định nghĩa 2.13, luận văn đề xuất thuật toán xây dựng cây TWUI- tree như sau:

Thuật toán xây dựng cây TWUI-tree:

Input: Cơ sở dữ liệu giao tác DB, ngưỡng lợi ích minutil. Out put: Cây TWUI-tree.

(Cây nén các giao tác của cơ sở dữ liệu DB để khai phá tập mục lợi ích TWU cao)

Method: Cây TWUI-tree xây dựng như sau:

Duyệt cơ sở dữ liệu lần thứ nhất:

Tính lợi ích các thao tác, lợi ích TWU của từng mục dữ liệu.

Chọn ra tập U các mục dữ liệu có lợi ích TWU cao, sắp tập U theo thứ tự giảm dần của lợi ích TWU được danh sách UList và xây dựng bảng đầu mục của cây.

Tạo cây: Tạo nút gốc R của cây.

Duyệt cơ sở dữ liệu lần thứ 2, với mỗi thao tác T trong DB, chọn ra các mục dữ liệu có lợi ích TWU cao, sắp các mục này theo thứ tự của UList. Giả sử danh sách đã sắp của T là ([x|L]), ở đó x là mục dữ liệu đầu và L là phần còn lại của danh sách, gọi hàm insert_tree([x|L],R).

Giải thích thực hiện của hàm insert_tree([x|L],R):

chỉnh trường twu của nút N như sau: N.twu:= N.twu + tu(T); Ngược lại, tạo nút N mới là nút con của nút R, nhãn của nút N là x, trường twu của nút N gán là tu(T), N.twu:= tu(T), bổ sung thêm đường liên kết của các nút cùng nhãn đến nút N này. Nếu N khác rỗng thì gọi đệ quy hàm insert_tree(L,N).

Minh hoạ xây dựng cây TWUI-tree qua xét cơ sở dữ liệu bảng 3.1và 3.2, ngưỡng lợi ích bằng 30% của tổng lợi ích, minutil = 30% x 398 = 119,4.

Bảng 3.1: Lợi ích các giao tác của cơ sở dữ liệu

TID A B C D E tu T1 0 12 2 0 2 72 T2 0 12 0 2 1 71 T3 2 0 1 0 1 12 T4 1 0 0 2 1 14 T5 0 0 4 0 2 14 T6 1 2 0 0 0 13 T7 0 20 0 2 1 111 T8 3 0 25 6 1 57 T9 1 2 0 0 0 13 T10 0 0 16 0 1 21 Tổng 8 48 48 12 10 398

Bảng 3.2: Lợi ích TWU của các mục dữ liệu Mục dữ liệu twu A 109 B 280 C 176 D 253 E 372

Bảng 3.3: Các mục dữ liệu có lợi ích TWU cao sắp giảm dần theo twu Mục dữ liệu twu E 372 B 280 D 253 C 176

Duyệt cơ sở dữ liệu lần thứ nhất, tính được lợi ích của các giao tác (bảng 3.1), lợi ích TWU của từng mục dữ liệu (bảng 3.2). Vì twu(A) = 109 < minutil nên ta loại mục A, các mục còn lại sắp theo thứ tự giảm dần của lợi ích TWU và nhận được bảng 3.3. Từ bảng 3.3 xây dựng được bảng đầu mục của cây TWUI-tree.

Duyệt cơ sở dữ liệu lần thứ 2, mỗi thao tác được đọc ra, bỏ đi các mục dữ liệu có lợi ích TWU thấp, sắp các mục còn lại theo thứ tự giảm dần của lợi ích TWU. Giao tác thứ nhất T1 = BCE được sắp thành EBC, lợi ích giao tác tu = 72 và sinh ra nhánh thứ nhất trên cây (hình 3.1). Trong hình 3.1, biểu diễn nút của cây là một hình chữ nhật gồm: tên mục dữ liệu, lợi ích twu. Giao tác T2 = EBD lưu lên cây có chung đoạn EB với đường đi đã có, trường twu của 2 nút E và B tăng thêm 71 là lợi ích của giao tác T2. Hình 3.2 là cây sau khi lưu 2 giao tác T1 và T2. Hình 3.3 biểu diễn cây khi xây dựng xong.

Bảng 3.4: Các mục dữ liệu trong giao tác sắp giảm dần theo lợi ích TWU.

TID E B D C tu T1 2 12 0 2 72 T2 1 12 2 0 71 T3 1 0 0 1 6 T4 1 0 2 0 11 T5 2 0 0 4 14 T6 0 2 0 0 10 T7 1 20 2 0 111 T8 1 0 6 25 48 T9 0 2 0 0 10 T10 1 0 0 16 21 Tổng 10 48 12 48 374

Hình 3.1: Cây TWUI-tree sau khi lưu thao tác T1.

Hình 3.2: Cây TWUI-tree sau khi lưu thao tác T1 và T2.

Ta thấy rằng các giao tác của cơ sở dữ liệu bảng 3.1 và 3.2 đã được lưu lên cây TWUI-tree, cây chứa đủ thông tin để khai phá tập mục lợi ích TWU cao.

Tính chất của cây TWUI-tree:

Mệnh đề 3.1: Trường twu của bất kỳ nút nào trong cây TWUI-tree cũng không nhỏ

hơn trường twu của mọi nút con của nó.

Từ cách xây dựng cây, mỗi giao tác được sắp các mục dữ liệu theo thứ tự giảm dần của lợi ích TWU rồi lưu thành một đường đi trên cây, khi lưu lên cây lại bắt đầu từ gốc của cây (từ trên xuống) nên tính chất trên là hiển nhiên.

Cũng từ các xây dựng cây như vậy, đường đi từ một nút lên nút gốc của cây xác định một mẫu có lợi ích TWU bằng giá trị trường twu tại nút đó. Ví dụ, trong cây hình 3.3, đường đi từ nút B đầu tiên lên nút gốc xác định mẫu BE có twu(BE) = 254.

Một phần của tài liệu khai phá tập mục lợi ích cao trong cơ sở dữ liệu lớn (Trang 53 - 57)

Tải bản đầy đủ (PDF)

(74 trang)