Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

GraphDecoder

class GraphDecoder(code, S=None, brute=False)

GitHub

Bases: object

Class to construct the graph corresponding to the possible syndromes of a quantum error correction code, and then run suitable decoders.

Parameters

  • code (RepitionCode) – The QEC Code object for which this decoder will be used.
  • S (retworkx.PyGraph) – Graph describing connectivity between syndrome elements. Will be generated automatically if not supplied.
  • brute (bool) – If False, attempt to use custom method from code class.

Additional information:

The decoder for the supplied code is initialized by running _make_syndrome_graph(). Since this process can take some time, it is also possible to load in a premade S. However, if this was created for a differently defined code, it won’t work properly.


Methods

get_error_probs

GraphDecoder.get_error_probs(results, logical='0')

Generate probabilities of single error events from result counts. :param results: A results dictionary, as produced by the :type results: dict :param process_results method of the code.: :param logical: Logical value whose results are used. :type logical: string

Returns

Keys are the edges for specific error events, and values are the calculated probabilities

Return type

dict

Additional information:

Uses results to estimate the probability of the errors that create the pairs of nodes specified by the edge. Calculation done using the method of Spitz, et al. https://doi.org/10.1002/qute.201800012

get_logical_prob

GraphDecoder.get_logical_prob(results, algorithm='matching')

Parameters

  • results (dict) – A results dictionary, as produced by the
  • method of the code. (process_results) –
  • algorithm (str) – Choice of which decoder to use.

Returns

Dictionary of logical error probabilities for each of the encoded logical states whose results were given in the input.

Return type

dict

make_error_graph

GraphDecoder.make_error_graph(string, subgraphs=None)

Parameters

  • string (str) – A string describing the output from the code.
  • subgraphs (list) – Used when multiple, semi-independent graphs need
  • to created. (need) –

Returns

The subgraph(s) of S which corresponds to the non-trivial syndrome elements in the given string.

Return type

E

matching

GraphDecoder.matching(string)

Parameters

string (str) – A string describing the output from the code.

Returns

A string with corrected logical values,

computed using minimum weight perfect matching.

Return type

str

Additional information:

This function can be run directly, or used indirectly to calculate a logical error probability with get_logical_prob

weight_syndrome_graph

GraphDecoder.weight_syndrome_graph(results)

Generate weighted syndrome graph from result counts.

Parameters

  • results (dict) – A results dictionary, as produced by the
  • method of the code. (process_results) –

Additional information:

Uses results to estimate the probability of the errors that create the pairs of nodes in S. The edge weights are then replaced with the corresponding -log(p/(1-p).

Was this page helpful?
Report a bug or request content on GitHub.