符号理論 では 、 エキスパンダーコードは、 二部 エキスパンダーグラフ から構成される 誤り訂正コード の一種です。エキスパンダーコードは、 ユステセンコード とともに 、一定の正の レート 、一定の正の相対 距離 、および一定の アルファベットサイズを持つため、特に注目されています。実際、アルファベットには 2 つの要素しか含まれていないため、エキスパンダーコードは バイナリコード のクラスに属します 。さらに、エキスパンダーコードは、コードのブロック長に比例した時間でエンコードおよびデコードできます。
エキスパンダーコード
符号理論 において 、エクスパンダ符号は、パリティ検査行列が二部 エクスパンダグラフ の隣接行列である 線形ブロック符号 です。これらの符号は、良好な相対 距離 を持ちます。ここで 、 および は、 後で定義されるエクスパンダグラフの特性であり、 速度 、および復号可能性 (実行時間のアルゴリズムが 存在) です。
[
ん
、
ん
−
メートル
]
2
{\displaystyle [n,nm]_{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 である 場合に限り、 頂点 であると言えます。この場合、 はコードワードであるためには、 すべての頂点 が の偶数個の頂点に隣接している必要があります 。(コードワードであるためには、 、ここで は パリティ チェック行列です。この場合、 の各頂点は の各列に対応します 。 に対する行列乗算により 、目的の結果が得られます。) したがって、頂点が の単一の頂点に隣接している場合、 は コードワードではないこと がすぐにわかります。 の における隣接頂点を で表し 、 の隣接頂点のうち 一意であるもの、つまり の単一の頂点に隣接するものを表すものとします 。
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 が存在する場合
エントリ i を y に反転する'
それ以外
失敗
出力: 失敗、または変更されたコードワード 。
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 computing . 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 ニュース . 35 (3): 25–41. doi :10.1145/1027914.1027924. S2CID 17550280.