Tập các cây phân cấpTr

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 89 - 92)

Trong đó các kí hiệu A, B, C, D, E, F là đại diện cho tập các mặt hàng

theo Bảng 3.3 nhƣ sau:

Theo Bảng 3.1 và Bảng 3.2, CSDL HD có sáu giao dịch {t1, t2, t3, t4, t5, t6} và sáu mục {A, B, C, D, E, F}, trọng số của các mục tƣơng ứng là {0,3,

0,2, 0,5, 0,6, 0,9, 0,1}. Giao dịch t1 = {1, 1, 0, 2, 1, 0} có nghĩa là trong giao

dịch t1 có một mục A(Desktop), một mục B(Ink-jet Printer), hai mục D(Notebook), một mục E(Scanner) và khơng có mục C với F nào.

Tập J = {G, K, H} là tập các mục cha của cây phân cấp không xuất hiện trong các giao dịch của CSDL HD. Tuy nhiên chúng có vai trị nhất định, thể hiện mối quan hệ của các mục trong CSDL HD. Do đó, khi khai thác FI trên CSDL phân cấp đòi hỏi phải khai thác cả tập các mục trên cây phân cấp bao gồm (I J). Bảng 3.3. Tên mặt hàng của các mục ID mục mục A Desktop B Ink-jet Printer C Laser Printer D Notebook E Scanner F Dot-matrix Printer G Non-impact H PC K Printer B E C G F K A D H

HQDB có kế thừa hoàn toàn các định nghĩa, tính chất của CSDL số lƣợng có sự phân cấp nhƣ đã trình bày trong chƣơng 1. Ngồi ra, khai thác FWUI trên HQDB cần phải tính tốn xác định trọng số của các mục cha, đồng thời phải xác định số lƣợng các mục cha trong từng giao dịch dựa trên các mục con của chúng trong mỗi giao dịch. Thơng thƣờng có thể xác định các đại lƣợng này thông qua các hàm MAX, MIN, SUM hay AVERAGE đối với các giá trị số lƣợng và trọng số của các mục con của nó. Tuy nhiên, nếu sử dụng cơng thức MIN hoặc AVERAGE thì số lƣợng và trọng số của mục cha sẽ nhỏ hơn của mục con của nó trong nhiều trƣờng hợp. Điều này là không thực tế, do mục cha là mức khái quát của mục con nên số lƣợng và trọng số của nó khơng thể nhỏ hơn của mục con của nó. Do đó trong phạm vi luận án, tác giả đề xuất sử dụng hai hàm là MAX và SUM trong xác định trọng số và số lƣợng của các mục cha trên cây phân cấp trong mỗi giao dịch dựa trên trọng số và số lƣợng của các mục con của nó trên cây phân cấp có sẵn trong các giao dịch (là các mục ở nút lá).

Trong các CSDL thực tế, nếu trọng số hay số lƣợng của các mục cha nhƣ là tổng trọng số hay số lƣợng của trọng số hay số lƣợng của các mục con (lợi nhuận, giá trị, v.v…) thì sẽ sử dụng hàm SUM để xác định trọng số, số lƣợng cho mục cha. Còn trong trƣờng hợp trọng số, số lƣợng của các mục cha nhƣ đại diện cho trọng số và số lƣợng cho mục con (mức độ u thích, sự phản hồi,…) thì sẽ sử dụng hàm MAX để xác định trọng số, số lƣợng của mục cha. Trên cơ sở đó, luận án đề xuất hai định nghĩa sau:

Định nghĩa 3.2. Trọng số của mục cha trên cây phân cấp bằng hàm

Fun_weight của trọng số các mục con của nó ở nút lá nhƣ sau:

weight(A) Fun_weight(weight(A1); weight(A2 weight(Ak)) Trong đó A là mục cha trên cây phân cấp, A1, A2, ...,Ak là các nút lá của A. Fun_weight có thể là hàm SUM hoặc MAX tùy vào CSDL thực tế.

Ví dụ 3.2: Với Fun_weight là hàm MAX: weight(K) =

MAX(weight(C), weight(B), weight(F)) = MAX(0,5; 0,2;0,1) = 0,5.

Định nghĩa 3.3. Số lƣợng của mục cha trên cây phân cấp ở trong giao

dịch nào đƣợc xác định bằng hàm Fun_quatity của số lƣợng các mục con của nó ở trong giao dịch đó nhƣ sau:

quantity(A) tk = Fun_quantity(quantity(A1); quantity(A2 quantity(Ak))

Trong đó: A, A1, A2, ...,Ak tk và A1, A2, ..., Ak là con của A trên cây phân cấp. Fun_quantity có thể là hàm MAX hoặc hàm SUM tùy thuộc vào CSDL thực tế.

Ví dụ 3.3: Với Fun_quantity là hàm SUM, ta có quantity(K) t5 =

SUM(quantity(B); quantity(C); quantity(F))(do B, C, F t5) = SUM(2; 2; 1) = 5

Định nghĩa 3.4. Tập mục X I J) với I là tập các mục trong CSDL

(tập nút lá trên cây phân cấp) và J là tập các mục cha trên cây phân cấp đƣợc gọi là phổ biến nếu wus(X) minwus, với minwus do ngƣời dùng xác định

trƣớc.

3.2. Thuật toán khai thác FWUI trên HQDB

Để khai thác FWUI trên HQDB bao gồm cả các mục cha trên cây phân cấp, cần xác định weight cho các mục cha (theo Định nghĩa 3.2), đồng thời cần xác định số lƣợng cho các mục cha (theo Định nghĩa 3.3) trong mỗi giao dịch khi thêm các mục cha này vào trong các giao dịch [19].

3.2.1. Thuật toán xác định weight cho các mục cha

Thuật toán xác định weight cho các mục cha trên cây phân cấp theo Định nghĩa 3.2 đƣợc trình bày nhƣ sau:

Thuật toán3.1: CALCULATION_WEGHTED

Input: R là gốc cây phân cấp Tr.

- Method name: CALCULATION_WEGHTED() 1 2 3 4 5 6 CALCULATION_WEGHTED(R)

for all r children of R do if (weight(r) = 0)then

CALCULATION_WEGHTED(r);

else

weight(R) = Fun_weight (weight(R), weight(r));

ChènR.weight vào WeightTable;

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 89 - 92)

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

(120 trang)