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

Một phần của tài liệu Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ trợ giúp quyết định dựa vào dữ liệu docx (Trang 63 - 66)

Chương I Khai thác dữ liệu và xử lý phân tích trực tuyến

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

3.4. Thuật toán chỉ số hố các khung nhìn trong xử lý phân tích trực tuyến kho dữ

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

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 tố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 tốn r - cấu trúc phải thực hiện ở mỗi

bước cần tính tố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 tốn này được mơ tả hình thức như sau: (adsbygoogle = window.adsbygoogle || []).push({});

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

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 Luận văn: Phương pháp xử lý phân tích trực tuyến áp dụng trong xây dựng hệ trợ giúp quyết định dựa vào dữ liệu docx (Trang 63 - 66)