ĐỀ CƯƠNG ÔN TẬP
LÝ THUYẾT THÔNG TIN
1. Lý thuyết thông tin:
Đoán số, đo
- B1: Tính độ bất định của đối tượng cần xác định (từ đề bài)
Dùng phép đặt câu hỏi hoặc đo lường
- B2: Xác định lượng thông tin nhận được sau 1 lần đo hoặc hỏi, phụ thuộc
bản chất phép đo. VD: Bài toán tìm tiền giả
- B3:Tính số phép đo, số câu hỏi cần thiết
n= I a i /h b
n m in = I a i /max h b
Đối với nhị phân, max h b = 1bit
Tam phân, max h b = log3
- B4: Xác định thuật toán đo ( xác suất để các sự kiện xuất hiện là đồng
xác suất)
Bài này em không hiểu nên thầy nói thế nào em viết thế
2. Cây Huffman:
Cho A =
a1
1/2
a2
1/4
a3 a4
a5 a6
a7
1/8 1/16 1/32 1/64 1/64
- B1: Sắp xếp các tin theo thứ tự giảm dần của xác suất xuất hiện
- B2: Trong danh sách chọn 2 cây có trọng số nhỏ nhất ghép lại để tạo
thành một cây có trọng số bằng tổng trọng số 2 cây con, rồi quay lại B1
1
0
G
1/2
0
1/4
0
1/8
1
0
1
1/16
1
0
1
1
1/32
1
1/2
1/4
1/8
1/16
a1
a2
a3
a4
1/32
1/64
a5
a6
0
1/64
a7
- B3: Tính từ gốc G, đường đi đến a1 là 1, a2 là 01…
TT a i
P(a i )
1
2
3
4
5
6
7
1/2
1/4
1/8
1/16
1/32
1/64
1/64
a1
a2
a3
a4
a5
a6
a7
α
ni
i
(mô tả đường đi của a i )
1
01
001
0001
00001
000001
000000
n i (độ dài của a i )
1
2
3
4
5
6
6
- B4: Đánh giá hiệu quả của giải thuật
Tính độ dài trung bình n
7
n =
∑ n . p (a )
i =1
i
= 1.1/2 + 2.1/4 + 3.1/8 + 4.1/16 + 5.1/32 + 6.1/64 + 6.1/64
i
63
(dấu mã)
32
Tính H(A)
=
7
H(A) =
1
∑ p(a ). log p(a )
i =1
i
= 1/2.log2 + 1/4.log4 + 1/8.log8 + 1/16.log16 +
i
1/32.log32 + 1/64.log64 + 1/64.log64
63
=
(bit)
32
(chú ý: vì tính theo bit nên ta ngầm hiểu ở đây là log cơ số 2, vì vậy
log2=1, log4=2…)
Vậy n = H(A) nên mã hóa là tối ưu
- B5: Giải mã đoạn mã đã cho
1010011100110..
Ban đầu ta có con trỏ P trỏ vào gốc G
Khi gặp bit đầu tiên là 1, con trỏ P nhảy sang nhánh con trái của G, thấy
đó là lá a1 nên in ra a1 và con trỏ P trở về G.
1
G
1
1/2
a1
Bit tiếp theo là 0, con trỏ P nhảy sanh nhánh con phải của G, thấy chưa
phải lá nên đọc bit tiếp theo là bit 1, P lại nhảy sanh nhánh con trái, thấy
lá nên in ra a2 và con trỏ P trở về G.
1
G
0
1/2
1
1/4
a2
Cứ như thế ta được đoạn giải mã
a1 a2 a3 a1 a1 a3 a1 …
3. Thuật toán 4 bước
Cho mã Xyclic (7,3) có đa thức sinh g(X) = 1 + X 2 + X 3 + X 4 và đa thức
thông tin a(X) = 1 + X 2
Dùng thuật toán 4 bước để thiết lập từ mã hệ thống của bộ mã trên
Bài giải
Mã Xyclic (7,3,4) n = 7, k = 3
- B1: Mã hóa đối chứng tin a i bằng đa thức thông tin a(X). Ví dụ
A0
B1
CX
D X2
E1+X
F X + X2
G 1 + X2
H 1 + X + X2
nhưng vì người ta đã cho a(X) nên ko cần mã hóa nữa
- B2: Nâng bậc a i (X) bằng cách nhân với X n -k
a(X) = a(X) . X n -k với n =7, k = 3
a(X) = (1 + X 2 ). X 4 = X 6 + X 4
- B3: Chia a(X) ở bước 2 cho
6
4
4
3
2
g(X) để tìm phần dư r(X)
X +X
X +X +X +1
Vậy r(X) = X + 1
6
5
4
2
2
X +X +X +X
X +X+1
- B4: Từ mã là
5
2
f(X) = a(X) + r(X)
X +X
5
4
3
= X 6 + X 4 + X+ 1
X +X +X +X
1010011
4
3
2
X 6 …. X 0
X +X +X +X
Tại vị trí tương ứng nếu trong
X4 + X3 + X2 + 1
f(X) có bit nào thì bit đó =1,
X+1
không có thì = 0, X 6 có nên
bit đầu tiên bằng 1, X 5 không có nên bit thứ 2 = 0, X 4 có nên bit 3 = 1….
X có nên bit 6 =1, X 0 (=1) có nên bit 7 = 1
* Mô tả sơ đồ chức năng:
Từ đa thức sinh g(X) ta có bậc bằng 4 nên có 4 ô nhớ
g 0 = g 2 = g 3 = g 4 =1; g 1 =0 ( vì trong g(X) có X 0 , X 2 , X 3 , X 4 , không có X 1 )
13
1
2
+
3
+
4
Vào
+
Ra
47
17
TT
Vào
1
2
3
4
5
6
7
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
Trạng thái các ô nhớ
2
3
0
1
1
1
1
0
1
1
0
1
0
0
0
0
4
1
0
0
0
1
1
0
Ra
1
0
1
0
0
1
1
Ban đầu trạng thái các ô nhớ =0
- Nhịp 1, 2, 3 đầu ra giống hệt đầu vào
- Nhịp 4, 5,6 ,7 chỉ là phép dịch phải các trạng thái ô nhớ
4. Chia dịch vòng:
Cho mã Xyclic (7, 3, 4) có đa thức sinh g(X) = 1 + X 2 + X 3 + X 4 . Giả sử từ
mã nhận được của bộ mã trên có dạng v(X) = 1 + X + X 2 . Sử dụng thuật
toán chia dịch vòng để tìm lại từ mã đã phát
Bài giải
Từ đề bài cho (7, 3, 4) ta có n = 7, k = 3, d 0 = 4
- B1: Chia v(X) cho g(X) ta thấy bậc của v(X) nhỏ hơn bậc của g(X) nên
v(X) chính là phần dư của phép chia
r 0 (X) = X 2 + X + 1
trọng số của phần dư w(r 0 (X)) = 3 > t
với t = phần nguyên của
^
d0 −1
4 −1
= phần nguyên của
=1
2
2
- B2: Dịch vòng phải bằng cách nhân v(X) với X rồi lại chia cho g(X) để
tìm phần dư. So sánh trọng số của phần dư với t
X.v(X) = X + X 2 + X 3 chia cho g(X) dư r 1 (X) = X + X 2 + X 3
w(r 1 (X)) = 3 > t
Ta lại dịch vòng phải một lần nữa
X 2 .v(X) = X 2 + X 3 + X 4 rồi chia cho g(X) được 1 dư 1
r 2 (X) =1
w(r 2 (X)) =1 = t
- B3: Xác định từ mã (vì ta dịch phải 2 lần, tức là nhân X 2 nên để tìm từ
mã ta phải chia cho X 2 )
f(X) =
X 2 .v ( X ) + r2 ( X )
X 4 + X 3 + X 2 +1
=
= X2 + X + 1 + X5
2
2
X
X
(vì ta coi 1 (= X 0 ) = X 7 )
Ta được từ mã 111001 0
So với v(X) = 111000 0
Ta thấy sai ở vị trí X 5 đã được sửa
Chú ý: Nếu không thực hiện dịch vòng phải, có thể thực hiện dịch vòng
trái bằng cách chia v(X) cho X. Khi đó:
v( X )
+ r2 ( X ) = X 2 . (X 6 + X 5 + 1 + X 3 ) = X + 1 + X 2 + X 5 giống
2
X
f(X) = X 2 .
như dịch vòng trái