Thuật tốn tính nhanh wus của các tập mục

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát triển một số thuật toán hiệu quả khai thác tập mục trên cơ sở dữ liệu có sự phân cấp các mục (Trang 101 - 102)

3.3.2. Tính tidset nút cha từ tidset nút con

Việc thêm các mục cha vào CSDL khi khai thác tập mục trên CSDL phân cấp theo các phƣơng pháp trƣớc đây làm cho bộ nhớ tăng lên và tốn thời gian quét và chèn dữ liệu. Trong phần này, luận án đề xuất giải pháp tính tidset mục cha thơng qua các mục con của nó trên cây phân cấp - là các mục có trong CSDL gốc.

Mệnh đề 3.2. Tidset của mục cha trên cây phân cấp đƣợc xác định bằng

hợp tidset các mục con của nó ở nút lá.

Nhƣ vậy, tidset(X) = tidset(X1) tidset(X2) ... tidset(Xk). Trong đó X1, X2,..., Xk là các mục con ở nút lá của mục X.

Ví dụ 3.7: Xét CSDL HD, do H là cha của A và D trên cây phân cấp nên

tidset(H) = tidset(A) tidset(D) = {1, 3, 4, 5} {1, 3, 5, 6} = {1, 3, 4, 5, 6}

Chứng minh: Các mục cha thuộc các giao dịch có chứa mục con của nó

ở nút lá, do đó tidset của mục cha sẽ chính là hợp tidset của tất cả tidset các mục con của nó ở nút lá.

Thuật toán xác định tidset mục cha dựa vào tidset mục con của nó đồng thời tính twu của các giao dịch đƣợc trình bày nhƣ trong Hình 3.8.

Thuật toán 3.5: CREAT_TIDSET

Input: HQDB HD, minsup

Output: tập L chứa các 1-itemset

- Method name: CREAT_TIDSET()

1 2 3 4 5 6 7 8 9 10 11 12 13 CREAT_TIDSET(Tr) for all t T do twu [t] = 0; L = ; for all i t do

tidset(i) t;// cập nhật tidset cho mục i twu [t] = twu [t] + quantity [i] weight [i];

for all h parent(i) of Tr do

tidset(h) t; //cập nhật tidset cho mục cha của i weight(h) = Fun_weight(weight(h), weight(i)); quantity (h) = Fun_quantity(quantity(h), quantity(i); L h;

for all l L do

twu [t] = twu [t] + quantity(l) weight(l);

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát triển một số thuật toán hiệu quả khai thác tập mục trên cơ sở dữ liệu có sự phân cấp các mục (Trang 101 - 102)

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

(120 trang)