Hãy sử dụng các thuật toán buộc năng lượng và phân hoạch dọc để thực hiện một phân mảnh dọc cho tập các thuộc tính A.. Tính ma trận ái lực AA Sử dụng công thức: Tính toán tương tự, ta th
Trang 1BÀI TẬP PHÂN MẢNH DỌC
Bài 1: Cho các kí hiệu:
Q = {q1, q2, q3, q4, q5} là tập các ứng dụng
A = {A1, A2, A3, A4, A5} là tập các thuộc tính.
S = {S1 ,S2, S3} là tập các vị trí
Cho các ma trận sử dụng thuộc tính và tần suất truy nhập:
Giả sử refl(qk)=1 cho mọi k và Sl, A1 là các thuộc tính khóa Hãy sử dụng các thuật toán buộc năng lượng và phân hoạch dọc để thực hiện một phân mảnh dọc cho tập các thuộc tính A.
Giải:
a Tính ma trận ái lực AA
Sử dụng công thức:
Tính toán tương tự, ta thu được ma trận ái lực thuộc tính AA như sau:
b Tính ma trận hấp dẫn tụ CA từ ma trận AA
Bước 1: Khởi tạo, lấy 2 cột đầu (A1, A2) của AA làm 2 cột đầu của CA
Bước 2:
Thực hiện tính toán từ ma trận AA:
Trang 22.1 Xét cột A3 Có 3 vị trí có thể để đặt cột A3
+ Trước A1: thứ tự 0-3-1
+ Giữa A1 và A2: thứ tự 1-3-2
+ Sau A2: thứ tự 2-3-n (lúc này A4 rỗng Qui định 2 biên là A0 và An)
Nhận thấy giá trị cont(A0, A3, A1) lớn nhất, nên ta sẽ đặt cột A3 ở trước A1:
2.2 Xét cột A4, có 4 vị trí có thể để đặt cột A4:
+ Trước A3: thứ tự 0-4-3
+ Giữa A3 và A1: thứ tự 3-4-1
+ Giữa A1 và A2: thứ tự 1-4-2
+ Sau A2: thứ tự 2-4-5 (lúc này A5 rỗng)
Nhận thấy giá trị cont(A0, A4, A3) và cont(A2, A4, A5) cùng bằng 9450, lớn nhất, nên giả sử ta sẽ chọn đặt cột A4 ở sau A2:
Trang 32.3 Xét cột A5, có 5 vị trí có thể để đặt cột A5:
+ Trước A3: thứ tự 0-5-3
+ Giữa A3 và A1: thứ tự 3-5-1
+ Giữa A1 và A2: thứ tự 1-5-2
+ Giữa A2 và A4: thứ tự 2-5-4
+ Sau A4: thứ tự 4-5-6 (A6 không tồn tại)
Nhận thấy giá trị cont(A1, A5, A2) lớn nhất, nên ta sẽ chọn đặt cột A5 ở giữa A1 và A2:
Bước 3: Hoán vị các hàng theo thứ tự của các cột, ta có ma trận hấp dẫn tụ CA:
c Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA
Một số kí hiệu và công thức:
– Tập các thuộc tính mà sử dụng
– Tập các ứng dụng truy cập đến TA mà không truy cập đến BA
– Tập các ứng dụng truy cập đến BA mà không truy cập đến TA
– Tập các ứng dụng vừa truy cập đến BA và TA
Từ ma trận CA thu được ở phần b., ta có 4 trường hợp phân mảnh:
Trường hợp 1: TA = {A3}, BA = {A1, A5, A2, A4}
Ta có: TQ = {q4}, BQ = {q3}, OQ = {q1, q2, q5}
Trang 4Suy ra: CTQ = 10, CBQ = 45, COQ = 60
Tính:
Trường hợp 2: TA = {A3, A1}, BA = {A5, A2, A4}
Ta có: TQ = {q4}, BQ = rỗng, OQ = {q1, q2, q3, q5}
Suy ra: CTQ = 10, CBQ = 0, COQ = 105
Tính:
Trường hợp 3: TA = {A3, A1, A5}, BA = {A2, A4}
Ta có: TQ = {q4}, BQ = rỗng, OQ = {q1, q2, q3, q5}
Suy ra: CTQ = 10, CBQ = 0, COQ = 105
Tính:
Trường hợp 4: TA = {A3, A1, A5, A2}, BA = {A4}
Ta có: TQ = {q1, q2, q4, q5}, BQ = rỗng, OQ = {q3}
Suy ra: CTQ = 70, CBQ = 0, COQ = 45
Tính:
Nhận thấy giá trị trong trường hợp 4 là LỚN NHẤT, vậy ta có một phân mảnh dọc:
{A1, A2, A3, A5}, {A1, A4} (do A1 là thuộc tính khóa nên cho vào mảnh thứ 2)
-Bài 2: Cho các kí hiệu:
Q = {q1, q2, q3, q4} là tập các ứng dụng
A = {A1, A2, A3, A4} là tập các thuộc tính.
S = {S1 ,S2, S3} là tập các vị trí
Cho các ma trận sử dụng thuộc tính và tần suất truy nhập:
Giả sử refl(qk)=1 cho mọi k và Sl, A1 là các thuộc tính khóa Hãy sử dụng các thuật toán buộc năng lượng và phân hoạch dọc để thực hiện một phân mảnh dọc cho tập các thuộc tính A.
Giải:
Trang 5a Tính ma trận ái lực AA
Sử dụng công thức:
Tính toán tương tự, ta thu được ma trận ái lực thuộc tính AA như sau:
b Tính ma trận hấp dẫn tụ CA từ ma trận AA
Bước 1: Khởi tạo, lấy 2 cột đầu (A1, A2) của AA làm 2 cột đầu của CA
Bước 2:
Thực hiện tính toán:
2.1 Xét cột A3 Có 3 vị trí có thể để đặt cột A3
+ Trước A1: thứ tự 0-3-1
+ Giữa A1 và A2: thứ tự 1-3-2
+ Sau A2: thứ tự 2-3-4 (lúc này A4 rỗng)
Nhận thấy giá trị cont(A1, A3, A2) lớn nhất, nên ta sẽ đặt cột A3 ở giữa A1 và A2:
Trang 62.2 Xét cột A4, có 4 vị trí có thể để đặt cột A4:
+ Trước A1: thứ tự 0-4-1
+ Giữa A1 và A3: thứ tự 1-4-3
+ Giữa A3 và A2: thứ tự 3-4-2
+ Sau A2: thứ tự 2-4-5
Nhận thấy giá trị cont(A0, A4, A1) lớn nhất, nên ta sẽ đặt cột A4 ở trước A1:
Bước 3: Hoán vị các hàng theo thứ tự của các cột, ta có ma trận hấp dẫn tụ CA:
c Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA
Một số kí hiệu và công thức:
– Tập các thuộc tính mà sử dụng
– Tập các ứng dụng truy cập đến TA mà không truy cập đến BA
– Tập các ứng dụng truy cập đến BA mà không truy cập đến TA
– Tập các ứng dụng vừa truy cập đến BA và TA
Từ ma trận CA thu được ở phần b., ta có 3 trường hợp phân mảnh:
Trường hợp 1: TA = {A4}, BA = {A1, A3, A2}
Ta có: TQ = rỗng, BQ = {q2, q1, q4}, OQ = {q3}
Suy ra: CTQ = 0, CBQ = 55, COQ = 40
Tính:
Trường hợp 2: TA = {A4, A1}, BA = {A3, A2}
Ta có: TQ = {q3}, BQ = {q1, q4}, OQ = {q2}
Trang 7Suy ra: CTQ = 40, CBQ = 40, COQ = 15
Tính:
Trường hợp 3: TA = {A4, A1, A3}, BA = {A2}
Ta có: TQ = {q3, q4}, BQ = rỗng, OQ = {q1, q2}
Suy ra: CTQ = 50, CBQ = 0, COQ = 45
Tính:
Nhận thấy giá trị trong trường hợp 2 là LỚN NHẤT, vậy ta có kết quả phân mảnh dọc: {A1, A4}, {A1, A2, A3} (do A1 là thuộc tính khóa nên cho vào mảnh thứ 2)