@@ -34,7 +34,7 @@ Our implementation correctly resolves the circuit-level error threshold at $appr
3434
3535 # pop . column-box (heading : " Rotated Surface Code" )[
3636# grid (columns : 2 , gutter : 20pt ,
37- canvas (length : 5cm , {
37+ canvas (length : 2cm , {
3838 import draw : *
3939 surface-code ((0 , 0 ), size : 2.5 , 3 , 3 , name : " sc" )
4040}),
@@ -89,21 +89,78 @@ canvas(length: 1.2cm, {
8989}),
9090box [
9191 *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) $
92+ $ mu _( v arrow f) = product _( f' in N(v) \\ f) mu _( f' arrow v) , 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) $
9493]
9594)
9695
97- *Ordered Statistics Decoding (OSD)* post-processes BP output:
96+ # figure (
97+ image (" ../images/bp_failure_demo.png" , width : 100% ),
98+ caption : [BP alone fails due to degeneracy: the decoder outputs an invalid solution that does not satisfy the syndrome.]
99+ )
100+ *Ordered Statistics Decoding (OSD)* post-processes BP output:
981011. Sort variables by BP reliability
991022. Fix most reliable bits using Gaussian elimination
1001033. Exhaustively search remaining bits (OSD-$ w$ searches $ w$ bits)
101104
102- # highlight [Key insight: BP provides soft information; OSD provides guaranteed valid codeword.]
105+ # figure (
106+ canvas (length : 2cm , {
107+ import draw : *
108+
109+ // Original matrix
110+ rect ((- 4 , - 1 ), (- 1 , 1 ), fill : rgb (" #f0f0f0" ), name : " H" )
111+ content (" H" , $ H$ )
112+ content ((- 2.5 , - 1.5 ), text (size : 30pt )[$ m times n$ ])
113+
114+ // Arrow
115+ line ((- 0.5 , 0 ), (0.5 , 0 ), mark : (end : " >" ))
116+ content ((0 , 0.5 ), text (size : 30pt )[split])
117+
118+ // Basis submatrix
119+ rect ((1 , - 1 ), (3 , 1 ), fill : rgb (" #e0ffe0" ), name : " HS" )
120+ content (" HS" , $ H_( [S]) $ )
121+ content ((1.75 , - 1.5 ), text (size : 30pt )[$ m times r$ ])
122+ content ((1.75 , - 2 ), text (size : 30pt )[invertible!])
123+
124+ // Remainder submatrix
125+ rect ((3.5 , - 1 ), (5 , 1 ), fill : rgb (" #ffe0e0" ), name : " HT" )
126+ content (" HT" , $ H_( [T]) $ )
127+ content ((4 , - 1.5 ), text (size : 30pt )[$ m times k'$ ])
128+ }),
129+ caption : [Splitting $ H$ into basis and remainder parts]
130+ )
103131 ]
104132
133+
105134# colbreak ()
106135
136+ # pop . column-box (heading : " BP+OSD Threshold Results" )[
137+ # align (center )[
138+ # image (" threshold_comparison.png" , width : 95% )
139+ ]
140+
141+ # table (
142+ columns : 4 ,
143+ align : center ,
144+ stroke : 0.5pt ,
145+ table . header ([*Noise Model* ], [*BP Only* ], [*BP+OSD* ], [*Optimal* ]),
146+ [Code capacity], [N/A], [$ approx 9.9%$ ], [$ 10.3%$ ],
147+ [Circuit-level], [N/A], [$ approx 0.7%$ ], [$ approx 1%$ ],
148+ )
149+
150+ # grid (columns : 2 , gutter : 20pt ,
151+ box [
152+ *Configuration:*
153+ - BP: 60 iterations, min-sum
154+ - Damping: 0.2, OSD order: 10
155+ ],
156+ box [
157+ *Validation:*
158+ - Matches ldpc library @Higgott2023
159+ - Curves cross at threshold
160+ ]
161+ )
162+ ]
163+
107164 # pop . column-box (heading : " Tropical Tensor Networks for MPE" )[
108165The *Most Probable Explanation* (MPE) problem finds the most likely error pattern given observations. We solve this exactly using tropical tensor networks.
109166
@@ -134,34 +191,6 @@ $ log P(bold(x)) = sum_f log psi_f (bold(x)_f) $
134191- Complexity: $ O(2^( text (" treewidth" )) )$
135192 ]
136193
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-
165194 # pop . column-box (heading : " Software Architecture" )[
166195# align (center )[
167196# box (stroke : 1pt , inset : 10pt , radius : 3pt )[
0 commit comments