ある問題に取り掛かろう。
[風が吹く音]
アリスとボブは樹上に家を構えて住んでいる。
2人の家は遠く離れているため、
互いを目視することはできないが、
意思疎通を行いたい。
そこで2つの家の間に、
針金を張ることにした。
針金を強く張り、
末端にブリキの缶を取り付けた。
そして互いの声を弱い信号として、
針金越しに送れるようにした。
[ボブのくぐもった声] もしもし?
[アリスのくぐもった声] もしもし、聞こえないよ。
[ボブのくぐもった声] こっちも辛うじて聞き取れるくらいだ。
[アリスのくぐもった声] 1. 2. 3. 4. 5.
しかし、問題があった:
「ノイズ」だ。
風が強い日は決まって、
ノイズにかき消され、
信号を聞き取れない。
そこで信号のエネルギーをー
増加させ、ノイズ下でも信号をー
識別できるようにする必要があった。
ここでボブに案が閃いた。
針金をはじく音なら、
ノイズの中でも認識しやすい。
そうすると新たな問題が生じた。
どうすればメッセージを「はじき方」に変換できるだろう?
さて彼らは、
遠距離間でボードゲームをしたいため、
最もありがちなメッセージの1つであるー
サイコロ2つを振った数値の送信に取り組んだ。
ここで送信するメッセージは、
有限個の記号、
この場合11通りの数値から、
1つを選択したものとみなせる。
これを「離散情報源」という。
最初、彼らは最もシンプルな方法を採用した。
はじく回数で結果を送信するのだ。
つまり「3」を送信するためには3回はじく。
「9」なら9回はじき、
「12」なら12回はじく。
しかし、これでは必要以上に時間がかかるとー
すぐに気付いた。
経験から、はじくスピードは最大でー
毎秒2回だと分かった。
これ以上だと信号が混ざってしまう。
つまり、毎秒2回弾きが、
この通信手段の「通信路容量」とみなせる。
[弾く音]
それから、最もー
出やすい目は7だと分かった。
さて、7を送信するには3.5秒かかる。
[7回弾く音]
ここでアリスは、符号化の方法を変えることで、
ずっと良くできることに気付いた。
彼女は、それぞれの目が出る確率に、
簡単な規則がある事に目をつけた。
2が出るのは1通り。
3が出るのは2通り。
4が出るのは3通り。
5が出るのは4通り。
6が出るのは5通り。
7が出るのは6通りで、
これが最も出やすい。
8が出るのは5通り。
9には4通り。
以下続いて、12では1通りに戻る。
このグラフは、
結果ごとの場合の数を表していて、
明確なパターンが見て取れる。
それでは、グラフを
「数値 対 はじく回数」 に変えてみよう。
彼女は、最も出やすい数であるー
7を、
最も短い信号である1回はじきに割り当てた。
[1回弾く音]
それからその次に出やすい数を割り当てた。
同確率の時は、ランダムに選んだ。
今回は6を2回に、
8を3回に、
戻って5を4回に、
それから9を5回、
次に5を…と割り当て、最後の12には
11回はじきを割り当てた。
すると、最も出やすい7をー
1秒とかからずに送ることができる。
大きな改善だ。
この簡単な改善で、
同じ時間でも平均的にはより多くの情報を送れるようになった。
実際、この簡単な例では、
この符号化手法が最も良い。
しかし、はじくだけでー
サイコロ2つの結果を送る、
もっと速い方法を思いついたなら話は別だ。
さて、針金で何度か遊んだ後、
ボブに新たなアイデアが閃いた。