Decoding Turbo Codes and LDPC Codes via Linear Programming

3 downloads 11040 Views 148KB Size Report
Linear Programming formulation: - Variables for each ... Linear Programming Relaxation. §. Polytope ..... Arbitrary , girth ¡, all var. nodes have degree. : Theorem ...
Decoding Turbo Codes and LDPC Codes via Linear Programming Jon Feldman

David Karger

[email protected]

[email protected]

MIT LCS

MIT LCS

Martin Wainwright [email protected] UC Berkeley

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.1/22

Binary Error-Correcting Code

cements

Encoder code word

010011

110011101001

Noisy Channel





 













information word

decoded code word

010011

110011101001

corrupt code word  







1100101010 11  



 

















decoded info

Binary Symmetric Channel (BSC): each bit flipped independently with probability (small constant). 



Decoder

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.2/22













Turbo Codes + LDPC Codes Low-Density Parity-Check (LDPC) codes [Gal ’62] . Turbo Codes introduced [BGT ’93], unprecedented error-correcting performance. Ensuing LDPC “Renaissance” [SS ’94, MN ’95, Wib ’96, MMC ’98, Yed ’02, ... ]. Simple encoder, “belief-propagation” decoder. Theoretical understanding of good performance: - “Threshold” as [LMSS ’01, RU ’01]; - Decoder unpredictable with cycles. Finite-length analysis: combinatorial error conditions known only for the binary erasure channel [DPRTU ’02]. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.3/22

Our contributions Decodes: binary linear codes turbo codes.

LDPC codes

“Pseudocodewords:” exact characterization of error patterns causing failure. “Fractional distance” : - LP decoding corrects up to errors. - Computable efficiently for turbo, LDPC codes.





  









[FK, FOCS ’02] [FKW, Allerton ’02] [FKW, CISS ’03] Poly-time decoder using LP relaxation.

Error rate bounds based on high-girth graphs. Closely related to iterative approaches, other notions of “pseudocodewords.” J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.4/22













Outline Error correcting codes. Using LP relaxation for decoding. Details of LP relaxation for binary linear codes. Pseudocodewords. Fractional Distance. Girth-based bounds.

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.5/22



if



 











,



.

takes on arbitrary “soft values.” 

Other channels:

if







 

BSC:

.



: negative log-likelihood ratio of



Cost function







.



Code







Maximum-Likelihood Decoding









.





  





























Linear Programming formulation: - Variables for each code bit, - Linear Program: 











Given: Corrupt code word . Find: such that is minimized.

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.6/22

 

.





: relaxation,



Polytope















  





No noise:

].

.

optimal.

Noise: perturbation of objective function.





noisy

110

:

[





no noise

acements101











011



Want low word error rate (WER) :=



ML certificate property: all outputs ML codewords.

















Decoder: Solve LP using simplex/ellipsoid. If , output , else output “error.” 





Linear Programming Relaxation

000

Design code, relaxation accordingly.

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.7/22

Tanner Graph

  











 

: n’hood of check

 

 





.

.

  

 

s.t.:







Code words:

 

 









 

















 

 









  



“Check Nodes”

.





 

“Variable nodes”



The Tanner Graph of a linear code is a bipartite graph modeling the parity check matrix of the code. 



acements

Codewords: 0000000, 1110000, 1011001, etc. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.8/22



.

















.





.



  



LP:



 

.



  





,

.

 



     









 

    

  





,

, ,







,

,





      

,



,

   



Vars:











IP:

for each check node

  

acements

  

Variables











= valid configurations of  



,



 



For check bit





. 





LP:







.



IP:



for each code bit 

Variables







IP/LP Formulation of ML Decoding

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.9/22



  



 









 

































be the relaxed polytope.   

Let

















  





 















  











, subject to: 





Minimize





IP/LP Formulation of ML Decoding

IP: formulation of ML decoding. What do fractional solutions look like? J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.10/22







Suppose:



























Fractional Solutions

 











 



 





ML codeword:



























acements



 

 







 













.

  



Frac. sol cost:

.







   









  







  





  

Frac. sol:

   





















ML codeword cost: . ——————————————

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.11/22



Pr[ Decoding Success ] = Pr[

is the unique OPT ].

Assume - Common asssumption for linear codes. - OK in this case due to symmetry of polytope. Pr[















LP Decoding Success Conditions

is the unique OPT ] = Pr[ All other solutionss have cost > 0].

Theorem [FKW, CISS ’03]: Assume the allzeros codeword was sent. Then, the LP decodes correctly i˜ff all non-zero points in P have positive cost. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.12/22

Pseudocodewords are scaled points in

.













 





.











 





 

.













Scaled to integers: 

















Previous example: 

















Pseudocodewords

Natural combinatorial definition of pseudocodeword (independent of LP relaxation). 

Theorem [FKW, CISS ’03]: LP decodes correctly i˜ff all pseudocodewords have cost . J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.13/22

Classical distance: - = min Hamming dist. of codewords in Adversarial performance bound: - ML decoding can correct

 

errors.







Fractional distance: = min ( ) dist. between an integral and a fractional vertex of . = min wt. fractional vertex of . - Lower bound on classical distance: . - LP Decoding can correct errors. 



 





.

Another way to define minimum distance: = min ( ) dist. between two integral verts of . 









Fractional Distance

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.14/22































 













Therefore







  











  





  







     







Since 



































if flipped, +1 o.w.; So,

 

,





.

.



When

,









errors occur.

be a vertex of





Let

errors



Suppose fewer than 



LP Decoding corrects

. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.15/22

Computing for linear/LDPC codes is NP-hard. If the polytope has small size (LDPC), the fractional distance is easily computed. - More general problem: Given an LP, find the two best vertices . - Algorithm: * Find . * Guess the facet on which sits but does not. * Set facet to equality, obtaining . * Minimize over .

















Computing the Fractional Distance

Good approximation to the classical distance? Good prediction of relative classical distance? J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.16/22

For rate-1/2 RA (cycle) codes: If has large girth, neg-cost pseudocodewords (promenades) are rare.





Erdös (or [BMMS ’02]): Hamiltonian 3-regular graph with girth . 





Using Girth for Error Bounds







, as



.

, girth , all var. nodes have degree

: 





  





 



Can achieve . Stronger graph properties (expansion?) are needed for stronger results.





Theorem [FKW, CISS ’03]:







  

Arbitrary







 













 

Theorem [FK, FOCS ’02]: For any , WER long as

J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.17/22







Other “pseudocodewords” BEC: Iterative decoding successful iff no zero-cost “stopping sets.” [DPRTU ’02] - In the BEC, pseudocodewords = stopping sets. - Iterative/LP decoding: same performance in BEC. Tail-Biting trellisses (TBT): Iterative decoding successful iff “dominant pseudocodeword” has negative cost [FKMT ’98]. - TBT: need LP along lines of [FK, FOCS ’02]. - Iterative/LP decoding: same performance on TBT. “Min-sum” decoding successful iff no neg-cost “deviation sets” in the computation tree [Wib ’96]. - Pseudocodewords are natural “closed” analog of deviation sets. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.18/22





























For “high-density” binary linear codes, need representation of without exponential dependence on check node degree. - Use “parity polytope” of Yannakakis [’91]. - Orig. representation: . - Using parity polytopes: . 



Other Results

New iterative methods [FKW, Allerton ’02]: - Iterative “tree-reweighted max-product” [WJW ’02] tries to solve dual of our LP. - Subgradient method for solving LP gives provably convergent iterative algorithm. Experiments on performance, distance bounds. J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.19/22

Performance Comparison Random rate-1/2 (3,6) LDPC Code

Word Error Rate

100

Min-Sum Decoder (100 iterations) LP Decoder Both Error

10-1 -2

10

-3

10

10-4 10-5

10-0.8 10-1 10-1.2 10-1.4 10-1.6 10-1.8 10-2 10-2.2 10-2.4

BSC Crossover Probability 



Length 200, left degree , right degree . J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.20/22

Growth of Average Fractional Distance Rate 1/4 Gallager Ensemble Fractional Distance

Average Fractional Distance

10 9 8 7 6 5 0

50

100

150

200 250 300 Code Length

350

400

450

500





“Gallager” distribution, left degree , right degree . J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.21/22











Future Work New WER, fractional distance bounds: - Lower rate turbo codes (rate-1/3 RA). - Other LDPC codes, including * Expander codes, irregular LDPC codes, other constructible families. - Random LDPC, linear codes? ML Decoding using IP, branch-and-bound? Using generic “lifting” procedures to tighten relaxation? Deeper connections to “sum-product” belief-propagation? LP decoding of other code families, channel models? J. Feldman, Decoding Turbo Codes and LDPC Codes via Linear Programming – p.22/22