This repository provides an implementation that produces the results presented in [1] and its extended version[2]. It consists of two main core parts: One is the Jupyter Notebook which implements the neural BP network. Another is the C++ codes which evaluates the performance of the trained decoder.
Specifically, the Jupyter Notebook contains:
- The neural BP4 decoder, which is defined as the class
NBP_oc
- Functions for training, which can be run on a CPU or GPU
- Calls to C++ functions that evaluate the trained decoder
- Overcomplete check matrices that we constructed for the code used, which are provided in the ./PCMs folder
The C++ codes contain:
simulateFER
, which calls the decoder to simulate random errors with different depolarizing probabilities. The output is the depolarizing probability versus frame error rate.stabilizerCodes
, which is the class that performs the decoding, including adding random errors, performing belief propagation, and checking for decoding success.fileReader
, which is the helper class that reads in and stores the check matrices, as well as the trained weights generated by the Jupyter Notebook. The matrices are then passed to the instance of thestabilizerCodes
class.
[1] S. Miao, A. Schnerring, H. Li and L. Schmalen, "Neural belief propagation decoding of quantum LDPC codes using overcomplete check matrices," Proc. IEEE Inform. Theory Workshop (ITW), Saint-Malo, France, Apr. 2023, https://arxiv.org/abs/2212.10245
[2] S. Miao, A. Schnerring, H. Li and L. Schmalen, "Quaternary Neural Belief Propagation Decoding of Quantum LDPC Codes with Overcomplete Check Matrices." arXiv preprint https://arxiv.org/abs/2308.08208, 2023.
The recent success in constructing asymptotically good quantum low-density parity-check (QLDPC) codes makes this family of codes a promising candidate for error-correcting schemes in quantum computing. However, conventional belief propagation (BP) decoding of QLDPC codes does not yield satisfying performance due to the presence of unavoidable short cycles in their Tanner graph and the special degeneracy phenomenon. In this work, we propose to decode QLDPC codes based on a check matrix with redundant rows, generated from linear combinations of the rows in the original check matrix. This approach yields a significant improvement in decoding performance with the additional advantage of very low decoding latency. Furthermore, we propose a novel neural belief propagation decoder based on the quaternary BP decoder of QLDPC codes which leads to further decoding performance improvements.
This work has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No. 101001899).
Sisi Miao would like to thank Marcus Müller for improving the quality of the codes.