冗長性とは?繰り返しは無駄にも、誤りへの備えにもなる

必要最小限を超える重複や規則性です。容量の無駄になる場合もあれば、誤りへの備えとして役立つ場合もあります。

まず、身近な例で考える

1を111、0を000として送れば、1桁の変化を多数決で修正できます。

同じ障害で全部が壊れるなら、繰り返しだけでは守れません。独立性と故障の種類が重要です。

0を000に符号化
一桁反転:000 → 010
多数決:0と推定できる
一桁以下の誤りという条件があるとき、繰り返しが復元の手がかりになる。

一つの情報を、三桁で送ってみる

0を000、1を111で送る規則を考えます。一つのビットを伝えるのに三ビット使うので、効率だけなら不利です。しかし一桁だけ反転して010になっても、多数派の0から元は000だったと推定できます。

余分な部分がすべて新しい内容を伝えるわけではなくても、元の内容を確実に保つために役立つ場合があります。これが冗長性を故障や誤りへの備えとして使う一例です。

圧縮と誤り訂正では、目的が違う

可逆圧縮では、復元できる範囲でデータの規則性を利用し、表現を短くします。誤り訂正では、伝送中に一部が壊れても区別を保つため、管理された冗長性を加えます。両者は矛盾する操作ではなく、順番に組み合わせられます。

例えば圧縮したデータに訂正用の符号を付ける設計なら、容量を抑える段階と信頼性を高める段階を分けて考えられます。最適な配分は通信路や用途によって変わります。

三つあれば必ず安全、ではない

二桁が反転した000→110では、多数決が元の1を誤って推定します。また、同じ原因ですべての複製が同時に壊れるなら、数を増やすだけでは対策になりません。何種類の障害をどこまで想定するかが重要です。

自分で確かめる小問

000が110に変わったら、多数決で直せる?

元を1と推定してしまいます。この三回繰り返し符号は、二桁の反転を確実には訂正できません。

参考資料

本文の場面・数値例は、定義を理解するための説明用作例です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です