自适应霍夫曼(FKG)对阵霍夫曼的长度

时间:2017-06-22 21:45:01

标签: encoding huffman-code

我尝试了很多例子,并且无法理解为什么看似正确的FKG比简单的霍夫曼产生更高的平均长度。这是正常的吗?

aabcdad 上构建代码时,我们得到:

  1. 自适应霍夫曼:a = 0 ,d = 10 ,c = 111 ,b = 1101 < / LI>
  2. 简单的霍夫曼:a = 0 ,d = 10 ,c = 110 ,d = 111 < / LI>

    使用此公式计算平均长度enter image description here 这基本上是每个角色的外观乘以其代码长度的总和(出现概率,也可以使用a.k.a.频率)

    很明显,简单编码的平均长度较低。

    最终问题:自适应霍夫曼编码在平均代码长度方面是否最佳?

    自适应建筑的示例here

    简单建筑here

    的示例

1 个答案:

答案 0 :(得分:0)

我有一个答案。

如上所述,平均长度概念仅适用于经典的enodings。 由于霍夫曼(经典)是一个单射同态,自适应霍夫曼不是(同一个符号可以用多种方式编码),我们不能用这个概念来比较长度。

尽管如此,自适应霍夫曼有时可以输出更长的代码,理论上不可能比霍夫曼(经典)更好,它的更大优势只是一次传递数据,而且不需要存储整个树