「短いほど良い?」
陸の素朴な質問から、議論が始まった。
「いつも、というわけじゃない」葵が答える。
「え、なんで?」由紀が首を傾げる。
「符号長の話をしよう」葵がホワイトボードに向かう。
「符号長とは、メッセージを表現するのに必要なビット数だ」
「短いほど、効率的?」陸が聞く。
「平均的には。でも、全ての符号を短くはできない」
葵は例を書いた。
「4つのシンボル A, B, C, D がある。全てを2ビットで表現できる: A: 00 B: 01 C: 10 D: 11」
「でも、もしAが90%の頻度で現れるなら?」
由紀が考えた。「Aだけ短くしたい」
「正解。例えば: A: 0 B: 10 C: 110 D: 111」
「Aは1ビット、他は2-3ビット」
陸が計算した。「平均符号長は、0.9×1 + 0.033×2 + 0.033×3 + 0.033×3 ≈ 1.1 ビット」
「固定長の2ビットより短い!」
「そう。これが可変長符号の力だ」葵が説明する。
「でも、注意が必要だ。間違った符号長選択は、逆に効率を悪くする」
由紀が質問した。「どうやって最適な長さを決めるんですか?」
「確率分布に基づく。理想的には、符号長は -log₂(p) に近づけるべきだ」
「pは確率?」
「そう。確率が1/2なら1ビット、1/4なら2ビット、1/8なら3ビット」
陸が不思議そうに聞く。「なんで対数?」
「対数は、指数の逆だから。2のべき乗で表現する世界では、対数が自然だ」
葵は図を描いた。
「確率 → 情報量(対数) → 符号長(整数)」
「情報量を整数に丸めたのが、実際の符号長だ」
由紀がノートに書く。「だから、符号長はエントロピーより少し長くなる」
「正確。シャノンの源符号化定理がそれを保証する」
陸が別の疑問を持った。「じゃあ、なんで戦いなの?」
葵が微笑む。「符号長は、リソースの奪い合いだからだ」
「リソース?」
「ビット空間。短い符号は限られている。1ビット符号は2つしかない。2ビット符号は4つ」
「誰が短い符号を得るか。それが戦いだ」
由紀が理解した。「頻出するシンボルが、短い符号を獲得する戦いですね」
「まさに。ハフマン符号は、その戦いの最適解を見つけるアルゴリズムだ」
陸がノートに絵を描いた。シンボルたちが短い符号を奪い合う様子。
「シンボルA:『俺が一番よく使われるから、1ビットよこせ!』 シンボルD:『俺は稀だから、長くても我慢する...』」
由紀と葵が笑った。
「陸の擬人化、時々的確だ」葵が認めた。
由紀が真面目に聞く。「符号長の戦い、誰が勝つんですか?」
「全員が勝つ」葵が答える。「最適符号では、全体の平均符号長が最小になる。個別には不公平でも、全体では公平だ」
「功利主義的だ」陸が言った。
「情報理論は、しばしば功利主義的だ。全体の効率を重視する」
由紀がノートを閉じた。「符号長の戦い、奥が深いですね」
「そうだ。小さな戦いだが、通信の根幹を支えている」
三人は静かに頷いた。符号長の戦いは、今日も続いている。