6 u 5 0 5 5 7 u 1 0 0 1
Rõ ràng bảng quyết định DS nhất quán vì POS{a b c, ,} ( ){ }d =U. Xét quan hệ
{ 1, , , , , ,2 3 4 5 6 7}
r= u u u u u u u trên tập thuộc tính R={a b c d, , , } . Thực hiện các bước của Thuật toán 5.1 ta có { } { } { } { } { } { } { } { , , , , , , , , , , , } r = a b d a d b c a c a b c E { } { } { , , , } d = a c b c M Vậy { } { , , } d K V R K R c a b d ∈ = − I = − = M và REAT C( ) { }= a b, .
Từ thuật toán 5.1 ta thu được các hệ quả sau:
Hệ quả 5.1. Cho trước bảng quyết định nhất quán DS =(U C, ∪{ }d V f, , ) và thuộc
tính a, tồn tại thuật toán xác định thuộc tính a là thuộc tính rút gọn hay không với thời gian đa thức theo số hàng và số cột của DS.
Hệ quả 5.2. Cho trước bảng quyết định nhất quán DS =(U C, ∪{ }d V f, , ) và thuộc
tính a, tồn tại thuật toán xác định thuộc tính a là thuộc tính dư thừa thực sự hay không với thời gian đa thức theo số hàng và số cột của DS.
5.2.3. Thực nghiệm thuật toán
Cài đặt Thuật toán 5.1 bằng ngôn ngữ C#. Trên máy tính PC với cấu hình Pentium dual core 2.13 GHz CPU, 1GB bộ nhớ RAM, sử dụng hệ điều hành Windows XP Professional, chạy thử nghiệm Thuật toán 5.1 với 4 bộ số liệu nhất quán lấy từ kho dữ liệu UCI [73].
Với mỗi bộ số liệu, giả sử U là số đối tượng, C là số thuộc tính điều kiện, t là thời gian thực hiện thuật toán (đơn vị là giây s). Các thuộc tính điều kiện được đánh số thứ tự từ 1,... C . Kết quả thử nghiệm Thuật toán 5.1 được mô tả ở Bảng 5.2.
Bảng 5.2. Kết quả thử nghiệm Thuật toán 5.1
STT Tập dữ liệu U C t Tập thuộc tính rút gọn Tập thuộc tính dư thừa thực sự 1 Adult-stretch 20 4 0.9 {3,4} {1,2} 110
3 2 Soybean- small.data 47 35 2.74 {1,2,3,4,5,6,7,8,9, 10,12,20,21,22,23, 24,25,26,27,28,35} {11,13,14,15,16,17, 18,19,29,30,31,32, 33,34} 3 Sponge.data 76 45 2.1 {1,…,11,13,…,34, 36,…,45} {12,35} 4 Zoo.data 101 17 3.1 9 {1,2,4,5,7,8,9,10, 11,12,13,14,15,17} {3,6,16}
5.3. Thuật toán tìm họ tất cả các tập rút gọn của bảng quyết định nhất quán
Cho bảng quyết định nhất quán DS =(U C, ∪{ }d V f, , ) với U ={u u1, ,...,2 um} . Theo nội dung trình bày trong mục 5.2.2 ta có ( ) r { }
d
PRED C =K − d với PRED C( ) là họ tất cả các tập rút gọn Pawlak của C và r
d
K là họ các tập tối thiểu của thuộc tính d trên r. Từ kết quả này, chúng tôi xây dựng thuật toán tìm họ tất cả các tập rút gọn Pawlak của C, gọi tắt là họ các tập rút gọn củaC.
Các kết quả trong phần này đã được tác giả công bố trong tài liệu [9].
Thuật toán 5.2.[9] Tìm họ tất cả các tập rút gọn của tập thuộc tính điều kiện.
Đầu vào: Bảng quyết định DS=(U C, ∪{ }d V f, , )với POSC( ){ }d =U,
{ 1, ,...,2 n}
C= c c c , U ={u u1, ,...,2 um} .
Đầu ra: PRED C( ).
Phương pháp
Xét quan hệ r={u u1, ,...,2 um} trên tập thuộc tính R C= ∪{ }d .
Bước 1. Từ r xây dựng hệ bằng nhau Er ={Eij:1≤ < ≤i j m} với ( ) ( )
{ }
ij= ∈ : i = j
E a R u a u a .
Bước 2. Từ Er xây dựng tập Md ={A∈Er:d∉ ∃A B∈Er:d B A∉ , ⊂B}.
Bước 3. Bởi Thuật toán 1.4, tính tập K từ tập ( 1)
d d = −
M M K .
Bước 4. Đặt PRED C( ) =K −{ }d .
Chứng minh
Theo cách xây dựng Md tại Bước 2 và theo công thức tính bao đóng của tập thuộc tính trên quan hệ, ∀ ∈A Md ta có Ar+ =A và A không chứa d nên Ar+ không chứa
d, suy ra A→{ }d ∉F+. Mặt khác, nếu tồn tại B sao cho A⊂B thì xảy ra hai trường
hợp: (1) Nếu B không chứa d thì Br+ =R; (2) Nếu B chứa d thì hiển nhiên Br+ chứa d. Cả hai trường hợp ta đều cóBr+chứa d hay B→{ }d ∈F+. Do đó M d =MAX F d( +, )
với MAX F d( +, )={A R A⊆ : →{ }d ∉F A B+, ⊂ ⇒ →B { }d ∈F+}. Theo [15],
( ) ( ) 1
, r
d
MAX F d+ = K − với r d
K là họ các tập tối thiểu của thuộc tính { }d trên quan hệ r
nên ( )r 1 d d − = M K , do đó tại Bước 3, r d = K K và tại Bước 4, ( ) r { } d PRED C =K − d là họ tất cả các tập rút gọn của bảng quyết định. Độ phức tạp Thuật toán 5.2
Dễ thấy, độ phức tạp của Bước 1 và Bước 2 là đa thức theo kích thước của r.
Vì vậy, độ phức tạp của Thuật toán 5.2 là độ phức tạp của Thuật toán 1.4 tại Bước 3. Do đó, độ phức tạp thời gian của Thuật toán 5.2 là hàm mũ đối với số thuộc tính điều kiện của bảng quyết định.
Ví dụ 5.2. Bảng quyết định DS=(U C, ∪{ }d V f, , ) với U ={u u u u u u u1, , , , , ,2 3 4 5 6 7}, { , , } C= a b c cho ở Bảng 5.3. Bảng 5.3. Bảng quyết định ở Ví dụ 5.2 U a b c d 1 u 6 6 0 6 2 u 0 2 2 0 3 u 0 0 0 0 4 u 0 0 3 0 5 u 4 4 0 0 6 u 5 0 5 5 7 u 1 0 0 0 112
Rõ ràng bảng quyết định DS nhất quán vì POS{a b c, ,} ( ){ }d =U . Xét quan hệ
{ 1, , , , , ,2 3 4 5 6 7}
r= u u u u u u u trên tập thuộc tính R={a b c d, , , } . Áp dụng các bước của Thuật toán 5.2:
Bước 1: Tính Er ={{a b d, , } {, , ,b c d} { } { } { } { } { } { }, ,a d , ,b d , ,c d , b , c , d }
Bước 2: Tính Md ={{ } { }b , c }
Bước 3: Áp dụng các bước của Thuật toán 1.4 tính tập K từ tập K −1
( 1 )
d
− =
K M
- Ta có B1 ={ }b B, 2 ={ }c .
- Áp dụng Thuật toán 1.3, ta tính được A1=K1 ={ }d . Áp dụng Thuật toán 1.2 tính được 1 { } 1 { }
1− = d − = a b c, ,
K .
- Chọn B={a b c B, , ,} ⊆B B1, ⊆B2, bởi Thuật toán 1.3 ta tính được A2 ={ }b c, .
Vậy K2 ={{ } { }d , ,b c } . Áp dụng Thuật toán 1.2 tính được 1 {{ } { }}
2− = a b, , ,a c
K .
- Ta thấy { }a b, ∉B1 và { }a b, ∉B2 nên tiếp tục chọn B={ }a b, , bởi Thuật toán
1.3 ta tính được A3 ={ }a . Vậy K3 ={{ } { } { }d , , ,b c a } . Áp dụng Thuật toán 1.2 tính được 1 {{ } { }} 3− = b , c K . - Rõ ràng 1 3 , 1 B − B B
∀ ∈K ∈ hoặc B B∈ 2, thuật toán dừng và { } { } { }
{ }
3 d , , ,b c a
= =
K K
Bước 4: Họ tất cả các tập rút gọn của bảng quyết định DS là ( ) { } { } { }{ , , }
PRED C =K − d = a b c .
5.4. Thuật toán xây dựng các phụ thuộc hàm từ bảng quyết định nhất quán
Cho bảng quyết định nhất quán DS =(U C, ∪{ }d V f, , ) với U ={u u1, ,...,2 um} . Trong phần này, luận án trình bày thuật toán xây dựng sơ đồ quan hệ sd =<R F, >
với R C= ∪{ }d và F là tập các phụ thuộc hàm có dạng Ki →{ }d vớiKi ⊆C sao cho
( ) s { }
d
PRED C =K − d , s d
K là họ các tập tối thiểu của thuộc tính d trên sd.
Thuật toán 5.3. Xây dựng các phụ thuộc hàm từ bảng quyết định.
Đầu vào: Bảng quyết định DS =(U C, ∪{ }d V f, , )với POSC( ){ }d =U.
Đầu ra: sd =<R F, > mà s { } ( )
d − d =PRED C
K
Bước 1. Từ bảng quyết định DS, bởi Thuật toán 5.2 tính PRED C( ). Giả sử
( ) { 1, 2,..., t}
PRED C = K K K .
Bước 2. Với mỗi Ki∈PRED C( ),1≤ ≤i t xây dựng PTH Ki →{ }d . SĐQH
,
d
s =<R F> với R C= ∪{ }d và F={Ki→{ }d K: i∈PRED C( )} là SĐQH cần xây dựng.
Chứng minh ( ) s { }
d
PRED C =K − d
1) Với K PRED C∈ ( ) ta có K →{ }d K, ≠{ }d và không tồn tại K'⊂K sao cho K'→{ }d . Do đó, theo định nghĩa K là một tập tối thiểu của thuộc tính { }d trên
d
s , nghĩa là s { }
d
K∈K − d .
2) Ngược lại, với s { }
d
K∈K − d ta có K →{ }d K, ≠{ }d và không tồn tại
'
K ⊂K sao cho K'→{ }d .
Dễ thấy với mọi Ki∈PRED C( ),1≤ ≤i t, K⊄Ki. (5.1)
Vì nếu K⊂Ki thì Ki không phải là một tập rút gọn của DS.
Hơn nữa, với mọi Ki∈PRED C( ),1≤ ≤i t K, i ⊄K. (5.2)
Vì nếu Ki ⊂K thì K không phải là một tập tối thiểu của thuộc tính { }d trên
d
s . Từ công thức (5.1) và (5.2) suy ra K ={K K K, 1, 2,...,Kt} là hệ Sperner và với mọi A⊂K ta có A→{ }d . Do đó, với quan hệ r trên tập thuộc tính R C= ∪{ }d ta
có K ∪{ }d là họ các tập tối thiểu của thuộc tính d trên quan hệ r. Vì vậy, ( ) PRED C = K hayK PRED C∈ ( ). Từ 1) và 2) kết luận ( ) s { } d PRED C =K − d . Độ phức tạp thuật toán
Độ phức tạp của Bước 1 là độ phức tạp của Thuật toán 5.2, độ phức tạp của
Bước 2 là O PRED C( ( )) nên độ phức tạp của thuật toán là độ phức tạp của Thuật
toán 5.2. Do đó, độ phức tạp thời gian của thuật toán là hàm mũ đối với số thuộc tính điều kiện của bảng quyết định.
Ví dụ 5.3. Với bảng quyết định DS=(U C, ∪{ }d V f, , ) ở Ví dụ 5.2 ta có
( ) { } { }{ , , }
PRED C = a b c . Khi đó, SĐQH được xây dựng là sd =<R F, > với
{ , , , }
R= a b c d và F ={{ } { } { } { }a → d , ,b c → d } .
5.5. Thuật toán xây dựng bảng quyết định từ tập phụ thuộc hàm
Cho trước SĐQH s=<R F, >, tập thuộc tính R C= ∪{ }d với { }d được chọn đóng vai trò là thuộc tính quyết định, F là tập phụ thuộc hàm trên R. Trong phần này, luận án trình bày thuật toán xây dựng bảng quyết định DS =(U C, ∪{ }d V f, , )
sao cho ( ) s { }
d
PRED C =K − d , với s d
K là họ các tập tối thiểu của thuộc tính d trên s. Các kết quả trong phần này đã được tác giả công bố trong tài liệu [54].
Thuật toán 5.4.[54] Xây dựng bảng quyết định từ SĐQH.
Đầu vào: SĐQH s=<R F, > với R C= ∪{ }d và F là tập PTH trên R.
Đầu ra: Bảng quyết định DS=(U C, ∪{ }d V f, , ) sao cho ( ) s { }
d
PRED C =K − d
Bước 1. Từ s=<R F, >, bởi Thuật toán 1.6 tính s d K .
Bước 2. Từ s
d
K , bởi Thuật toán 1.2 tính tập ( )s 1
d d − = M K . Giả sử { 1, ,...,2 } d = A A At M . 115
Bước 3.Xây dựng bảng quyết định DS=(U C, ∪{ }d V f, , ) với U={u u0, ,...,1 ut} như sau:
• Với mọi c C∈ , u c0( ) =0, đặt u d0( ) =0.
• Với mọi i=1,...,t đặt u ci( ) =0 nếu c A∈ i;trong trường hợp ngược lại đặt ( )
i
u c =i. Đặt u di( ) =i với mọi i=1,...,t.
Với bảng quyết định thu được, phần tiếp theo chúng tôi chứng minh ( ) s { }
d
PRED C =K − d .
Chứng minh
Theo cách xây dựng quan hệ r ta có E1i = Ai−1 với 2≤ ≤ +i t 1 và Eij =A1i∩A1j với 2≤ < ≤ +i j t 1 nên Eij =E1i∩E1j, hayEij ⊂E E1i, ij ⊂E1j với 2≤ < ≤ +i j t 1. Hơn nữa, theo định nghĩa Md ={A A1, ,...,2 At} tính ở Bước 2 là hệ Sperner, nghĩa là
1i = i−1
E A với 2≤ ≤ +i t 1 là hệ Sperner. Do đó, tập M ={E1i:1≤ ≤ +i t 1}có tính chất
A
∀ ∈M ⇒ ∃
{ B∈M :A⊂B} . Từ định nghĩa hệ bằng nhau cực đạiM r ta có { 1 :1 1} r = Ei ≤ ≤ +i t M , do đó ( ) 1 { } 1, 2,..., s r = d = d − = A A At M M K . Bây giờ, ta chứng minh ( )r 1 r d − = M K với r d
K là họ các tập tối thiểu của thuộc tính d trên quan hệ r.
1) VớiA∈M r ta có Ar+ =A và A không chứa d nên Ar+ không chứa d, suy ra { }
A→ d ∉F+. Mặt khác, nếu tồn tại B sao cho A⊂B thì theo công thức tính bao
đóng của tập thuộc tính trên quan hệ ta cóBr+ =R chứa d, hay B→{ }d ∈F+. Mặt
khác theo [15], ( ) 1 ( ) MAX , r d − = F d+ K với ( ) { { } { } } MAX F d+, = A⊆R A: → d ∉F A+, ⊂ ⇒ →B B d ∈F+ . Do đó ta kết luận ( )r 1 d A∈ K − . 2) Ngược lại, nếu ( )r 1
d
A∈ K − thì rõ ràng A R≠ . Nếu có một B sao cho A⊂B và
A→Bthì theo định nghĩa của tập phản khóa ta có B→{ }d và A→{ }d , đây là điều vô
lý, vì vậy không tồn tại B sao cho A⊂Bvà A→B, nghĩa là Ar+ = A. Hơn nữa, theo
định nghĩa phản khóa, nếu tồn tạiB' ≠R sao cho A⊂B' thì B' →{ }d , hay { }d ⊂B'r+.
Vậy, A là tập cực đại không chứa d thỏa mãn A A= r+ (5.3) Mặt khác trên quan hệ r, với mọi B∈Mr thì B R≠ , B B= r+ và B không chứa d.
Nếu D là tập sao cho B⊂D thì Dr+ =R hay { }d ⊂Dr+.
Vậy M r là tập của các tập cực đại B không chứa d thỏa mãn B B= r+ (5.4)
Từ công thức (5.3) và (5.4) ta có A∈Mr. Từ 1) và 2) ta kết luận ( )r 1
r d
−
=
M K . Hơn nữa, theo kết quả chứng minh trên ta
có ( ) 1 { }
1, 2,...,
s
r = d = d − = A A At
M M K . Do đó, trên quan hệ r được xây dựng ta có
( )r 1 ( )s 1 d d d − − = = K M K hay r s ( ) r { } s { } d = d ⇔PRED C = d − d = d − d K K K K . Độ phức tạp Thuật toán 5.4 Độ phức tạp Bước 1 tính s d
K là độ phức tạp của Thuật toán 1.6. Độ phức tạp
của Bước 2 tính ( )s 1
d d
−
=
M K là độ phức tạp của Thuật toán 1.2. Do đó, độ phức tạp thời gian của Thuật toán 5.4 là hàm mũ đối với số thuộc tính của sơ đồ quan hệ.
Ví dụ 5.4. Cho sơ đồ quan hệ s=<R F, > với R={a b c d, , , }, C={a b c, , } và tập phụ thuộc hàm F ={{ }a c, →R a,{ } {→ a b d, , } { } {, ,b c → b c d, , }} . Áp dụng các bước của
Thuật toán 5.4.
Bước 1: Áp dụng Thuật toán 1.6 tính s d K .
1) Đặt L( )1 =E1={ }d .
2) Chọn các PTH A→B có vế trái không chứa { }d .
Xét PTH { }a c, →R, ta có { }d ⊆A∪(C B− ) { }= a c, . Ta xây dựng E2 từ { }a c, . Theo Thuật toán 1.5, ta có
Nếu loại a thì { } { }c → d ∉F, vậy không loại được a.
Nếu loại c thì { } { }a → d ∈F , vậy loại được c.
Do đó, E2 ={ }a và L( ) { } { }2 ={ a , d } .
3) Chọn các PTH A→Bcó vế trái không chứa { }a hoặc { }d . Xét PTH duy nhất chọn được { } {b c, → b c d, , }. Nếu chọn C ={ }a thì A∪(C B− ) {= a b c, , } chứa { }a , còn nếu chọn C={ }d thì A∪(C B− ) { }= b c, không chứa { }a và { }d . Do đó, xây dựng E3 từ { }b c, theo Thuật toán 1.5. Ta có
Nếu loại b thì { } { }c → d ∉F, vậy không loại được b.
Nếu loại c thì { } { }b → d ∉F, vậy không loại được c.
Do đó, E3 ={ }b c, và L( ) { } { } { }3 ={ a , d , ,b c }
4) Không chọn được các PTH A→Bcó vế trái không chứa { }a , { }d hoặc { }b c, , thuật toán dừng.
Vậy s ( ) { } { } { }3 { , , , }
d =L = a d b c
K .
Bước 2: Áp dụng Thuật toán 1.2 tính ( )s 1
d d − = M K . Đặt B1 ={ }a , B2 ={ }d , B3 ={ }b c, . Khi đó: { } { } { } 1= R− a a B: ∈ 1 = b c d, , K . Ta thấy B2 ⊆{b c d, , } nên F1 = ∅{ } và { } 1 , , X = b c d . Tính { } 1 2 B − trên tậpX1, đó là tập{X1−{ }a a B: ∈ 2} . Khi đó { } 1 { } 2 , B − = b c . Ta thấy { }b c, không là tập con của F1= ∅{ } nên K2 = ∪F1 { } { }b c, = b c, .
Ta thấy B3⊆{ }b c, nên F2 = ∅{ } và X2 ={ }b c, .
Tính { } 1 3
B − trên tậpX2 thu được { } 1 {{ } { }}
3 ,
B − = b c . Ta thấy { } { }b , c không là