Cây quyết định– Cây quyết định là cây: cho một câu hỏi – Khi tính toán trên cây quyết định định một đường đi đến một nút lá liệu sẽ dẫn ta đến một nút ở mức tiếp theo Cây quyết định – Ví
Trang 1Cây quyết định
– Cây quyết định là cây:
cho một câu hỏi
– Khi tính toán trên cây quyết định
định một đường đi đến một nút lá
liệu sẽ dẫn ta đến một nút ở mức tiếp theo
Cây quyết định
– Ví dụ : Bài toán tìm kiếm
một giá trị X có xuất hiện trong A không, nếu có cho biết
vị trí trong mảng A của X
– Cây quyết định để giải bài toán
– Mỗi nút lá tương ứng là một giá trị về vị trí i hoặc giá trị 0
thể hiện sự không xuất hiện
Trang 2Cây quyết định – Bài toán tìm kiếm
z A = { 2, 4, 5, 7, 9, 12}x<7 ?
x =2? x<5 ?
x=4 ? x=5 ?
1 0
2 0 3 0
x =7 ? x<12?
x =9 ? x =12?
4 0
5 0 6 0
Mã hóa văn bản
z Bài toán mã hóa văn bản :
– Cho một văn bản D trên bảng chữ cái C Cần mã
hóa văn bản đã cho
Trang 3Mã hóa với độ dài cố định
– Ví dụ: Bảng chữ cái tiếng Anh gồm 26 chữ cái,
mã hóa sử dụng mã nhị phân độ dài cố định
hoa chữ thường
– A Æ 00001
– B Æ 00010
– C Æ 00011
– D Æ 00100
– E Æ 00101
– F Æ 00110
– G Æ 00111
– …
Mã Huffman
– Thuộc dạng mã phi tiền tố
không phải là đoạn đầu của mã của một ký tự nào trong
số các ký tự còn lại
– Mã hóa các ký tự sử dụng đoạn mã có độ dài
khác nhau
dụng đoạn mã ngắn hơn
Trang 4Mã Huffman
– Một mã phi tiền tố được biểu diễn bằng một cây
nhị phân
ký tự trong văn bản
bên trái và 1 – nhánh bên phải Các nút này chứa tổng
tần suất xuất hiện của các nút trong các nhánh con của
nó
phân biểu diễn ký tự ở nút lá
tự có tần suất nhỏ sẽ xuất hiện ở mức cao hơn trong
cây mã Huffman
Mã Huffman
a : 45
c:
12
b : 13
1
25
0
d : 16
1
14
0
1
30
0
1
55
0
1
100
0
0
Trang 5Thiết lập mã Huffman
– Đầu vào: Bảng chữ cái C Tần suất xuất hiện của
các ký tự trong C
– Đầu ra: Cây mã hóa Huffman
– Ý tưởng:
nhánh đã có sẵn mà tần suất của hai nhánh đó là nhỏ nhất
Thiết lập mã Huffman – Ví dụ
a : 45
b : 13
f : 5 e : 9
Bắt đầu :
a : 45
b : 13
f : 5 e : 9
1 0
Bước 1
a : 45
d : 16
1
14
0
Bước 2
1
25
0
Trang 6Thiết lập mã Huffman – Ví dụ
a : 45
Bước 3
c : 12 b: 13
1
25
0
d : 16
e : 9
f : 5
1
14
0
1
30
0
Thiết lập mã Huffman – Ví dụ
a : 45
Bước 4
c : 12 b : 13
1
25
0
d : 16
e : 9
f : 5
1
14
0
1
30
0
1
55
0
Trang 7Thiết lập mã Huffman – Ví dụ
a : 45
Bước 5:
c:
12
b : 13
1
25
0
d : 16
e : 9
f : 5
1
14
0
1
30
0
1
55
0
1
100
0
0
100 101
1100 1101
111
Giải mã Huffman
– Xuất phát từ gốc của cây mã hóa
– Đọc lần lượt từng ký tự trong xâu mã hóa
– Nếu chạm tới một nút lá ghi ký tự chứa tại nút lá
ra, sau đó quay lại nút gốc của cây mã hóa
Trang 8Giải mã Huffman
Xâu ký tự cần giải mã theo cây
ở bên
111110101100 Æ deaf
a : 45
c:
12
b :
13
1
25
0
d : 16
e : 9
f : 5
1
14
0
1
30
0
1
55
0
1
100
0
0
100 101
1100 1101
111