Thuật toán xác định giao hai IWS

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 53 - 55)

Đầu vào của thuật toán là IWS(X) và IWS(Y). Trong đó, IWS(X) có n1

đoạn. IWS(Y) có m1 đoạn. Đầu ra là Z là một IWS. Dòng 4, xác định đoạn giao tiếp theo của IWS(X) và IWS(Y). Dịng 5 và 6, tính đầu và cuối đoạn giao kết quả. Dịng 7 đến 9, tính S là đoạn giao kết quả. Dịng 10, loại các word có giá trị bằng 0 khỏi S (có thể tạo ra nhiều đoạn mới). Dịng 10 đến dòng 15, xác định đoạn giao tiếp theo trên IWS(X) và IWS(Y).

Dễ nhận thấy độ phức tạp thuật toán là O(n1 + m1), với n1 và m1 lần lƣợt là số lƣợng các đoạn của IWS(X) và IWS(Y). Do đó, thời gian thực hiện thuật tốn INTERSECTION_IWS phụ thuộc vào số đoạn của mỗi IWS.

2.1.3. Thuật toán khai thác FWI a. Cấu trúc IWS-tree a. Cấu trúc IWS-tree

Từ cấu trúc IWS luận án đề xuất cấu trúc IWS-tree để khai thác FWI theo dữ liệu dọc. Mỗi nút của IWS-tree gồm ba thành phần:

- X là một tập mục,

- IWS(X) là IWS của X, - ws(X) là giá trị ws của X.

Các nút của IWS-tree ở mức thứ nhất là các 1-itemset, từ mức thứ hai,

các nút ở mức dƣới đƣợc tạo thành từ sự kết hợp của hai nút ở mức trên với các điều kiện sau:

- Hai nút cùng số lƣợng phần tử và chỉ khác nhau phần tử cuối cùng.

- wus của tập mục tạo thành thỏa mãn ngƣỡng minwus do ngƣời sử

dụng đƣa vào.

b. Thuật tốn tính nhanh wus dựa trên IWS

Khai thác FWI trên CSDL trọng số là phải xác định ws của các tập mục theo cơng thức 2.2. Do đó cần xác định vị trí các bit 1 của IWS của các tập mục, điều này đồng nghĩa với việc xác định tidset của các tập mục. Để giải quyết hiệu quả vấn đề này, luận án đề xuất sử dụng một mảng MAP gồm 65.535 phần tử nhƣ trong Bảng 2.5. Phần tử thứ i của mảng MAP chứa một danh sách các bit 1 trong biểu diễn nhị phân của i. Dựa trên mảng MAP ta có thể tính đƣợc vị trí các bit 1 của IWS trên bit-vector.

Bảng 2.5. Mảng MAP

Chỉ số mảng 1 2 … 65.534 65.535

Giá trị nhị phân 0000000000000001 0000000000000010 … 1111111111111110 1111111111111111

MAP 16 15 … 1, 2, …, 14, 15 1, 2, …, 15, 16

Thuật tốn tính ws của tập mục X đƣợc trình bày trong Hình 2.2. Bƣớc thứ

nhất tidset của các tập mục đƣợc xây dựng theo Mệnh đề 2.1 dựa trên công thức 2.1 và mảng MAP. Bƣớc thứ 2 tính ws theo cơng thức 2.2.

Thuật tốn 2.2: CALCULATION_WS

Input: IWS(X)

- Output: ws của tập mục X

- Method name: CALCULATION_WS()

1 2 3 4 5 6 7 8 9 CALCULATION_WS(IWS(X)) tidset(X) = ;

for all i IWS(X) do for all j MAP [i] do

tidset(X) (si - 1) 16 j; y = 0;

for all i tidset(X) do

y = y + tw( );

ws = y/sum_tw;

return ws

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 53 - 55)

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

(120 trang)