# qiskit.ignis.verification.GraphDecoder¶

class GraphDecoder(code, S=None)[source]

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.

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__(code, S=None)[source]
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.

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 code The 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 results A results dictionary, as produced by the make_error_graph(string[, subgraphs]) param string A string describing the output from the code. matching(string) param string A string describing the output from the code. weight_syndrome_graph(results) Generate weighted syndrome graph from result counts.
get_error_probs(results)[source]

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

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(results, algorithm='matching')[source]
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(string, subgraphs=None)[source]
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(string)[source]
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

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

weight_syndrome_graph(results)[source]

Generate weighted syndrome graph from result counts.

Parameters
• results (dict) – A results dictionary, as produced by the

• method of the code. (process_results) –