Persyaratan pengkodean sebagai awalan gratis menghasilkan pohon besar karena pohon harus lengkap. Apakah ada ambang batas tempat penyimpanan data yang tidak dikodekan dengan panjang tetap akan lebih efisien daripada pengkodean data?
9
Jawaban:
Entropi
H(A)
untuk masalah ini adalah1.998
. Baik pengkodean Huffman dan pengkodean panjang tetap untuk masalah ini memiliki panjang kode rata-rata avg sebagai2
. Dan FYI pengkodean yang Anda dapatkan menggunakan Huffman Encoding salah. Huffman Encoding juga menghasilkan kode yang mirip dengan panjang tetap untuk masalah ini. Itu menggunakan pendekatan serakah. Jadia
tidak mendapatkan kode0
melainkan mendapat00
. Mengolah ulang pohon yang Anda hasilkan menggunakan Huffman Coding. Pohon yang harus Anda dapatkan adalah:sumber
Introduction to Algorithms
olehCLRS
. Dalam bab yang membahas tentang ini,greedy algorithms
Anda bisa mendapatkan bukti formalHuffman algorithm
. Ini bukti yang panjang dan perlu kesabaran untuk membaca.Pengodean Huffman mendekati distribusi populasi dengan kekuatan dua probabilitas. Jika distribusi sebenarnya terdiri dari kekuatan dua probabilitas (dan simbol input sama sekali tidak berkorelasi), pengkodean Huffman optimal. Jika tidak, Anda bisa melakukan yang lebih baik dengan pengkodean rentang. Namun optimal di antara semua pengkodean yang menetapkan set bit tertentu untuk simbol tertentu dalam input.
sumber
Ya, selalu optimal.
Tidak, tidak ada ambang batas di mana ia akan menggunakan lebih sedikit ruang untuk menggunakan data yang tidak dikodekan dengan panjang tetap.
Saya menemukan sejumlah bukti di Web, tetapi ada diskusi yang cukup di artikel Wikipedia pengkodean Huffman .
Ini juga mencakup teknik lain yang mencapai kompresi lebih tinggi (bekerja di luar ruang di mana kode Huffman optimal).
sumber