Giải quyết bài toán

Một phần của tài liệu Phương pháp xử lý phân tích trực tuyến (Trang 63 - 66)

Trước tiên chúng ta hãy định nghĩa một số ký hiệu. C - tệp bất kỳ các View và Index trong đồ thị G. S(C) là không gian các cấu trúc chiếm trong C. B(C,M) là sinh lợi của C so với M và: B(C,M) = τ(G, M) - τ (G, M ∪ C); B(C, ∅) là sinh lợi tuyệt đối của C.

a. Thuật toán r - cấu trúc

Cho trước: Đồ thị câu hỏi - khung nhìn G Không gian hạn chế S

BEGIN

M = ; /* M = tập các cấu trúc đã được chọn */ While (S(M) < S)

BEGIN

Tìm tất cả các tập View và Index của một trong các dạng sau: {vi, Iij1, Iij2, ..., Iijp} sao cho vi M,Iijl M với

1 l, 0 p < r hoặc

{Iij} sao cho viứng với Iij M và Iij M.

Chọn C là một trong số các tệp trên mà sinh lợi về không gian so với M là cực đại.

Đặt M = M C; END while

Return M; END;

Thuật toán r - cấu trúc thực hiện trong một số bước mà mỗi bước thì chọn tập con của C chứa nhiều nhất r cấu trúc. C là tập hợp gồm:

• Một View và một số chỉ số tương ứng của nó hoặc

• Một chỉ số mà View đã được chọn ở bước trước.

Vấn đề chính của thuật toán là chọn C ở mỗi bước sao cho sinh lợi của nó so với M là cực đại.

Đánh giá thuật toán: Giả thiết có n View trong Data Cube và mỗi View có nhiều nhất 1 chỉ số. Khi đó thuật toán r - cấu trúc phải thực hiện ở mỗi bước cần tính toán sinh lợi của n*1+n* (1/r-1) tập hợp. Như vậy độ phức tạp của thuật toán 1 sẽ là θ (kmr) trong đó m là số cấu trúc cho trước của đồ thị G và k là số cấu trúc được chọn trong thuật toán, trường hợp xấu nhất là bằng S.

b. Thuật toán tổng quát

Cũng như trên, mỗi bước của thuật toán cần chọn một tập con C bao gồm:

• Một View và một số chỉ số được chọn không bị hạn chế về số lượng hoặc

• Một chỉ số mà View tương ứng đã được chọn ở bước trước.

Cần lưu ý là kích thước của C sẽ không bị giới hạn bởi r như thuật toán trên. Mỗi bước của thuật toán phải thực hiện hai phần:

• Với mỗi View vi chúng ta xây dựng tập IGi mà lúc đầu chỉ chứa vi. Sau

đó bổ sung thêm dần các chỉ số vào IGi cho đến khi sinh lợi về không gian của IGi, tập các cấu trúc đã được chọn đạt tới cực đại.

• Tiếp theo là chọn chỉ số Index mà sinh lợi về không gian của View tương ứng so với M đạt được cực đại.

So sánh sinh lợi trên với sinh lợi của C với M, cái nào tốt hơn thì bổ

sung vào M.

Thuật toán này được mô tả hình thức như sau:

Cho trước: Đồ thị query - view G Không gian khống chế S BEGIN

M = ; /* M = tập các cấu trúc đã được chọn */ While (S(M) <S)

BEGIN

C = ; /* tập tốt nhất chứa View và một số Index cho thời điểm xét */ For vi M Vi BEGIN IG = {vi}; /* IG = tập chứa vi và các cấu trúc chọn ra */ While (S(IG) < S) BEGIN Chọn I là chỉ số của v mà sinh lợi so với (M IG) là cực đại;

IG = IG Iic; END while;

If (B(IG,M)/S(IG) > B(C,M)/|C| or C= then C = IG; END for

For Iij mà vi M

If (B(Iij,M)/S(Iij) > B(C,M)/S(C) then C = {Iij}; M = M C;

END while Return M; END;

Đánh giá thuật toán: Độ phức tạp của thuật toán là θ (k2mr), trong đó m là tổng số cấu trúc của đồ thị G và k là số cấu trúc cực đại để hợp với không gian S, trường hợp xấu nhất là bằng S.

Một phần của tài liệu Phương pháp xử lý phân tích trực tuyến (Trang 63 - 66)

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

(125 trang)