Mó tiền tố

Một phần của tài liệu chuong-3 (Trang 30 - 31)

Phương phỏp biểu diễn ký hiệu trong mỏy tớnh phổ biến nhất là sử dụng chuỗi cỏc bit cú độ dài cố định. Chẳng hạn ASCII biểu diễn mỗi ký hiệu bằng xõu 8 bit (vớ dụ A biểu diễn bằng xõu 01000001). Như vậy một bản tin cú N ký hiệu sẽ phải mó húa bởi 8*N bit. Vậy cú phương phỏp mó hoỏ nào tiết kiệm hơn khụng.

Giả sử ta cú một bản tin gồm một dóy ký hiệu lấy trong một tập hợp hữu hạn X. Biết rằng mỗi ký hiệu x trong bản tin xuất hiện theo một xỏc suất cho trước p(x). Ta muốn mó hoỏ cỏc ký hiệu này thành cỏc chuỗi bit nhị phõn sao cho chiều dài chuỗi mó của bản tin là ngắn nhất.

Vớ dụ 3.5.1. Xột bản tin gồm 1010 ký hiệu lấy từ tập X = {a,b,c,d,e,f}. Tần suất xuất hiện cỏc ký hiệu trong bản tin như sau:

Ký hiệu : a b c d e f

Tần suất (%) : 40 10 15 5 20 10

Ta cú thể dựng xõu bit chiều dài cố định để mó hoỏ cỏc ký tự. Chẳng hạn

Ký hiệu : a b c d e f

Mó I : 000 001 010 011 100 101

Cỏch mó hoỏ này cho chiều dài bản tin mó húa là 3*1010 bit. Cỏch mó thứ hai là

Ký hiệu : a b c d e f

Mó II : 0 01 00 11 1 10

Cỏch mó hoỏ này cho chiều dài bản tin mó húa là

1010(1*40+2*10+2*15+2*5+1*20+2*10)/100=1,4*1010 (bit)

Cỏch mó II rỳt ngắn bản tin hơn một nửa so với cỏch mó I. Tuy nhiờn cỏch này dễ dẫn đến nhầm lẫn, chẳng hạn dóy aa và ký tự c cựng một mó là 00.

Bõy giờ ta xem cỏch mó sau:

Ký hiệu : a b c d e f

Mó III : 1 010 011 0010 000 0011

Cỏch mó hoỏ này cho chiều dài bản tin mó húa là

1010(1*40+3*10+3*15+4*5+3*20+4*10)/100=2,35*1010 (bit) Cỏch mó III ngắn hơn cỏch mó I và cú tớnh chất sau:

Khụng cú chuỗi mó của ký hiệu nào là tiền tố (tức dóy con đầu) của chuỗi mó của ký hiệu khỏc.

Chương III. Cõy III.31

Định nghĩa 3.5.1

Mó nhị phõn của tập ký hiệu thoả tớnh chất trờn gọi là mó tiền tố.

Với mỗi mó tiền tố ta cú thể xõy dựng cõy nhị phõn sao cho mỗi lỏ ứng với một ký hiệu và đường đi từ gốc đến lỏ sẽ xỏc định mó của ký hiệu tương ứng như sau:

Cạnh đi xuống con bờn trỏi ứng với bit 0 và cạnh đi xuống con bờn phải ứng với bit 1.

Vớ dụ 3.5.2. Cõy nhị phõn của mó tiền tố III ở vớ dụ trước là:

0 1 a 0 1 0 1 0 1 e b c 0 1 d f Hỡnh 3.5.1

Đảo lại, xột cõy nhị phõn T, trờn đú mỗi lỏ được gỏn nhón là một ký hiệu trong X. Khi đú cõy T sẽ xỏc định một mó tiền tố. Với mỗi lỏ x, mức h(x) của x chớnh là chiều dài chuỗi mó của x. Gọi f(x) là tần suất xuất hiện của ký hiệu x thỡ chiều dài chuỗi mó bản tin là

XX x x f x h L* ( )* ( ) trong đú L là số ký hiệu của bản tin. Đại lượng

   X x x f x h T E( ) ( )* ( ) gọi là hệ số mó húa.

Độ dài chuỗi mó bản tin ngắn nhất khi và chỉ khi cõy T cú hệ số mó húa nhỏ nhất. Cõy T như vậy gọi là cõy mó tối ưu.

Sau đõy là giải thuật Huffman tỡm cõy mó tối ưu.

Một phần của tài liệu chuong-3 (Trang 30 - 31)