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.

qiskit.ignis.verification.GraphDecoder

class GraphDecoder(code, S=None)

GitHub

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.

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.

__init__

__init__(code, S=None)

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.

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

__init__(code[, S])param codeThe QEC Code object for which this decoder
get_error_probs(results)Generate probabilities of single error events from result counts.
get_logical_prob(results[, algorithm])param resultsA results dictionary, as produced by the
make_error_graph(string[, subgraphs])param stringA string describing the output from the code.
matching(string)param stringA string describing the output from the code.
weight_syndrome_graph(results)Generate weighted syndrome graph from result counts.

get_error_probs

get_error_probs(results)

Generate probabilities of single error events from result counts.

Parameters

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

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

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

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

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

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.