2.2. Thuật toán sử dụng các phép toán đại số
2.2.1. Tập lõi trong bảng quyết định
Cho bảng quyết định T = (U, C ∪ D). Khi đó trên U có quan hệ tương đương IND(D). Giả sử các lớp tương đương ứng với quan hệ này là U/D = {W1, W2,· · · , Wk} và các tập B−xấp xỉ dưới, B−xấp xỉ trên của của các tập Wi
tương ứng là BWi và BWi. Dựa trên các khái niệm xấp xỉ này, các tác giả Xiao- hua Hu, Jianchao Han và T.Y. Lin [14] đã đưa ra các khái niệm B−xấp xỉ dưới và B−xấp xỉ trên tương ứng với tập quyết định D của tập đối tượng U. Từ đó đưa ra các khái niệm tương đương về tập lõi và rút gọn dựa vào các phép toán đại số quan hệ. Chúng ta sẽ lần lượt tiếp cận các khái niệm này thơng qua các định nghĩa một cách chính xác như sau
Định nghĩa 2.1. Cho bảng quyết địnhT= (U, C∪D)vàU/D ={W1, W2,· · · , Wk}.
Giả sử B ⊆C, B−xấp xỉ dưới tương ứng với D của U, ký hiệu Lower[B]/[D], là tập xác định bởi Lower[B]/[D]:= k [ j=1 BWj. (2.1)
Định nghĩa 2.2. Với các giả thiết như trong Định nghĩa 2.1,B−xấp xỉ trên tương
ứng với D của U, ký hiệuUpper[B]/[D], là tập xác định bởi
Upper[B]/[D]:=
k
[
j=1
BWj. (2.2)
Thực ra khái niệmLower[B]/[D]chính làB−miền khẳng định củaDcịnUpper[B]/[D]
lúc nào cũng bằng chính tập U. Điều này được suy ra từ định nghĩa của bảng quyết
định nhất quán và các tính chất của quan hệ tương đương, cụ thể chúng ta có mệnh đề sau
Mệnh đề 2.1. Cho T= (U, C∪D) là một bảng quyết định. Khi đó: a) B0 ⊆B ⊆C ⇒ ∀Vi ∈U/B,∃V0
j ∈U/B0 :Vi ⊆Vj0. b) Upper[B]/[D]=U với mọi tập B ⊆C.
c) T nhất quán ⇔Lower[C]/[D]=U. Chứng minh. Xét B, B0 ⊆C. Khi đó,
a) B0 ⊆B ⇒ ∀u, v ∈U, u(B) = v(B) thì u(B0) = v(B0) do đó [u]B ⊆[u]B0. b) Upper[B]/[D]= k [ j=1 BWj = k [ j=1
{u∈U |[u]B∩Wj 6=∅}=U vì với mọi đối tượng
u∈U đều thuộc một lớp tương đươngWj nào đó.
c) Rõ ràng T nhất quán khi và chỉ khi POSC(D) = U. Hơn nữa, từ định nghĩa của Lower ta có Lower[C]/[D] = POSC(D). Do đó T nhất quán khi và chỉ khi
Lower[C]/[D]= POSC(D) =U.
Từ các định nghĩa xấp xỉ trên bảng quyết định các tác giả trong [14] đã đưa ra định nghĩa mới về tập lõi dựa vào các phép toán của đại số quan hệ, đó là phép đếm và phép chiếu.
Định nghĩa 2.3. Với các xấp xỉ được định nghĩa trong (2.1) và (2.2), ta gọiB−biên
của U là tập
Boundary[B]/[D]:= Upper[B]/[D]\Lower[B]/[D] =U \Lower[B]/[D]. (2.3) Định nghĩa 2.4. Cho T= (C, D) là một bảng quyết định nhất quán. Thuộc tính
cj ∈C được gọi là thuộc tính lõi (hay khơng cần thiết) nếu
Card(Y(C\ {cj}))< Card(Y(C\ {cj} ∪D)). (2.4) Định nghĩa này mang lại một ý nghĩa thực tiễn rất lớn, cho phép xác định các thuộc tính lõi chỉ với những thao tác đơn giản mà khơng cần tìm tất cả các tập rút gọn, thậm chí chưa biết đến một tập rút gọn nào cả. Hơn nữa, định nghĩa này hoàn toàn tương đương với định nghĩa theo lý thuyết tập thơ truyền thống đã được trình bày trong Mục 1.3.1.
Thật vậy, nếu cj là thuộc tính cần thiết thì POSC(D)% POSC\{cj}(D) suy ra
∃u ∈ POSC(D) mà u 6∈ POSC\{cj}(D). Do đó [u]C ⊆ [u]D mà [u]C\{cj} * [u]D hay nói cách khác, ∃v ∈ [u]C\{cj} sao cho v 6∈ [u]D tức là v(C \ {cj}) = u(C\ {cj}) và
v(D)6=u(D). Vậy Card(Q
(C\ {cj}))<Card(Q
(C\ {cj} ∪D)). Ngược lại, giả sử
(2.4) thoả mãn. Lúc đó, tồn tại V ∈U/(C\ {cj})và V 6∈U/(C\ {cj} ∪D). Tức là V * Lower[C\{cj}]/[D] trong khi V ⊆ U = Lower[C]/[D] vì T là nhất quán. Vậy cj là thuộc tính cần thiết.
Từ định nghĩa này, cũng trong [14], các tác giả đã đề nghị thuật tốn sau tìm lõi của bảng quyết định
Thuật tốn 2.1. Tìm lõi.
Input: T= (C, D).
Output: Tập lõi Core.
Method: 1. Core :=∅;
2. For cj ∈C do 3. If Card(Q
(C\ {cj}))< Card(Q
(C\ {cj} ∪D)) then 4. Core := Core∪{cj};
Độ phức tạp tính tốn của thuật tốn này làO(knlogn), trong đók = Card(C)
và n = Card(U).
Ví dụ 2.1. Ta xét bảng quyết định trong [14] được cho bởi Bảng 2.1, lưu thông tin về 8 chiếc xe hơi nhận được thơng qua các thuộc tính điều kiệnC={c1 =W eight, c2 =
Door, c3 =Size, c4 =Cylinder}và thuộc tính quyết định D ={d=M ileage}.
U c1 c2 c3 c4 d
u1 low 2 compact 4 high
u2 low 4 sub 6 low
u3 medium 4 compact 4 high
u4 high 2 compact 6 low
u5 high 4 compact 4 low
u6 low 4 compact 4 high
u7 high 4 sub 6 low
u8 low 2 sub 6 low
Bảng 2.1: Bảng thơng tin về các xe hơi.
Trong bảng này ta có:
Card(Q({c1, c2, c3})) = 8 = Card(Q({c1, c2, c3, d})).
Như vậy, c4= Cylinder khơng phải là thuộc tính lõi. Tương tực2 = Door, c3= Size
cũng khơng phải là thuộc tính lõi vì
Card(Q({c1, c2, c4})) = 8 = Card(Q({c1, c2, c4, d})),
Card(Q
(c1, c3, c4)) = 6 = Card(Q
Trong khi đó
Card(Q({c2, c3, c4})) = 5<Card(Q({c2, c3, c4, d})) = 6.
Vậy bảng chỉ có một thuộc tính lõi là c1= Weight.