-
Notifications
You must be signed in to change notification settings - Fork 66
Description
From Henry Makhanov, with comments by me inline as quote blocks:
Decoder-Aware Adaptation Utilities for Clifford-Deformed Codes
The Tiurev paper highlights that if code is Clifford-deformed, the decoder must be updated to reflect the new effective geometry and error landscape.
This is decoder-agnostic and applies to MWPM, belief propagation, and other techniques. I plan to implement a set of decoder-aware utilities that transform the decoder input to remain consistent with the deformed code.
Syndrome Graph Weight Adjustment (Implement decoder_weights_from_noise)
After deforming the stabilizer code via apply_clifford_deformation!, the noise no longer acts identically across qubits — local Clifford gates modify how error channels manifest.
To capture this, I will implement utilities that translate the resulting biased and spatially non-uniform noise into decoder graph edge weights.
Currently, in decoder_pipeline.jl there are functions such as PyMatchingDecoder, imported from PyQDecoders, which wrap around pymatching library which supports custom weights.
So in order to have weight aware MWPM and similar weight-based decoders, I will implement utilities to convert noise maps into decoder graph weights,
function decoder_weights_from_noise(code::AbstractStabilizer, noise::PerQubitNoiseMap)
and presumably two qubit noise and other newly introduced noise types
and presumably this is defined only for
code::CliffordDeformedCode, i.e. something likedecoder_weights(CliffordDeformedCode(original_code, noise))
This will:
- Traverse the stabilizers in the Clifford-deformed code
- For each pair of syndrome nodes, compute an approximate effective error probability based on how error types have been transformed
- Output a weighted edge list or adjacency matrix
Tailoring Aspect Ratios (Implement suggest_aspect_ratio) [More reading required]
Surface codes under biased noise benefit from aspect ratios that reflect the anisotropy of error rates.
In highly biased regimes, logical operators in the dominant error basis (e.g., Z under Z-bias) become more vulnerable, requiring elongation of the corresponding direction.To assist this, I will implement a utility:
suggest_aspect_ratio(noise::PauliNoise, base_size::Int=5) -> (dx, dz)
this will be based on equation 19 and Table 1 from Rectangular surface code under biased noise
TODO - sounds like a stretch goal, so let's discuss it when it is more detailed, potentially in a separate issue
Modular Compatibility with Existing Decoders
Make sure that these features work with all existing decoders defined in ecc/codes
TODO - sounds like a stretch goal, so let's discuss it when it is more detailed, potentially in a separate issue
For evaluation this would require some demo of decoding performance improvement, e.g. physical vs logical error rates for Toric code and for Deformed Toric code.