Hệ tiên đề của TREE(N) trên tập khóa hữu hạn Ki(n)(i=l, 2, ,m).

Một phần của tài liệu TỐI ƯU HOÁ LỚP CÁC THÔNG TIN CÓ CẤU TRÚC DẠNG CÂY NHỊ NGUYÊN 1 VÀ N CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP KHÓA HỮU HẠN BẰNG MÔ HÌNH XỬ LÝ SONG SONG (Trang 43)

3. Cây chuẩn tắc một chiều trên tập khóa K

2.2.2Hệ tiên đề của TREE(N) trên tập khóa hữu hạn Ki(n)(i=l, 2, ,m).

Hệ tiên đề của TREE(n) là các phương trình cây sau:

Tiên đề axl: [i,k]<[i,k'] <Tl,T2>,T3> = [i,k] <Tl,T3> là một tiên đề nếu kmin k

Trang 41 Dạng đồ thị: [i, k] = [i, k]

[i, k] T3 T1 T3

T1 T2

Tiên đề ax2: [i, k]<[i, k']<Tl,T2>,T3> = [i, k']<Tl, [i, k]<T2 ,T3>> là một tiên đề

nếu kmin k’ k kmax

Dạng đồ thị: [i, k] = [i, k’] [i, k’] T3 T1 [i, k] T1 T2 T2 T3

Tiên đề ax3: [i, k]<T1, [i, k']<T2,T3>> = [i, k]<Tl,T3>> là một tiên đề nếu kmin

k’ k kmax

Dạng đồ thị: [i, k] = [i, k] T1 [i, k’] T1 T3

T2 T3

Tiên đề ax4: [i, k]<T,T> = T là một tiên đề .

Dạng đồ thị: [i, k] = T T T

Tiên đề ax5: [i, k]<[j, k']<Tl,T2>,T3> = [j, k']< [i, k]<T1,T3>, [i, k]<T2 ,T3>> là

một tiên đề Dạng đồ thị:

[i, k] = [j, k’] [j, k’] T3 [i,k] [i, k]

T1 T2 T1 T3 T2 T3

Tiên đề ax6: [i, k] <T1, [j, k']<T2,T3>> = [j, k’] < [i,k]<Tl,T2>, [i,k]<Tl,T3>> là

một tiên đề.

Dạng đồ thị: [i, k] = [j, k’] T1 [j, k’] [i, k] [i, k]

T2 T3 T1 T2 T1 T3

Tiên đề ax7: [i, k] <T1,T2> = T1 là một tiên đề nếu k > kmax K

Dạng đồ thị: [i, k] = T1

T1 T2

Tiên đề ax8: [i, k] <T,T> = T là một tiên đề nếu k < kmin K

Dạng đồ thị: [i, k] = T2 T1 T2

Đặt AXi(n) ={axl, ax2, ax3, ax4, ax5, ax6, ax7 , ax8 } và ta gọi AXi(n) là hệ tiên đề của TREE(n) trên tập khóa Ki(n) (i=1,2, ... m)

Một cách tổng quát, trong cây Tl ta có thể thay cây con To bởi cây Too , Khi đó, ta sẽ được cây T2 (ký hiệu TlToTooT2) .Như vậy, ký TlToTooT2 có nghĩa là T2 nhận được từ Tl bằng cách thay cây con To của Tl bởi Too

Giả sử X EQU(n) ta có bổ đề sau:

Bổ đề 2.1 (adsbygoogle = window.adsbygoogle || []).push({});

Nếu Tl ,T0 , T00 , T2 TREE(n), TlT0T00T2 và X ├ T0 = T00 thì X ├ Tl = T2

Thật vậy, ta sẽ chứng minh bổ đề 1 theo quy nạp từ định nghĩa 1 . Ta có các trường hợp sau:

Trang 43 Hiển nhiên là X ├ Tl = T2

Trường hợp 2: Nếu Tl [i, k] < Tll, T12> Khi đó ta có các trường hợp sau: Nếu Tl T2 thì bổ đề hiển nhiên đúng. '

Nếu T1 T0 và T00 = T2 . Theo giả thiết ta có X ├ T0= T00 X ├Tl = T2 Nếu Tl T2 , Tl T0 và T00 T2 , giả sử ta đã có T21, T22 thoả mãn

X ├ Tll = T21(l) , X ├ T12 = T22(2) và T11T0TOOT21 ,T12T0TOOT22 Ta cần chứng minh X ├ Tl = T2 . Dễ thấy T2 [i, k]< T21, T22>

Từ (l), áp dụng quy tắc R4 ta có: X ├ [i, k]< Tll, T12> = [i, k] < T21, T12> (3). áp dụng R5 ta có: X ├ [i, k]< T21,T12> = [i, k]< T21, T22> (4).

Từ (3) và (4) áp dụng R3 ta Có: X ├ [i, k]< Tll , T12> = [i, k]< T21, T22> hay X ├ Tl = T2

vậy bổ đề đã được chứng minh.

Định lý 2.l: Giả sử Tl, T2 TREE(n), nếu AX(n)├ Tl = T2 thì Tl (K(n))T2

Thật vậy ta chứng minh định lý 2.1 bằng qui nạp theo chiều dài dẫn xuất của cây. Ta có các trường hợp sau:

+ Nếu Tl = T2 là axl, khi đó ta có: Tl= [i, k]<[i, k']< Tll, T21>,T31> và T2 = [i, k]< T21 ,T31> với k k'. Với mọi ln =(ll, 12,..., ln) K(n) ta có các trường hợp sau: Nếu li k k' ta có: f(Tl, ln) = f([i, k']< Tll, T21>,ln ) = f(Tll, ln ) và f(T2, ln) = f(Tll, ln). Vậy ta có f(Tl, ln) = f(T2, ln) Với mọi ln = (ll, 12 ,...,ln) K(n) thỏa mãn li k k'. Nếu k <li k' ta có:

f(Tl, ln) = f(T31, ln ) và f(T2, ln) = f(T31, ln). Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln =(l1 , l2 ,...ln) K(n) thỏa mãn k <li k ' .

f(Tl , l) = f(T31, l ) và f(T2, l) = f(T31, l ) .

Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll, l2 ,...,ln K(n) thỏa li > k'. Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll, l2,..., ln K(n) nếu Tl = T2 là axl

+ Nếu Tl = T2 là ax2 , khi đó ta có: T1 [i, k]<[i, k']< T1l, T21>, T31> và T2 [i, k']< Tll, [i, k]< T21,T31> > Với k > k'.

Với mọi ln =(ll, 12,...,ln) K(n) ta có các trường hợp sau: Nếu li k'< k ta có: f(Tl, ln) = f([i, k']< Tll, T21>,ln ) = f(Tll, ln ) và f(T2, ln) = f(Tll, ln). Vậy ta có f(Tl, ln) = f(T2, ln) Với mọi ln =(ll,12, ..., ln) K(n) thỏa mãn li k'< k. Nếu k'< li k ta có: f(Tl, ln) = f([i, k']<Tll,T21>, ln) = f(T21, ln) và f(T2,ln) = f([i, k]<T21,T31>,ln) =f(T21, ln). Vậy ta có f(Tl, ln) = f(T2, ln) Với mọi ln

=(ll, 12,..., ln) K(n) thỏa mãn k'< li k.

Nếu li > k ta có:

f(Tl , ln) = f(T31, ln ) và f(T2, ln) = f( [i , k] <T21, T31 >, ln) = f(T31 , ln) .

Vậy ta có f(Tl,ln) = f(T2,ln) với mọi ln

=(ll, l2,..., ln) K(n) thỏa mãn li > k. Vậy ta có f(Tl, ln) = f(T2, ln) Với mọi ln

=(ll, l2 ,..., ln) K(n) nếu Tl = T2 là ax2

+ Nếu Tl = T2 là ax3 khi đó ta có: T1 [i, k]< Tll, [i, k']< T21 , T31> > và T2 [i, k]< Tll, T31> > với k k'. Với mọi ln =(ll, 12,...,ln) K(n) ta có các trường hợp sau: Nếu li k' k ta có: f(Tl , ln) = f(Tl1, ln ) và f(T2, ln) = f(Tl1 , ln). Vậy ta có f(Tl , ln) = f(T2 ,ln) với mọi ln =(ll, 12,...,ln) K(n) thỏa mãn li k' k. Nếu k'< li k ta có:

Trang 45 f(Tl , ln) = f(Tl1 , ln ) và f(T2, ln) = f(Tl1, ln). Vậy ta có f(Tl , ln) = f(T2, ln) với mọi ln =(ll, 12,...,ln) K(n) thỏa mãn k'< li k. Nếu li > k ta có: f(Tl, ln) = f([i, k']<T21, T31>,ln ) = f(T31, ln) và f(T2, ln) = f(T31, ln). Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll,l2,...,ln) K(n) thỏa mãn li > k. Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll,l2, ...,ln) K(n) nếu Tl= T2 là ax3

+ Nếu Tl = T2 là ax4 , khi đó ta có: Tl [i, k]< Tll, Tll > và T2 Tll. Với mọi ln (adsbygoogle = window.adsbygoogle || []).push({});

=(ll, 12, ... ,ln) K(n) ta có: f(Tl, ln) = f(Tll, ln ) = f(T2, ln) .

Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll,l2 ,...,ln) K(n) nếu Tl = T2 là ax4

+ Nếu Tl = T2 là ax5 , khi đó ta có: T1 [i, k]< [j , k']< Tll , T21>,T31 > và T2 [j, k']< [i, k]< Tll, T31>, [i, k]< T21, T31> >

Với mọi ln

= (ll, 12 , ..., ln) K(n) ta có các trường hợp sau: Nếu li k ta có các trường hợp sau:

* Nếu 1j k' ta có: f(Tl, ln) = f([j , k'] < Tll , T21>, ln ) = f(Tll, ln ) và f(T2, ln) = f([i, k] < Tll, T31>, ln) = f(Tll, ln). * Nếu lj > k' ta có: f(Tl, ln) = f([j , k'] < Tll , T21>, ln ) = f(T21 ,ln ) và f(T2, ln) = f([i, k] < T21, T31>, ln) = f(T21, ln) Nếu lj > k ta có các trường hợp sau:

* Nếu lj k' ta có: f(Tl , ln) = f(T31 , ln ) và

f(T2, ln) = f([i, k] < T21, T31>, ln) = f(T31, ln). * Nếu 1j > k ' ta có :

f(Tl , l) = f(T31 , l ) và

f(T2 , ln) = f([i, k] < T21, T31>, ln) = f(T31, ln). Vậy ta có f(Tl, ln) = f(T2, ln) với mọi ln

=(ll,l2, ..., ln) K(n) nếu Tl = T2 là ax5

+ Nếu Tl = T2 là ax6 , khi đó ta có: Tl [i, k]< Tll , [j , k']<T21,T31 > > và T2 = [j, k']< [i, k] < Tll, T21>, [i, k] < Tll, T31> >

Với mọi ln

=(ll, 12, ..., ln) K(n) ta có các trường hợp sau: Nếu li k ta có các trường hợp sau:

* Nếu 1j k' ta có: f(Tl , ln) = f(Tl1 , ln ) và f(T2, ln) = f([i, k]< Tll, T21>, ln) = f(Tll, ln). * Nếu 1j > k' ta có: f(Tl , ln) = f(Tl1 , ln ) và f(T2, ln) = f([i, k]< Tll, T31>, ln) = f(Tll, ln). Nếu li > k ta có các trường hợp sau:

* Nếu 1j k' ta có: f(Tl, ln) = f([j , k']< T21 , T31>, ln ) = f(T21, ln ) và f(T2, ln) = f([i, k]< Tll , T21>, ln) = f(T21, ln). * Nếu 1j > k' ta có: f(Tl, ln) = f([j , k'] < T21 , T31>, ln ) = f(T31, ln ) và f(T2, ln) = f([i, k]< Tll, T31>, ln) = f(T31, ln).

Vậy ta có f(Tl,ln) = f(T2,ln) với mọi ln

=(ll, l2, ...,ln) K(n) nếu Tl = T2 là ax6

Ngoài ra để chứng minh tính đúng đắn của đinh lý 2.1 ta cần chứng minh thêm rằng: các quy tắc dẫn xuất cũng bảo đảm tính tương đương. Thật vậy:

Trang 47 f(Tl, ln) = f(Tl, ln) với mọi ln

=(ll, 12, ..., ln) K(n)

Quy tắc 2 (R2): Nếu X ├ Tl = T2 thì X├ T2 = Tl hiển nhiên: f(Tl, ln) = f(T2, ln) Với mọi ln

=(ll, 12, ..., ln) K(n).

Quy tắc 3 (R3): Nếu X ├ Tl= T2 và X ├ T2 = T3 thì X ├ Tl= T3 hiển nhiên: f(Tl , ln) = f(T2, ln) và f(T2, ln) = f(T3, ln) f(Tl , ln) = f(T3, ln) với mọi

ln =(ll, 12, ..., ln) K(n).

Quy tắc 4 (R4): Nếu X ├ Tl = Tl’ (*) thì X ├ [i, k]<Tl,T2> = [i, k]<Tl’, T2> Ta chứng minh f ([i, k]<Tl, T2>, ln) = f([i, k]< Tl’, T2>, ln)) với mọi

ln =(ll, l2, ..., ln) K(n). Thật vậy:

* Nếu lj k ta có: f( [ i, k]<Tl, T2>, ln) = f(Tl , ln) f( [i, k] < Tl’, T2>, ln) = f(Tl’, ln

). Theo (*) ta có: (adsbygoogle = window.adsbygoogle || []).push({});

f(Tl, ln) = f(Tl’, ln). Vậy: f([i, k]<Tl, T2>, ln) = f([i, k]<Tl’, T2>, ln). *Nếu lj > k ta hiển nhiên có:

f( [i, k] <Tl, T2>, ln) = f( [i, k]< Tl’, T2>, ln) = f( T2, ln) Vậy quy tắc R4 thỏa mãn định lý 2.1

Quy tắc 5(R5):

Nếu X ├ T2 =T2’ (**) thì X ├ [i, k]<Tl, T2> = [i, k]<Tl, T2’> Ta chứng minh f( [ i, k]<Tl, T2>, ln) = f( [i, k]< Tl , T2’>, ln

) với mọi ln = (ll, 12, ..., ln) K(n). Thật vậy:

* Nếu 1 ' < k ta hiển nhiên có:

f( [i, k]<tl, T2>' ln) = f( [i,k]< Tl , T2">' ln) = f( Tl, ln) * Nếu lj > k ta có: f( [ i, k]<tl, T2>' ln) = f( T2 ' ll)) f( [i, k]< Tl', T2>' ln) = f( T2" ln). Theo (**) ta có: f( T2' ln) : f( T2" ln).

Vậy: f( [i, k]<Tl, T2>, l ) = f( [i, k]< Tl,T2’ >, l). Vậy quy tắc R5 thỏa mãn định lý 2.1 .

Định lý 2.1 đã được chứng minh.

Một phần của tài liệu TỐI ƯU HOÁ LỚP CÁC THÔNG TIN CÓ CẤU TRÚC DẠNG CÂY NHỊ NGUYÊN 1 VÀ N CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP KHÓA HỮU HẠN BẰNG MÔ HÌNH XỬ LÝ SONG SONG (Trang 43)