「これ、何だと思う?」
ミラが古いノートを開いて、暗号のような数列を見せた。
「0110100111010011...」由紀が読み上げる。「何かの符号?」
葵が近づいて見た。「通信符号かもしれない。ミラ、どこで見つけたの?」
ミラは静かに指差した。図書館の古い通信工学の本。
「これを解読するには、まず通信路の性質を理解しないと」葵がホワイトボードに図を描いた。
「通信路?」由紀が聞く。
「送信者と受信者の間にある、メッセージが通る道。現実の通信路には、必ずノイズがある」
ミラがメモを書いた。「Binary Symmetric Channel, p = 0.1」
「二元対称通信路」葵が解説する。「各ビットが、確率pで反転するモデル。p=0.1なら、10パーセントの確率で0が1に、1が0に変わる」
由紀が考えた。「じゃあ、送られたメッセージと受け取ったメッセージが違うかも」
「そう。ノイズの中で、どれだけ正確に情報を送れるか。それを測るのが通信路容量だ」
葵が式を書いた。
「C = 1 - H(p)
ここでH(p)は、ビット反転確率のエントロピー」
「難しそう...」由紀が眉をひそめる。
「具体的に計算しよう。p=0.1の場合、H(0.1) ≈ 0.47ビット」
「だから、通信路容量は1 - 0.47 = 0.53ビット?」
「正確!つまり、この通信路では、送信した1ビットあたり、平均0.53ビットの情報しか確実に伝わらない」
ミラが頷いて、別のメモを見せた。「Shannon limit」
「シャノン限界」葵の声が高揚した。「シャノンが証明した驚異的な定理。通信路容量未満のレートなら、誤り確率を限りなくゼロに近づけられる」
「どうやって?」由紀が身を乗り出す。
「適切な符号化。情報にうまく冗長性を加えることで、ノイズがあっても元のメッセージを復元できる」
葵は例を示した。
「例えば、通信路容量が0.5ビット/シンボルなら、2ビット使って1ビットの情報を送る。残り1ビットは誤り訂正用」
「でも、どんな符号化が最適なんですか?」
「それが難しい問題。理論上は可能だと分かっても、具体的な符号を見つけるのは大変だ」
ミラがノートの別のページを開いた。複雑な行列とビットパターン。
「ハミング符号、リード・ソロモン符号、ターボ符号」葵が指差した。「これらは、シャノン限界に近づく実用的な符号だ」
由紀が元の数列を見直した。「じゃあ、この数列も何かの符号化されたメッセージ?」
ミラが静かに頷いた。
葵が分析を始める。「パターンを探そう。繰り返しはある?周期性は?」
三人でノートに書き出していく。ビット列を分割し、グループ化し、統計を取る。
「あ、7ビットごとに区切ると、パターンが見える」由紀が気づいた。
「ハミング(7,4)符号かも」葵が確認した。「4ビットの情報に3ビットのパリティを加えた符号」
ミラが微笑んだ。珍しい表情だった。
葵がデコードを始める。パリティチェック、エラー訂正、元の情報ビットの抽出。
「できた」
ノートには、デコードされたメッセージ。
「Information is the resolution of uncertainty」
由紀が声に出して読んだ。「情報は、不確実性の解消」
「シャノンの言葉だ」葵が感慨深げに言った。
ミラが新しいメモを残した。「Communication is the art of reliable transmission over unreliable channels」
「不確実な通信路での、確実な伝達の技術」由紀が訳した。
窓の外で雨が降り始めた。ノイズの多い世界で、それでも確実に伝わるメッセージがある。今日、そのことを学んだ。