没有大概率字母时,霍夫曼代码的性能如何?
为概率分布的霍夫曼代码是具有最小加权平均码字长度的前缀码,其中是的长度个codword。一个众所周知的定理是霍夫曼码每个符号的平均长度在和,其中是Shannon熵的概率分布。ppp∑piℓi∑piℓi\sum p_i \ell_iℓiℓi\ell_iiiiH(p)H(p)H(p)H(p)+1H(p)+1H(p)+1H(p)=−∑ipilog2piH(p)=−∑ipilog2piH(p) = -\sum_i \, p_i \log_2 p_i 典型的平均长度超过Shannon熵几乎为1的坏例子是概率分布,例如,其中熵接近0,平均码字长度为1。这给出了熵与码字长度之间的差距几乎为。{.999,.001}{.999,.001}\{.999, .001\}111 但是,当概率分布中的最大概率有界时,会发生什么?例如,假设所有概率均小于。在这种情况下,我可以找到的最大差距是概率分布,例如,其中熵略大于1,平均码字长度略小于1.5,从而得出差距接近。这是您能做到的最好的吗?在这种情况下,您能否给间隙的上限严格小于1?1212\frac{1}{2}{.499,.499,.002}{.499,.499,.002}\{.499, .499, .002\}0.50.50.5 现在,让我们考虑所有概率都非常小的情况。假设你选择了一个概率分布的字母,每个都具有概率。在这种情况下,如果选择则会出现最大的间隙。在这里,您得到大约 在所有概率都小的情况下,这是您能做的最好的吗?MMM1/M1/M1/MM≈2kln2M≈2kln2M \approx 2^k \ln 21+lnln2−ln2ln2≈0.08607.1+lnln2−ln2ln2≈0.08607. \frac{1 + \ln \ln 2 - \ln 2}{\ln 2} \approx 0.08607. 这个问题是受TCS Stackexchange问题启发的。