Tải bản đầy đủ (.pdf) (117 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.58 MB, 117 trang )



ĐẠI HỌC QUỐC GIA HÀ NỘI
KHOA CÔNG NGHỆ


Trần Thị Ngọc Hà



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




LUẬN VĂN THẠC SĨ






Hà Nội - Năm 2004

Luận văn tốt nghiệp

Trang 89
Contents



MỤC LỤC

LỜI GIỚI THIỆU 1
Chương l: 4
THUẬT TOÁN PHÂN RÃ LỚP THÔNG TIN CÓ CẤU TRÚC DẠNG
CÂYNHỊ PHÂN MỘT CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN
TẬP KHÓA HỮU HẠN 4
1. Định nghĩa cây nhị phân một chiều với thông tin chứa Ở lá. 4
2. Hệ tiên dề và các quy tắc dẫn xuất trên TREE. 6
2.1 Quy tắc dẫn xuất của TREE. 6
2.2 Hệ tiên đề của TREE trên tập khóa hữu hạn K
i
(i=l, 2, , n-l). 6
3. Cây chuẩn tắc một chiều trên tập khóa K. 11
1.4 Bảng mã của cây trên tập khóa K. 23
1.5 Cây tối ưu một chiều trên tập khóa K. 24
1.6 Thuật toán phân rã tìm cây nhị phân tối ưu trên tập khóa hữu hạn
K. 26
1.7 Ví dụ minh hoạ. 30
Chương 2 38
THUẬT TOÁN PHÂN RÃ LỚP THÔNG TIN CÓ CẤU TRÚC DẠNG CÂY
NHỊ PHÂN N CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP KHÓA
HỮU HẠN 38
2.1 Cây nhị phân n-chiều với thông tin chứa ở lá. 38
2.2 Hệ tiên đề và các quy tắc dẫn xuất trên TREE(n). 40
2.2.1 Qui tắc dẫn xuất của TREE(n). 40
2.2.2 Hệ tiên đề của TREE(N) trên tập khóa hữu hạn K
i
(n)(i=l, 2, ,m).

40
Luận văn tốt nghiệp

Trang 90
2.3 Dạng chuẩn tắc của cây nhị phân n-chiều. 48
2.4 Bảng mã của cây n-chiều trên tập khóa K(n). 72
2.5 Cây nhị phân n- chiều tối ưu. 73
2.6 Thuật toán phân rã xây dựng cây n-chiều tối ưu trên tập khóa hữu hạn K(n).
74
2.6.1 Thuật toán chuyển về cây n-chiều chuẩn tắc trên tập khoá hữu hạn
K
i
(n)(i=l, 2, , m) (Thuật toán 2.l). 74
2.6.2 Thuật toán nối các cây n-chiều chuẩn tắc N
i
n
 (K
i
(n))T(i=l, ,m)
thành cây n-chiều chuẩn tắc N
n
 (K(n))T (Thuật toán 2.2). 74
2.6.3 Thuật toán phân rã tập khóa K(n) thành m tập con K
l
(n), K
2
(n), ,
K
m
(n) (Thuật toán 2.3) 75

2.6.4 Thuật toán chuyển về cây n -chiều tối ưu (Thuật toán 2.4). 76
2.6.5 Thuật toán phân rã xây dựng cây n-chiều tối ưu trên tập khóa
K(n). 76
2.7 Ví dụ minh hoạ. 77
2.7.1 Ví dụ mô phỏng thuật toán chuyển về cây 2-chiều chuẩn tắc trên
tập khóa hữu hạn K
i
(2) (thuật toán 2.l). 77
2.2.7 Ví dụ mô phỏng thuật toán nối các cây chuẩn tắc N
i
2
 (K
i
( 2))T
thành cây chuẩn tắc N
2
 (K(2))T (Thuật toán 2.3). 78
2.7.3 Ví dụ mô phỏng thuật toán chuyển cây 2 - chiều chuẩn tắc của T về
cây tối ưu ( thuật toán 2.5) 80
KẾT LUẬN 85
TÀI LIỆU THAM KHẢO: 87
PHỤ LỤC 88





Luận văn tốt nghiệp

Trang 1

LỜI GIỚI THIỆU
Khái niệm cây tìm kiếm nhị phân đóng vai trò rất quan trọng trong cấu trúc
dữ liệu và trong lý thuyết thuật toán. Tuy nhiên, để khai thác tối đa ưu điểm của
cây tìm kiếm nhị phân thì nhất thiết ta phải lưu trữ thông tin trên cây tìm kiếm
nhị phân tối ưu (tức cây nhị phân có số đỉnh và độ cao nhỏ nhất trong tất cả các
cây tương đương với nó). Hơn thế nữa, sau một thời gian sử dụng thì thông tin
lưu trữ trên cây sẽ bị lạc hậu, khi đó ta phải đánh giá và tổ chức lại chúng, các
thông tin lạc hậu sẽ bị loại bỏ. Như vậy, nhu cầu xây dựng cây nhị phân tối ưu
luôn được đặt ra. Vấn đề đặt ra là làm thế nào để xây dựng cây nhị phân tối ưu?
Đã có nhiều thuật toán xây dựng cây nhị phân tối ưu, tuy nhiên, các thuật toán
này hoạt động dựa trên việc xét duyệt trên toàn bộ tập khóa, chính vì vậy khi tập
khóa quá lớn nhất là khi tập khóa là vô hạn thì thời gian thực hiện thuật toán là
rất lớn. Để khắc phục nhược điểm trên, trong luận văn này, ta áp dụng thuật toán
phân rã để tìm cây nhị phân tối ưu và lưu trữ các thông tin đã được phân loại
trong cây tối ưu đó. Thuật toán phân rã dựa trên việc chia nhỏ tập khóa hữu hạn
ban đầu thành n tập khóa con (n tập hữu hạn). Sau đó áp dụng phương pháp tiên
đề của H.Thiele để tìm cây nhị phân chuẩn tắc trên từng tập con đó. Công việc
này có thể tiến hành đồng thời trên tất cả các tập khóa con vì vậy nó sẽ làm giảm
đáng kể thời gian thực hiện thuật toán so với việc thực hiện thuật toán trên toàn
tập khóa ban đầu. Tiếp theo, ta ghép nối các cây chuẩn tắc của từng tập con theo
quy luật các khóa có giá trị tăng dần ta được cây chuẩn tắc trên toàn tập khóa ban
đầu. Từ đó dùng thuật toán bẻ đôi cây chuẩn tắc ta được cây nhị phân tối ưu trên
toàn tập khóa ban đầu. Thuật toán phân rã hoàn toàn không làm mất thông tin có
ích, Cây nhị phân tối ưu thu được bằng thuật toán phân rã hoàn toàn giống với
cây tối ưu thu được khi thực hiện trên toàn tập khóa ban đầu.
Một vấn đề nữa đặt ra là: với cấu trúc cây nhị phân n-chiều thì liệu các kết
quả trên có còn đúng không? Để trả lời câu hỏi này chúng tôi đã tổng quát hoá
Luận văn tốt nghiệp

Trang 2

bài toán trên cho cấu trúc cây nhị phân n-chiều. Tuy nhiên, cho đến nay, em mới
chỉ giải quyết xong bài toán với cấu trúc cây nhị phân n-chiều với thông tin chứa
ở lá. Điều thú vị là khi thay n = 1 ta thu lại được hoàn toàn những kết quả đã
nghiên cứu với cấu trúc cây nhị phân một chiều với thông tin chứa ở lá.

Luận văn gồm các chƣơng sau:
Chƣơng 1: Thuật toán phân rã lớp thông tin có cấu trúc dạng cây nhị phân một
chiều với thông tin chứa ở lá trên tập khóa hữu hạn.
- Xây dựng các khái niệm: Cây nhị phân một chiều với thông tin chứa ở lá, hàm
kết quả, sự tương đương giữa các cây nhị phân một chiều, dạng chuẩn của cây
nhị phân một chiều, bảng mã của cây nhị phân, cây nhị phân một chiều tối ưu.
Các qui tắc dẫn xuất và hệ tiên đề của cây nhị phân một chiều.
- Các tính chất tương đương giữa các cây nhị phân một chiều, của dạng chuẩn
tắc, của cây tối ưu và các bổ đề, các định lý cho phép kiểm tra tính tương
đương giữa các cây nhị phân, biến đổi tương đương giữa các cây nhị phân.
- Thuật toán chuyển về cây nhị phân một chiều chuẩn tắc, thuật toán nối các
cây nhị phân một chiều chuẩn tắc, phân hoạch tập khóa ban đầu K thành n tập
khóa con
- Thuật toán chuyển về cây nhị phân một chiều tối ưu.
- Thuật toán phân rã xây dựng cây nhị phân một chiều tối ưu.
- Các ví dụ minh hoạ.

Chƣơng 2: Thuật toán phân rã lớp thông tin có cấu trúc dạng cây nhị phân n-
chiều với thông tin chứa Ở lá trên tập khóa hữu hạn.
- Xây dựng các khái niệm về: cây nhị phân n-chiều với thông tin chứa Ở lá,
hàm kết quả, sự tương đương giữa các cây nhị phân n-chiều, dạng chuẩn của
cây nhị phân n- chiều, cây nhị phân n-chiều tối ưu. Các qui tắc dẫn xuất và hệ
tiên đề của cây nhị phân n-chiều.
Luận văn tốt nghiệp


Trang 3
- Các tính chất tương đương giữa các cây nhị phân n-chiều, của dạng chuẩn tắc,
của cây tối ưu và các bổ đề, các định lý cho phép kiểm tra tính tương đương
giữa các cây nhị phân n-chiều, biến đổi tương đương giữa các cây nhị phân n-
chiều.
- Thuật toán chuyển về cây nhị phân n-chiều chuẩn tắc, thuật toán nối các cây
nhị phân n-chiều chuẩn tắc tắc, phân hoạch tập khóa ban đầu K(n) thành in tập
con K
l
(n), K
2
(n), , K
n
(n), thuật toán chuyển về cây nhị phân n-chiều tối ưu.
- Thuật toán phân rã xây dựng cây nhị phân n-chiều tối ưu.
- Các ví dụ minh hoạ.

Kết luận: Tóm tắt lại những kết quả thu được của luận văn này.

Tài liệu tham khảo.
Phụ lục: Cài đặt chương trình mô phỏng thuật toán xây dựng cây nhị phân một
chiều tối ưu cho lớp các thông tin có cấu trúc dạng cây nhị phân một chiều với
thông tin chứa ở lá.
Luận văn tốt nghiệp

Trang 4
Chương l:
THUẬT TOÁN PHÂN RÃ LỚP THÔNG TIN CÓ CẤU TRÚC DẠNG CÂY
NHỊ PHÂN MỘT CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP
KHÓA HỮU HẠN

Nội dung của chương này gồm:
- Các định nghĩa về: cây nhị phân một chiều với thông tin chứa Ở lá, hàm kết
quả, sự tương đương giữa các cây nhị phân một chiều, dạng chuẩn của cây nhị
phân một chiều, bảng mã của cây nhị phân, cây nhị phân một chiều tối ưu. Các
qui tắc dẫn xuất và hệ tiên đề của cây nhị phân một chiều.
- Các tính chất tương đương giữa các cây nhị phân một chiều, của dạng chuẩn tắc
và các bổ đề, các định lý cho phép kiểm tra tính tương đương giữa các cây nhị
phân, biến đổi tương đương giữa các cây nhị phân.
- Thuật toán chuyển về cây nhị phân một chiều chuẩn tắc trên tập khóa hữu hạn,
- Thuật toán nối các cây nhị phân một chiều chuẩn tắc, phân hoạch tập khóa ban
đầu K thành n tập con K
1
, K
2
, K
n

- Thuật toán chuyển về cây nhị phân một chiều tối ưu.
- Thuật toán phân rã xây dựng cây nhị phân một chiều tối ưu.
- Các ví dụ minh họa các thuật toán.
1. Định nghĩa cây nhị phân một chiều với thông tin chứa Ở lá.
Giả sử D là tập không rỗng các Documents nào đó và mỗi phần tử của nó
ta gọi là một thông tin, D được gọi là tập các thông tin. Tập K là tập hữu hạn các
phần tử mà trên đó thỏa mãn quan hệ so sánh (tức là với mọi x, y K ta có : x >
y hoặc x y). Không mất tính tổng quát ta xem K là tập các số tự nhiên. K được
gọi là tập khóa của các cây nhị phân.
Ta kí hiệu là cây rỗng và ta đặt D
+
= D { } .
Giả sử các kí hiệu [ ] < > , D

+
K.

Luận văn tốt nghiệp

Trang 5
Định nghĩa l.1 (Định nghĩa đệ qui cây nhị phân một chiều với thông tin chứa
ở lá)
a. Mỗi phần tử d D gọi là một cây.
b. Nếu T
1
, T
2
là hai cây và k K, thì dãy kí hiệu k <T
1
,T
2
> cũng là một cây.
Dạng đồ thị của cây d <T
1
,T
2
> như sau:
k

T
1
T
2
Tập tất cả các cây định nghĩa như trên ta kí hiệu qua TREE và gọi là tập

các cây nhị phân một chiều với thông tin chứa ở lá trên tập khóa K (gọi tắt là cây
nhị phân).K là tập khoá của TREE. Mỗi đỉnh có khoá k được gọi là đỉnh trong
của cây. Thông tin được chứa ở đỉnh ngoài ( tức là đỉnh không chứa khoá) còn
gọi là lá. T
1
là cây con bên trái, T
2
là cây con bên phải.
Định nghĩa 1.2 (Định nghĩa hàm đánh giá hay hàm kết quả)
Ta kí hiệu " " " " để chỉ sự đồng nhất bằng nhau(không đồng nhất bằng
nhau) giữa các cây nhị phân. Giả sử T là một cây nhị phân và l K. Ta định
nghĩa hàm kết quả f từ tập TREE K vào D theo định nghĩa đệ quy của T như sau:
a. Nếu cây nhị phân T d D thì f(T,l) = f(d,1) = d với mọi l K.
b. Nếu cây nhị phân T k<T
1
,T
2
> thì :
f(T
1
,l) nếu 1 k
f(T,1) = f(k<T
1
,T
2
>,l) =
f(T
2
) nếu 1 > k
Định nghĩa 1.3 (Định nghĩa sự tương đương giữa hai cây nhị phân)

Giả sử T
1
, T
2
TREE. Ta nói T
1
là tương đương với T
2
trên K( Kí hiệu T
1

(K) T
2
) khi và chỉ khi: f(T
1
, l) = f(T
2
, l) với mọi 1 K.
Từ định nghĩa trên ta thấy rằng: T
1
không tương đương với T
2
trên K (Ký
hiệuT
1
(K) T
2
) khi và chỉ khi tồn tại một khóa l
0
K sao cho f(T

1
, l
0
) f(T
2
, l
0
)
Luận văn tốt nghiệp

Trang 6

2. Hệ tiên dề và các quy tắc dẫn xuất trên TREE.
2.1 Quy tắc dẫn xuất của TREE.
Trước hết ta đưa vào khái niệm phương trình cây:
Giả sử T
1
, T
2
TREE và "=" là một kí hiệu không thuộc tập K D
+
{
[,],<,>} . Khi đó dãy kí hiệu T
l
= T
2
gọi là một phương trình cây.
Đặt EQU : {T
1
= T

2
| T
1
,T
2
TREE}. EQU được gọi là tập tất cả những phương
trình cây trên TREE. Giả sử X EQU và T
l
= T
2
EQU.
Định nghĩa 1.4 (Định nghĩa dẫn được)
Phương trình cây T
1
= T
2
là dẫn được từ X( kí hiệu X ├ T
1
= T
2
) khi và chỉ khi
T
1
= T
2
X hoặc T
1
= T
2
dẫn được từ các phần tử trong X bằng cách áp dụng

một số hữu hạn lần các qui tắc dẫn xuất sau :
Quy tắc 1 (R
1
): X ├ T =T với mọi T TREE.
Quy tắc 2 (R
2
): Nếu X ├ T
1
= T
2
thì X ├ T
2
= T
1
.
Quy tắc 3 (R
3
): Nếu X ├ T
1
= T
2
và X ├ T
2
= T
3
thì X ├ T
1
= T
3
Quy tắc 4 (R

4
): Nếu X ├ T
1
= T
1
' thì X ├ k <T
1
, T
2
> = k < T
1
', T
2
>
Quy tắc 5 (R
5
): Nếu X ├ T
2
=T
2
' thì X ├ k <T
1
,T
2
> = k < T
1
, T
2
'>


2.2 Hệ tiên đề của TREE trên tập khóa hữu hạn K
i
(i=l, 2, , n-l).
Do K
i
hữu hạn nên trong K
i
tồn tại phần tử bé nhất và phần tử lớn nhất mà ta kí
hiệu tương ứng là k
imin
, k
imax
Hệ tiên đề của TREE trên tập khóa hữu hạn K
i
là tập các phương trình cây sau:
Tiên đề ax
i1
: k<k' <T
1
,T
2
>, T
3
> = k <T
1
, T
3
> là một tiên đề nếu
k
imin

k < k’ k
imax
.

Dạng đồ thị: k = k

k’ T
3
T
1
T
3

T
1
T
2

Luận văn tốt nghiệp

Trang 7
Tiên đề ax
i2
: k < k' <T
1
, T
2
>, T
3
> = k' <T

1
, k <T
2
, T
3
> > là một tiên
đề nếu k
imin
k’ < k k
imax
.


Dạng đồ thị: k = k’

k’ T
3
T
1
k


T
1
T
2
T
2
T
3


Tiên đề ax
i3
: k < T
1
, k' <T
2
, T
3
>> = k <T
1
, T
3
> là một tiên đề nếu
k
imin
k k’ k
imax
.

Dạng đồ thị: k = k

T
1
k’ T
1
T
3

T

2
T
3


Tiên đề ax
i4
:

k <T, T> = T là một tiên đề với mọi T TREE và k K
i

Dạng đồ thị: k = T


T T

Tiên đề ax
i5
: k < T
1
, k' <T
1
, T
2
>> = k’ <T
1
, T
2
> là một tiên đề nếu

k
imin
k < k’ k
imax
.

Dạng đồ thị: k = k’

T
1
k’ T
1
T
2

T
1
T
2


Tiên đề ax
i6
(tiên đề max) k <T
1
, T
2
> = T
1
là một tiên đề nếu k > k

imax



Dạng đồ thị: k = T
1


T
1
T
2

Luận văn tốt nghiệp

Trang 8
Tiên đề ax
i7
(tiên đề min) k <T
1
, T
2
> = T
2
là một tiên đề nếu k < k
imin
Dạng đồ thị: k = T
2



T
1
T
2

Đặt AX
i
= {ax
i1
, ax
i2
, ax
i3
, ax
i4
, ax
i5
, ax
i6
, ax
i7
} và gọi AX
i
là hệ tiên đề trên
tập khoá hữu hạn K
i
(i= 1, , n-l).
Một cách tổng quát, trong cây T
l
ta có thể thay cây con T

0
bởi cây T
00
, Khi
đó, ta sẽ được cây T
2
(ký hiệu T
1
T
0
T
00
T
2
). Như vậy, ký hiệu T
1
T
0
T
00
T
2
có nghĩa
là T
2
nhận được từ T
l
bằng cách thay cây con T
0
của T

l
bởi T
00

Giả sử X EQU ta có bổ đề sau:
Bổ đề l.l: Nếu T
l
, T
0
, T
00
, T
2
TREE, T
1
T
0
T
00
T
2
và X ├ T
0
= T
00
thì X ├ T
1
=
T
2


Thật vậy, ta sẽ chứng minh bổ đề 1 . 1 theo quy nạp từ định nghĩa 1 . 1 ta có các
trường hợp sau:
Trường hợp l: Nếu T
l
d Khi đó T
l
= T
0
T
00
T
2
d
Hiển nhiên là X ├ T
1
= T
2

Trường hợp 2: Nếu T
l
k < T
ll
, T
12
> , Khi đó ta có các trường hợp sau:
Nếu T
l
T
2

thì bổ đề hiển nhiên đúng.
Nếu T
l
T
0
và T
00
T
2
Theo giả thiết ta có X ├ T
0
= T
00
X ├ T
1
= T
2

Nếu T
l
T
2
, T
l
T
0
và T
00
T
2

giả sử ta đã có T
21
, T
22
thoả mãn
X ├ T
11
= T
21
(l) , X ├ T
12
= T
22
(2) và T
11
T
0
T
00
T
21
, T
12
T
0
T
00
T
22
Ta cần chứng

minh X ├ T
1
= T
2
Dễ thấy: T
2
k < T
21
, T
22
> Từ ( 1 ) , áp dụng quy tắc
R
4
ta có X ├ k <T
11
,T
12
> = k < T
21
,T
22
> (3).
áp dụng R
5
ta có : X ├ k <T
21
,T
22
> = k < T
21

,T
22
> (4) .
Từ (3) và (4) áp dụng R
3
ta có: X ├ k <T
11
,T
12
> = k < T
21
,T
22
> hay X ├ T
1
= T
2

Bổ đề 1.1 đã được chứng minh.
Định lý l.l: Giả sử T
1
, T
2
TREE, nếu AX ├ T
1
= T
2
thì T
1
(K)T

2
Luận văn tốt nghiệp

Trang 9
Thật vậy ta chứng minh định lý 1.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 T
l
= T
2
là ax
l
, khi đó ta có: T
l
k <[k' < T
ll
, T
21
>, T
31
> và
T
2
k <T
21
, T
31
> với k < k'. Với mọi l K ta có các trường hợp sau:
Nếu l k < k' ta có:

f(T
l
, l) = f(k <[k' <T
ll
, T
21
> , T
31
>, l ) = f( k', <T
ll
, T
21
>, l ) = f(T
ll
, l)
và f(T
2
, l) = f(k < T
21
, T
3l
>, l ) = f(T
ll
, l).
Vậy ta có f(T
l
, l) f(T
2
, l) với mọi l K thỏa mãn l k < k'.
Nếu k < l k' ta có:

f(T
l
, 1 ) = f( k <[k' <T
ll
, T
21
>, T
31
>, l ) = f(T
2l
, l).
f(T
2
, 1 ) = f( k <T
21
, T
31
> , 1 )= f(T
31
, 1 ) .
vậy ta có f(T
l
, 1 ) = f(T
2
, l ) với mọi l K thỏa mãn k’ < l k'.
Nếu l > k' ta có:
f(T
l
, l) = f(k <[k', <T
ll

, T
21
>, T
31
>, l ) = f(T
3l
, l).
f(T
2
, l ) = f(k <T
21
, T
31
>, l ) = f(T
31
, l ).
vậy ta có f(T
l
, l ) = f(T
2
,1 ) với mọi l K thỏa mãn l > k'.
Vậy ta có f(T
l
, l ) = f(T
2
, l ) Với mọi l K nếu T
l
T
2
là ax

l
.
+ Nếu T
l
= T
2
là ax
2
, khi đó ta có: T
l
k < k', <T
ll
, T
21
> , T
31
> và
T2 k' <T
ll
, k <T
21
, T
31
> > với k > k'. Với mọi l K ta có các trường hợp sau:
Nếu l k'< k ta có:
f(T
1
, l) = f( k < k' <T
ll
, T

21
> ,T
31
>, l ) = f( k' <T
ll
, T
21
>, l) = f(T
ll
, l >
f(T
2
, l ) = f( k' <T
ll
, k <T
21
, T
31
> > , l ) = f(T
ll
, l ).
Vậy ta có f(T
l
, l ) = f(T
2
, l ) với mọi l K thỏa mãn l k'< k.
Nếu k'< l k ta có:
f(T
l
, l) = f( k' <T

ll
, T
21
>, l ) = f(T
21
, l).
Luận văn tốt nghiệp

Trang 10
f(T
2
, l) = f( k <T
21
,T
31
> , l ) = f(T
21
, l) .
Vậy ta có f(T
l
, l ) = f(T
2
, l ) Với mọi l K thỏa mãn k' < l k.
Nếu l > k ta có:
f(T
l
, l) = f(T
31
, l)
và f(T

2
, l) = f(k <T
21
,T
31
>, l) = f(T
31
, l).
vậy ta có f(T
l
, l) = f(T
2
, l) với mọi l K thỏa mãn l > k.
Vậy ta có f(T
l
, l) = f(T
2
, l) với mọi l K nếu T
1
= T
2
là ax
2

+ Nếu T
l
= T
2
là ax
3

, khi đó ta có: T
1
k <T
ll
, k' <T
21
, T
31
> > và
T
2
k <T
ll
, T
31
> Với k k'. Với mọi l K ta có các trường hợp sau:
Nếu l k' k ta có:
f(T
l
, l ) = f(T
l1
, l ) và f(T
2
, l) = f(T
l1
, l) .
Vậy ta có f(T
l
, l) = f(T
2

, l) Với mọi l K thỏa mãn l k' k.
Nếu k' < l k ta có:
f(T
l
, l) = f(T
l1
, 1 ) và f(T
2
, l) = f(T
l1
, l). .
Vậy ta có f(T
l
, l) = f(T
2
, l) Với mọi l K thỏa mãn k'< 1 k.
Nếu l > k ta có:
f(T
l
, l) = f( k', <T
21
, T
31
> , l) = f(T
31
, l)
và f(T
2
, l) = f(T
31

, l).
vậy ta có f(T
l
, l) = f(T
2
, l) với mọi l K thỏa mãn l > k.
Vậy ta có f(T
l
, l) = f(T
2
, l) Với mọi l K nếu T
l
= T
2
là ax
3

+ Nếu T
l
= T
2
là ax
4
, khi đó ta có:T
1
k <T
ll
, T
12
> và T

2
T
ll
với k > k
max

Với mọi l K ta có: f(T
l
, l) = f(T
ll
, l) = f(T
2
,l) (Vì l k
max
< k).
Vậy ta có f(T
l
, l) = f(T
2
, l) với mọi l K nếu T
l
= T
2
là ax
4

+ Nếu T
l
= T
2

là ax
5
khi đó ta có:T
l
k <T
ll
,T
12
> và T
2
T
12
với k < k
min

Với mọi l K ta có: f(T
l
, l) = f(T
12
, l ) = f(T
2
, l) (vì k < k
min
l)
Vậy ta có f(T
l
, l) = f(T
2
, l) với mọi l K nếu T
l

= T
2
là ax
5

Luận văn tốt nghiệp

Trang 11
Ngoài ra để chứng minh tính đúng đắn của định lý 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:
Quy tắc l(R
l
): X ├ T
1
= T
1
với mọi T
1
TREE(n), hiển nhiên ta có:
f(T
l
, l) = f(T
l
, l) với mọi l K.
Quy tắc 2(R
2
): Nếu X ├ T
1
= T
2

thì X ├ T
2
= T
1
, hiển nhiên ta có:
f(T
l
, l) = f(T
2
, l) Với mọi l K.
Quy tắc 3(R
3
): Nếu X ├ T
1
= T
2
và X ├ T
2
= T
3
thì X ├ T
1
= T
3

hiển nhiên ta có: f(T
l
, l) = f(T
2
, l) và f(T

2
, l) = f(T
3
, l) f(T
l
, l) = f(T
3
, l)
với mọi l K.
Quy tắc 4(R
4
): Nếu X ├ T
1
= T
1
’ (*) thì X ├ k<T
1
, T
2
> = k<T
1


, T
2
>
Ta chứng minh f(k <T
l
, T
2

>, l) = f(k < T
l
, T
2
>, l) với mọi l K.
Thật vậy:
*Nếu l k ta có: f( k <T
l
, T
2
>, l) = f(T
l
, l).
f( k <T
l
, T
2
>, l) = f(T
l
, l). Theo (*) ta có:
f(T
l
, l) f(T
l
, l). Vậy: f(k <T
l
, T
2
> , l) = f( k <T
l

, T
2
> , l).
*Nếu l > k ta có: f(k <T
l
, T
2
>, l) = f(k <T
l
’, T
2
>, l) : f( T
2
, l).
vậy quy tắc R
4
thỏa mãn định lý 1.1 .
Quy tắc 5(R
5
):
Nếu X ├ T
2
= T
2
’ (**) thì X ├ k<T
1
, T
2
> = k<T
1

, T
2
’ >
Ta chứng minh f( k <T
l
, T
2
>, l) = f( k <T
l
, T
2
>, l) Với mọi l K.
Thật vậy:
*Nếu l < k ta hiển nhiên có: f( k <T
l
, T
2
>, l) = f( k < T
l
, T
2
’>, l) = f( T
l
, l).
*Nếu l > k ta có: f( k <T
l
, T
2
>, l) = f(T
2

, l).
f( k < T
l
’, T
2
>, l) = f(T
2
’ , l). Theo (**) ta có: f(T
2
, l) = f( T
2
’ , l).
vậy: f(k <T
l
, T
2
>, l) = f( k <T
l
, T
2
’ >, l)'
vậy quy tắc R
5
thỏa mãn định lý 1.1. Định lý 1.1 đã được chứng minh.
Luận văn tốt nghiệp

Trang 12

3. Cây chuẩn tắc một chiều trên tập khóa K.
Định nghĩa 1.5 (Định nghĩa cây chuẩn tắc ).

Cây N TREE gọi là cây chuẩn tắc nếu N là một trong hai dạng sau :
a. N d D.
b. Nếu N d thì N k
1
< d
1
, k
2
< d
2
, ,k
s
, d
s+1
> >>
Dạng đồ thị của cây chuẩn tắc N: N k
1

d
1
k
2



d
1

k
s


d
s
d
s+1
Ở đây: k
1
< k
2
< < k
s
(k
i
K với i =l, 2, , s) và d
1
, d
2
d
s
D.
d
i
d
i+1
(i=1, ,s)
Nếu N, T TREE, N là dạng chuẩn tắc và N (K)T thì ta nói N là cây một
chiều chuẩn tắc của T trên K.

Định lý l.2 (tính duy nhất của dạng cây chuẩn tắc)
Giả sử N

1
, N
2
là 2 cây một chiều chuẩn tắc khi đó ta có: N
1
N
2
N
1
N
2
Chứng minh:
Điều kiện đủ: Nếu N
1
N
2
thì N
1
N
2
là hiễn nhiên đúng vì f(N
1
,l) = f(N
2
,l)
với mọi l K
Điều kiện cần: Ta có 4 trường hợp sau:
1. N
1
d

1
, N2 e
1
(với d
1
, e
1
D)
Theo định nghĩa 3 ta có :
N
1
N
2
khi f(N
1
,l) = f(N
2
,l) với mọi l K (1)
Ta có :
Luận văn tốt nghiệp

Trang 13
f(N
1
,l) = f(d
1
,l) = d
1

f(N

2
,l) = f(e
1
,l) = e
1

Vậy N
1
N
2
thì N
1
N
2
2. N
1
d
1
, N
2
k
1

e
1
k
2




e
2


k
s

e
s
e
s+1

Ở đây: k
1
< k
2
< < k
s
(k
i
K với i =l, 2, , s-1) và d
i
D.
d
i
d
i+1
(i=1, ,s)
Do N
1

N
2
nên N
1
N
2

f(N
2
,k
1
) =e
1
= f(N
1
,k
1
) = d
1

f(N
2
, k
2
) = e
2
= f(N
1
,k
2

) = d
1

Mà giả thiết e
1
e
2
(định nghĩa cây lệch phải) nên e
1
= e
2
là trái với giả thiết.
Vậy N
1
N
2

3. N
1
k
1
N
2
e
1


d
1
k

2



d
2


k
s

d
s
d
s+1


Chứng minh tương tự mục 2 ta có:
Do N
1
N
2
nên N
1
N
2

f(N
1
,k

1
) =d
1
= f(N
2
,k
1
) = e
1

} theo (1) = > d
1
= e
1
hay N
1
N
2


} = > e
1
= e
2

} = > d
1
= d
2


Luận văn tốt nghiệp

Trang 14
f(N
1
, k
2
) = d
2
= f(N
2
,k
2
) = e
1

Mà giả thiết d
1
d
2
(định nghĩa cây lệch phải) nên d
1
= d
2
là trái với giả thiết.
Vậy N
1
N
2


4. N
1
và N
2
có các dạng sau:
N
1
k
1
N
2
l
1


d
1
k
2
e
1
l
2

d
2
e
2



k
s
l
t

d
s
d
s+1
e
t
e
t+1

Với d
i
, e
j
D. d
i
d
i+1
, e
j
e
j+1
, (k
i
, k
j

) K, i =1 s , j= 1 t
k
i+1
- k
i
> 0 , l
j+1
-l
j
> 0 , i = 1 s-1 , j =1 t-1
Nếu N
1
N
2
thì ta chứng minh N
1
N
2
tức là chứng minh
l
1
= k
1
, l
2
= k
2
, l
t
= k

s
(a)
d
1
= e
1
, d
2
= e
2
, d
s
= e
t
, d
s+1
= e
t+1

` và chứng minh: s = t (b)
Bây giờ ta lần lượt chứng minh (a) và (b).
* Chứng minh (a):
Giả sử l
1
k
1

Xét trường hợp k
1
< l

1
. lấy m K với k
1
=m ta có:
f(N
1
,k
1
) = f(N
1
,m) = d
1

f(N
2
,k
1
) = f(N
2
,m) = e
1


f(N
1
,k
1
+1) = f(N
1
,m+1) = d

2

f(N
2
,k
1
+1) = f(N
2
,m+1) = e
1

Từ (1) và (2) suy ra d
1
= d
2
(vô lý) vì d
1
d
2

= > kết luận k
1
= l
1
= > d
1
= e
1

{

} = > d
1
= e
1
(1)
} = > d
2
= d
1
(2)
Luận văn tốt nghiệp

Trang 15
Chứng minh tương tự ta có:
l
2
= k
2
, l
3
= k
3
, l
s
= k
s

d2 = e
2
, d

3
= e
3
, d
s
= e
s


* Chứng minh (b) tức chứng minh s = t:
Giả sử s < t ( với trường hợp s > t) ta chứng minh tương tự)
Vì s < t nên k
s
= l
s
< l
t
(3)
N
2
l
1


e
1
l
2

e

2


l
s



e
s
l
s+1

l
s+1
l
t


e
t
e
t+1

Với k
i
K , i=1 t , l
1
< l
2

< <l
t

e
i
e
i+1
, i = 1 t
Ta có:
f(N
2
, l
t
) = e
t

f(N
1
, l
t
) = d
s+1
mà N
1
N
2
nên e
t
= d
s+1

(1)
Ta lại có:
f(N
1
, l
t
+1) = d
s+1

f(N
2
, l
t
+1) = e
t+1
vì N
1
N
2
nên d
s+1
= e
t+1
(2)

Từ (1) và (2) ta có: e
t
= e
t+1
điều này trái với định nghĩa cây lệch phải là e

t

e
t+1

{
{
{
{
Luận văn tốt nghiệp

Trang 16
Suy ra s = t và d
s+1
= e
t+1

Qua các trường hợp trên : N
1
N
2
N
1
N
2
(định lý 1.2 được chứng minh)
Định lý l.3:
Với mọi cây T TREE tồn tại duy nhất cây một chiều chuẩn tắc N trên K sao
cho:
a. AX ├ T = N.

b. T (K)N.
Chứng minh:
Theo định lý 1.1 ta có: nếu AX ├ T
1
= T
2
thì T
1
(K)T
2
nên câu b) dễ dàng suy
ra từ a). Vậy ta chỉ cần chứng minh câu a) là đủ.
Với mọi cây T TREE ta sẽ chỉ ra rằng: ta luôn chọn được duy nhất cây
một chiều chuẩn tắc (cây lệch phải) N sao cho: AX ├ T = N sau khi đã áp dụng
một số lần các tiên đề trong AX hoặc các qui tắc dẫn xuất. Ta chứng minh định lý
1.3 bằng qui nạp theo chiều dài dẫn xuất của cây. Ta xét các trường hợp sau:
1. Nếu T d D Ta chọn ngay N d và ta có ngay AX ├ T = N (theo qui
tắc R
1
).

2. Nếu T = k <T
1
, T
2
> ở đây T
i
(i=1,2) đã tồn tại cây lệch phải là R
i
(i=1,2) . Ta


AX ├ T = k

T
1
T
2

áp dụng 2 lần bổ đề 1 ta được
AX ├ T = k

N
1
N
2


* Với k k
max
và k k
min
ta chọn ngay được cây N N
1
hoặc N N
2
là cây lệch
phải thoả mãn: (T N) và AX ├ T = N
Luận văn tốt nghiệp

Trang 17

* Với k K tức ( k
min
< k < k
max
) ta xét các trường hợp sau:
2.1 Nếu N
1
d , N
2
d . Ta chọn N = k < d, d >
= > suy ra N là cây lệch phải và AX ├ T = N

2.2 Nếu N
1
d , N
2
k
1
<d
1
,k
2
<d
2
, ,k
n
<d
n
,d
n+1

> >>
với k
1
<k
2
< <k
n
và d
i
d
i+1
(i=1 n)
AX ├ T = k

d k
1


d
1


k
n


d
n
d
n+1



2.2.1 a. Nếu k < k
1
và d = d
1
thì áp dụng tiên đề AX
5

Chọn N k
1

d
1
k
2


d
2


k
n


d
n
d
n+1


= > N là dạng lệch phải và AX ├ T = N
b. Nếu k < k
1
và d d
1
thì chọn
N k


d k
1


d
1


k
n

Luận văn tốt nghiệp

Trang 18

d
n
d
n+1


Rõ ràng N là cây lệch phải thoả mãn AX ├ T = N

2.2.2 Nếu k
1
< k
2
< < k
t
k < k
t+1
< < k
n
thì áp dụng tiên đề AX
3

qui tắc R
3
(t lần) ta có:
AX ├ T = k


d k
t+1


d
t+1

k
n



d
n
d
n+1

a. Nếu d = d
t+1
thì áp dụng tiên đề AX
5

Chọn N k
t+1

d
t+1

k
n


d
n
d
n+1

N là cây lệch phải và AX ├ T = N

b. Nếu d d

t+1

Chọn N k

d k
t+1

d
t+1

k
n


d
n
d
n+1

N là cây lệch phải và AX ├ T = N

2.2.3 Nếu k k
n
áp dụng AX
3
và N
2
(n lần ) ta có:
Luận văn tốt nghiệp


Trang 19
AX ├ T = k


d d
n+1


a. Nếu d = d
n+1
thì áp dụng tiên đề AX
4

Chọn N d => N là dạng lệch phải và AX ├ T = N
b. Nếu d d
n+1
thì
Chọn N k


d d
n+1

=> N là dạng lệch phải và AX ├ T = N

2.3 Nếu N
1
k
1
<d

1
,k
2
<d
2
, ,k
n
<d
n
,d
n+1
> >> , N
2
d
với k
1
<k
2
< <k
n
và d
i
d
i+1
(i=1 n)
Tương tự như trường hợp 2 . 2 .

2.4 Nếu N
1
k

1
<d
1
,k
2
<d
2
, ,k
n
<d
n
,d
n+1
> >>
với k
1
<k
2
< <k
n
và d
i
d
i+1
(i=1 n)
N
2
l
1
<e

1
,l
2
<e
2
, ,l
s
<e
s
,e
s+1
> >>
với l
1
<l
2
< <l
s
và e
i
e
i+1
(i=1 s)
AX ├ T = k

k
1
l
1




d
1
k
2
e
1
l
2


d
2
k
n
e
2
l
s



d
n
d
n+1
e
s
e

s+1


Luận văn tốt nghiệp

Trang 20
Ta có các trường hợp sau:
2.4.1 Nếu k k
1
,áp dụng tiên đề AX
1
và qui tắc R
3
ta có:


AX ├ T = k

d
1
l
1


e
1
l
2

e

2
l
s


e
s
e
s+1


Tương tự như trường hợp 2.2 ta dễ tìm được dạng chuẩn tắc N sao cho: AX ├ T
= N.
2.4.2 Nếu k > k
n
, áp dụng tiên đề AX
2
và qui tắc R
3
(s lần) ta có:
AX ├ T = k
1


d
1
k
n



d
n
k

d
n+1
l
1


e
1
l
s

e
s
e
s+1


Đối với cây con
T’ k

d
n+1
l
1



e
1
l
s

Luận văn tốt nghiệp

Trang 21
e
s
e
s+1


Tương tự như trường hợp 2.2 đưa T’ về dạng lệch phải N’ ta có:

AX ├ T = k
1


d
1
k
2

d
2


k

n

d
n
N’


Đến đây quay về chứng minh tương tự mục 2.2
2.4.3 Nếu k
1
<k
2
< < k k
t
< k
n

chứng minh tương tự mục 2.3.2
Áp dụng tiên đề AX
2
và R
3
(t lần) , sau đó áp dụng AX
1
, R
3
ta có:

AX ├ T = k
1



d
1
k
t-1

d
t-1
k

d
t
l
1


e
1

l
s

e
s
e
s+1


Đến đây chứng minh tương tự như mục 2.4.2

Luận văn tốt nghiệp

Trang 22
Như vậy ta đã chứng minh được rằng: với mọi cây T TREE luôn chọn được cây
1 chiều chuẩn tắc N sao cho AX ├ T = N.Ta sẽ chứng minh tính duy nhất của N.
Thật vậy: Giả sử tồn tại N’ N sao cho N’ là dạng chuẩn tắc và AX ├ T = N’.
áp dụng các qui tắc R
2
, R
3
ta có: AX ├ N = N’. Theo định lý 1.1 ta có: N N’ .
Theo định lý 1.2 ta có N N’ (vô lý vì N’ N). Vậy N là duy nhất.
Định lý 1.3 đã được chứng minh.

Định lý 1.4 chỉ ra cách kiểm tra tính tương đương của 2 cây nhị phân)
Giả sử N
1
, N
2
lần lượt là dạng chuẩn của T
1
, T
2
TREE. Điều kiện cần
và đủ để T
1
T
2
là N
1

N
2
Chứng minh:
Điều kiện cần: Vì N
1
, N
2
lần lượt là dạng chuẩn của T
1
, T
2
nên T
1
N
1
, T
2
N
2
.
Suy ra: N
1
N
2
. Áp dụng định lý 1.2 ta có N
1
N
2
Điều kiện đủ: Vì N
1

N
2
mặt khác T
1
N
1
, T
2
N
2
nên T
1
T
2
Vậy định lý 1.4 được chứng minh.
Định lý 1.4 cho ta cách thức để kiểm tra 2 cây nhị phân một chiều có tương
đương với nhau không. Thuật toán kiểm tra tính tương đương của 2 cây T
1
, T
2

TREE như sau:
Bước 1 : Lần lượt áp dụng thuật toán 1.1 cho T
1
,T
2

để tìm dạng chuẩn N
1
, N

2
Bước 2: So sánh N
1
với N
2
Nếu N
1
N
2
thì T
1
T
2
ngược lại thì T
1
T
2
Định lý l.5:
Giả sử T
1
, T
2
TREE. Điều kiện cần và đủ để T
1
T
2
là AX ├ T
1
= T
2

Chứng minh:
Điều kiện cần: Theo định lý 1.3 ta có:
Tồn tại duy nhất dạng chuẩn tắc N
1
sao cho AX ├ T
1
= N
1

×