Chương 2:
Bài toán mã trường hợp
kênh không bị nhiễu
2.1 Tính giải được của một bộ mã
Giới thiệu bài toán mã
• Biến ngẫu nhiên X nhận các giá trị x1, x2, … , xM
(gọi là các trạng thái của X) với xác suất tương
ứng p1, p2, …., pM
• Dãy hữu hạn các giá trị của X gọi là mẫu tin
(message)
• Tập hợp {a1, a2, …, aD} gọi là tập các ký tự mã
(code character)
• Mỗi xitương ứng với một dãy hữu hạn các ký tự
mã gọi là từ mã (character word)
• Tập các từ mã gọi là bộ mã (code)
7/2/2010
Huỳnh Văn Kha
2
Trang 2Giới thiệu bài toán mã
• Giả sử các từ mã là khác nhau
• Mẫu tin do biến X sinh ra được mã hóa thành
một dãy các từ mã
• Mục tiêu của bài toán là cực tiểu hóa chiều dài
trung bình của mã
• Chiều dài của từ mã ứng với xilà ni, i = 1, 2, …, M
Mục tiêu là cực tiểu hóa:
Mã tiền tố và mã giải ñược
• Xét bộ mã nhị phân
• Dãy 010 có thể tương ứng với một trong ba mẩu
tin: x2, x3x1, x1x4 Nên không thể giải mã
• Cần có một số giới hạn trên các từ mã của 1 bộ mã
7/2/2010
Huỳnh Văn Kha
4
x1 0
x2 010
x3 01
x4 10
Trang 3Mã tiền tố và mã giải ñược
• Bộ mã gọi là giải được nếu mỗi dãy hữu hạn các
từ mã đều tương ứng với nhiều nhất một mẫu tin
• Dãy A gọi là tiền tố của dãy B nếu dãy B có thể
được viết dưới dạng AC, với C là một dãy nào đó
• Bộ mã tiền tố là bộ mã có tính chất: không từ mã
nào là tiền tố của từ mã khác
• Bộ mã tiền tố là giải được, nhưng bộ mã giải được
chưa chắc là bộ mã tiền tố
• Bộ mã tiền tố có thể được giải mã từng bước
Mã tiền tố và mã giải ñược
• Bộ mã sau là bộ mã tiền tố
• Bộ mã sau là giải được nhưng không là tiền tố
7/2/2010
Huỳnh Văn Kha
6
x1 0
x2 100
x3 101
x4 11
x1 0
x2 01
Trang 4• Gọi S0là tập các từ mã ban đầu
• Xét tất cả các cặp từ mã trong S0 Nếu có các từ
mã Wi, Wjsao cho Wj= WiA, cho hậu tố A vào
tập S1
• Giả sử có tập Sn-1(n>1) Nếu có W trong S0và A
trong Sn-1sao cho A=WB, cho B vào Sn Nếu có
W’ trong Sovà A’ trong Sn-1sao cho W’=A’B’, cho
B’ vào Sn
• Định lý 2.1:
Một bộ mã là giải được nếu và chỉ nếu không
tập nào trong các tập S1, S2, S3, … chứa bất
kỳ từ mã nào
Thuật toán kiểm tra tính giải ñược
x3 ad
x4 abb
x5 bad
x6 deb
x7 bbcde
7/2/2010
Huỳnh Văn Kha
8
Trang 5Thuật toán kiểm tra tính giải ñược
S0 S1 S2 S3 S4 S5 S6 S7
ad
abb
bad
deb
bbcde
• Sn rỗng với mọi n>7
• ad thuộc S5 nên bộ mã là không giải được
• abbcdebad có thể giải mã thành
x1x7x5hoặc x4x2x6x3
Tìm dãy mã không giải ñược
• Dãy các ký tự mã có thể đại diện cho 2 mẫu tin
được gọi là dãy mã không giải được
• Ta sẽ không chứng minh định lý 2.1 nhưng sẽ chỉ
ra cách tìm dãy mã không giải được
• Giả sử Sn chứa từ mã W Tiến hành ngược lại, ta
tìm được dãy:
A0, W0, A1, W1, …, An, Wn
7/2/2010
Huỳnh Văn Kha
10
Trang 6Tìm dãy mã không giải ñược
• A0, W0, W1, …, Wnlà các từ mã, Aiε Si(i = 1, 2, …,
n), W0= A0A1, An = Wn
• Với mỗi i = 1, 2, …, n-1 thì hoặc Ai= WiAi+1 hoặc
Wi= AiAi+1
• Ví dụ trên, ta có:
A5= ad ε S5
W5= ad
A4= b ε S4
W4= bad
A3= de ε S3
W3= deb
A2= cde ε S2
W2= c
A1= bb ε S1
W1= bbcde
A0= a
W0= abb
Tìm dãy mã không giải ñược
• Ta xây dựng hai dãy, một dãy bắt đầu với A0W1,
dãy kia bắt đầu với W0
• Nếu Ai= WiAi+1, thêm Wi+1vào cuối dãy chứa Wi
• Nếu Wi = AiAi+1, thêm Wi+1vào cuối dãy không
chứa Wi
• Tiếp tục như vậy đến Wn
• Người ta chứng minh được rằng hai dãy tạo
thành như trên là một, và chính là dãy mã không
giải được cần tìm
7/2/2010
Huỳnh Văn Kha
12
Trang 7Tìm dãy mã không giải ñược
• A0W1= abbcde W0= abb
• W1= A1A2 thêm W2vào W0
• A0W1= abbcde W0W2= abbc
• A2= W2A3 thêm W3vào W0W2
• A0W1= abbcde W0W2W3= abbcdeb
• W3= A3A4 thêm W4vào A0W1
• A0W1W4= abbcdebad W0W2W3= abbcdeb
• W4= A4A5 thêm W5vào W0W2W3
• A0W1W4= abbcdebad W0W2W3W5= abbcdebad
• Chú ý: Ta thêm các Wi vào các dãy ngắn hơn
7/2/2010
Huỳnh Văn Kha
14
x2 abcd 0001
x4 dba 1100
x5 bace 00011
x6 ceac 00110
x7 ceab 11110
x8 eabd 101011