符号理論 において 、 エクスパンダーコードは、 二部 エクスパンダーグラフ から構成される 誤り訂正符号 の一種です 。 ユステセンコード と並んで、エクスパンダーコードは、一定の正 率 、一定の正の相対 距離 、および一定の アルファベットサイズを持つことから、特に注目されています。実際、アルファベットは2つの要素しか含まないため、エクスパンダーコードは 2進コード のクラスに属します 。さらに、エクスパンダーコードは、コードのブロック長に比例した時間でエンコードおよびデコードできます。
エクスパンダーコード 符号理論 において 、エクスパンダ符号とは、 パリティ検査行列が 二部 エクスパンダグラフの 隣接行列である 線形ブロック符号 である。これらの符号は良好な相対 距離 を持ち、ここで 、および は後述するエクスパンダグラフの特性、 レート 、および復号可能性(実行時間のアルゴリズムが 存在する)を有する。 [ n , n − m ] 2 {\displaystyle [n,n-m]_{2}\,} 2 ( 1 − ε ) γ {\displaystyle 2(1-\varepsilon )\gamma \,} ε {\displaystyle \varepsilon \,} γ {\displaystyle \gamma \,} ( 1 − m n ) {\displaystyle \left(1-{\tfrac {m}{n}}\right)\,} O ( n ) {\displaystyle O(n)\,}
意味 を、変数 と呼ばれる ノード の集合と、 制約 と呼ばれる ノード の集合の間の 双 正則グラフ とし ます 。 B {\displaystyle B} ( c , d ) {\displaystyle (c,d)} n {\displaystyle n} { v 1 , ⋯ , v n } {\displaystyle \{v_{1},\cdots ,v_{n}\}} c n / d {\displaystyle cn/d} { C 1 , ⋯ , C c n / d } {\displaystyle \{C_{1},\cdots ,C_{cn/d}\}}
を、各制約 に対して、隣接する変数 が と なるように設計された関数とし ます 。 b ( i , j ) {\displaystyle b(i,j)} C i {\displaystyle C_{i}} C i {\displaystyle C_{i}} v b ( i , 1 ) , ⋯ , v b ( i , d ) {\displaystyle v_{b(i,1)},\cdots ,v_{b(i,d)}}
をブロック長 の誤り訂正符号とする 。 拡張 符号 とは、の 符号 語が となる ような語である ブロック長 の符号である 。 [1] S {\displaystyle {\mathcal {S}}} d {\displaystyle d} C ( B , S ) {\displaystyle {\mathcal {C}}(B,{\mathcal {S}})} n {\displaystyle n} ( x 1 , ⋯ , x n ) {\displaystyle (x_{1},\cdots ,x_{n})} 1 ≤ i ≤ c n / d {\displaystyle 1\leq i\leq cn/d} ( x b ( i , 1 ) , ⋯ , x b ( i , d ) ) {\displaystyle (x_{b(i,1)},\cdots ,x_{b(i,d)})} S {\displaystyle {\mathcal {S}}}
非自明なロスレス拡張グラフが存在することが示されており、さらに、それらを明示的に構築することもできる。 [2]
レート のレートは 、その次元をブロック長で割った値です。この場合、パリティ検査行列のサイズは なので、 レートは少なくとも になります 。 C {\displaystyle C\,} m × n {\displaystyle m\times n\,} C {\displaystyle C\,} ( n − m ) / n = 1 − m / n {\displaystyle (n-m)/n=1-m/n\,}
距離 と仮定します。この場合、 エクスパンダーコード の距離は 少なくとも になります 。 ε < 1 2 {\displaystyle \varepsilon <{\tfrac {1}{2}}\,} ( n , m , d , γ , 1 − ε ) {\displaystyle (n,m,d,\gamma ,1-\varepsilon )\,} C {\displaystyle C\,} 2 ( 1 − ε ) γ n {\displaystyle 2(1-\varepsilon )\gamma n\,}
証拠 におけるすべてのコードワードを 頂点 のサブセットと 見なすことができる点に注意してください 。つまり、 コードワードの 番目のインデックスが 1 である場合に限り、頂点 となります。したがって、 は、 すべて の 頂点が の偶数個の頂点に隣接している 場合にコードワードとなります 。(コードワードとなるためには、 、ここで はパリティ チェック行列です。したがって、 の各頂点は の各列に対応します 。 に対する 行列乗算 により、目的の結果が得られます。)したがって、 の 1 つの頂点に隣接している 頂点がある場合、 はコードワードではない ことがすぐにわかります。 の における隣接頂点を で表し 、の隣接頂点のうち 一意であるもの、つまり の 1 つの頂点に隣接している ものを表すものとします 。 c {\displaystyle c\,} C {\displaystyle C\,} S ⊂ L {\displaystyle S\subset L\,} v i ∈ S {\displaystyle v_{i}\in S\,} i {\displaystyle i\,} c {\displaystyle c\,} v ∈ R {\displaystyle v\in R\,} S {\displaystyle S\,} c P = 0 {\displaystyle cP=0\,} P {\displaystyle P\,} R {\displaystyle R\,} P {\displaystyle P\,} GF ( 2 ) = { 0 , 1 } {\displaystyle {\text{GF}}(2)=\{0,1\}\,} v ∈ R {\displaystyle v\in R\,} S {\displaystyle S\,} c {\displaystyle c\,} N ( S ) {\displaystyle N(S)\,} R {\displaystyle R\,} S {\displaystyle S\,} U ( S ) {\displaystyle U(S)\,} S {\displaystyle S\,} S {\displaystyle S\,}
補題1 サイズ ごとに 、 。 S ⊂ L {\displaystyle S\subset L\,} | S | ≤ γ n {\displaystyle |S|\leq \gamma n\,} d | S | ≥ | N ( S ) | ≥ | U ( S ) | ≥ d ( 1 − 2 ε ) | S | {\displaystyle d|S|\geq |N(S)|\geq |U(S)|\geq d(1-2\varepsilon )|S|\,}
証拠 自明なことに、 は を意味する ので となる 。 の各頂点の次数は であるため、 が成り立つ 。グラフの展開特性により、 異なる頂点に向かう辺の集合が必ず存在する。残りの 辺は最大で 個の隣接頂点を一意にしないので、 となる 。 | N ( S ) | ≥ | U ( S ) | {\displaystyle |N(S)|\geq |U(S)|\,} v ∈ U ( S ) {\displaystyle v\in U(S)\,} v ∈ N ( S ) {\displaystyle v\in N(S)\,} | N ( S ) | ≤ d | S | {\displaystyle |N(S)|\leq d|S|\,} S {\displaystyle S\,} d {\displaystyle d\,} d ( 1 − ε ) | S | {\displaystyle d(1-\varepsilon )|S|\,} d ε | S | {\displaystyle d\varepsilon |S|\,} d ε | S | {\displaystyle d\varepsilon |S|\,} U ( S ) ≥ d ( 1 − ε ) | S | − d ε | S | = d ( 1 − 2 ε ) | S | {\displaystyle U(S)\geq d(1-\varepsilon )|S|-d\varepsilon |S|=d(1-2\varepsilon )|S|\,}
推論 十分に小さい点はすべて 一意の近傍点を持つ。これは から導かれる 。 S {\displaystyle S\,} ε < 1 2 {\displaystyle \varepsilon <{\tfrac {1}{2}}\,}
補題2 すべてのサブセット には 一意の隣接サブセットがあります。 T ⊂ L {\displaystyle T\subset L\,} | T | < 2 ( 1 − ε ) γ n {\displaystyle |T|<2(1-\varepsilon )\gamma n\,}
証拠 補題1は が成り立つことを証明している ので、 と仮定する 。 がとなるようにする 。補題1より、 で あることが分かる。すると、 ならば 頂点は に含まれ 、 であることが分かる ので、補題1の最初の部分より、 が分かる 。 、 であり、したがって は 空ではない。 | T | ≤ γ n {\displaystyle |T|\leq \gamma n\,} 2 ( 1 − ε ) γ n > | T | > γ n {\displaystyle 2(1-\varepsilon )\gamma n>|T|>\gamma n\,} S ⊂ T {\displaystyle S\subset T\,} | S | = γ n {\displaystyle |S|=\gamma n\,} | U ( S ) | ≥ d ( 1 − 2 ε ) | S | {\displaystyle |U(S)|\geq d(1-2\varepsilon )|S|\,} v ∈ U ( S ) {\displaystyle v\in U(S)\,} U ( T ) {\displaystyle U(T)\,} v ∉ N ( T ∖ S ) {\displaystyle v\notin N(T\setminus S)\,} | T ∖ S | ≤ 2 ( 1 − ε ) γ n − γ n = ( 1 − 2 ε ) γ n {\displaystyle |T\setminus S|\leq 2(1-\varepsilon )\gamma n-\gamma n=(1-2\varepsilon )\gamma n\,} | N ( T ∖ S ) | ≤ d ( 1 − 2 ε ) γ n {\displaystyle |N(T\setminus S)|\leq d(1-2\varepsilon )\gamma n\,} ε < 1 2 {\displaystyle \varepsilon <{\tfrac {1}{2}}\,} | U ( T ) | ≥ | U ( S ) ∖ N ( T ∖ S ) | ≥ | U ( S ) | − | N ( T ∖ S ) | > 0 {\displaystyle |U(T)|\geq |U(S)\setminus N(T\setminus S)|\geq |U(S)|-|N(T\setminus S)|>0\,} U ( T ) {\displaystyle U(T)\,}
推論 が少なくとも1つの一意の近傍、すなわち を持つ 場合、 に対応 するワードは コードワードにはならないことに注意してください。これは、パリティ検査行列によってすべてゼロのベクトルに乗算されないためです。前の議論により、 です 。 は線形であるため、 と の距離は少なくとも である と結論付けられます 。 T ⊂ L {\displaystyle T\subset L\,} | U ( T ) | > 0 {\displaystyle |U(T)|>0\,} c {\displaystyle c\,} T {\displaystyle T\,} c ∈ C ⟹ w t ( c ) ≥ 2 ( 1 − ε ) γ n {\displaystyle c\in C\implies wt(c)\geq 2(1-\varepsilon )\gamma n\,} C {\displaystyle C\,} C {\displaystyle C\,} 2 ( 1 − ε ) γ n {\displaystyle 2(1-\varepsilon )\gamma n\,}
エンコーディング 拡張符号の符号化時間は、一般 線形符号 の符号化時間( 行列乗算)の上限によって制限される。Spielmanの結果は、符号化が 時間内で可能であることを示している。 [3] O ( n 2 ) {\displaystyle O(n^{2})\,} O ( n ) {\displaystyle O(n)\,}
デコード 以下のアルゴリズムを使用する と、エクスパンダーコードのデコードは時間 内に可能です。 O ( n ) {\displaystyle O(n)\,} ε < 1 4 {\displaystyle \varepsilon <{\tfrac {1}{4}}\,}
を の頂点とし、 これは の符号語のインデックス に対応する 。 を 受信語とし、 を とする 。 を とし 、 を とする 。次に、 貪欲アルゴリズム を考える。 v i {\displaystyle v_{i}\,} L {\displaystyle L\,} i {\displaystyle i\,} C {\displaystyle C\,} y ∈ { 0 , 1 } n {\displaystyle y\in \{0,1\}^{n}\,} V ( y ) = { v i ∣ the i th position of y is a 1 } {\displaystyle V(y)=\{v_{i}\mid {\text{the }}i^{\text{th}}{\text{ position of }}y{\text{ is a }}1\}\,} e ( i ) {\displaystyle e(i)\,} | { v ∈ R ∣ v i ∈ N ( v ) and N ( v ) ∩ V ( y ) is even } | {\displaystyle |\{v\in R\mid v_{i}\in N(v){\text{ and }}N(v)\cap V(y){\text{ is even}}\}|\,} o ( i ) {\displaystyle o(i)\,} | { v ∈ R ∣ v i ∈ N ( v ) and N ( v ) ∩ V ( y ) is odd } | {\displaystyle |\{v\in R\mid v_{i}\in N(v){\text{ and }}N(v)\cap V(y){\text{ is odd}}\}|\,}
入力: 受信した単語 。 y {\displaystyle y\,}
y'をyに初期化する 一方、Rには、V(y')の奇数個の頂点に隣接するavが存在する。 o(i) > e(i) となるような i が存在する場合 y'のエントリiを反転する それ以外 失敗 出力: 失敗、または変更されたコード ワード 。 y ′ {\displaystyle y'\,}
証拠 まずアルゴリズムの正確性を示し、次にその実行時間を調べます。
正確さ 受信したコードワードが元のコードワードのコード距離の半分以内にある場合、アルゴリズムは正しいコードワードで終了することを示す必要があります。不正な変数の集合を 、 、とし、 における不満足な(奇数個の頂点に隣接する)頂点の集合をと します 。次の補題が有用であることが証明されます。 S {\displaystyle S\,} s = | S | {\displaystyle s=|S|\,} R {\displaystyle R\,} c {\displaystyle c\,}
補題3 の場合、 の条件を満たす が存在します 。 0 < s < γ n {\displaystyle 0<s<\gamma n\,} v i {\displaystyle v_{i}\,} o ( i ) > e ( i ) {\displaystyle o(i)>e(i)\,}
証拠 補題1より、 であることが分かっています。したがって、 であるため 、平均頂点には少なくとも 個の一意の隣接頂点があります(一意の隣接頂点は満たされていないため、 に寄与することを思い出してください )。したがって 、 となる頂点が存在します 。 U ( S ) ≥ d ( 1 − 2 ε ) s {\displaystyle U(S)\geq d(1-2\varepsilon )s\,} d ( 1 − 2 ε ) > d / 2 {\displaystyle d(1-2\varepsilon )>d/2\,} o ( i ) {\displaystyle o(i)\,} ε < 1 4 {\displaystyle \varepsilon <{\tfrac {1}{4}}\,} v i {\displaystyle v_{i}\,} o ( i ) > e ( i ) {\displaystyle o(i)>e(i)\,}
したがって、まだコードワードに到達していない場合は、反転する頂点が常に存在します。次に、エラーの数が を超えて増加することは決してないことを示します 。 γ n {\displaystyle \gamma n\,}
補題4 から始めると、 アルゴリズムのどのポイントにも 到達しません。 s < γ ( 1 − 2 ε ) n {\displaystyle s<\gamma (1-2\varepsilon )n\,} s = γ n {\displaystyle s=\gamma n\,}
証拠 頂点 を反転させると 、 と が入れ替わります。 であったため 、反転するたびに右側の満たされていない頂点の数は少なくとも1つ減少します。 であるため、 グラフの -正則性により、 満たされていない頂点の初期数は最大 です 。エラーを含む文字列に到達した場合 、補題1により、少なくとも 個の一意な近傍が存在することになり、これは少なくとも 個の満たされていない頂点が存在することを意味し 、矛盾が生じます。 v i {\displaystyle v_{i}\,} o ( i ) {\displaystyle o(i)\,} e ( i ) {\displaystyle e(i)\,} o ( i ) > e ( i ) {\displaystyle o(i)>e(i)\,} s < γ ( 1 − 2 ε ) n {\displaystyle s<\gamma (1-2\varepsilon )n\,} d γ ( 1 − 2 ε ) n {\displaystyle d\gamma (1-2\varepsilon )n\,} d {\displaystyle d\,} γ n {\displaystyle \gamma n\,} d γ ( 1 − 2 ε ) n {\displaystyle d\gamma (1-2\varepsilon )n\,} d γ ( 1 − 2 ε ) n {\displaystyle d\gamma (1-2\varepsilon )n\,}
補題 3 と 4 は、 ( の距離の半分) から開始すると 、反転する頂点が必ず見つかるということを示しています 。反転するたびに 内の満たされていない頂点の数が 少なくとも 1 減少するため、アルゴリズムは最大 ステップで終了し、補題 3 により、あるコード ワードで終了します (コード ワードでない場合は、反転する頂点がいくつか存在することになります)。補題 4 は、 正しいコード ワードから よりも離れることはないということを示しています。コードには距離があるため ( より )、終了するコード ワードは正しいコード ワードでなければなりません。ビット反転の数が距離の半分未満であるため (そのため、他のコード ワードに到達するほど遠くまで移動することはできなかったはずです)。 s < γ ( 1 − 2 ε ) n {\displaystyle s<\gamma (1-2\varepsilon )n\,} C {\displaystyle C\,} v i {\displaystyle v_{i}\,} R {\displaystyle R\,} m {\displaystyle m\,} γ n {\displaystyle \gamma n\,} 2 ( 1 − ε ) γ n > γ n {\displaystyle 2(1-\varepsilon )\gamma n>\gamma n\,} ε < 1 2 {\displaystyle \varepsilon <{\tfrac {1}{2}}\,}
複雑 このアルゴリズムが線形時間復号を実現できることを示します。 を 定数とし、 を 内の任意の頂点の最大次数とします 。 も既知の構成では定数であることに注意してください。 n m {\displaystyle {\tfrac {n}{m}}\,} r {\displaystyle r\,} R {\displaystyle R\,} r {\displaystyle r\,}
前処理: 各頂点に 奇数個の隣接頂点があるか偶数個であるかを計算するのに時間がかかります。 O ( m r ) {\displaystyle O(mr)\,} R {\displaystyle R\,} 前処理 2: を持つ頂点 の リストを計算するのに時間がかかります 。 O ( d n ) = O ( d m r ) {\displaystyle O(dn)=O(dmr)\,} v i {\displaystyle v_{i}\,} L {\displaystyle L\,} o ( i ) > e ( i ) {\displaystyle o(i)>e(i)\,} 各反復処理:リストの最初の要素を削除するだけです。 の奇数/偶数頂点のリストを更新するには 、必要に応じてエントリを追加/削除しながら、エントリを更新するだけです。次に、 の 頂点のリストのエントリを、偶数よりも奇数が多いエントリに 更新し 、必要に応じてエントリを追加/削除します。そのため、各反復処理には 時間がかかります。 R {\displaystyle R\,} O ( d ) {\displaystyle O(d)\,} O ( d r ) {\displaystyle O(dr)\,} L {\displaystyle L\,} O ( d r ) {\displaystyle O(dr)\,} 上で述べたように、反復の合計回数は最大 です 。 m {\displaystyle m\,} これにより、合計実行 時間が与えられます。ここで、 および は定数です。 O ( m d r ) = O ( n ) {\displaystyle O(mdr)=O(n)\,} d {\displaystyle d\,} r {\displaystyle r\,}
参照
注記 この記事はベンカテサン・グルスワミ博士の講義ノートに基づいています。 [4]
参考文献 ^ Sipser, M.; Spielman, DA (1996). 「Expander codes」. IEEE Transactions on Information Theory . 42 (6): 1710– 1722. doi :10.1109/18.556667. ^ Capalbo, M.; Reingold, O.; Vadhan, S.; Wigderson, A. (2002). 「ランダムネス導体と定数次数ロスレス展開器」. STOC '02 Proceedings of the third-fourth annual ACM symposium on Theory of compute . ACM. pp. 659– 668. doi :10.1145/509907.510003. ISBN 978-1-58113-495-7 . S2CID 1918841。 ^ Spielman, D. (1996). 「線形時間符号化および復号化可能な誤り訂正符号」. IEEE Transactions on Information Theory . 42 (6): 1723–31 . CiteSeerX 10.1.1.47.2736 . doi :10.1109/18.556668. ^ Guruswami, V. (2006年11月15日). 「講義13:エクスパンダーコード」 (PDF) . CSE 533:誤り訂正 . ワシントン大学. Guruswami, V. (2010年3月). 「注8:エクスパンダー符号とその復号法」 (PDF) . 符号理論入門 . カーネギーメロン大学. Guruswami, V. (2004年9月). 「ゲストコラム:誤り訂正符号とエクスパンダーグラフ」 . ACM SIGACT News . 35 (3): 25– 41. doi :10.1145/1027914.1027924. S2CID 17550280.