
小学5年生が理解する「誤り訂正符号」(デジタル社会を支えるテクノロジー:誤り訂正符号って何?その10)
これまで、父親の仕事の話し、として、『誤り訂正符号』が何なのか、『繰り返し符号』、『パリティ検査符号』、そして『ハミング符号』と基本的な符号を小学校高学年が理解できるように父親と子供の対話を通して解説してきた。今日はその続きの10回目。
息子:「ただいまー。」
私:「おっ、今日は普通の登場。」
息子:「普通じゃダメなの?」
私:「普通が一番!!何気ない日常が大切なんだ。当たり前だと思ってることは、実は当たり前ではないんだ。当たり前だと思っているこの日常がとても大切で貴重なんだ。良く覚えておいてね。」
息子:「・・・こえ〜っ!パパがまともな話ししてる。熱でもあるんじゃない?」
私:「これが普通で、これが俺の本来の姿だ。」
息子:「・・・まーいいや。昨日までの話しの続きは有るの?」
私:「たくさん有るよ。昨日までの話しは『誤り訂正符号』のほんの入り口でしかない、『誤り訂正符号』の基本の原理だけでも、まだ有るよ。」
息子:「そうなの?せっかくだから、原理ぐらいはもう少し知りたいな。他にどんな原理の『誤り訂正符号』が有るの?」
私:「そうだなー、代表的なのは、更に付け足す考え方、クロスワードパズルみたいな考え方、並べ方を変える考え方、割り算の余りを使う考え方、入れ子にする考え方、芋づる式の考え方、などかな。他にも有るけど、すぐに思い出したのはこんなところかな。」
息子:「いろいろと有るんだね。最初の『更に付け足す考え方』っていうのはどういうやり方なの?」
私:「そうだね。一番最初に、その『更に付け足す考え方』を出したのは、昨日まで話しをした『ハミング符号』の『最小ハミング重み(距離)』を簡単に増やすことができる考え方だからなんだ。」
息子:「どういうものなの?」
私:「まずは『ハミング符号』の『符号語』を全部並べて書いた紙を見直してみよう。」
息子:「えーっと残ってるかな?あっ、あった!
0000000
0001011
0010110
0011101
0100111
0101100
0110001
0111010
1000101
1001110
1010011
1011000
1100010
1101001
1110100
1111111
。」
私:「この『ハミング符号』のそれぞれの『符号語』の1のビットの個数、つまり『ハミング重み』が奇数の場合に『符号語』の最後尾に数1のビットを付け足す、1のビットの個数、つまり『ハミング重み』が偶数の場合に『符号語』の最後尾に数0のビットを付け足して、全ての『符号語』の1のビットの個数、つまり『ハミング重み』を偶数にしてみよう。」
息子:「おっ、おう。
00000000
00010111
00101101
00111010
01001110
01011001
01100011
01110100
10001011
10011100
10100110
10110001
11000101
11010010
11101000
11111111
になるね。あれ!?」
私:「何か気付いたかな?」
息子:「このやり方って『パリティ検査符号』を作るやり方だよね。それに、『ハミング重み』が0、4、そして8個のだけになっちゃったね。」
私:「い〜いところに気がついたな〜っ!褒美に俺がチューしてやろう〜っ。」
息子:「遠慮しておきます!ふざけてないで、ちゃんと教えてよ!」
私:「そうなんだ。今考えたのは『ハミング符号』の『符号語』を更に『パリティ検査符号』の『符号語』にした『誤り訂正符号』で、こういうやり方をして作った『拡大符号』という。だから今、タクムが作った『誤り訂正符号』は『拡大ハミング符号』って言うんだ。『拡大符号』は『最小ハミング重み(距離)』が奇数の『線形符号』の各『符号語』の『ハミング重み』が偶数になるように最後尾にビットを付け足すことで作れる。最後尾に付け足すビットは元々の『符号語』の全てのビットを足して2で割った余りとすれば良く、このようにして付け足すビットを『全パリティ検査ビット(オーバーオールパリティ検査ビット)』と言う。」
息子:「簡単にできるから良いね。」
私:「そうだね。おっと肝心の、今タクムが作った『拡大ハミング符号』についてもう少し詳しく見ていこう。『符号語』の『ハミング重み』が0、4、そして8個だけになったことに気付いたね。『最小ハミング重み』はいくつということかな?」
息子:「『最小ハミング重み』は4、1つ増えるということだね。・・・ということは、1ビットの誤り訂正ができて、2ビットまでの誤り検出ができるってことだね。」
私:「い〜い、心掛けだ〜っ!褒美に・・・」
息子:「それいいから、真面目に話しして!!」
私:「おっ、おう。正解!とにかく、こうして簡単に『誤り訂正符号』の能力を向上させることができるんだ。次回は、また別の話しをしよう。」