The Huffman Tree Problem with Unit Step Functions

Toshihiro FUJITO

IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences   Vol.E98-A    No.6    pp.1189-1196
Publication Date: 2015/06/01
Online ISSN: 1745-1337
DOI: 10.1587/transfun.E98.A.1189
Type of Manuscript: Special Section PAPER (Special Section on Discrete Mathematics and Its Applications)
combinatorial optimization,  polynomial-time algorithm,  binary tree,  optimal tree,  Huffman coding,  

Full Text: PDF(642.4KB)>>
Buy this Article

A binary tree is regarded as a prefix-free binary code, in which the weighted sum of the lengths of root-leaf paths is equal to the expected codeword length. Huffman's algorithm computes an optimal tree in O(n log n) time, where n is the number of leaves. The problem was later generalized by allowing each leaf to have its own function of its depth and setting the sum of the function values as the objective function. The generalized problem was proved to be NP-hard. In this paper we study the case where every function is a unit step function, that is, a function that takes a lower constant value if the depth does not exceed a threshold, and a higher constant value otherwise. We show that for this case, the problem can be solved in O(n log n) time, by reducing it to the Coin Collector's problem.

open access publishing via