Skip to content

Commit 7d3d79f

Browse files
committed
update
1 parent 9bdd0f7 commit 7d3d79f

7 files changed

Lines changed: 250 additions & 0 deletions

File tree

docs/poster/amat-dark.png

45 KB
Loading

docs/poster/bibliography.bib

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
@article{Roffe2020,
2+
title={Decoding across the quantum LDPC code landscape},
3+
author={Roffe, Joschka and White, David R and Burton, Simon and Campbell, Earl},
4+
journal={Physical Review Research},
5+
volume={2},
6+
number={4},
7+
pages={043423},
8+
year={2020},
9+
publisher={APS},
10+
note={arXiv:2005.07016}
11+
}
12+
13+
@article{Chen2024,
14+
title={Improved Belief Propagation Decoding Algorithms for Surface Codes},
15+
author={Chen, Kai-wen and others},
16+
journal={arXiv preprint arXiv:2407.11523},
17+
year={2024}
18+
}
19+
20+
@article{Liu2025,
21+
title={Exact Decoding of Repetition Code under Circuit Level Noise},
22+
author={Liu, Jin-Guo and others},
23+
journal={arXiv preprint arXiv:2501.03582},
24+
year={2025}
25+
}
26+
27+
@article{Liu2023,
28+
author = {Liu, Jin-Guo and Gao, Xun and Cain, Madelyn and Lukin, Mikhail D. and Wang, Sheng-Tao},
29+
title = {Computing Solution Space Properties of Combinatorial Optimization Problems Via Generic Tensor Networks},
30+
journal = {SIAM Journal on Scientific Computing},
31+
volume = {45},
32+
number = {3},
33+
pages = {A1239-A1270},
34+
year = {2023},
35+
eprint = {https://doi.org/10.1137/22M1501787}
36+
}
37+
38+
@article{Higgott2023,
39+
title={Improved decoding of circuit noise and fragile boundaries of tailored surface codes},
40+
author={Higgott, Oscar and Breuckmann, Nikolas P},
41+
journal={Physical Review X},
42+
volume={13},
43+
number={3},
44+
pages={031007},
45+
year={2023},
46+
publisher={APS},
47+
note={arXiv:2303.15933}
48+
}
49+
50+
@article{Dennis2002,
51+
title={Topological quantum memory},
52+
author={Dennis, Eric and Kitaev, Alexei and Landahl, Andrew and Preskill, John},
53+
journal={Journal of Mathematical Physics},
54+
volume={43},
55+
number={9},
56+
pages={4452--4505},
57+
year={2002},
58+
publisher={AIP}
59+
}

docs/poster/email.png

127 KB
Loading

docs/poster/github-dark.png

31.6 KB
Loading

docs/poster/main.pdf

311 KB
Binary file not shown.

docs/poster/main.typ

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
#import "@preview/peace-of-posters:0.5.6" as pop
2+
#import "@preview/cetz:0.4.1": canvas, draw
3+
#import "@preview/qec-thrust:0.1.1": *
4+
5+
#show link: set text(blue)
6+
#set page("a0", margin: 1cm)
7+
#pop.set-poster-layout(pop.layout-a0)
8+
#pop.set-theme(pop.uni-fr)
9+
#set text(size: pop.layout-a0.at("body-size"))
10+
#let box-spacing = 1.2em
11+
#set columns(gutter: box-spacing)
12+
#set block(spacing: box-spacing)
13+
#pop.update-poster-layout(spacing: box-spacing)
14+
15+
#pop.title-box(
16+
"BPDecoderPlus: Circuit-Level Quantum Error Correction with Belief Propagation and Tropical Tensor Networks",
17+
authors: [Si-Yuan Chen$""^*$, Meng-Kun Liu$""^*$, Shen Yang$""^*$ and Jin-Guo Liu$""^*$],
18+
institutes: text(36pt)[
19+
],
20+
title-size: 1.3em,
21+
)
22+
23+
#columns(2,[
24+
25+
#pop.column-box(heading: "Abstract")[
26+
Quantum error correction (QEC) is essential for fault-tolerant quantum computing. We present *BPDecoderPlus*, a Python package implementing two complementary approaches for decoding surface codes under circuit-level noise:
27+
28+
1. *BP+OSD Decoder*: Belief propagation with ordered statistics decoding post-processing, achieving near-optimal performance on quantum LDPC codes.
29+
30+
2. *Tropical Tensor Networks*: Exact Most Probable Explanation (MPE) computation via tropical semiring contraction, providing optimal solutions for moderate-size instances.
31+
32+
Our implementation correctly resolves the circuit-level error threshold at $approx 0.7%$ for rotated surface codes, validating against established literature. The package features GPU acceleration via PyTorch, comprehensive CLI tools, and integration with Google's Stim simulator.
33+
]
34+
35+
#pop.column-box(heading: "Rotated Surface Code")[
36+
#grid(columns: 2, gutter: 20pt,
37+
canvas(length: 5cm, {
38+
import draw: *
39+
surface-code((0, 0), size: 2.5, 3, 3, name: "sc")
40+
}),
41+
box[
42+
*Detection events* (not raw syndromes):
43+
- Measurement errors flip syndrome values
44+
- Event = XOR of consecutive measurements
45+
- Localizes errors in space-time
46+
47+
*Detector Error Model* (DEM):
48+
- Error probabilities per fault
49+
- Detector-error associations
50+
- Observable flip annotations
51+
]
52+
)
53+
54+
#align(center)[
55+
#box(stroke: 2pt, inset: 12pt, radius: 5pt)[
56+
Detection Events $arrow.r$ *Decoder* $arrow.r$ Observable Flip Prediction
57+
]
58+
]
59+
]
60+
61+
#let hba = pop.uni-fr.heading-box-args
62+
#hba.insert("stroke", (paint: gradient.linear(blue, purple, red), thickness: 10pt))
63+
#let bba = pop.uni-fr.body-box-args
64+
#bba.insert("inset", 30pt)
65+
#bba.insert("stroke", (paint: gradient.linear(blue, purple, red), thickness: 10pt))
66+
67+
#pop.column-box(heading: "BP+OSD Decoder", stretch-to-next: true)[
68+
*Belief Propagation* iteratively passes messages on a factor graph to compute marginal probabilities. For QEC, the factor graph is derived from the parity check matrix $H$.
69+
70+
#grid(columns: 2, gutter: 40pt,
71+
canvas(length: 1.2cm, {
72+
import draw: *
73+
// Variable nodes (circles)
74+
for (i, x) in ((0, -2), (1, 0), (2, 2)) {
75+
circle((x, 2), radius: 0.4, name: "v" + str(i), stroke: 2pt, fill: rgb("#e3f2fd"))
76+
content((x, 2), [$e_#i$])
77+
}
78+
// Factor nodes (squares)
79+
for (i, x) in ((0, -1), (1, 1)) {
80+
rect((x - 0.4, -0.4), (x + 0.4, 0.4), name: "f" + str(i), stroke: 2pt, fill: rgb("#fff3e0"))
81+
content((x, 0), [$d_#i$])
82+
}
83+
// Edges
84+
line("v0", "f0", stroke: 2pt)
85+
line("v1", "f0", stroke: 2pt)
86+
line("v1", "f1", stroke: 2pt)
87+
line("v2", "f1", stroke: 2pt)
88+
content((0, -1.5), [Factor Graph])
89+
}),
90+
box[
91+
*Message passing:*
92+
$ mu_(v arrow f) = product_(f' in N(v) \\ f) mu_(f' arrow v) $
93+
$ mu_(f arrow v) = sum_(bold(x): x_v = 0,1) psi_f (bold(x)) product_(v' in N(f) \\ v) mu_(v' arrow f) $
94+
]
95+
)
96+
97+
*Ordered Statistics Decoding (OSD)* post-processes BP output:
98+
1. Sort variables by BP reliability
99+
2. Fix most reliable bits using Gaussian elimination
100+
3. Exhaustively search remaining bits (OSD-$w$ searches $w$ bits)
101+
102+
#highlight[Key insight: BP provides soft information; OSD provides guaranteed valid codeword.]
103+
]
104+
105+
#colbreak()
106+
107+
#pop.column-box(heading: "Tropical Tensor Networks for MPE")[
108+
The *Most Probable Explanation* (MPE) problem finds the most likely error pattern given observations. We solve this exactly using tropical tensor networks.
109+
110+
*Tropical Semiring:* $(RR union {-infinity}, max, +)$
111+
- Addition $arrow.r$ max operation
112+
- Multiplication $arrow.r$ standard addition
113+
114+
#grid(columns: 2, gutter: 30pt,
115+
box[
116+
*Standard tensor contraction:*
117+
$ C_(i k) = sum_j A_(i j) dot B_(j k) $
118+
],
119+
box[
120+
*Tropical contraction:*
121+
$ C_(i k) = max_j (A_(i j) + B_(j k)) $
122+
]
123+
)
124+
125+
For probabilistic graphical models in log-space:
126+
$ log P(bold(x)) = sum_f log psi_f (bold(x)_f) $
127+
128+
#highlight[Tropical contraction computes $max_(bold(x)) log P(bold(x))$ exactly!]
129+
130+
*Implementation highlights:*
131+
- Uses `omeco` for optimal contraction ordering
132+
- PyTorch backend with GPU support
133+
- Backtracking recovers the optimal assignment
134+
- Complexity: $O(2^(text("treewidth")))$
135+
]
136+
137+
#pop.column-box(heading: "Threshold Results")[
138+
#align(center)[
139+
#image("threshold_comparison.png", width: 95%)
140+
]
141+
142+
#table(
143+
columns: 4,
144+
align: center,
145+
stroke: 0.5pt,
146+
table.header([*Noise Model*], [*BP Only*], [*BP+OSD*], [*Optimal*]),
147+
[Code capacity], [N/A], [$approx 9.9%$], [$10.3%$],
148+
[Circuit-level], [N/A], [$approx 0.7%$], [$approx 1%$],
149+
)
150+
151+
#grid(columns: 2, gutter: 20pt,
152+
box[
153+
*Configuration:*
154+
- BP: 60 iterations, min-sum
155+
- Damping: 0.2, OSD order: 10
156+
],
157+
box[
158+
*Validation:*
159+
- Matches ldpc library @Higgott2023
160+
- Curves cross at threshold
161+
]
162+
)
163+
]
164+
165+
#pop.column-box(heading: "Software Architecture")[
166+
#align(center)[
167+
#box(stroke: 1pt, inset: 10pt, radius: 3pt)[
168+
Stim Circuit $arrow.r$ DEM $arrow.r$ Factor Graph $arrow.r$ BP/Tropical $arrow.r$ Prediction
169+
]
170+
]
171+
172+
*Key features:*
173+
- *Stim integration*: Generate noisy circuits for rotated surface codes
174+
- *DEM parsing*: Two-stage processing (separator splitting + hyperedge merging)
175+
- *PyTorch backend*: GPU-accelerated batch inference
176+
- *CLI tools*: `generate-noisy-circuits` for dataset creation
177+
- *Modular design*: BP and Tropical modules are independent
178+
179+
#highlight[Developed with *vibe coding*: human-AI collaboration using Claude Code accelerated development from concept to working threshold plots.]
180+
181+
#link("https://github.com/TensorBFS/BPDecoderPlus")[github.com/TensorBFS/BPDecoderPlus]
182+
]
183+
184+
#pop.column-box(heading: "References", stretch-to-next: true)[
185+
#bibliography("bibliography.bib", title: none)
186+
]
187+
])
188+
189+
#pop.bottom-box()[
190+
#align(right, [#align(horizon, grid(columns: 5, column-gutter: 30pt, image("github-dark.png", width: 70pt), "TensorBFS/BPDecoderPlus", h(50pt), image("email.png", width: 70pt), "jinguoliu@hkust-gz.edu.cn"))])
191+
]
159 KB
Loading

0 commit comments

Comments
 (0)