情報源を「拡大」するッ!! | spin on the RITZ

情報源を「拡大」するッ!!

ハフマン符号とブロック符号を習ったよ!



シャノンの第一符号化定理によれば、情報源からの系列を符号化する際の平均符号長Lは、ブロック符号を用いれば、情報源のエントロピーHを下限として、小さくすることができるわけですよ。



記号a,bを出す独立生起情報源を考えるとき、それぞれの確立を


とすると、エントロピーHは




となるわけです。



っつーことは、いくらブロック符号化しても、0.72ちょいまでしか平均符号長は下がらないわけですよ。

勿論これは証明されてるわけなんですが、実際に情報源を拡大してシミュレーションしてみましたよん。


平均符号長(1次)  : 1
平均符号長(2次)  : 0.78
平均符号長(3次)  : 0.728
平均符号長(4次)  : 0.7408
平均符号長(5次)  : 0.73792
平均符号長(6次)  : 0.725248
平均符号長(7次)  : 0.731756
平均符号長(8次)  : 0.732228
平均符号長(9次)  : 0.72514
平均符号長(10次) : 0.728201
平均符号長(11次) : 0.729601
平均符号長(12次) : 0.725041
平均符号長(13次) : 0.726214
平均符号長(14次) : 0.728045
平均符号長(15次) : 0.72494



さすがに、15次に拡大すると時間がかかるな・・・・

1次っておかしいね。「1次」=「拡大してない」って意味でよろしく。


まぁ、とりあえず0.72ちょいに収束しそうな勢いですね。




みっともないプログラムですんで、要望があれば載せますね。