Add AlphaSyndrome measurement strategy (arXiv:2601.12509)#422
Conversation
Implementing AlphaSyndrome into qLDPC
|
I've moved to a local branch to make changes easier.
Please check the |
|
@acasta-yhliu maybe you know a nice example to show off in the notebook? |
When building evaluation circuit with noise and invoke self.noise_model.noisy_circuit at line 181, immune_qubits set to data qubits will cause no noise appended to the circuit. This behavior is not expected.
|
Ok, I've located the bug. At Previously, the code was: 181 noisy_evaluation_circuit = self.noise_model.noisy_circuit(
182 evaluation_circuit, immune_qubits=range(code.num_qubits), insert_ticks=False
183 )Notice 181 noisy_evaluation_circuit = self.noise_model.noisy_circuit(
182 evaluation_circuit, insert_ticks=False
183 )But I still want to learn how to only make data qubits immune to noise, while performing I've also changed the example to the Steane code. Seems on the surface code, the EdgeColoring already performs pretty well, even when I increase the code distance and AlphaSyndrome searching parameters. |
|
Good catch! While the example does show a benefit from In the meantime, regarding this:
Unfortunately, I'm not sure this is possible at the moment. I filed it as a new issue. I see two avenues for supporting such capability:
Option 2 is nice because it allows users to still use built-in noise models. Option 1 is nice because it allows for, say, non-uniform noise models (e.g., if some qubits are noisier than others). So maybe we should have both capabilities. |
|
Yes, I think the only tricky thing is to decide the behavior of, for example: q1 is immune, q2 is not, when performing |
The easy answer (currently used by a |
This is the current behavior.
I would prefer this one in the sense of software engineering, as it still allows the user to fully immunize both qubits q1 and q2 (by including both in the immune set) |
|
Fully agree that the second answer is preferred 🙂. Do you want to tackle #426? |
|
The Steane code example with MWPM seems to be unstable: it sometimes produces a DEM with a non-matchable Tanner graph. So we are still seeking a good example to showcase AlphaSyndrome. If we really struggle to find a good example (in, say, a runtime of at most a few hours), we can merge without one. The example is desirable though because it would boost interest this feature (and in arxiv:2601.12509). |
|
I feel the Steane code is the only one I have found right now. I want to stick to MWPM to make the experiment short. Maybe when the |
This is a local merge request for #421 to make modifications easier.
I've implemented the AlphaSyndrome syndrome measurement scheduler. A few notes:
src/qLDPC/circuits/alphasyndrome.py.Some other things to be checked: