3.4. Mở rộng phụ thuộc hàm và phụ thuộc đa trị
3.4.4. Thuật toán kiểm định β−phụ thuộc đa trị
Từ Định lý 3.6, chúng ta thấy việc kiểm tra phụ thuộc dạng X →→1,β Y thực chất là kiểm tra tính β−dầy đặc của tất cả các ma trân phụ thuộc mở rộng Di. Vì vậy trước hết chúng ta cần xây dựng thuật tốn tính các ma trận Di và sau đó sẽ thiết lập thuật tốn kiểm định β−phụ thuộc. Cũng cần lưu ý là họ các lớp tương
đương U/X = {U1, U2,· · · , Um} có thể nhận được sau một phép sắp xếp các đối tượng trongU theo thứ tự các giá trị trong dom(X). Vì vậy, thuật tốn sau chỉ tính
Di đối với một Ui cho trước.
Thuật tốn 3.4. Tính Di. Input:
Tập thuộc tính A, các tập conX, Y ⊆A,
Lớp tương đương thứ i của quan hệ IND(X):Ui, Các quan hệ tương tự trên các thuộc tính.
Output: Di = (djk)p(i)×q(i).
Method:
1. Tính dom(Ui, Y) ={ξ1, ξ2,· · · , ξp(i)}; dom(Ui, Z) = {η1,· · · , ηq(i)};
2. For j := 1 top(i)do 3. For k:= 1 toq(i) do
4. Begin
5. d1 := 1; { µ(ξj, Fk)}
6. d2 := 1; { µ(ηk, Ej)}
7. Fort ∈Ui do
8. Begin
9. If (t(Z) = ηk) and (S(ξj, t(Y))< d1) then
10. d1 :=S(ξj, t(Y));
11. If (t(Y) =ξj) and (S(ηk, t(Z))< d2) then
12. d2 :=S(ηk, t(Z));
13. End.
14. djk := max{d1, d2};
15. End.
Để tínhdom(Ui, Y) = {ξ1, ξ2,· · · , ξp(i)}; dom(Ui, Z) ={η1,· · · , ηq(i)};chúng ta có thể lần lượt thực hiện các thao tác sau:
1. Khởi tạo p(i) =q(i) = 0;dom(Ui, Y) = dom(Ui, Z) ={};
2. For t ∈Ui do 3. Begin
4. If t(Y)6∈dom(Ui, Y) then 5. Begin
6. inc(p(i));
7. ξp(i) :=t(Y);
8. dom(Ui, Y) := dom(Ui, Y)∪ {ξp(i)};
10. If t(Z)6∈dom(Ui, Z)then 11. Begin
12. inc(q(i));
13. ηq(i):=t(Z);
14. dom(Ui, Z) := dom(Ui, Z)∪ {ηq(i)};
15. End;
16. End.
Sử dụng Thuật toán 3.4 ta nhận được thuật toán kiểm định β−phụ thuộc đa
trị như sau:
Thuật toán 3.5. Kiểm định β−phụ thuộc đa trị.
Input:
Tập đối tượng U,
Tập thuộc tính A, các tập conX, Y ⊆A,
Các quan hệ tương tự trên các thuộc tính,
Mức β ∈[0,1].
Output: X →→1,β Y?
Method:
1. Phân hoạch U/X ={U1, U2,· · · , Um};
2. OK:=True; i:=0;
3. Repeat
4. inc(i);
5. Tính Di;
6. If Di khơng β−dầy đặc then
8. Until (Not OK) or (i=m).