情報理論・符号理論の問題
情報源の記号 が、それぞれ確率
で独立に出力される無記憶情報源を考える。この情報源に対して 2 元(記号 )のハフマン符号を構成するとき、1 記号あたりの平均符号長 を求めよ。ただし は の確率、 は に割り当てられた符号語の長さとする。
この問題で使うもの
- ハフマン符号(説明と入口の問題)
この問題を解けるようになるまで(23 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
ハフマン符号の構成法を使います。確率の小さいものから 2 つずつまとめていきましょう。
ヒント 2
まとめた 2 つは確率の和をもつ 1 つの記号とみなします。各記号が何回まとめられたかが、その記号の符号長になります。
ヒント 3
最初に と (ともに )をまとめて確率 になります。次は とこのまとまりを合わせ、その後 と をまとめます。これで の符号長は 2、 の符号長は 3 になります。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
ハフマン符号の構成手順:確率の小さい 2 つを 1 つにまとめる(確率は和にする)操作を、残りが 1 つになるまで繰り返します。まとめるたびに、まとめられた記号の符号長が 1 ずつ増えます。
確率を小数で書くと です。
手順 1:最小の 2 つ と をまとめて (確率 )を作る。残りは 。
手順 2:最小の 2 つ と をまとめて (確率 )を作る。残りは 。
手順 3:最小の 2 つ と をまとめて (確率 )を作る。残りは 。
手順 4: と をまとめて確率 となり終了。
まとめた順を逆にたどって、分かれるたびに一方に 、他方に を付けると、たとえば
という符号が得られます。符号長は です(クラフトの不等式を確かめると で、語頭符号になっています)。
平均符号長:
ハフマン符号は語頭符号の中で平均符号長が最小となる符号なので、これが最小値です。なお、同じ確率のものが並んだときのまとめ方によって符号語は変わることがありますが、平均符号長は変わりません。参考までにエントロピーは ビットで、 を満たしています。
答え:
別解
確率を 100 分の 1 の単位で表すと、35, 25, 20, 10, 10 である。
ハフマン法の手順:
1. 最小の 2 つ(10 と 10)を合併して 20 を作る。残りは 35, 25, 20, 20。
2. 最小の 2 つ(20 と 20)を合併して 40 を作る。残りは 35, 25, 40。
3. 最小の 2 つ(25 と 35)を合併して 60 を作る。残りは 40, 60。
4. 最後に 40 と 60 を合併して 100 を作る。
符号語の長さ:
- 40 のグループ:a_3(20)と、(a_4, a_5) の合併(20) からなる。a_3 は深さ 2、a_4, a_5 は深さ 3。
- 60 のグループ:a_1(35)と a_2(25)は深さ 2。
よって l = (2, 2, 2, 3, 3)。
平均符号長:
別の結び方の確認:手順 2 で 20 同士ではなく、a_3(20) と合併 20 のどちらを選んでも同じ 20 同士であり、a_3 と (a_4,a_5) の合併が唯一の組合せである。また、手順 1 の後に a_3(20) と合併 20 は同点だが、最小 2 つは 20 と 20 で一意に決まる。したがって平均符号長は一意に 2.2 となる。
検算:エントロピー H ≈ 0.35·1.515+0.25·2+0.2·2.322+0.2·3.322 ≈ 0.530+0.5+0.464+0.664 = 2.158。H ≤ L < H+1 を満たす。