Questions tagged [pymatching]

46 questions
5
votes
3 answers

Are there open source implementations of quantum error correction decoders?

To detect and correct for errors in a topological quantum memory (toric code for example) one needs a quantum error correction algorithm also known as decoder. The minimum weight perfect matching (MWPM) decoder is currently the most standard decoder…
4
votes
1 answer

Why are $X$-logicals used when only $Z$ errors are allowed in logical error calculation instead of $Z$-logicals?

I'm following this toric code tutorial, where they constructed the $X$-logicals matrix using the Künneth theorem. I'm confused about why they specifically used $X$-logicals when only $Z$ errors were allowed to occur. I used the following code to…
3
votes
1 answer

pymatching for rotated surface code

I am trying to do MWPM with pymatching for a rotated surface code with distance $L$, but I can't figure out how to initialize the Matching object in a simple way. I only want a single round of decoding. For $L=3$, I have 9 qubits with the following…
forky40
  • 8,168
  • 2
  • 13
  • 33
3
votes
1 answer

What is the best way to parallelise processes across multiple cores when computing logical error rates with Stim and PyMatching?

I am currently trying to compute logical error rates for the surface code using Stim's detector error models and PyMatching for different distances and noise strengths. tl;dr : What is the best strategy for parallelising this process over different…
3
votes
1 answer

Pymatching shows a large timing distribution to decode the same set of syndromes

I am interested in looking into histogram distributions of decoder timing for different syndrome inputs (sourced from stim) into pymatching. Unfortunately, it seems the histograms I product are more a function of how my PC runs the simulations vs…
Ian
  • 94
  • 6
2
votes
1 answer

How can I use surface code measurement data produced with Qiskit to run matching algorithms (e.g. PyMatching)?

I built a complex time-space dependent error model with Qiskit, and I am simulating surface codes with such error model to test their error correction capabilities. Qiskit supplies measurement data as a dictionary of counts for each bitstring that…
2
votes
2 answers

How to force PyMatching into the opposite equivalence class

PyMatching finds the minimum weight matching, which will belong to a particular equivalence class. But sometimes it is useful to know the minimum matching of each equivalence class. In the olden days, when we build our own matching decoders with…
James Wootton
  • 11,790
  • 1
  • 35
  • 74
2
votes
1 answer

What is OBSERVABLE_INCLUDE in Stim and what is usefulness Pymatching

I have a question about the role of OBSERVABLE_INCLUDE within Stim circuits and how Pymatching uses it in order to decode syndromes. As far as I have understood from the documentation, OBSERVABLE_INCLUDE contains the value of the logical operator…
2
votes
1 answer

How to compute Z logical operators of a toric code using Kunneth theorem?

I'm going through pymatching tutorial on constructing a toric code using hypergraph product of two repetition codes. The hypergraph product code construction $H G P\left(H_1, H_2\right)$ takes as input the parity check matrices of two linear codes…
tomek
  • 321
  • 1
  • 5
2
votes
1 answer

Can Stim and PyMatching analyze logical error rate of non-deterministic observable?

In Stim, logical observable has to be deterministic. To calculate the logical error rate, we compare the actual_observables sampled with stim circuit and predicted_observables which is the prediction from PyMatching. I wander if we can analyze…
Jerry
  • 59
  • 2
2
votes
1 answer

PyMatching.Matching.decode() returns incorrectly sized array

I have having trouble getting the decode(...) function for a pymatching.Matching object to return an array of an appropriate size. Instead of returning an array with the number of qubits in a code, the function returns an array containing a single 0…
Ian
  • 94
  • 6
1
vote
2 answers

Is there a way to assign different weights to and get the decoding edges from 2D graphs in each round when using pymatching to decode 3D graph

It seems that when decoding 3D graph, pymatching only gives the overall decoding edges and only takes spacelike-weights in 2D graph which means the weights are the same in each round. So I'd like to know if pymatching supports assigning different…
lyt
  • 21
  • 2
1
vote
1 answer

Get a correction ($e$) that satisfies $H.e=s$ from pymatching

I am running some experiments on the surface code where I need the correction that satisfies $H.e=s$ and not the prediction of whether the observable has flipped or not from pymatching. I am trying to use the in-built API…
1
vote
1 answer

Can gauge fixing be done with decoders other than MWPM?

I've been experimenting with subsystem codes decoded with BP-OSD decoders. The performance seems pretty bad compared to subspace code. I believe this is expected since the information used is the syndrome of the stabilizers only. This paper claims…
unknown
  • 2,623
  • 1
  • 9
  • 22
1
vote
1 answer

Why does the error is always logical NOT when MWPM fails?

Consider the decoding of noisy syndrome using pymatching (as shown here) for the repetition code. The logical operator in this case is simply identity matrix. One could write the python code as def repetition_stabilisers(N): check_matrix =…
Himanshu
  • 217
  • 1
  • 10
1
2 3 4