Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Zemor's decoding algorithm

From Wikipedia, the free encyclopedia
Coding theory algorithm

Incoding theory,Zemor's algorithm, designed and developed by Gilles Zémor,[1] is a recursive low-complexity approach to code construction. It is an improvement over the algorithm ofSipser andSpielman.

Zemor considered a typical class of Sipser–Spielman construction ofexpander codes, where the underlying graph isbipartite graph. Sipser and Spielman introduced a constructive family of asymptotically good linear-error codes together with a simple parallel algorithm that will always remove a constant fraction of errors. The article is based on Dr. Venkatesan Guruswami's course notes[2]

Code construction

[edit]

Zemor's algorithm is based on a type ofexpander graphs calledTanner graph. The construction of code was first proposed by Tanner.[3] The codes are based ondouble coverd{\displaystyle d}, regular expanderG{\displaystyle G}, which is a bipartite graph.G{\displaystyle G} =(V,E){\displaystyle \left(V,E\right)}, whereV{\displaystyle V} is the set of vertices andE{\displaystyle E} is the set of edges andV{\displaystyle V} =A{\displaystyle A}{\displaystyle \cup }B{\displaystyle B} andA{\displaystyle A}{\displaystyle \cap }B{\displaystyle B} ={\displaystyle \emptyset }, whereA{\displaystyle A} andB{\displaystyle B} denotes sets of vertices. Letn{\displaystyle n} be the number of vertices in each group,i.e,|A|=|B|=n{\displaystyle |A|=|B|=n}. The edge setE{\displaystyle E} be of sizeN{\displaystyle N} =nd{\displaystyle nd} and every edge inE{\displaystyle E} has one endpoint in bothA{\displaystyle A} andB{\displaystyle B}.E(v){\displaystyle E(v)} denotes the set of edges containingv{\displaystyle v}.

Assume an ordering onV{\displaystyle V}, therefore ordering will be done on every edges ofE(v){\displaystyle E(v)} for everyvV{\displaystyle v\in V}. Letfinite fieldF=GF(2){\displaystyle \mathbb {F} =GF(2)}, and for a wordx=(xe),eE{\displaystyle x=(x_{e}),e\in E} inFN{\displaystyle \mathbb {F} ^{N}}, let the subword of the word will be indexed byE(v){\displaystyle E(v)}. Let that word be denoted by(x)v{\displaystyle (x)_{v}}. The subset of verticesA{\displaystyle A} andB{\displaystyle B} induces every wordxFN{\displaystyle x\in \mathbb {F} ^{N}} a partition inton{\displaystyle n} non-overlapping sub-words(x)vFd{\displaystyle \left(x\right)_{v}\in \mathbb {F} ^{d}}, wherev{\displaystyle v} ranges over the elements ofA{\displaystyle A}. For constructing a codeC{\displaystyle C}, consider a linear subcodeCo{\displaystyle C_{o}}, which is a[d,rod,δ]{\displaystyle [d,r_{o}d,\delta ]} code, whereq{\displaystyle q}, the size of the alphabet is2{\displaystyle 2}. For any vertexvV{\displaystyle v\in V}, letv(1),v(2),,v(d){\displaystyle v(1),v(2),\ldots ,v(d)} be some ordering of thed{\displaystyle d} vertices ofE{\displaystyle E} adjacent tov{\displaystyle v}. In this code, each bitxe{\displaystyle x_{e}} is linked with an edgee{\displaystyle e} ofE{\displaystyle E}.

We can define the codeC{\displaystyle C} to be the set of binary vectorsx=(x1,x2,,xN){\displaystyle x=\left(x_{1},x_{2},\ldots ,x_{N}\right)} of{0,1}N{\displaystyle \{0,1\}^{N}} such that, for every vertexv{\displaystyle v} ofV{\displaystyle V},(xv(1),xv(2),,xv(d)){\displaystyle \left(x_{v(1)},x_{v(2)},\ldots ,x_{v(d)}\right)} is a code word ofCo{\displaystyle C_{o}}. In this case, we can consider a special case when every edge ofE{\displaystyle E} is adjacent to exactly2{\displaystyle 2} vertices ofV{\displaystyle V}. It means thatV{\displaystyle V} andE{\displaystyle E} make up, respectively, the vertex set and edge set ofd{\displaystyle d} regular graphG{\displaystyle G}.

Let us call the codeC{\displaystyle C} constructed in this way as(G,Co){\displaystyle \left(G,C_{o}\right)} code. For a given graphG{\displaystyle G} and a given codeCo{\displaystyle C_{o}}, there are several(G,Co){\displaystyle \left(G,C_{o}\right)} codes as there are different ways of ordering edges incident to a given vertexv{\displaystyle v}, i.e.,v(1),v(2),,v(d){\displaystyle v(1),v(2),\ldots ,v(d)}. In fact our codeC{\displaystyle C} consist of all codewords such thatxvCo{\displaystyle x_{v}\in C_{o}} for allvA,B{\displaystyle v\in A,B}. The codeC{\displaystyle C} is linear[N,K,D]{\displaystyle [N,K,D]} inF{\displaystyle \mathbb {F} } as it is generated from a subcodeCo{\displaystyle C_{o}}, which is linear. The codeC{\displaystyle C} is defined asC={cFN:(c)vCo}{\displaystyle C=\{c\in \mathbb {F} ^{N}:(c)_{v}\in C_{o}\}} for everyvV{\displaystyle v\in V}.

A
Graph G and code C

In this figure,(x)v=(xe1,xe2,xe3,xe4)Co{\displaystyle (x)_{v}=\left(x_{e1},x_{e2},x_{e3},x_{e4}\right)\in C_{o}}. It shows the graphG{\displaystyle G} and codeC{\displaystyle C}.

In matrixG{\displaystyle G}, letλ{\displaystyle \lambda } is equal to the second largesteigenvalue ofadjacency matrix ofG{\displaystyle G}. Here the largest eigenvalue isd{\displaystyle d}. Two important claims are made:

Claim 1

[edit]

(KN)2ro1{\displaystyle \left({\dfrac {K}{N}}\right)\geq 2r_{o}-1}
. LetR{\displaystyle R} be the rate of a linear code constructed from a bipartite graph whose digit nodes have degreem{\displaystyle m} and whose subcode nodes have degreen{\displaystyle n}. If a single linear code with parameters(n,k){\displaystyle \left(n,k\right)} and rater=(kn){\displaystyle r=\left({\dfrac {k}{n}}\right)} is associated with each of the subcode nodes, thenk1(1r)m{\displaystyle k\geq 1-\left(1-r\right)m}.

Proof

[edit]

LetR{\displaystyle R} be the rate of thelinear code, which is equal toK/N{\displaystyle K/N}Let there areS{\displaystyle S} subcode nodes in the graph. If the degree of the subcode isn{\displaystyle n}, then the code must have(nm)S{\displaystyle \left({\dfrac {n}{m}}\right)S} digits, as each digit node is connected tom{\displaystyle m} of the(n)S{\displaystyle \left(n\right)S} edges in the graph. Each subcode node contributes(nk){\displaystyle (n-k)} equations to parity check matrix for a total of(nk)S{\displaystyle \left(n-k\right)S}. These equations may not be linearly independent. Therefore,(KN)((nm)S(nk)S(nm)S){\displaystyle \left({\dfrac {K}{N}}\right)\geq \left({\dfrac {({\dfrac {n}{m}})S-(n-k)S}{({\dfrac {n}{m}})S}}\right)}
1m(nkn){\displaystyle \geq 1-m\left({\dfrac {n-k}{n}}\right)}
1m(1r){\displaystyle \geq 1-m\left(1-r\right)}, Since the value ofm{\displaystyle m}, i.e., the digit node of this bipartite graph is2{\displaystyle 2} and herer=ro{\displaystyle r=r_{o}}, we can write as:
(KN)2ro1{\displaystyle \left({\dfrac {K}{N}}\right)\geq 2r_{o}-1}

Claim 2

[edit]
DN((δ(λd))(1(λd)))2{\displaystyle D\geq N\left({\dfrac {(\delta -({\dfrac {\lambda }{d}}))}{(1-({\dfrac {\lambda }{d}})}})\right)^{2}}
=N(δ2O(λd)){\displaystyle =N\left(\delta ^{2}-O\left({\dfrac {\lambda }{d}}\right)\right)}(1){\displaystyle \rightarrow (1)}

IfS{\displaystyle S} is linear code of rater{\displaystyle r}, block code lengthd{\displaystyle d}, and minimum relative distanceδ{\displaystyle \delta }, and ifB{\displaystyle B} is the edge vertex incidence graph of ad{\displaystyle d} – regular graph with second largest eigenvalueλ{\displaystyle \lambda }, then the codeC(B,S){\displaystyle C(B,S)} has rate at least2ro1{\displaystyle 2r_{o}-1} and minimum relative distance at least((δ(λd)1(λd)))2{\displaystyle \left(\left({\dfrac {\delta -\left({\dfrac {\lambda }{d}}\right)}{1-\left({\dfrac {\lambda }{d}}\right)}}\right)\right)^{2}}.

Proof

[edit]

LetB{\displaystyle B} be derived from thed{\displaystyle d} regular graphG{\displaystyle G}. So, the number of variables ofC(B,S){\displaystyle C(B,S)} is(dn2){\displaystyle \left({\dfrac {dn}{2}}\right)} and the number of constraints isn{\displaystyle n}. According to Alon - Chung,[4] ifX{\displaystyle X} is a subset of vertices ofG{\displaystyle G} of sizeγn{\displaystyle \gamma n}, then the number of edges contained in the subgraph is induced byX{\displaystyle X} inG{\displaystyle G} is at most(dn2)(γ2+(λd)γ(1γ)){\displaystyle \left({\dfrac {dn}{2}}\right)\left(\gamma ^{2}+({\dfrac {\lambda }{d}})\gamma \left(1-\gamma \right)\right)}.

As a result, any set of(dn2)(γ2+(λd)γ(1γ)){\displaystyle \left({\dfrac {dn}{2}}\right)\left(\gamma ^{2}+\left({\dfrac {\lambda }{d}}\right)\gamma \left(1-\gamma \right)\right)} variables will be having at leastγn{\displaystyle \gamma n} constraints as neighbours. So the average number of variables per constraint is :((2nd2)(γ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)}

So ifd(γ+(λd)(1γ))<γd{\displaystyle d\left(\gamma +({\dfrac {\lambda }{d}})\left(1-\gamma \right)\right)<\gamma d}, then a word of relative weight(γ2+(λd)γ(1γ)){\displaystyle \left(\gamma ^{2}+({\dfrac {\lambda }{d}})\gamma \left(1-\gamma \right)\right)}, cannot be a codeword ofC(B,S){\displaystyle C(B,S)}. The inequality(2){\displaystyle (2)} is satisfied forγ<(1(λd)δ(λd)){\displaystyle \gamma <\left({\dfrac {1-({\dfrac {\lambda }{d}})}{\delta -({\dfrac {\lambda }{d}})}}\right)}. Therefore,C(B,S){\displaystyle C(B,S)} cannot have a non zero codeword of relative weight(δ(λd)1(λd))2{\displaystyle \left({\dfrac {\delta -({\dfrac {\lambda }{d}})}{1-({\dfrac {\lambda }{d}})}}\right)^{2}} or less.

In matrixG{\displaystyle G}, we can assume thatλ/d{\displaystyle \lambda /d} is bounded away from1{\displaystyle 1}. For those values ofd{\displaystyle d} in whichd1{\displaystyle d-1} is odd prime, there are explicit constructions of sequences ofd{\displaystyle d} - regular bipartite graphs with arbitrarily large number of vertices such that each graphG{\displaystyle G} in the sequence is aRamanujan graph. It is called Ramanujan graph as it satisfies the inequalityλ(G)2d1{\displaystyle \lambda (G)\leq 2{\sqrt {d-1}}}. Certain expansion properties are visible in graphG{\displaystyle G} as the separation between the eigenvaluesd{\displaystyle d} andλ{\displaystyle \lambda }. If the graphG{\displaystyle G} is Ramanujan graph, then that expression(1){\displaystyle (1)} will become0{\displaystyle 0} eventually asd{\displaystyle d} becomes large.

Zemor's algorithm

[edit]

The iterative decoding algorithm written below alternates between the verticesA{\displaystyle A} andB{\displaystyle B} inG{\displaystyle G} and corrects the codeword ofCo{\displaystyle C_{o}} inA{\displaystyle A} and then it switches to correct the codewordCo{\displaystyle C_{o}} inB{\displaystyle B}. Here edges associated with a vertex on one side of a graph are not incident to other vertex on that side. In fact, it doesn't matter in which order, the set of nodesA{\displaystyle A} andB{\displaystyle B} are processed. The vertex processing can also be done in parallel.

The decoderD:FdCo{\displaystyle \mathbb {D} :\mathbb {F} ^{d}\rightarrow C_{o}} stands for a decoder forCo{\displaystyle C_{o}} that recovers correctly with any codewords with less than(d2){\displaystyle \left({\dfrac {d}{2}}\right)} errors.

Decoder algorithm

[edit]

Received word :w=(we),eE{\displaystyle w=(w_{e}),e\in E}
zw{\displaystyle z\leftarrow w}
Fort1{\displaystyle t\leftarrow 1} tom{\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.
XA{\displaystyle X\leftarrow A}
elseXB{\displaystyle X\leftarrow B}
Iterationt{\displaystyle t}: For everyvX{\displaystyle v\in X}, let(z)vD((z)v){\displaystyle (z)_{v}\leftarrow \mathbb {D} ((z)_{v})} // Decodingzv{\displaystyle z_{v}} to its nearest codeword.
}
Output:z{\displaystyle z}

Explanation of the algorithm

[edit]

SinceG{\displaystyle G} is bipartite, the setA{\displaystyle A} of vertices induces the partition of the edge setE{\displaystyle E} =vAEv{\displaystyle \cup _{v\in A}E_{v}} . The setB{\displaystyle B} induces another partition,E{\displaystyle E} =vBEv{\displaystyle \cup _{v\in B}E_{v}} .

Letw{0,1}N{\displaystyle w\in \{0,1\}^{N}} be the received vector, and recall thatN=dn{\displaystyle N=dn}. The first iteration of the algorithm consists of applying the complete decoding for the code induced byEv{\displaystyle E_{v}} for everyvA{\displaystyle v\in A} . This means that for replacing, for everyvA{\displaystyle v\in A}, the vector(wv(1),wv(2),,wv(d)){\displaystyle \left(w_{v(1)},w_{v(2)},\ldots ,w_{v(d)}\right)} by one of the closest codewords ofCo{\displaystyle C_{o}}. Since the subsets of edgesEv{\displaystyle E_{v}} are disjoint forvA{\displaystyle v\in A}, the decoding of thesen{\displaystyle n} subvectors ofw{\displaystyle w} may be done in parallel.

The iteration will yield a new vectorz{\displaystyle z}. The next iteration consists of applying the preceding procedure toz{\displaystyle z} but withA{\displaystyle A} replaced byB{\displaystyle B}. In other words, it consists of decoding all the subvectors induced by the vertices ofB{\displaystyle B}. The coming iterations repeat those two steps alternately applying parallel decoding to the subvectors induced by the vertices ofA{\displaystyle A} and to the subvectors induced by the vertices ofB{\displaystyle B}.
Note: [Ifd=n{\displaystyle d=n} andG{\displaystyle G} is thecomplete bipartite graph, thenC{\displaystyle C} is a product code ofCo{\displaystyle C_{o}} with itself and the above algorithm reduces to the natural hard iterative decoding of product codes].

Here, the number of iterations,m{\displaystyle m} is((logn)log(2α)){\displaystyle \left({\dfrac {(\log {n})}{\log(2-\alpha )}}\right)}. In general, the above algorithm can correct a code word whoseHamming weight is no more than(12).αNδ((δ2)(λd))=((14).αN(δ2O(λ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)} for values ofα<1{\displaystyle \alpha <1}. Here, the decoding algorithm is implemented as a circuit of sizeO(NlogN){\displaystyle O(N\log {N})} and depthO(logN){\displaystyle O(\log {N})} that returns the codeword given that error vector has weight less thanαNδ2(1ϵ)/4{\displaystyle \alpha N\delta ^{2}(1-\epsilon )/4} .

Theorem

[edit]

IfG{\displaystyle G} is a Ramanujan graph of sufficiently high degree, for anyα<1{\displaystyle \alpha <1}, the decoding algorithm can correct(αδo24)(1ε)N{\displaystyle ({\dfrac {\alpha \delta _{o}^{2}}{4}})(1-\varepsilon )N} errors, whereε{\displaystyle \varepsilon } tends to 0 whenλ/d{\displaystyle \lambda /d} tends to 0,inO(logn){\displaystyle O(\log {n})} rounds ( where the big-O{\displaystyle O} notation hides a dependence onα{\displaystyle \alpha }). This can be implemented in linear time on a single processor; onn{\displaystyle n} processors each round can be implemented in constant time.

Proof

[edit]

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 bew{\displaystyle w}. The set of edges which has an incorrect value while decoding is considered. Here by incorrect value, we mean1{\displaystyle 1} in any of the bits. Letw=w0{\displaystyle w=w^{0}} be the initial value of the codeword,w1,w2,,wt{\displaystyle w^{1},w^{2},\ldots ,w^{t}} be the values after first, second . . .t{\displaystyle t} stages of decoding. Here,Xi=eE|xei=1{\displaystyle X^{i}={e\in E|x_{e}^{i}=1}}, andSi=vVi|EvXi+1!={\displaystyle S^{i}={v\in V^{i}|E_{v}\cap X^{i+1}!=\emptyset }}. HereSi{\displaystyle S^{i}} corresponds to those set of vertices that was not able to successfully decode their codeword in theith{\displaystyle i^{th}} round. From the above algorithmS1<S0{\displaystyle S^{1}<S^{0}} as number of unsuccessful vertices will be corrected in every iteration. We can prove thatS0>S1>S2>{\displaystyle S^{0}>S^{1}>S^{2}>\cdots } is a decreasing sequence.In fact,|Si+1|<=(12α)|Si|{\displaystyle |S_{i+1}|<=({\dfrac {1}{2-\alpha }})|S_{i}|}. As we are assuming,α<1{\displaystyle \alpha <1}, the above equation is in ageometric decreasing sequence. So, when|Si|<n{\displaystyle |S_{i}|<n}, more thanlog2αn{\displaystyle log_{2-\alpha }n} rounds are necessary. Furthermore,|Si|=n(1(2α)i)=O(n){\displaystyle \sum |S_{i}|=n\sum ({\dfrac {1}{(2-\alpha )^{i}}})=O(n)}, and if we implement theith{\displaystyle i^{th}} round inO(|Si|){\displaystyle O(|S_{i}|)} time, then the total sequential running time will be linear.

Drawbacks of Zemor's algorithm

[edit]
  1. It is lengthy process as the number of iterationsm{\displaystyle m} in decoder algorithm takes is[(logn)/(log(2α))]{\displaystyle [(\log {n})/(\log(2-\alpha ))]}
  2. 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

[edit]

References

[edit]
  1. ^"Gilles Zémor".www.math.u-bordeaux.fr. Retrieved9 April 2023.
  2. ^Guruswami, Venkatesan; Cary, Matt (January 27, 2003)."Lecture 5".CSE590G: Codes and Pseudorandom Objects. University of Washington. Archived fromthe original on 2014-02-24.
  3. ^"Lecture notes"(PDF).washington.edu. Retrieved9 April 2023.
  4. ^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.
  5. ^"Archived copy". Archived fromthe original on September 14, 2004. RetrievedMay 1, 2012.{{cite web}}: CS1 maint: archived copy as title (link)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Zemor%27s_decoding_algorithm&oldid=1312361809"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp