最优骨架Huffman树再探
Optimal Skeleton Huffman Trees Revisited
摘要:
一个骨架霍夫曼树是一个霍夫曼树,其中所有不相交的最大完美子树都收缩成叶子。骨架霍夫曼树,除了节省存储空间,也用于更快的解码和加速霍夫曼形小波树。在2017年,Klein等人引入了一种最优骨架树:对于给定的符号频率,它在所有具有收缩完美子树的最优无前缀代码树(不一定是霍夫曼代码树)中具有最少的节点数。Klein等人描述了一种简单的算法,对于固定的码字长度,找到具有最少节点数的骨架树;使用该算法,可以处理每组最优码字长度以找到最优骨架树。然而,在最坏的情况下,这样的集合是指数级的。我们描述了一个$O(n^2\log n)$时间算法,给定$n$符号频率,构造一个最佳的骨架树和相应的最佳代码。
英文摘要:
A skeleton Huffman tree is a Huffman tree in which all disjoint maximal perfect subtrees are shrunk into leaves. Skeleton Huffman trees, besides saving storage space, are also used for faster decoding and for speeding up Huffman-shaped wavelet trees. In 2017 Klein et al. introduced an optimal skeleton tree: for given symbol frequencies, it has the least number of nodes among all optimal prefix-free code trees (not necessarily Huffman's) with shrunk perfect subtrees. Klein et al. described a simple algorithm that, for fixed codeword lengths, finds a skeleton tree with the least number of nodes; with this algorithm one can process each set of optimal codeword lengths to find an optimal skeleton tree. However, there are exponentially many such sets in the worst case. We describe an $O(n^2\log n)$-time algorithm that, given $n$ symbol frequencies, constructs an optimal skeleton tree and its corresponding optimal code.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。