「これ、読めます?」
陸が古びた紙を差し出した。インクが滲み、いくつかの文字が判読不能だった。
「え■と、情■理■は…」由紀が読もうとする。
「『えっと、情報理論は』じゃない?」葵が補った。
「どうして分かるんですか?」
「文脈。周囲の情報から欠けた部分を推測する。これが冗長性の力だ」
その時、ミラが静かに近づき、ノートに書いた。「Error correction through redundancy」
葵が頷いた。「そう。通信では、ノイズで情報が壊れる。でも、冗長性を加えれば、元のメッセージを復元できる」
陸が不思議そうに聞く。「冗長性って、無駄ってこと?」
「普段はね。でも通信では、意図的な無駄が重要になる」
由紀がノートを開いた。「具体例はありますか?」
葵は簡単な図を描いた。
「3ビットのメッセージ『101』を送るとする。でも通信路にノイズがあって、1ビットが反転するかもしれない」
「じゃあ、『001』や『111』に変わっちゃう?」
「そう。受信側は、それが誤りかどうか分からない。でも、もし各ビットを3回繰り返して『111000111』と送ったら?」
陸が考えた。「1ビット壊れても、多数決で元のビットが分かる!」
「正解。これが最も単純な誤り訂正符号。反復符号と呼ばれる」
ミラが別の例を書いた。「Hamming code (7,4)」
「ハミング符号」葵が説明を続ける。「4ビットの情報に3ビットのパリティを加えて、7ビットにする。1ビットの誤りなら訂正できる」
由紀が興味津々だった。「パリティって何ですか?」
「検査用のビット。例えば、偶数パリティなら、1の個数が偶数になるようにビットを追加する」
葵はホワイトボードに書いた。
「データ: 1011 パリティ: 1の個数は3(奇数) 偶数パリティビット: 1を追加して偶数にする 送信: 10111」
「もし受信したのが10110だったら、1の個数が偶数だから、誤りが検出できる」
陸が手を叩いた。「でも、どこが間違ってるかは分からないよね?」
「単純なパリティでは無理。でも、ハミング符号は複数のパリティを使って、誤りの位置を特定できる」
ミラが新しい図を描いた。複雑な行列とビット配置。
葵が補足する。「ハミング距離という概念がある。2つのビット列が、何ビット違うか。誤り訂正能力は、符号のハミング距離で決まる」
由紀が計算した。「101と110は、ハミング距離2?」
「正確。2ビット異なる。一般的に、距離dの符号は、(d-1)/2ビットまでの誤りを訂正できる」
陸が真剣な顔をした。「じゃあ、たくさん冗長性を加えれば、どんな誤りも直せる?」
「理論上はね。でも、送信効率が下がる。ここでもトレードオフだ」
ミラがメモを見せた。「Shannon limit: error-free communication near capacity」
「そう。シャノン限界まで行けば、ほぼ誤りなく、かつ高速に通信できる。でも、完璧な符号を見つけるのは難しい」
由紀がふと思いついた。「自然言語も、誤り訂正符号みたいなものですか?」
葵が感心した。「鋭い観察。文法、文脈、語彙の冗長性が、自然なエラー訂正を提供する」
「だから『え■と』を『えっと』と読めた」
「まさに。人間の脳は、強力な誤り訂正デコーダなんだ」
陸が最初の古い紙を見直した。「じゃあ、これも全部読めるかも」
四人で協力して、滲んだ文字を推測していく。文脈、文法、確率。情報理論の原理を自然に使って。
「完成!」由紀が叫んだ。
紙には、こう書かれていた。
「情報理論は、ノイズを超える技術だ。完璧な通信はないが、限界まで近づける」
ミラが微笑んだ。珍しいことだった。
「この紙自体が、誤り訂正の実演だったのかも」葵が言った。
「メタだな」陸が笑った。
由紀は紙を大切にしまった。ノイズの中にこそ、情報の価値がある。それを今日、身をもって学んだ。