■幾何学におけるマイ未解決問題(その22)

[1]ハミングコード

 コードを高次元立方体に関連づけるのが,「ハミング距離」である.この概念は2つの文字列がまったく同じときのみ0になり,三角形のどの辺の長さもほかの2辺の長さの和以下になるなど,距離空間の性質をもっている.

 たとえば,2進数文字列

  10011101

  10110101

は2箇所違っているので,ハミング距離は2である.

 ハミングは長さ4のビット列を長さ7のビット列に変換する新たなコードを考え出した.このコードは1ビットエラーを検出して訂正できる.これに手を加えた8ビットコードは,ハミングコードと呼ばれているが,2ビットエラーを検出できるが訂正はできない.

===================================

[2]リード・ソロモンコード

 2進数文字列からなる数体系に似たものに,要素の個数が素数の累乗

  2,3,4,5,7,8,9,11,13,16,・・・

のガロア体と呼ばれている.とくに2の累乗の場合がデジタル通信に適している. 

 ガロア体から生まれたエラー訂正コードは,リード・ソロモンコードと呼ばれている.

===================================

[3]DNAコード

  A,G,T,Cという4種類の記号を使って書かれたメッセージ.ヒトDNA情報は塩基30億個分からなるが,生物を作るにはそれよりもはるかに多くのものが必要で,エピジェネティック因子も考えに入れなければならない.

===================================

 全体としてツリー様の配列をとり,隣接するブドウの房との間を横方向に連結させた場合,2つの多面体,たとえばw1=(010110)とw2=(101001)の距離を求めることを考える.

[1]それぞれの群内のハミング距離を求める.たとえば

   b1=(010010)とw1のハミング距離は1

   b2=(100001)とw2のハミング距離は1

→深さ方向の差はない.

[2]b1とb2のマンハッタン距離を求める.まず,横方向の差であるが,

  b=(01,・・,0u,1,01,・・,0v,1,01,・・,0w)

  b=(01,・・,0u,1,01,・・,0w)=「1」

または

  b=(01,・・,0u,1,1,01,・・,0w)=「11」

に変換する.

 1つ左にいくと左右のポインタが1つずつ内側に,1つ右にいくと左右のポインタが1つずる外側に移動するから,vが偶数の場合のステップ数はv/2,奇数の場合は(v+1)/2,すなわち,いずれの場合も

  [(v+1)/2]

ステップとなる.

  b1=(010010)→(001100)になるステップ数は1

  b2=(100001)→(001100)になるステップ数は2

その差は1である.

[3]次に,縦方向の差を求める.1の数が同じ場合,たとえば,

  b1=(001100),b2=(110000)→差は4

  b1=(001100),b2=(010000)→差は2

  b1=(001100),b2=(001100)→差は0

  b1=(001100),b2=(000110)→差は2

  b1=(001100),b2=(000011)→差は4

すなわち,1ビットのシフトは2差に相当する.

  b1=(001000),b2=(100000)→差は4

  b1=(001000),b2=(010000)→差は2

  b1=(001000),b2=(001000)→差は0

  b1=(001000),b2=(000100)→差は2

  b1=(001000),b2=(000010)→差は4

  b1=(001000),b2=(000001)→差は6

この場合も1ビットのシフトは2差に相当する.

 1の数が異なる場合,「1」を規準にしてみると,

  b1=(001000),b2=(110000)→差は3

  b1=(001000),b2=(011000)→差は1

  b1=(001000),b2=(001100)→差は1

  b1=(001000),b2=(000110)→差は3

  b1=(001000),b2=(000011)→差は5

「11」を規準にしてみると,

  b1=(001100),b2=(100000)→差は5

  b1=(001100),b2=(010000)→差は3

  b1=(001100),b2=(001000)→差は1

  b1=(001100),b2=(000100)→差は1

  b1=(001100),b2=(000010)→差は3

  b1=(001100),b2=(000001)→差は5

[4]求める間マンハッタン距離は[1]+[2]+[3]

 すなわち,深さ方向の差0+横方向の差1+縦方向の差0

===================================