2.8.4 - Extended Binary Tree

1. 介紹

具有n個節點的二元樹,若以Link List表示,則會有n+1條NULLIinks,在這些links加上特殊節點External Nodes,其餘節點稱為Internal Nodes

圖示:

Internal Path Length=i=1nL(Root to Internal Nodei)Internal\ Path\ Length=\sum_{i=1}^{n}L(Root \ to\ Internal\ Node_{i})

External Path Length=j=0nL(Root to External Nodej)External\ Path\ Length=\sum_{j=0}^{n}L(Root \ to\ External\ Node_{j})

2. Theorem

E=I+2NE=I+2N

使用數學歸納法證明:

假設左子樹內部節點數nLn_{L}、內部路徑長 ILI_{L} 、外部路徑長 ELE_{L};右子樹內部節點數nRn_{R}、內部路徑長 IRI_{R} 、外部路徑長 ERE_{R}

  1. 當內部節點數N=0N=0 ,此樹為空樹E=I=0E=I=0 ,所以 E=I+2NE=I+2N 成立。

  2. 假設內部節點數為 N1N-1 時,此定理成立。

    1. 左子樹滿足 EL=IL+2nLE_{L}=I_{L}+2n_{L}

    2. 右子樹滿足 ER=IR+2nRE_{R}=I_{R}+2n_{R}

  3. 當內部節點數為 NN時,

整棵樹的 IIEE 分別為:

I=IL+IR+nL+nRE=EL+ER+(nL+1)+(nR+1)I = I_{L}+I_{R}+n_{L}+n_{R}\\E=E_{L}+E_{R}+(n_{L}+1)+(n_{R}+1)

代入2.假設:

E=EL+ER+(nL+1)+(nR+1)=(IL+2nL)+(IR+2nR)+(nL+1)+(nR+1)=(IL+IR+nL+nR)+2(nL+nR+1)=I+2NE=E_{L}+E_{R}+(n_{L}+1)+(n_{R}+1)\\=(I_{L}+2n_{L})+(I_{R}+2n_{R})+(n_{L}+1)+(n_{R}+1)\\=(I_{L}+I_{R}+n_{L}+n_{R})+2(n_{L}+n_{R}+1)\\ =I+2N

3. Weighted External Path Length

W.E.P.L=i=0nEiqiW.E.P.L=\sum_{i=0}^{n}E_{i}*q_{i} ( qiq_{i} 為外部節點加權值)

使用Huffman演算法求出最小Weighted External Path Length

  1. 自加權值集合中取出兩個最小的權值

  2. 此兩權值和他們的和建立延伸二元樹

  3. 將兩個加權值的和重新加入到集合中

  4. 重複1~3直到集合中只剩一個值

圖示範例: W={2, 3, 5, 7, 9, 13}W=\{2,\ 3,\ 5,\ 7,\ 9,\ 13\}

min WEPL=27+29+213+35+42+43=93min\ WEPL=2*7+2*9+2*13+3*5+4*2+4*3=93

4. 應用

有6種不同的messages(m1~m6),其出現頻率分別為 m1=239, m2=339, m3=539, m4=739, m5=939, m6=1339m_{1}=\frac{2}{39},\ m_{2}=\frac{3}{39},\ m_{3}=\frac{5}{39},\ m_{4}=\frac{7}{39},\ m_{5}=\frac{9}{39},\ m_{6}=\frac{13}{39} ,若希望平均解碼時間最小,則該如何編碼?

  • Encoding/Decoding Tree

  • 每個message的編碼內容

  1. m1=1010

  2. m2=1011

  3. m3=100

  4. m4=00

  5. m5=01

  6. m6=11

  • 平均解碼時間= i=1n(解一個mi的時間)(mi出現頻率)\sum_{i=1}^{n}(解一個m_{i}的時間)*(m_{i}出現頻率)

  • 平均編碼位元長度= i=1n(mi位元長度)(mi出現頻率)\sum_{i=1}^{n}(m_{i}位元長度)*(m_{i}出現頻率)

Optimal Prefix Code: 當對方收到訊息後,其解碼是唯一

Last updated