解決策
1947年、同僚にコンピュータの使い方を示していたベル研究所のリチャード・ハミングは、週末に無人で稼働していた大型リレー式計算機の結果を期待して出社した。しかしそれは早々に失敗しており、引き渡せるものは何もなかった。彼はそこから始まる問いを立てた。機械が誤りの存在を見つけられるのなら、なぜその位置を特定して修正できないのか。
彼が扱っていた機械は、誤りを検出できても訂正できないパリティ検査を用いていたため、1ビットでも反転すれば処理は停止し、やり直さなければならなかった。ハミングは重複するパリティビットを追加し、各データビットが複数の検査で覆われるようにした。これにより、反転したビットはその位置を指し示す特有のパターンを生み出す。
これによって計算機は、停止することなく単一の誤りを訂正し、さらには二つの誤りを検出して一つを訂正できるようになった。この手法は1950年の『Bell System Technical Journal』の論文で公表され、彼の名を冠する符号の一族となった。それは計算機、電話交換、そして後に宇宙探査機のテレメトリからオーディオディスクに至るまで、あらゆる分野で用いられている。
達成したこと
誤りを指摘するだけでなく、その位置を特定するビットを追加する
うまくいった理由
検査を重複させることで各ビットの故障パターンが一意になり、誤りの位置を特定できる。
自己訂正する機械は、長時間の処理を停止して再実行することを避けられる。
データブロックが大きくなるにつれて冗長性のオーバーヘッドは減少するため、修正のコストは下がる。
誤り保護を、検出の道具から訂正の道具へと変えた。
応用できること
誤りの検出は安価だが、無駄をなくすのは訂正である。原因を突き止めるように検査ビットを構成すれば、修正はただで手に入る。
その後
ハミング符号は符号理論の始まりとなり、現在RAM、磁気・光記憶装置、データ回線を保護する、より強力な後発の符号のモデルとなった。ハミングは1980年にIEEE Computer SocietyのPioneer Awardを受賞し、IEEEは情報科学に関するそのメダルを彼にちなんで命名した。
出典をたどる
出典
- Richard Wesley Hamming — Computer Pioneers IEEE Computer Society · history.computer.org
- Algebraic Coding Theory / Error Detection and Correction University of Puget Sound · math.pugetsound.edu