How Do You Calculate the Total Weight of a Huffman Code?

  • Context:
  • Thread starter Thread starter mathmari
  • Start date Start date
  • Tags Tags
    Code Weight
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
mathmari
Gold Member
MHB
Messages
4,984
Reaction score
7
Hey! 😊

We are given the following letters with the respective frequencies:
\begin{equation*}\begin{matrix}a/2 & b/4 & c/7 & d/6 & e/4 & f/5 & g/8 & h/10 & i/3 & j/11\end{matrix}\end{equation*}

For that I have applied the Huffman code and I got the following tree:

Huffman.JPG
Now it is asked for the total weight of the code. How do we calculate that? :unsure:
 
Physics news on Phys.org
mathmari said:
We are given the following letters with the respective frequencies:
\begin{equation*}\begin{matrix}a/2 & b/4 & c/7 & d/6 & e/4 & f/5 & g/8 & h/10 & i/3 & j/11\end{matrix}\end{equation*}

For that I have applied the Huffman code and I got the following tree:

Now it is asked for the total weight of the code. How do we calculate that?
Hey mathmari!

The total weight would be the weighted path length from the root.
The objective of the algorithm is to minimize the total weight, implying that compression is optimal. 🧐

Put differently, it is the length of the resulting code for each symbol multiplied by its frequency and then summed together.
So the contribution of $a$ is $4\times 2=8$, since $a$ is encoded by $0000$, which has length $4$ and it occurs $2$ times. 🤔

I think your tree is not optimal though. I found a different tree with a slightly lower total weight. (Sweating)