ハフマンコーディング

最高の木が加重最短経路木であるとして、ハフマン木も知られています。

正しい道とまず、


私たちは、パスの各ノードを通過する経路の長さが他のノード間のパスがインクリメントされると呼ばれるパスにツリーノードに置きます。製品は、ノードの重み、経路長の右側にルートノードへのノードの加重経路長に取り付けられている場合。
そこで\(N- \)ツリーのリーフノード、リーフノードのそれぞれの重量となるよう\(W_i \) 経路長\(L_iを\) 重み付けされた経路長の、ツリー\(WPL = \ sum_ K = {} 1} ^ {N-w_kl_k \)

示されるように、そう、B、C、Dは、それぞれ、7,5,2,4を重み付けすることをその加重経路長その\(WPL = 7 * 3 + 5×3 + 2×1 + 4 * 2 = 46 \)

二、ハフマン木


バイナリツリーの、そのような最小WPLすなわち、重みの所与のセットのための場合は、次に風雲バイナリハフマン木(または最適バイナリ)と呼ばれます。
ハフマンツリー構築方法:

(1)バイナリツリーの第一の組のセットを確立し、各錠剤は、重量にのみつのノードのバイナリツリーは、各ノードの対応を含んでいます。
(2)、二分木バイナリセット内の2つの対象の最小量を選択し、それらを新しいツリー、新しい左および選択された二分木のルートノードの右サブツリーをマージ、新しいツリーが右右側の2つの部分木であります値。
選択された焦点を削除して2つのバイナリツリー(3)、濃縮して、新しいツリーのツリーを追加します。
(4)繰り返し(2)及び(3)は、唯一の二分木になるまで濃縮し、ツリーがハフマンツリーが必要です。

図:

三、ハフマン符号化


ハフマン符号化は、それは主に圧縮データファイルに使用され、符号化方式です。ハフマン符号化は、頻繁に使用される文字は、ファイル転送の効率を高めるためにコーディング短いがあることを確認可変長符号化、です。
我々が持っている場合は、\(N \)文字、文書内の各文字が表示されるの頻度です\(w_iを(I = 1、2、... \)、N-) その後、我々は\(N- \)文字は、最初の木のセットとして、及びに\(W_i \)建設ハフマン木に対応する重み、および文字の慣例左枝として「0」、右の枝は、文字「1」を表し、ルートノードからのパス上のリーフノードからなる文字列をハフマン符号化文字に対応する分岐文字です。

我々はAとして、唯一の文字 '、「S」、「D」、「F」、「G」、および12,4,8,15,9に対応する文字の出現頻度が含まれているファイルがある場合次の図の基礎の確立に示したハフマン木:

おすすめ

転載: www.cnblogs.com/sigmun/p/11785996.html
おすすめ