Là Huffman Encoding luôn tối ưu?


9

Yêu cầu của mã hóa là tiền tố miễn phí dẫn đến các cây lớn do cây phải hoàn thành. Có ngưỡng nào lưu trữ dữ liệu không được mã hóa theo chiều dài cố định sẽ hiệu quả hơn so với mã hóa dữ liệu không?


Nói chung 'không'. Đối với dữ liệu trung bình, tần suất của mỗi ký tự sẽ là> 1 và nên sử dụng Mã hóa Huffman thay vì mã có độ dài cố định

@arunmoezhi Bạn có thể vui lòng giải quyết ví dụ tôi đã cung cấp ở trên không? Tần suất của mỗi ký tự lớn hơn 1, nhưng độ dài cố định là tối ưu hơn.

Ví dụ này rất thú vị. Nhưng bạn có thể cung cấp một kịch bản như vậy với xác suất của từng nhân vật thay vì tần suất và đảm bảo xác suất của tất cả các nhân vật thêm vào 1

@arunmoezhi Tôi đã bao gồm xác suất của các nhân vật và họ cộng lại lên tới 1.

Câu trả lời:


4

Các entropy H(A)cho vấn đề này là 1.998. Cả mã hóa Huffman và mã hóa độ dài cố định cho vấn đề này đều có độ dài mã hóa avg như 2. Và FYI mã hóa bạn có được khi sử dụng Huffman Encoding là sai. Huffman Encoding cũng tạo ra các mã tương tự như độ dài cố định cho vấn đề này. Nó sử dụng cách tiếp cận tham lam. Vì vậy, akhông nhận được một mã như 0nhưng thay vào đó nó nhận được 00. Làm lại trên cây bạn tạo bằng Huffman Coding. Cây bạn nên lấy là:nhập mô tả hình ảnh ở đây


Cảm ơn bạn. Bạn có thể cung cấp một số loại bằng chứng cho thấy Huffman Encoding luôn tối ưu hơn độ dài cố định, hoặc ít nhất là giới thiệu tôi với một?

1
Bạn có thể tham khảo Introduction to Algorithmsbằng cách CLRS. Trong chương nói về greedy algorithmsbạn có thể có được bằng chứng chính thức cho Huffman algorithm. Đó là một bằng chứng dài và cần kiên nhẫn để đọc.

8

Mã Huffman xấp xỉ phân bố dân số với sức mạnh của hai xác suất. Nếu phân phối thực sự bao gồm các quyền hạn của hai xác suất (và các ký hiệu đầu vào hoàn toàn không tương quan), mã hóa Huffman là tối ưu. Nếu không, bạn có thể làm tốt hơn với mã hóa phạm vi. Tuy nhiên, nó là tối ưu trong số tất cả các mã hóa gán các bộ bit cụ thể cho các ký hiệu cụ thể trong đầu vào.


Bạn có ý nghĩa gì khi "xấp xỉ phân bố dân số"?

3
Có một sự phân phối đúng về mặt lý thuyết của thông điệp có thể được gửi theo giả thuyết. Lý tưởng nhất, mỗi thông điệp nên được mã hóa theo tỷ lệ với nhật ký xác suất của nó, nhưng vì mã Huffman là một số nguyên bit, tương ứng với xác suất là hai lũy thừa. Do đó một xấp xỉ. Tra cứu Định lý mã hóa Shannons.

8

Có, nó luôn luôn là tối ưu.

Không, không có ngưỡng nơi nó sẽ sử dụng ít không gian hơn để sử dụng dữ liệu không được mã hóa có độ dài cố định.

Tôi đã tìm thấy một số bằng chứng trên Web, nhưng có đủ thảo luận trong bài viết Wikipedia Huffman mã hóa .

Điều này cũng bao gồm các kỹ thuật khác đạt được độ nén cao hơn (hoạt động bên ngoài không gian mà mã Huffman là tối ưu).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.