符号理論 において 、 ジル・ゼモール [1]によって設計・開発された ゼモールのアルゴリズムは、コード構築に対する再帰的な低複雑性のアプローチである。これは、 シプサー と スピルマン のアルゴリズムを改良したものである 。
ゼモールは、基となるグラフが二部グラフ である、 拡張コード のシプサー・スピルマン構成の典型的なクラスを検討しました。シプサーとスピルマンは、漸近的に優れた線形エラーコードの構成的ファミリーと、常に一定の割合のエラーを除去する単純な並列アルゴリズムを導入しました。この記事は、ベンカテサン・グルスワミ博士のコースノート [2] に基づいています。
コード構築
Zemor のアルゴリズムは、 Tanner グラフ と呼ばれる 種類の 拡張グラフ に基づいています。 コードの構築は Tanner によって初めて提案されました。 [3] このコードは、 2 部グラフである 二重被覆 、正則拡張に基づいています。 = 、ここで は頂点の集合、 は辺の集合、 = および = 、ここで および は 頂点の集合を表します。 を 各グループの頂点の数、 つまり とします。 辺集合 のサイズは =であり 、 内のすべての辺は および の 両方に 1 つの端点を持ちます 。 は を含む辺の集合を表します 。
d
{\displaystyle d}
グ
{\displaystyle G}
グ
{\displaystyle G}
(
五
、
え
)
{\displaystyle \left(V,E\right)}
五
{\displaystyle V}
え
{\displaystyle E}
五
{\displaystyle V}
あ
{\displaystyle A}
∪
{\displaystyle \cup}
B
{\displaystyle B}
あ
{\displaystyle A}
∩
{\displaystyle \cap}
B
{\displaystyle B}
∅
{\displaystyle \emptyset}
あ
{\displaystyle A}
B
{\displaystyle B}
ん
{\displaystyle n}
|
あ
|
=
|
B
|
=
ん
{\displaystyle |A|=|B|=n}
え
{\displaystyle E}
いいえ
{\displaystyle N}
ん
d
{\displaystyle nd}
え
{\displaystyle E}
あ
{\displaystyle A}
B
{\displaystyle B}
え
(
ヴ
)
{\displaystyle E(v)}
ヴ
{\displaystyle v}
上の順序付けを仮定すると、順序付けは のすべての辺に対して すべての に対して行われます 。を 有限体 とし、内の 単語に対して 、単語のサブワードが によってインデックス付けされるとします。その単語を で表すものとします 。頂点のサブセットおよび により 、 すべての単語 が重複しないサブワード に分割されます。 ここで、 は の要素全体にわたります 。コード を構築するには、 であるコード である 線形サブコード を考えます。 この場合 、アルファベットのサイズは です 。任意の頂点 に対して 、 に隣接する の頂点 の順序付けをとします 。このコードでは、各ビットは の 辺にリンクされています 。
五
{\displaystyle V}
え
(
ヴ
)
{\displaystyle E(v)}
ヴ
∈
五
{\displaystyle v\in V}
ふ
=
グ
ふ
(
2
)
{\displaystyle \mathbb {F} =GF(2)}
x
=
(
x
e
)
、
e
∈
え
{\displaystyle x=(x_{e}),e\in E}
ふ
いいえ
{\displaystyle \mathbb {F} ^{N}}
え
(
ヴ
)
{\displaystyle E(v)}
(
x
)
ヴ
{\displaystyle (x)_{v}}
あ
{\displaystyle A}
B
{\displaystyle B}
x
∈
ふ
いいえ
{\displaystyle x\in \mathbb {F} ^{N}}
ん
{\displaystyle n}
(
x
)
ヴ
∈
ふ
d
{\displaystyle \left(x\right)_{v}\in \mathbb {F} ^{d}}
ヴ
{\displaystyle v}
あ
{\displaystyle A}
C
{\displaystyle C}
C
o
{\displaystyle C_{o}}
[
d
、
r
o
d
、
δ
]
{\displaystyle [d,r_{o}d,\delta ]}
q
{\displaystyle q}
2
{\displaystyle 2}
ヴ
∈
五
{\displaystyle v\in V}
ヴ
(
1
)
、
ヴ
(
2
)
、
…
、
ヴ
(
d
)
{\displaystyle v(1),v(2),\ldots ,v(d)}
d
{\displaystyle d}
え
{\displaystyle E}
ヴ
{\displaystyle v}
x
e
{\displaystyle x_{e}}
e
{\displaystyle e}
え
{\displaystyle E}
コードは、 のすべての頂点に対して が のコードワードとなる ような の バイナリベクトルの集合として定義できます 。この場合、 のすべての辺が のちょうど の頂点 に隣接するという特別なケースを考えることができます 。これは 、 と がそれぞれ 正則グラフ の頂点集合と辺集合を構成することを意味します 。
C
{\displaystyle C}
x
=
(
x
1
、
x
2
、
…
、
x
いいえ
)
{\displaystyle x=\left(x_{1},x_{2},\ldots ,x_{N}\right)}
{
0
、
1
}
いいえ
{\displaystyle \{0,1\}^{N}}
ヴ
{\displaystyle v}
五
{\displaystyle V}
(
x
ヴ
(
1
)
、
x
ヴ
(
2
)
、
…
、
x
ヴ
(
d
)
)
{\displaystyle \left(x_{v(1)},x_{v(2)},\ldots ,x_{v(d)}\right)}
C
o
{\displaystyle C_{o}}
え
{\displaystyle E}
2
{\displaystyle 2}
五
{\displaystyle V}
五
{\displaystyle V}
え
{\displaystyle E}
d
{\displaystyle d}
グ
{\displaystyle G}
このようにして構築された コードを コード と呼びます 。 与えられたグラフ と与えられたコードに対して、 与えられた頂点 に接続するエッジを順序付けるさまざまな方法があるため、 複数のコードが存在します。 つまり、 です 。実際、コードは、 すべての に対して となるすべてのコードワードで構成されています 。コードは において 線形です。これは、線形である サブコード から生成されるためです 。コードは、 すべての に対して と定義されます 。
C
{\displaystyle C}
(
グ
、
C
o
)
{\displaystyle \left(G,C_{o}\right)}
グ
{\displaystyle G}
C
o
{\displaystyle C_{o}}
(
グ
、
C
o
)
{\displaystyle \left(G,C_{o}\right)}
ヴ
{\displaystyle v}
ヴ
(
1
)
、
ヴ
(
2
)
、
…
、
ヴ
(
d
)
{\displaystyle v(1),v(2),\ldots ,v(d)}
C
{\displaystyle C}
x
ヴ
∈
C
o
{\displaystyle x_{v}\in C_{o}}
ヴ
∈
あ
、
B
{\displaystyle v\in A,B}
C
{\displaystyle C}
[
いいえ
、
け
、
だ
]
{\displaystyle [N,K,D]}
ふ
{\displaystyle \mathbb {F} }
C
o
{\displaystyle C_{o}}
C
{\displaystyle C}
C
=
{
c
∈
ふ
いいえ
:
(
c
)
ヴ
∈
C
o
}
{\displaystyle C=\{c\in \mathbb {F} ^{N}:(c)_{v}\in C_{o}\}}
ヴ
∈
五
{\displaystyle v\in V}
グラフGとコードC
この図では、 グラフ とコードを示しています 。
(
x
)
ヴ
=
(
x
e
1
、
x
e
2
、
x
e
3
、
x
e
4
)
∈
C
o
{\displaystyle (x)_{v}=\left(x_{e1},x_{e2},x_{e3},x_{e4}\right)\in C_{o}}
グ
{\displaystyle G}
C
{\displaystyle C}
行列 において 、 は の 隣接行列 の 2 番目に大きい 固有値 に等しいとします。ここで、最大の固有値は です 。2 つの重要な主張がなされています。
グ
{\displaystyle G}
λ
{\displaystyle \lambda}
グ
{\displaystyle G}
d
{\displaystyle d}
主張1
(
け
いいえ
)
≥
2
r
o
−
1
{\displaystyle \left({\dfrac {K}{N}}\right)\geq 2r_{o}-1}
数字ノードが次数、サブコードノードが次数 である 二部グラフから構築された線形コードのレートを とします 。パラメータ とレートを 持つ単一の線形コードが 各サブコードノードに関連付けられている場合、 となります
R
{\displaystyle R}
メートル
{\displaystyle m}
ん
{\displaystyle n}
(
ん
、
け
)
{\displaystyle \left(n,k\right)}
r
=
(
け
ん
)
{\displaystyle r=\left({\dfrac {k}{n}}\right)}
け
≥
1
−
(
1
−
r
)
メートル
{\displaystyle k\geq 1-\left(1-r\right)m}
。
証拠
を線形コードのレートとし、これは に等しいものと します 。グラフにサブコード ノード
があるとします。サブコードの次数が の場合、各数字ノードは グラフのエッジの に接続されているため、コードには数字が含まれている必要があります。各サブコード ノードは、合計 の方程式をパリティ チェック マトリックスに提供します 。 これら の 方程式 は線形独立ではない可能性があります。したがって、 、 つまりこの 2 部グラフの数字ノード の値は であり 、ここでは であるため 、次のように記述できます。
R
{\displaystyle R}
け
/
いいえ
{\displaystyle K/N}
S
{\displaystyle S}
ん
{\displaystyle n}
(
ん
メートル
)
S
{\displaystyle \left({\dfrac {n}{m}}\right)S}
メートル
{\displaystyle m}
(
ん
)
S
{\displaystyle \left(n\right)S}
(
ん
−
け
)
{\displaystyle (nk)}
(
ん
−
け
)
S
{\displaystyle \left(nk\right)S}
(
け
いいえ
)
≥
(
(
ん
メートル
)
S
−
(
ん
−
け
)
S
(
ん
メートル
)
S
)
{\displaystyle \left({\dfrac {K}{N}}\right)\geq \left({\dfrac {({\dfrac {n}{m}})S-(n-k)S}{({\dfrac {n}{m}})S}}\right)}
≥
1
−
m
(
n
−
k
n
)
{\displaystyle \geq 1-m\left({\dfrac {n-k}{n}}\right)}
≥
1
−
m
(
1
−
r
)
{\displaystyle \geq 1-m\left(1-r\right)}
m
{\displaystyle m}
2
{\displaystyle 2}
r
=
r
o
{\displaystyle r=r_{o}}
(
K
N
)
≥
2
r
o
−
1
{\displaystyle \left({\dfrac {K}{N}}\right)\geq 2r_{o}-1}
主張2
D
≥
N
(
(
δ
−
(
λ
d
)
)
(
1
−
(
λ
d
)
)
)
2
{\displaystyle D\geq N\left({\dfrac {(\delta -({\dfrac {\lambda }{d}}))}{(1-({\dfrac {\lambda }{d}})}})\right)^{2}}
=
N
(
δ
2
−
O
(
λ
d
)
)
{\displaystyle =N\left(\delta ^{2}-O\left({\dfrac {\lambda }{d}}\right)\right)}
→
(
1
)
{\displaystyle \rightarrow (1)}
がレート、ブロック コード長 、最小相対距離 の線形コードで あり 、が 2 番目に大きい固有値 を持つ正則グラフ のエッジ頂点接続グラフである場合 、コード のレートは少なくとも 、最小相対距離は少なくとも になります 。
S
{\displaystyle S}
r
{\displaystyle r}
d
{\displaystyle d}
δ
{\displaystyle \delta }
B
{\displaystyle B}
d
{\displaystyle d}
λ
{\displaystyle \lambda }
C
(
B
,
S
)
{\displaystyle C(B,S)}
2
r
o
−
1
{\displaystyle 2r_{o}-1}
(
(
δ
−
(
λ
d
)
1
−
(
λ
d
)
)
)
2
{\displaystyle \left(\left({\dfrac {\delta -\left({\dfrac {\lambda }{d}}\right)}{1-\left({\dfrac {\lambda }{d}}\right)}}\right)\right)^{2}}
証拠
が正則グラフ から導出されると します 。したがって、 の変数の数 は で 、制約の数は です。Alon-Chung [4] によれば、が サイズ の の頂点のサブセットである 場合、 によって 誘導されるサブグラフに含まれる辺の数は 最大 です 。
B
{\displaystyle B}
d
{\displaystyle d}
G
{\displaystyle G}
C
(
B
,
S
)
{\displaystyle C(B,S)}
(
d
n
2
)
{\displaystyle \left({\dfrac {dn}{2}}\right)}
n
{\displaystyle n}
X
{\displaystyle X}
G
{\displaystyle G}
γ
n
{\displaystyle \gamma n}
X
{\displaystyle X}
G
{\displaystyle G}
(
d
n
2
)
(
γ
2
+
(
λ
d
)
γ
(
1
−
γ
)
)
{\displaystyle \left({\dfrac {dn}{2}}\right)\left(\gamma ^{2}+({\dfrac {\lambda }{d}})\gamma \left(1-\gamma \right)\right)}
その結果、どの 変数セットも少なくとも 制約を隣接変数として持つことになります。したがって、制約あたりの変数の平均数は、次のようになります。
(
d
n
2
)
(
γ
2
+
(
λ
d
)
γ
(
1
−
γ
)
)
{\displaystyle \left({\dfrac {dn}{2}}\right)\left(\gamma ^{2}+\left({\dfrac {\lambda }{d}}\right)\gamma \left(1-\gamma \right)\right)}
γ
n
{\displaystyle \gamma n}
(
(
2
n
d
2
)
(
γ
2
+
(
λ
d
)
γ
(
1
−
γ
)
)
γ
n
)
{\displaystyle \left({\dfrac {({\dfrac {2nd}{2}})\left(\gamma ^{2}+({\dfrac {\lambda }{d}})\gamma \left(1-\gamma \right)\right)}{\gamma n}}\right)}
=
d
(
γ
+
(
λ
d
)
(
1
−
γ
)
)
{\displaystyle =d\left(\gamma +({\dfrac {\lambda }{d}})\left(1-\gamma \right)\right)}
→
(
2
)
{\displaystyle \rightarrow (2)}
したがって 、 の場合、相対重み のワードは のコードワードにはなり得ません 。 に対して不等式 が満たされます 。したがって、 は 相対重み またはそれ以下のゼロ以外のコードワードを持つことはできません 。
d
(
γ
+
(
λ
d
)
(
1
−
γ
)
)
<
γ
d
{\displaystyle d\left(\gamma +({\dfrac {\lambda }{d}})\left(1-\gamma \right)\right)<\gamma d}
(
γ
2
+
(
λ
d
)
γ
(
1
−
γ
)
)
{\displaystyle \left(\gamma ^{2}+({\dfrac {\lambda }{d}})\gamma \left(1-\gamma \right)\right)}
C
(
B
,
S
)
{\displaystyle C(B,S)}
(
2
)
{\displaystyle (2)}
γ
<
(
1
−
(
λ
d
)
δ
−
(
λ
d
)
)
{\displaystyle \gamma <\left({\dfrac {1-({\dfrac {\lambda }{d}})}{\delta -({\dfrac {\lambda }{d}})}}\right)}
C
(
B
,
S
)
{\displaystyle C(B,S)}
(
δ
−
(
λ
d
)
1
−
(
λ
d
)
)
2
{\displaystyle \left({\dfrac {\delta -({\dfrac {\lambda }{d}})}{1-({\dfrac {\lambda }{d}})}}\right)^{2}}
行列 では、 が から離れて有界である と仮定できます。 が奇数素数 である の 値に対して、 任意の数の頂点を持つ - 正則二部グラフのシーケンスの明示的な構成があり、 シーケンスの 各グラフは ラマヌジャン グラフ です。これは不等式 を満たすため、ラマヌジャン グラフと呼ばれます。グラフ では、特定の展開特性が、 固有値 と の間の分離として 確認できます 。グラフ がラマヌジャン グラフである場合、その式は 最終的に になり、 が 大きくなります。
G
{\displaystyle G}
λ
/
d
{\displaystyle \lambda /d}
1
{\displaystyle 1}
d
{\displaystyle d}
d
−
1
{\displaystyle d-1}
d
{\displaystyle d}
G
{\displaystyle G}
λ
(
G
)
≤
2
d
−
1
{\displaystyle \lambda (G)\leq 2{\sqrt {d-1}}}
G
{\displaystyle G}
d
{\displaystyle d}
λ
{\displaystyle \lambda }
G
{\displaystyle G}
(
1
)
{\displaystyle (1)}
0
{\displaystyle 0}
d
{\displaystyle d}
ゼモールのアルゴリズム
以下に記述する反復復号アルゴリズムは、 の頂点 と を 交互 に処理し て のコードワードを修正し、次に の コードワードを修正するように切り替えます 。ここで、グラフの片側の頂点に関連付けられたエッジは、その側の他の頂点には接続されません。実際、ノード セットと がどの順序で 処理されるかは重要ではありません。頂点処理は並列で実行することもできます。
A
{\displaystyle A}
B
{\displaystyle B}
G
{\displaystyle G}
C
o
{\displaystyle C_{o}}
A
{\displaystyle A}
C
o
{\displaystyle C_{o}}
B
{\displaystyle B}
A
{\displaystyle A}
B
{\displaystyle B}
デコーダーは、エラー 数未満の任意のコードワードを正しく回復する デコーダーを表します 。
D
:
F
d
→
C
o
{\displaystyle \mathbb {D} :\mathbb {F} ^{d}\rightarrow C_{o}}
C
o
{\displaystyle C_{o}}
(
d
2
)
{\displaystyle \left({\dfrac {d}{2}}\right)}
デコーダアルゴリズム
受信した単語:
出力:
w
=
(
w
e
)
,
e
∈
E
{\displaystyle w=(w_{e}),e\in E}
z
←
w
{\displaystyle z\leftarrow w}
For
t
←
1
{\displaystyle t\leftarrow 1}
to
m
{\displaystyle m}
do //
m
{\displaystyle m}
is the number of iterations
{ if (
t
{\displaystyle t}
is odd) // Here the algorithm will alternate between its two vertex sets.
X
←
A
{\displaystyle X\leftarrow A}
else
X
←
B
{\displaystyle X\leftarrow B}
Iteration
t
{\displaystyle t}
: For every
v
∈
X
{\displaystyle v\in X}
, let
(
z
)
v
←
D
(
(
z
)
v
)
{\displaystyle (z)_{v}\leftarrow \mathbb {D} ((z)_{v})}
// Decoding
z
v
{\displaystyle z_{v}}
to its nearest codeword.
}
z
{\displaystyle z}
アルゴリズムの説明
は二部なので 、頂点の集合は 辺集合の分割 = を誘導します 。集合は 別の分割 =を誘導します 。
G
{\displaystyle G}
A
{\displaystyle A}
E
{\displaystyle E}
∪
v
∈
A
E
v
{\displaystyle \cup _{v\in A}E_{v}}
B
{\displaystyle B}
E
{\displaystyle E}
∪
v
∈
B
E
v
{\displaystyle \cup _{v\in B}E_{v}}
を受信ベクトルとし 、 を思い出してください 。アルゴリズムの最初の反復は、 によって誘導されるコードの完全なデコードを ごとに適用することから構成されます。これは、 ごとに 、ベクトルを の 最も近いコードワードの 1 つに 置き換えることを意味します 。 のエッジのサブセット は に対して互いに素であるため、 のこれらの サブベクトル のデコードは 並列に実行できます。
w
∈
{
0
,
1
}
N
{\displaystyle w\in \{0,1\}^{N}}
N
=
d
n
{\displaystyle N=dn}
E
v
{\displaystyle E_{v}}
v
∈
A
{\displaystyle v\in A}
v
∈
A
{\displaystyle v\in A}
(
w
v
(
1
)
,
w
v
(
2
)
,
…
,
w
v
(
d
)
)
{\displaystyle \left(w_{v(1)},w_{v(2)},\ldots ,w_{v(d)}\right)}
C
o
{\displaystyle C_{o}}
E
v
{\displaystyle E_{v}}
v
∈
A
{\displaystyle v\in A}
n
{\displaystyle n}
w
{\displaystyle w}
この反復により、新しいベクトル が生成されます 。次の反復では、前の手順を に適用します が、 を に置き換えます 。つまり、 の頂点によって誘導されるすべてのサブベクトル をデコードします。以降の反復では、 の頂点によって誘導されるサブベクトル と の頂点によって誘導されるサブベクトルに並列デコードを交互に適用して、これらの 2 つの手順を繰り返します 。 注: [および が 完全な二部グラフである場合、は と 自身と の積符号であり 、上記のアルゴリズムは積符号の自然な困難な反復デコードに簡約されます]。
z
{\displaystyle z}
z
{\displaystyle z}
A
{\displaystyle A}
B
{\displaystyle B}
B
{\displaystyle B}
A
{\displaystyle A}
B
{\displaystyle B}
d
=
n
{\displaystyle d=n}
G
{\displaystyle G}
C
{\displaystyle C}
C
o
{\displaystyle C_{o}}
ここで、反復回数は です。一般に、上記のアルゴリズムは 、 の値に対して、 ハミング重みが を超えないコードワードを訂正できます。ここで、復号化アルゴリズムは 、エラーベクトルの重みが 未満である場合にコードワードを返す、サイズ と深さ の回路として実装されています 。
m
{\displaystyle m}
(
(
log
n
)
log
(
2
−
α
)
)
{\displaystyle \left({\dfrac {(\log {n})}{\log(2-\alpha )}}\right)}
(
1
2
)
.
α
N
δ
(
(
δ
2
)
−
(
λ
d
)
)
=
(
(
1
4
)
.
α
N
(
δ
2
−
O
(
λ
d
)
)
{\displaystyle ({\dfrac {1}{2}}).\alpha N\delta \left(({\dfrac {\delta }{2}})-({\dfrac {\lambda }{d}})\right)=\left(({\dfrac {1}{4}}).\alpha N(\delta ^{2}-O({\dfrac {\lambda }{d}})\right)}
α
<
1
{\displaystyle \alpha <1}
O
(
N
log
N
)
{\displaystyle O(N\log {N})}
O
(
log
N
)
{\displaystyle O(\log {N})}
α
N
δ
2
(
1
−
ϵ
)
/
4
{\displaystyle \alpha N\delta ^{2}(1-\epsilon )/4}
定理
が十分に高い次数のラマヌジャン グラフである 場合、任意の に対して 、復号化アルゴリズムはラウンド でエラーを訂正できます (ここで、ビッグ 表記は への依存性を隠します )。これは、単一のプロセッサ上で線形時間で実装できます。 プロセッサ上では、各ラウンドを定数時間で実装できます。
G
{\displaystyle G}
α
<
1
{\displaystyle \alpha <1}
(
α
δ
o
2
4
)
(
1
−
∈
)
N
{\displaystyle ({\dfrac {\alpha \delta _{o}^{2}}{4}})(1-\in )N}
O
(
log
n
)
{\displaystyle O(\log {n})}
O
{\displaystyle O}
α
{\displaystyle \alpha }
n
{\displaystyle n}
証拠
Since the decoding algorithm is insensitive to the value of the edges and by linearity, we can assume that the transmitted codeword is the all zeros - vector. Let the received codeword be
w
{\displaystyle w}
. The set of edges which has an incorrect value while decoding is considered. Here by incorrect value, we mean
1
{\displaystyle 1}
in any of the bits. Let
w
=
w
0
{\displaystyle w=w^{0}}
be the initial value of the codeword,
w
1
,
w
2
,
…
,
w
t
{\displaystyle w^{1},w^{2},\ldots ,w^{t}}
be the values after first, second . . .
t
{\displaystyle t}
stages of decoding.
Here,
X
i
=
e
∈
E
|
x
e
i
=
1
{\displaystyle X^{i}={e\in E|x_{e}^{i}=1}}
, and
S
i
=
v
∈
V
i
|
E
v
∩
X
i
+
1
!
=
∅
{\displaystyle S^{i}={v\in V^{i}|E_{v}\cap X^{i+1}!=\emptyset }}
. Here
S
i
{\displaystyle S^{i}}
corresponds to those set of vertices that was not able to successfully decode their codeword in the
i
t
h
{\displaystyle i^{th}}
round. From the above algorithm
S
1
<
S
0
{\displaystyle S^{1}<S^{0}}
as number of unsuccessful vertices will be corrected in every iteration. We can prove that
S
0
>
S
1
>
S
2
>
⋯
{\displaystyle S^{0}>S^{1}>S^{2}>\cdots }
is a decreasing sequence.
In fact,
|
S
i
+
1
|
<=
(
1
2
−
α
)
|
S
i
|
{\displaystyle |S_{i+1}|<=({\dfrac {1}{2-\alpha }})|S_{i}|}
. As we are assuming,
α
<
1
{\displaystyle \alpha <1}
, the above equation is in a geometric decreasing sequence .
So, when
|
S
i
|
<
n
{\displaystyle |S_{i}|<n}
, more than
l
o
g
2
−
α
n
{\displaystyle log_{2-\alpha }n}
rounds are necessary. Furthermore,
∑
|
S
i
|
=
n
∑
(
1
(
2
−
α
)
i
)
=
O
(
n
)
{\displaystyle \sum |S_{i}|=n\sum ({\dfrac {1}{(2-\alpha )^{i}}})=O(n)}
, and if we implement the
i
t
h
{\displaystyle i^{th}}
round in
O
(
|
S
i
|
)
{\displaystyle O(|S_{i}|)}
time, then the total sequential running time will be linear.
Drawbacks of Zemor's algorithm
It is lengthy process as the number of iterations
m
{\displaystyle m}
in decoder algorithm takes is
[
(
log
n
)
/
(
log
(
2
−
α
)
)
]
{\displaystyle [(\log {n})/(\log(2-\alpha ))]}
Zemor's decoding algorithm finds it difficult to decode erasures. A detailed way of how we can improve the algorithm is
given in.[5]
See also
References
^ "Gilles Zémor". www.math.u-bordeaux.fr . Retrieved 9 April 2023 .
^ Guruswami, Venkatesan; Cary, Matt (January 27, 2003). "Lecture 5". CSE590G: Codes and Pseudorandom Objects . University of Washington. Archived from the original on 2014-02-24.
^ "Lecture notes" (PDF) . washington.edu . Retrieved 9 April 2023 .
^ N. Alon; F.R.K. Chung (December 1988). "Explicit construction of linear sized tolerant networks". Discrete Mathematics . 72 (1–3): 15–19. CiteSeerX 10.1.1.300.7495 . doi :10.1016/0012-365X(88)90189-6.
^ "Archived copy". Archived from the original on September 14, 2004. Retrieved May 1, 2012 . {{cite web}}: CS1 maint: archived copy as title (link)