qiskit.ignis.verification.GraphDecoder
class GraphDecoder(code, S=None)
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).