情報源の記号 が、それぞれ確率
で出力される。この情報源に対して 2 元ハフマン符号(符号記号は )を構成するとき、1 記号あたりの平均符号長 を求めよ。
ハフマン符号
情報源の記号の確率から 2 元ハフマン符号を構成し、1 記号あたりの平均符号長 の最小値を求め、エントロピー と比べられる
前提
- 語頭符号とクラフトの不等式 (大学数学 情報理論・符号理論)
- エントロピー (大学数学 情報理論・符号理論)
この技能までの道筋(22 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 分数のたし算・ひき算 (算数 計算と数のきまり)
- 小数の四則計算 (算数 計算と数のきまり)
- 正負の数の加法・減法 (中学数学 数と式)
- 分数のかけ算・わり算 (算数 計算と数のきまり)
- 四則の混じった計算の順序 (算数 計算と数のきまり)
- 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
- 約数の見つけ方 (算数 整数の性質)
- 素因数分解と約数の個数 (算数 整数の性質)
- 平方根の意味と根号の簡単化 (中学数学 数と式)
- 根号の乗除と加減 (中学数学 数と式)
- 指数の拡張と指数関数 (数学II 指数関数と対数関数)
- 語頭符号とクラフトの不等式 (大学数学 情報理論・符号理論)
- 対数の定義と性質 (数学II 指数関数と対数関数)
- 樹形図で数え上げる (算数 場合の数)
- 積の法則と和の法則 (算数 場合の数)
- 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
- 順列・円順列・重複順列 (数学A 場合の数と確率)
- 組合せ (数学A 場合の数と確率)
- 確率の定義と和事象・余事象 (数学A 場合の数と確率)
- 期待値 (数学A 場合の数と確率)
- 確率変数と確率分布 (数学B 統計的な推測)
- エントロピー (大学数学 情報理論・符号理論)
説明
ハフマン符号は、情報源の各記号の出現確率から、1 記号あたりの平均符号長 が最も小さくなる語頭符号を組み立てる方法です。データ圧縮のように、よく出る記号には短い符号語を、まれな記号には長い符号語を割り当てたい場面で使います。得られた はどの語頭符号の平均符号長よりも小さいか等しく、エントロピー との間に が成り立ちます。
なぜそうしてよいのか
2 元語頭符号は、根から 0・1 の枝で分かれる二分木の葉に記号を置いたものと見なせます。符号長 は葉の深さです。平均符号長が最小の語頭符号(最適符号)には、次の性質をもつものがあります。(1) なら です。逆なら 2 つの符号語を入れ替えると が だけ減り、最適であることに反します。(2) 最も深い葉には必ず兄弟の葉があります。兄弟がなければ親の位置まで縮めても語頭符号のままで、 が減るからです。(1)(2) から、確率の最も小さい 2 記号を、最も深い位置で兄弟の葉にしておいても最適性は失われません。
そこで、確率最小の 2 記号(確率 )を、確率 の 1 つの記号にまとめた 記号の問題を考えます。まとめた記号の符号語に 0 と 1 を付け足すと元の 2 記号の符号語になり、そのとき が成り立ちます。足される は符号の選び方によらない定数なので、縮小した問題で最適な符号を作れば、元の問題でも最適になります。これを記号が 1 つになるまで繰り返すのがハフマンの方法です。この式から、 は各回にまとめた確率の和の合計にも等しいことがわかります。
エントロピーとの比較も確かめておきます。(自然対数)を使うと、 です(和は の記号についてとり、最後の不等号はクラフトの不等式から従います)。よって であり、等号は全ての が の形のときに限ります。一方、 と選ぶと となるので、クラフトの不等式によりこの長さの語頭符号が存在します。その平均符号長は 未満です。ハフマン符号はこれ以下なので、 が成り立ちます。
手順
記号を確率の小さい順に並べ、各記号を 1 つの節点とみなす(記号数 とする)
確率が最も小さい 2 つの節点を選んで 1 つの新しい節点にまとめ、その確率を 2 つの和とする。2 本の枝には 0 と 1 を割り当てる
新しい節点をリストに戻して確率を並べ直し、節点が 1 つになるまで手順 2 を繰り返す(合計 回)
根から各記号の葉までの枝のラベルを順に読んで符号語とする。符号長 は葉の深さに等しい
平均符号長 を計算する(各回にまとめた確率の合計とも一致するので、検算に使える)
エントロピー を求め、 を確かめる
例題
情報源の記号 の出現確率がそれぞれ である。2 元ハフマン符号を構成し、1 記号あたりの平均符号長 (語頭符号の平均符号長の最小値)を求めよ。
例題の解答
手順 1: 確率の小さい順に並べると となる。
手順 2・3: 最小の 2 つをまとめる操作を繰り返す。
1 回目は と をまとめて を作る。残りは である。
2 回目は と をまとめて を作る。残りは である。
3 回目は と をまとめて を作る。残りは である。
4 回目は と をまとめて根(確率 )になる。
手順 4: 根から 側の枝を 0、 側の枝を 1 とし、以下同様にラベルを付ける。すると 、、、、 となり、符号長は である。検算すると となり、クラフトの不等式を満たす。
手順 5: となる。まとめた確率の合計 とも一致する。
手順 6: である。したがって が成り立つ。
答えは である。
答え:
よくある誤り
まとめてできた節点をリストに戻さず、直前の節点に次の記号を一つずつつなげてしまう誤り。確率 の場合、 の次に と をまとめると、符号長は となり になってしまう。正しくは、新しい節点も含めて最小の 2 つを選ぶ。次は をまとめるので、符号長はすべて 2、 となる。
平均符号長を符号長の単純な平均 としてしまう誤り。例題では となってしまう。正しくは確率で重みを付けた期待値 である。
確率が同じ節点があるとき、ハフマン符号はただ一つに決まると考える誤り。確率 では、まとめ方によって符号長が にも にもなる。正しくは、符号語や符号長の組は一意でないが、 はどちらも で、最小値は変わらない。
平均符号長はエントロピーに等しくなる、あるいはエントロピーより小さくできると考える誤り。正しくは常に である。 となるのは、全ての が の形のとき(例: で )に限る。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
情報源の記号 が、それぞれ確率
で独立に出力される無記憶情報源を考える。この情報源に対して 2 元(記号 )のハフマン符号を構成するとき、1 記号あたりの平均符号長 を求めよ。ただし は の確率、 は に割り当てられた符号語の長さとする。情報源の記号 が、それぞれ確率
で出力される。この情報源に対して 元ハフマン符号(符号アルファベット )を構成するとき、 記号あたりの平均符号長 を求めよ。ただし は の確率、 は の符号語の長さである。
この技能を使う問題
情報源の記号 が、それぞれ確率
で互いに独立に発生する無記憶情報源がある。この情報源の 記号ずつに 上の 元ハフマン符号を構成するとき、 記号あたりの平均符号長を求めよ。記号 をそれぞれ確率 で、各時刻独立に出力する無記憶情報源 を考える。 の出力を 個ずつまとめたブロック( の 通り)を つの記号とみなし、この 個の記号に対して 元ハフマン符号(符号記号は )を構成する。
このとき、元の情報源 の記号 個あたりの平均符号長(ブロック 個あたりの平均符号長を で割ったもの)を求めよ。
この技能の次に学べること
- D 元ハフマン符号 (大学数学 情報理論・符号理論)