謎の通信メッセージを解読せよ

ノイズがコミュニケーションに与える影響を理解し、不完全さが時に人を近づけることを発見する。

「これ、何だと思う?」

ミラが古いノートを開いて、暗号のような数列を見せた。

「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」

「不確実な通信路での、確実な伝達の技術」由紀が訳した。

窓の外で雨が降り始めた。ノイズの多い世界で、それでも確実に伝わるメッセージがある。今日、そのことを学んだ。