GIẢI THUẬT MÊ HÓA HUFFMAN

Một phần của tài liệu Tài liệu cấu trúc dữ liệu cơ bản (Trang 49)

1. Ðặt vấn đề TOP

Giả sử ta có một thông bâo lă một chuỗi câc ký tự, trong đó mỗi ký tự xuất hiện độc lập với cùng một xâc suất tại bất kỳ vị trí năo trong thông bâọ Yíu cầu đặt ra lă mê hóa thông bâo năy thănh một chuỗi câc ký tự 0, 1.

Ta sẽ mê hóa mỗi ký tự trong chuỗi thông bâo đê cho, sao cho:

+ Không có ký tự năo được mê hóa thănh chuỗi lă tiền tố của chuỗi mê hóa ký tự khâc (tính chất năy được gọi lă tính chất tiền tố).

Có câch mê hóa năo cho độ dăi mê trung bình < 2.2 được hay không? Một kỹ thuật cho lời giải tối ưu gọi lă giải thuật Huffman.

2. Giải thuật mê hóa Huffman TOP

Chọn 2 nút a, b có xâc suất nhỏ nhất trong tập hợp câc nút (giả sử xâc suất của a lăĠ xâc suất của b) rồi thay 2 nút năy bằng một nút mới lă x, có xâc suất bằng tổng xâc suất của 2 nút. Rồi sau đó lặp lại một câch đệ quy quâ trình trín cho tập hợp nút mới (gồm x vă câc nút còn lại). Mê của a, b sẽ tìm được bằng câch lấy mê của x nối thím 0 cho a vă 1 cho b.

Như vậy, thực chất của quâ trình trín lă ta xđy dựng một cđy nhị phđn từ tập hợp câc ký tự muốn mê hóa, cuối cùng ta được một cđy nhị phđn có lâ lă câc ký tự đó. Mê của một ký tự lă 1 đường đi trín cđy từ gốc đến lâ chứa câc ký tự đó, với 0 đi sang trâi vă 1 đi sang phảị

Một phần của tài liệu Tài liệu cấu trúc dữ liệu cơ bản (Trang 49)